ubsan: left shift of cannot be represented in type 'int'
* dis-asm.h (INSN_HAS_RELOC, DISASSEMBLE_DATA), (USER_SPECIFIED_MACHINE_TYPE, WIDE_OUTPUT): Make unsigned. * opcode/tic80.h (TIC80_OPERAND_*): Likewise.
This commit is contained in:
parent
567607c11f
commit
76bba5ee85
@ -1,3 +1,9 @@
|
|||||||
|
2019-12-11 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* dis-asm.h (INSN_HAS_RELOC, DISASSEMBLE_DATA),
|
||||||
|
(USER_SPECIFIED_MACHINE_TYPE, WIDE_OUTPUT): Make unsigned.
|
||||||
|
* opcode/tic80.h (TIC80_OPERAND_*): Likewise.
|
||||||
|
|
||||||
2019-12-10 Alan Modra <amodra@gmail.com>
|
2019-12-10 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
PR 24960
|
PR 24960
|
||||||
|
@ -105,14 +105,14 @@ typedef struct disassemble_info
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
/* Set if the disassembler has determined that there are one or more
|
/* Set if the disassembler has determined that there are one or more
|
||||||
relocations associated with the instruction being disassembled. */
|
relocations associated with the instruction being disassembled. */
|
||||||
#define INSN_HAS_RELOC (1 << 31)
|
#define INSN_HAS_RELOC (1u << 31)
|
||||||
/* Set if the user has requested the disassembly of data as well as code. */
|
/* Set if the user has requested the disassembly of data as well as code. */
|
||||||
#define DISASSEMBLE_DATA (1 << 30)
|
#define DISASSEMBLE_DATA (1u << 30)
|
||||||
/* Set if the user has specifically set the machine type encoded in the
|
/* Set if the user has specifically set the machine type encoded in the
|
||||||
mach field of this structure. */
|
mach field of this structure. */
|
||||||
#define USER_SPECIFIED_MACHINE_TYPE (1 << 29)
|
#define USER_SPECIFIED_MACHINE_TYPE (1u << 29)
|
||||||
/* Set if the user has requested wide output. */
|
/* Set if the user has requested wide output. */
|
||||||
#define WIDE_OUTPUT (1 << 28)
|
#define WIDE_OUTPUT (1u << 28)
|
||||||
|
|
||||||
/* Use internally by the target specific disassembly code. */
|
/* Use internally by the target specific disassembly code. */
|
||||||
void *private_data;
|
void *private_data;
|
||||||
|
@ -138,68 +138,68 @@ extern const struct tic80_operand tic80_operands[];
|
|||||||
/* This operand must be an even register number. Floating point numbers
|
/* This operand must be an even register number. Floating point numbers
|
||||||
for example are stored in even/odd register pairs. */
|
for example are stored in even/odd register pairs. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_EVEN (1 << 0)
|
#define TIC80_OPERAND_EVEN (1u << 0)
|
||||||
|
|
||||||
/* This operand must be an odd register number and must be one greater than
|
/* This operand must be an odd register number and must be one greater than
|
||||||
the register number of the previous operand. I.E. the second register in
|
the register number of the previous operand. I.E. the second register in
|
||||||
an even/odd register pair. */
|
an even/odd register pair. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_ODD (1 << 1)
|
#define TIC80_OPERAND_ODD (1u << 1)
|
||||||
|
|
||||||
/* This operand takes signed values. */
|
/* This operand takes signed values. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_SIGNED (1 << 2)
|
#define TIC80_OPERAND_SIGNED (1u << 2)
|
||||||
|
|
||||||
/* This operand may be either a predefined constant name or a numeric value.
|
/* This operand may be either a predefined constant name or a numeric value.
|
||||||
An example would be a condition code like "eq0.b" which has the numeric
|
An example would be a condition code like "eq0.b" which has the numeric
|
||||||
value 0x2. */
|
value 0x2. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_NUM (1 << 3)
|
#define TIC80_OPERAND_NUM (1u << 3)
|
||||||
|
|
||||||
/* This operand should be wrapped in parentheses rather than separated
|
/* This operand should be wrapped in parentheses rather than separated
|
||||||
from the previous one by a comma. This is used for various
|
from the previous one by a comma. This is used for various
|
||||||
instructions, like the load and store instructions, which want
|
instructions, like the load and store instructions, which want
|
||||||
their operands to look like "displacement(reg)" */
|
their operands to look like "displacement(reg)" */
|
||||||
|
|
||||||
#define TIC80_OPERAND_PARENS (1 << 4)
|
#define TIC80_OPERAND_PARENS (1u << 4)
|
||||||
|
|
||||||
/* This operand is a PC relative branch offset. The disassembler prints
|
/* This operand is a PC relative branch offset. The disassembler prints
|
||||||
these symbolically if possible. Note that the offsets are taken as word
|
these symbolically if possible. Note that the offsets are taken as word
|
||||||
offsets. */
|
offsets. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_PCREL (1 << 5)
|
#define TIC80_OPERAND_PCREL (1u << 5)
|
||||||
|
|
||||||
/* This flag is a hint to the disassembler for using hex as the prefered
|
/* This flag is a hint to the disassembler for using hex as the prefered
|
||||||
printing format, even for small positive or negative immediate values.
|
printing format, even for small positive or negative immediate values.
|
||||||
Normally values in the range -999 to 999 are printed as signed decimal
|
Normally values in the range -999 to 999 are printed as signed decimal
|
||||||
values and other values are printed in hex. */
|
values and other values are printed in hex. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_BITFIELD (1 << 6)
|
#define TIC80_OPERAND_BITFIELD (1u << 6)
|
||||||
|
|
||||||
/* This operand may have a ":m" modifier specified by bit 17 in a short
|
/* This operand may have a ":m" modifier specified by bit 17 in a short
|
||||||
immediate form instruction. */
|
immediate form instruction. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_M_SI (1 << 7)
|
#define TIC80_OPERAND_M_SI (1u << 7)
|
||||||
|
|
||||||
/* This operand may have a ":m" modifier specified by bit 15 in a long
|
/* This operand may have a ":m" modifier specified by bit 15 in a long
|
||||||
immediate or register form instruction. */
|
immediate or register form instruction. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_M_LI (1 << 8)
|
#define TIC80_OPERAND_M_LI (1u << 8)
|
||||||
|
|
||||||
/* This operand may have a ":s" modifier specified in bit 11 in a long
|
/* This operand may have a ":s" modifier specified in bit 11 in a long
|
||||||
immediate or register form instruction. */
|
immediate or register form instruction. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_SCALED (1 << 9)
|
#define TIC80_OPERAND_SCALED (1u << 9)
|
||||||
|
|
||||||
/* This operand is a floating point value */
|
/* This operand is a floating point value */
|
||||||
|
|
||||||
#define TIC80_OPERAND_FLOAT (1 << 10)
|
#define TIC80_OPERAND_FLOAT (1u << 10)
|
||||||
|
|
||||||
/* This operand is an byte offset from a base relocation. The lower
|
/* This operand is an byte offset from a base relocation. The lower
|
||||||
two bits of the final relocated address are ignored when the value is
|
two bits of the final relocated address are ignored when the value is
|
||||||
written to the program counter. */
|
written to the program counter. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_BASEREL (1 << 11)
|
#define TIC80_OPERAND_BASEREL (1u << 11)
|
||||||
|
|
||||||
/* This operand is an "endmask" field for a shift instruction.
|
/* This operand is an "endmask" field for a shift instruction.
|
||||||
It is treated special in that it can have values of 0-32,
|
It is treated special in that it can have values of 0-32,
|
||||||
@ -208,29 +208,29 @@ extern const struct tic80_operand tic80_operands[];
|
|||||||
has no way of knowing from the instruction which value was
|
has no way of knowing from the instruction which value was
|
||||||
given at assembly time, so it just uses '0'. */
|
given at assembly time, so it just uses '0'. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_ENDMASK (1 << 12)
|
#define TIC80_OPERAND_ENDMASK (1u << 12)
|
||||||
|
|
||||||
/* This operand is one of the 32 general purpose registers.
|
/* This operand is one of the 32 general purpose registers.
|
||||||
The disassembler prints these with a leading 'r'. */
|
The disassembler prints these with a leading 'r'. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_GPR (1 << 27)
|
#define TIC80_OPERAND_GPR (1u << 27)
|
||||||
|
|
||||||
/* This operand is a floating point accumulator register.
|
/* This operand is a floating point accumulator register.
|
||||||
The disassembler prints these with a leading 'a'. */
|
The disassembler prints these with a leading 'a'. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_FPA ( 1 << 28)
|
#define TIC80_OPERAND_FPA (1u << 28)
|
||||||
|
|
||||||
/* This operand is a control register number, either numeric or
|
/* This operand is a control register number, either numeric or
|
||||||
symbolic (like "EIF", "EPC", etc).
|
symbolic (like "EIF", "EPC", etc).
|
||||||
The disassembler prints these symbolically. */
|
The disassembler prints these symbolically. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_CR (1 << 29)
|
#define TIC80_OPERAND_CR (1u << 29)
|
||||||
|
|
||||||
/* This operand is a condition code, either numeric or
|
/* This operand is a condition code, either numeric or
|
||||||
symbolic (like "eq0.b", "ne0.w", etc).
|
symbolic (like "eq0.b", "ne0.w", etc).
|
||||||
The disassembler prints these symbolically. */
|
The disassembler prints these symbolically. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_CC (1 << 30)
|
#define TIC80_OPERAND_CC (1u << 30)
|
||||||
|
|
||||||
/* This operand is a bit number, either numeric or
|
/* This operand is a bit number, either numeric or
|
||||||
symbolic (like "eq.b", "or.f", etc).
|
symbolic (like "eq.b", "or.f", etc).
|
||||||
@ -238,7 +238,7 @@ extern const struct tic80_operand tic80_operands[];
|
|||||||
Note that they appear in the instruction in 1's complement relative
|
Note that they appear in the instruction in 1's complement relative
|
||||||
to the values given in the manual. */
|
to the values given in the manual. */
|
||||||
|
|
||||||
#define TIC80_OPERAND_BITNUM (1 << 31)
|
#define TIC80_OPERAND_BITNUM (1u << 31)
|
||||||
|
|
||||||
/* This mask is used to strip operand bits from an int that contains
|
/* This mask is used to strip operand bits from an int that contains
|
||||||
both operand bits and a numeric value in the lsbs. */
|
both operand bits and a numeric value in the lsbs. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user