diff options
author | Jan Beulich <jbeulich@suse.com> | 2023-01-20 10:15:48 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2023-01-20 10:15:48 +0100 |
commit | 5c1392029158fa5b2946953394e566c83a0602e1 (patch) | |
tree | 5f79804018ce30301d631fb85a437ff91d26e930 /opcodes/Makefile.in | |
parent | 76d3f746c538af9204bbf5d7f90188a65048c0da (diff) | |
download | binutils-5c1392029158fa5b2946953394e566c83a0602e1.zip binutils-5c1392029158fa5b2946953394e566c83a0602e1.tar.gz binutils-5c1392029158fa5b2946953394e566c83a0602e1.tar.bz2 |
x86: move insn mnemonics to a separate table
Using full pointers to reference the insn mnemonic strings is not very
efficient. With overall string size presently just slightly over 20k,
even a 16-bit value would suffice. Use "unsigned int" for now, as
there's no good use we could presently make of the otherwise saved 16
bits.
For 64-bit builds this reduces table size by 6.25% (prior to the recent
ISA extension additions it would have been 12.5%), with a similar effect
on cache occupation of table entries accessed. For PIE builds of gas
this also reduces the number of base relocations quite a bit (obviously
independent of bitness).
Diffstat (limited to 'opcodes/Makefile.in')
-rw-r--r-- | opcodes/Makefile.in | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in index c1eca5a..059ac19 100644 --- a/opcodes/Makefile.in +++ b/opcodes/Makefile.in @@ -758,7 +758,8 @@ MOSTLYCLEANFILES = aarch64-gen$(EXEEXT_FOR_BUILD) i386-gen$(EXEEXT_FOR_BUILD) \ z8kgen$(EXEEXT_FOR_BUILD) opc2c$(EXEEXT_FOR_BUILD) MAINTAINERCLEANFILES = $(srcdir)/aarch64-asm-2.c $(srcdir)/aarch64-dis-2.c \ - $(srcdir)/aarch64-opc-2.c $(srcdir)/i386-tbl.h $(srcdir)/i386-init.h \ + $(srcdir)/aarch64-opc-2.c \ + $(srcdir)/i386-tbl.h $(srcdir)/i386-init.h $(srcdir)/i386-mnem.h \ $(srcdir)/ia64-asmtab.c $(srcdir)/z8k-opc.h \ $(srcdir)/msp430-decode.c \ $(srcdir)/rl78-decode.c \ @@ -1526,16 +1527,17 @@ i386-gen.o: i386-gen.c i386-opc.h $(srcdir)/../include/opcode/i386.h \ config.h sysdep.h $(COMPILE_FOR_BUILD) -c $(srcdir)/i386-gen.c -# i386-gen will generate both headers in one go. Use a pattern rule to properly +# i386-gen will generate all headers in one go. Use a pattern rule to properly # express this, with the inner dash ('-') arbitrarily chosen to be the stem. -$(srcdir)/i386%tbl.h $(srcdir)/i386%init.h: @MAINT@ i386-gen$(EXEEXT_FOR_BUILD) i386-opc.tbl i386-reg.tbl i386-opc.h +$(srcdir)/i386%tbl.h $(srcdir)/i386%init.h $(srcdir)/i386%mnem.h: \ + @MAINT@ i386-gen$(EXEEXT_FOR_BUILD) i386-opc.tbl i386-reg.tbl i386-opc.h $(AM_V_GEN)$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) - \ < $(srcdir)/i386-opc.tbl \ | ./i386-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir) -# While not really dependencies, specify i386-{init,tbl}.h here as well to -# make sure they are re-generated as necessary. -i386-dis.lo: $(srcdir)/i386-tbl.h $(srcdir)/i386-init.h +# While not really dependencies, specify other generated i386-*.h here as well +# to make sure they are re-generated as necessary. +i386-dis.lo: $(srcdir)/i386-tbl.h $(srcdir)/i386-init.h $(srcdir)/i386-mnem.h ia64-gen$(EXEEXT_FOR_BUILD): ia64-gen.o $(BUILD_LIB_DEPS) $(AM_V_CCLD)$(LINK_FOR_BUILD) ia64-gen.o $(BUILD_LIBS) |