ubsan: nios2: undefined shift
* nios2-dis.c (nios2_print_insn_arg): Avoid shift left of negative values.
This commit is contained in:
parent
8eff95bcb6
commit
efcf5fb585
@ -1,3 +1,8 @@
|
||||
2020-05-28 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* nios2-dis.c (nios2_print_insn_arg): Avoid shift left of negative
|
||||
values.
|
||||
|
||||
2020-05-28 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* ns32k-dis.c (print_insn_arg): Handle d value of 'f' for
|
||||
|
@ -276,7 +276,7 @@ nios2_print_insn_arg (const char *argptr,
|
||||
{
|
||||
unsigned long i = 0;
|
||||
long s = 0;
|
||||
bfd_signed_vma o = 0;
|
||||
int32_t o = 0;
|
||||
struct nios2_reg *reg_base;
|
||||
|
||||
switch (*argptr)
|
||||
@ -677,12 +677,10 @@ nios2_print_insn_arg (const char *argptr,
|
||||
switch (op->format)
|
||||
{
|
||||
case iw_i_type:
|
||||
o = ((int32_t) ((GET_IW_I_IMM16 (opcode) & 0xffff) ^ 0x8000)
|
||||
- 0x8000);
|
||||
o = ((GET_IW_I_IMM16 (opcode) & 0xffff) ^ 0x8000) - 0x8000;
|
||||
break;
|
||||
case iw_F2I16_type:
|
||||
o = ((int32_t) ((GET_IW_F2I16_IMM16 (opcode) & 0xffff) ^ 0x8000)
|
||||
- 0x8000);
|
||||
o = ((GET_IW_F2I16_IMM16 (opcode) & 0xffff) ^ 0x8000) - 0x8000;
|
||||
break;
|
||||
default:
|
||||
bad_opcode (op);
|
||||
@ -696,9 +694,7 @@ nios2_print_insn_arg (const char *argptr,
|
||||
switch (op->format)
|
||||
{
|
||||
case iw_I10_type:
|
||||
o = (((int32_t) ((GET_IW_I10_IMM10 (opcode) & 0x3ff) ^ 0x400)
|
||||
- 0x400)
|
||||
<< 1);
|
||||
o = (((GET_IW_I10_IMM10 (opcode) & 0x3ff) ^ 0x400) - 0x400) * 2;
|
||||
break;
|
||||
default:
|
||||
bad_opcode (op);
|
||||
@ -712,9 +708,7 @@ nios2_print_insn_arg (const char *argptr,
|
||||
switch (op->format)
|
||||
{
|
||||
case iw_T1I7_type:
|
||||
o = (((int32_t) ((GET_IW_T1I7_IMM7 (opcode) & 0x7f) ^ 0x40)
|
||||
- 0x40)
|
||||
<< 1);
|
||||
o = (((GET_IW_T1I7_IMM7 (opcode) & 0x7f) ^ 0x40) - 0x40) * 2;
|
||||
break;
|
||||
default:
|
||||
bad_opcode (op);
|
||||
|
Loading…
Reference in New Issue
Block a user