diff options
author | Jan Beulich <jbeulich@suse.com> | 2023-01-20 10:17:53 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2023-01-20 10:17:53 +0100 |
commit | edf772580db29fdddc54deef72d3ddda00c21286 (patch) | |
tree | 7f5d14598c7db7e515fab6d08ffa3d7ebe385831 | |
parent | 6d86a54595d80b93baaaafe0b4db3dea6a5d451e (diff) | |
download | gdb-edf772580db29fdddc54deef72d3ddda00c21286.zip gdb-edf772580db29fdddc54deef72d3ddda00c21286.tar.gz gdb-edf772580db29fdddc54deef72d3ddda00c21286.tar.bz2 |
x86: embed register names in reg_entry
Register names are (including their nul terminators) on average almost 4
bytes long. Otoh no register name is longer than 7 bytes. Hence even for
32-bit builds using a pointer is only slightly more space efficient than
embedding the strings. A level of indirection can be also avoided by
embedding the names as an array of 8 characters directly in the struct,
and the number of base relocations in PIE builds of gas goes down as
well.
-rw-r--r-- | opcodes/i386-opc.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h index ebedb3e..6739d49 100644 --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -987,7 +987,7 @@ insn_template; /* these are for register name --> number & type hash lookup */ typedef struct { - const char *reg_name; + char reg_name[8]; i386_operand_type reg_type; unsigned char reg_flags; #define RegRex 0x1 /* Extended register. */ |