x86: flag bad S/G insn operand combinations
authorJan Beulich <jbeulich@suse.com>
Thu, 25 Mar 2021 07:20:19 +0000 (08:20 +0100)
committerJan Beulich <jbeulich@suse.com>
Thu, 25 Mar 2021 07:20:19 +0000 (08:20 +0100)
commit596a02ff558a88b7ad75a9904fe3d6b1615fdd1a
tree9792392f00d127938602595c4142cc47a309118d
parent5364285240737423a4d6368aba803a031d293b95
x86: flag bad S/G insn operand combinations

For VEX-encoded ones, all three involved vector registers have to be
distinct. For EVEX-encoded ones an actual mask register has to be in use
and zeroing-masking cannot be used (violation of either will #UD).
Additionally both involved vector registers have to be distinct for
EVEX-encoded gathers.
15 files changed:
gas/ChangeLog
gas/testsuite/gas/i386/avx512f-nondef.d
gas/testsuite/gas/i386/avx512f-nondef.s
gas/testsuite/gas/i386/vgather-check-none.d
gas/testsuite/gas/i386/vgather-check-warn.d
gas/testsuite/gas/i386/vgather-check.d
gas/testsuite/gas/i386/x86-64-vgather-check-error.l
gas/testsuite/gas/i386/x86-64-vgather-check-none.d
gas/testsuite/gas/i386/x86-64-vgather-check-warn.d
gas/testsuite/gas/i386/x86-64-vgather-check-warn.e
gas/testsuite/gas/i386/x86-64-vgather-check.d
gas/testsuite/gas/i386/x86-64-vgather-check.s
opcodes/ChangeLog
opcodes/i386-dis-evex.h
opcodes/i386-dis.c