[00/13] x86: further insn template compaction

Message ID 773baa32-a12c-5da3-32a4-3db5a424d102@suse.com
Headers show
Series
  • x86: further insn template compaction
Related show

Message

Jan Beulich Oct. 30, 2019, 8:20 a.m.
There continues to be quite a bit of unnecessary waste of space,
which is especially noticeable with operand types, as there are
(currently) 5 instances of it per insn template. By the end of
this series, less than 32 bits will remain in use there,
shrinking the overall table size noticeably while still providing
some headroom until it would have to grow again with future
additions.

01: x86: re-arrange process_operands()
02: x86: drop ShortForm attribute
03: x86: introduce operand type "class"
04: x86: convert SReg from bitfield to enumerator
05: x86: convert Control/Debug/Test from bitfield to enumerator
06: x86: convert RegSIMD and RegMMX from bitfield to enumerator
07: x86: convert RegMask and RegBND from bitfield to enumerator
08: x86: introduce operand type "instance"
09: x86: eliminate ImmExt abuse
10: x86: fold EsSeg into IsString
11: x86: make AnySize an insn attribute
12: x86: make JumpAbsolute an insn attribute
13: x86: fold individual Jump* attributes into a single Jump one

Note that some of this depends, at least mechanically due to the
generated files, but perhaps in a few cases also contextually or
even logically on some of the not yet applied parts of
https://sourceware.org/ml/binutils/2019-10/msg00197.html.

Jan