x86: pack CPU flags in opcode table
authorJan Beulich <jbeulich@suse.com>
Fri, 11 Aug 2023 08:04:49 +0000 (10:04 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 11 Aug 2023 08:04:49 +0000 (10:04 +0200)
commit734dfd1cc966aff736eaeda68bfa4807ee4b50c1
tree886eaf6a72d949950ce5aa63f17706f8297a2e19
parente416bd75c3fd471c1e0222a72b17f6c585b37e93
x86: pack CPU flags in opcode table

The table constantly growing in two dimensions (number of table entries
times number of ISA extension flags) doesn't scale very well. Use a more
compact representation: Only identifiers which need to combine with
other identifiers retain individual flag bits. All others are combined
into an enum, with a new helper added to transform the table entries
into the original i386_cpu_flags layout. This way the table in the final
binary shrinks by almost a third (the generated source code shrinks by
about half), and isn't likely to grow again in that dimension any time
soon.

While moving the 3DNow! fields, drop the stray inner 'a' from their
names.
gas/config/tc-i386.c
opcodes/i386-gen.c
opcodes/i386-init.h
opcodes/i386-opc.h
opcodes/i386-tbl.h