x86: fix AMD Zen3 insns
authorJan Beulich <jbeulich@suse.com>
Thu, 25 Mar 2021 07:18:41 +0000 (08:18 +0100)
committerJan Beulich <jbeulich@suse.com>
Thu, 25 Mar 2021 07:18:41 +0000 (08:18 +0100)
commitc0e54661f755b1eb1cbf745bc4eb4a068cd5ada2
tree15a8fd41581bb0ac66ff93e9b22f947a022ebf0d
parent829f3fe1f0230798c776b9c7039fa7be778a7b43
x86: fix AMD Zen3 insns

For INVLPGB the operand count was wrong (besides %edx there's also %ecx
which is an input to the insn). In this case I see little sense in
retaining the bogus 2-operand template. Plus swapping of the operands
wasn't properly suppressed for Intel syntax.

For PVALIDATE, RMPADJUST, and RMPUPDATE bogus single operand templates
were specified. These get retained, as the address operand is the only
one really needed to expressed non-default address size, but only for
compatibility reasons. Proper multi-operand insn get introduced and the
testcases get adjusted / extended accordingly.

While at it also drop the redundant definition of __amd64__ - we already
have x86_64 defined (or not) to distinguish 64-bit and non-64-bit cases.
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/gas/i386/invlpgb.d
gas/testsuite/gas/i386/invlpgb.s
gas/testsuite/gas/i386/invlpgb64.d
gas/testsuite/gas/i386/snp.d
gas/testsuite/gas/i386/snp.s
gas/testsuite/gas/i386/snp64.d
opcodes/ChangeLog
opcodes/i386-opc.tbl
opcodes/i386-tbl.h