mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-15 11:56:11 +08:00
ubsan: nds32: left shift cannot be represented in type 'int'
Yet more. * nds32-dis.c (nds32_mask_opcode): Avoid signed overflow. (print_insn_nds32): Use uint64_t for "given" and "given1".
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2019-12-17 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* nds32-dis.c (nds32_mask_opcode): Avoid signed overflow.
|
||||||
|
(print_insn_nds32): Use uint64_t for "given" and "given1".
|
||||||
|
|
||||||
2019-12-17 Alan Modra <amodra@gmail.com>
|
2019-12-17 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* tic80-dis.c: Delete file.
|
* tic80-dis.c: Delete file.
|
||||||
|
@ -877,7 +877,7 @@ nds32_mask_opcode (uint32_t insn)
|
|||||||
}
|
}
|
||||||
return MASK_OP (insn, 0x1f << 20);
|
return MASK_OP (insn, 0x1f << 20);
|
||||||
default:
|
default:
|
||||||
return (1 << 31);
|
return 1u << 31;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -976,8 +976,8 @@ print_insn_nds32 (bfd_vma pc, disassemble_info *info)
|
|||||||
int status;
|
int status;
|
||||||
bfd_byte buf[4];
|
bfd_byte buf[4];
|
||||||
bfd_byte buf_data[16];
|
bfd_byte buf_data[16];
|
||||||
long long given;
|
uint64_t given;
|
||||||
long long given1;
|
uint64_t given1;
|
||||||
uint32_t insn;
|
uint32_t insn;
|
||||||
int n;
|
int n;
|
||||||
int last_symbol_index = -1;
|
int last_symbol_index = -1;
|
||||||
@ -1129,24 +1129,25 @@ print_insn_nds32 (bfd_vma pc, disassemble_info *info)
|
|||||||
info->bytes_per_line = 4;
|
info->bytes_per_line = 4;
|
||||||
|
|
||||||
if (size == 16)
|
if (size == 16)
|
||||||
info->fprintf_func (info->stream, ".qword\t0x%016llx%016llx",
|
info->fprintf_func (info->stream, ".qword\t0x%016" PRIx64 "%016" PRIx64,
|
||||||
given, given1);
|
given, given1);
|
||||||
else if (size == 8)
|
else if (size == 8)
|
||||||
info->fprintf_func (info->stream, ".dword\t0x%016llx", given);
|
info->fprintf_func (info->stream, ".dword\t0x%016" PRIx64, given);
|
||||||
else if (size == 4)
|
else if (size == 4)
|
||||||
info->fprintf_func (info->stream, ".word\t0x%08llx", given);
|
info->fprintf_func (info->stream, ".word\t0x%08" PRIx64, given);
|
||||||
else if (size == 2)
|
else if (size == 2)
|
||||||
{
|
{
|
||||||
/* short */
|
/* short */
|
||||||
if (mapping_type == MAP_DATA0)
|
if (mapping_type == MAP_DATA0)
|
||||||
info->fprintf_func (info->stream, ".byte\t0x%02llx", given & 0xFF);
|
info->fprintf_func (info->stream, ".byte\t0x%02" PRIx64,
|
||||||
|
given & 0xFF);
|
||||||
else
|
else
|
||||||
info->fprintf_func (info->stream, ".short\t0x%04llx", given);
|
info->fprintf_func (info->stream, ".short\t0x%04" PRIx64, given);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* byte */
|
/* byte */
|
||||||
info->fprintf_func (info->stream, ".byte\t0x%02llx", given);
|
info->fprintf_func (info->stream, ".byte\t0x%02" PRIx64, given);
|
||||||
}
|
}
|
||||||
|
|
||||||
return size;
|
return size;
|
||||||
|
Reference in New Issue
Block a user