x86: don't ignore mandatory pseudo prefixes
authorJan Beulich <jbeulich@suse.com>
Tue, 9 Jun 2020 06:46:22 +0000 (08:46 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 9 Jun 2020 06:46:22 +0000 (08:46 +0200)
commitda4977e00b73835180ccbce8a2046705fd8ade62
treeedb1fa324d09080d8f375d40dd3db17ba7b3a02f
parentefb2a7b412c2c78eaf6d3b63f153a749fcde292c
x86: don't ignore mandatory pseudo prefixes

{vex}, {vex3}, and {evex} are mandatory prefixes, and hence should not
be randomly ignored. Fix this for insns without operands as well as for
insns referencing the high 16 [XYZ]MM registers. To achieve the former,
re-purpose VEX_check_operands(), renaming it to VEX_check_encoding() and
moving its only operand check to check_VecOperands().

This involves fixing a testcase relying on {vex2} to get ignored.
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/pseudos-bad.l [new file with mode: 0644]
gas/testsuite/gas/i386/pseudos-bad.s [new file with mode: 0644]
gas/testsuite/gas/i386/xmmhi64.s