[PATCH 00/19] x86: further disassembler fixes and folding

Jan Beulich jbeulich@suse.com
Mon Jul 13 09:31:15 GMT 2020


While the diffstat for this series (see below) is imo quite nice,
this still is only a further step towards the goal of making the
code overall more manageable by reducing the number of table
entries/branches, enumerators, macros, helper functions, and case
labels/blocks, many of which are currently redundant with one
another. Bugs are again getting fixed and other improvements made
along the road, as things were recognized.

01: x86-64: fold ILP32 test expectations
02: x86: drop dead code from OP_IMREG()
03: x86-64: don't hide an empty but meaningless REX prefix
04: x86: avoid attaching suffix to register-only CRC32
05: x86: don't disassemble MOVBE with two suffixes
06: x86: fold VCMP_Fixup() into CMP_Fixup()
07: x86-64: fix {,V}PCMPESTR{I,M} disassembly in Intel mode
08: x86: extend %BW use to VP{COMPRESS,EXPAND}{B,W}
09: x86: merge/move logic determining the EVEX disp8 shift
10: x86: replace %LW by %DQ
11: x86: drop Vex128 and Vex256
12: x86: drop need_vex_reg
13: x86: drop further EVEX table entries that can be served by VEX ones
14: x86: simplify decode of opcodes valid with (embedded) 66 prefix only
15: x86: also use %BW / %DQ for kshift*
16: x86: simplify decode of opcodes valid only without any (embedded) prefix
17: x86: drop Rdq, Rd, and MaskR
18: x86: drop Rm and the 'L' macro
19: x86/Intel: debug registers are named DRn

 gas/testsuite/gas/i386/arch-10-bdver1.d            |   39 
 gas/testsuite/gas/i386/arch-10-bdver2.d            |   39 
 gas/testsuite/gas/i386/arch-10-bdver3.d            |   39 
 gas/testsuite/gas/i386/arch-10-bdver4.d            |   39 
 gas/testsuite/gas/i386/arch-10-btver1.d            |   39 
 gas/testsuite/gas/i386/arch-10-btver2.d            |   39 
 gas/testsuite/gas/i386/arch-10-lzcnt.d             |   39 
 gas/testsuite/gas/i386/arch-10-prefetchw.d         |   39 
 gas/testsuite/gas/i386/arch-10.d                   |    2 
 gas/testsuite/gas/i386/arch-2.d                    |    2 
 gas/testsuite/gas/i386/arch-3.d                    |   14 
 gas/testsuite/gas/i386/arch-5.d                    |    2 
 gas/testsuite/gas/i386/arch-6.d                    |    2 
 gas/testsuite/gas/i386/crc32-suffix.d              |   25 
 gas/testsuite/gas/i386/crc32.d                     |   18 
 gas/testsuite/gas/i386/i386.exp                    |    4 
 gas/testsuite/gas/i386/ilp32/x86-64-arch-1.d       |   14 
 gas/testsuite/gas/i386/ilp32/x86-64-arch-2.d       |   39 
 gas/testsuite/gas/i386/ilp32/x86-64-avx-intel.d    | 3600 --------------
 gas/testsuite/gas/i386/ilp32/x86-64-avx.d          | 3600 --------------
 gas/testsuite/gas/i386/ilp32/x86-64-crc32-intel.d  |   33 
 gas/testsuite/gas/i386/ilp32/x86-64-crc32.d        |   33 
 gas/testsuite/gas/i386/ilp32/x86-64-gotpcrel.d     |   25 
 gas/testsuite/gas/i386/ilp32/x86-64-ifunc.d        |   18 
 gas/testsuite/gas/i386/ilp32/x86-64-reg-intel.d    |   52 
 gas/testsuite/gas/i386/ilp32/x86-64-reg.d          |   52 
 gas/testsuite/gas/i386/ilp32/x86-64-rep-suffix.d   |   20 
 gas/testsuite/gas/i386/ilp32/x86-64-sse4_2-intel.d |   84 
 gas/testsuite/gas/i386/ilp32/x86-64-sse4_2.d       |   48 
 gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d  |   68 
 gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d |   68 
 gas/testsuite/gas/i386/ilp32/x86-64-stack.d        |   68 
 gas/testsuite/gas/i386/intel-intel.d               |    4 
 gas/testsuite/gas/i386/intel.d                     |    2 
 gas/testsuite/gas/i386/intel.s                     |    4 
 gas/testsuite/gas/i386/movbe-suffix.d              |   22 
 gas/testsuite/gas/i386/opcode-intel.d              |    4 
 gas/testsuite/gas/i386/prefix.d                    |    8 
 gas/testsuite/gas/i386/sse-noavx.d                 |    2 
 gas/testsuite/gas/i386/sse4_2.d                    |   24 
 gas/testsuite/gas/i386/x86-64-arch-2-bdver1.d      |   39 
 gas/testsuite/gas/i386/x86-64-arch-2-bdver2.d      |   39 
 gas/testsuite/gas/i386/x86-64-arch-2-bdver3.d      |   39 
 gas/testsuite/gas/i386/x86-64-arch-2-bdver4.d      |   39 
 gas/testsuite/gas/i386/x86-64-arch-2-btver1.d      |   39 
 gas/testsuite/gas/i386/x86-64-arch-2-btver2.d      |   39 
 gas/testsuite/gas/i386/x86-64-arch-2-lzcnt.d       |   39 
 gas/testsuite/gas/i386/x86-64-arch-2-prefetchw.d   |   39 
 gas/testsuite/gas/i386/x86-64-arch-2.d             |    2 
 gas/testsuite/gas/i386/x86-64-avx-intel.d          |    4 
 gas/testsuite/gas/i386/x86-64-crc32-suffix.d       |   35 
 gas/testsuite/gas/i386/x86-64-crc32.d              |   30 
 gas/testsuite/gas/i386/x86-64-movbe-suffix.d       |   28 
 gas/testsuite/gas/i386/x86-64-pseudos.d            |    7 
 gas/testsuite/gas/i386/x86-64-pseudos.s            |    5 
 gas/testsuite/gas/i386/x86-64-reg-intel.d          |    8 
 gas/testsuite/gas/i386/x86-64-reg.d                |    8 
 gas/testsuite/gas/i386/x86-64-sse-noavx.d          |    2 
 gas/testsuite/gas/i386/x86-64-sse4_2-intel.d       |    4 
 gas/testsuite/gas/i386/x86-64-sse4_2.d             |   20 
 opcodes/i386-dis-evex-len.h                        |  278 -
 opcodes/i386-dis-evex-mod.h                        |   83 
 opcodes/i386-dis-evex-prefix.h                     | 1042 ----
 opcodes/i386-dis-evex-reg.h                        |   24 
 opcodes/i386-dis-evex-w.h                          |  308 -
 opcodes/i386-dis-evex.h                            |  438 -
 opcodes/i386-dis.c                                 | 5378 ++++-----------------
 67 files changed, 2003 insertions(+), 14286 deletions(-)

Jan


More information about the Binutils mailing list