x86: allow VEX et al encodings in 16-bit (protected) mode
authorJan Beulich <jbeulich@novell.com>
Thu, 27 Jun 2019 06:49:40 +0000 (08:49 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 27 Jun 2019 06:49:40 +0000 (08:49 +0200)
commitc1dc7af52143966da8065b527e7a7000cf9f7705
treece51bfa565271617a9381fe6ab37639feb8818fd
parent65bd27298d31c6733b68d0cd6b7a4fc26e0598be
x86: allow VEX et al encodings in 16-bit (protected) mode

These encodings aren't valid in real and VM86 modes, but they are very
well usable in 16-bit protected mode.

A few adjustments in the disassembler tables are needed where Ev or Gv
were wrongly used. Additionally an adjustment is needed to avoid
printing "addr32" when that's already recognizable by the use of %eiz.

Furthermore the Iq operand template was wrong for XOP:0Ah encoding
insns: They're having a uniform 32-bit immediate. Drop Iq and introduce
Id instead.

Clone a few existing test cases to exercise assembler and disassembler.
17 files changed:
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/gas/i386/avx-16bit.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx-16bit.s [new file with mode: 0644]
gas/testsuite/gas/i386/avx512f-16bit.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx512f-16bit.s [new file with mode: 0644]
gas/testsuite/gas/i386/bmi-16bit.d [new file with mode: 0644]
gas/testsuite/gas/i386/bmi-16bit.s [new file with mode: 0644]
gas/testsuite/gas/i386/bmi2-16bit.d [new file with mode: 0644]
gas/testsuite/gas/i386/bmi2-16bit.s [new file with mode: 0644]
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/inval-16.l
gas/testsuite/gas/i386/inval-16.s
gas/testsuite/gas/i386/lwp-16bit.d [new file with mode: 0644]
gas/testsuite/gas/i386/lwp-16bit.s [new file with mode: 0644]
opcodes/ChangeLog
opcodes/i386-dis.c