[00/10] x86: disassembler table entry folding plus some cleanup

Message ID de113d3f-86db-2196-8ac9-fa6dc7efa195@suse.com
Headers
Series x86: disassembler table entry folding plus some cleanup |

Message

Jan Beulich July 4, 2023, 3:17 p.m. UTC
  This continues the transformation of the tables we use to re-use
entries where possible and to shrink entry count / table size by
picking an appropriate decode order when multiple decode steps
involving table lookup are used for a given encoding.

The reduction of mod_table[] in particular suggests that going
forward we should strive to add entries there only if both of
the branches are actually populated. Single-branch cases
(register-only or memory-only forms) would instead be expressed
by (re)using suitable operand handlers.

Finally there's a little bit of tidying of things noticed while
doing the main part of the work.

01: fold certain legacy/VEX table entries
02: fold legacy/VEX {,V}MOV{H,L}* entries
03: {,V}MOVNT* don't need to go through mod_table[]
04: misc further memory-only insns don't need to go through mod_table[]
05: SIMD shift-by-immediate don't need to go through mod_table[]
06: slightly rework handling of some register-only insns
07: various operations on mask registers can avoid going through mod_table[]
08: misc further register-only insns don't need to go through mod_table[]
09: convert 0FXOP to just XOP in enumerator names
10: simplify table-referencing macros

Jan