From edf772580db29fdddc54deef72d3ddda00c21286 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 20 Jan 2023 10:17:53 +0100 Subject: 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. --- opcodes/i386-opc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'opcodes') 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. */ -- cgit v1.1