diff options
author | Alan Modra <amodra@gmail.com> | 2020-01-30 21:59:20 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-01-30 23:39:55 +1030 |
commit | 0c115f8483ac32dc95fde902cac8c8bb99f9c3be (patch) | |
tree | 3671689d98fe08794014ceb29b7f7947c057788e /ld/lexsup.c | |
parent | b5d36aaa8ad9b0aee720b7a6b3270d561a27cb6f (diff) | |
download | binutils-0c115f8483ac32dc95fde902cac8c8bb99f9c3be.zip binutils-0c115f8483ac32dc95fde902cac8c8bb99f9c3be.tar.gz binutils-0c115f8483ac32dc95fde902cac8c8bb99f9c3be.tar.bz2 |
ubsan: m32c: left shift of negative value
More nonsense fixing "bugs" with left shifts of signed values. Yes,
the C standard does say this is undefined (and right shifts of signed
values are implementation defined BTW) but in practice there is no
problem with current machines. 1's complement is a thing of the past.
cpu/
* m32c.cpu (f-src32-rn-unprefixed-QI): Shift before inverting.
(f-src32-rn-prefixed-QI, f-dst32-rn-unprefixed-QI): Likewise.
(f-dst32-rn-prefixed-QI): Likewise.
(f-dsp-32-s32): Mask before shifting left.
(f-dsp-48-u32, f-dsp-48-s32): Likewise.
(f-bitbase32-16-s11-unprefixed): Multiply signed field rather than
shifting left.
(f-bitbase32-24-s11-prefixed, f-bitbase32-24-s19-prefixed): Likewise.
(h-gr-SI): Mask before shifting.
opcodes/
* m32c-ibld.c: Regenerate.
Diffstat (limited to 'ld/lexsup.c')
0 files changed, 0 insertions, 0 deletions