[PATCH] opcodes: i386: fix dw2_regnum data type in reg_entry
Jan Beulich
jbeulich@suse.com
Tue Jan 9 08:24:44 GMT 2024
On 09.01.2024 02:12, Indu Bhagat wrote:
> The DWARF register numbers for the APX EGRPs start with 130. The data
> type holding the same currently is signed char.
>
> ChangeLog:
> * opcodes/i386-opc.h (reg_entry): Bump to signed short.
So yes, something needs doing. But there are further questions to be
raised to the original authors: Was the code tested at all in this
regard? Why do numbers start at 130, when according to i386-reg.tbl
128 and 129 are unused (and would hence be more natural to [also]
use)?
> --- a/opcodes/i386-opc.h
> +++ b/opcodes/i386-opc.h
> @@ -1047,7 +1047,7 @@ typedef struct
> #define RegIZ (RegIP - 1)
> /* FLAT is a fake segment register (Intel mode). */
> #define RegFlat ((unsigned char) ~0)
> - signed char dw2_regnum[2];
> + signed short dw2_regnum[2];
> #define Dw2Inval (-1)
> }
> reg_entry;
It's a little sad that non-64-bit field also has its size increased.
Right now either way the structure size as a whole is the same, but
down the road this may end up a little wasteful.
Jan
More information about the Binutils
mailing list