x86: make D attribute usable for XOP and FMA4 insns
authorJan Beulich <jbeulich@suse.com>
Wed, 6 Jul 2022 13:40:04 +0000 (15:40 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 6 Jul 2022 13:40:04 +0000 (15:40 +0200)
commit8bd915b770e12eff67f6218f2d727069d04d5752
tree33f15463f72a7894f528757b209b85aab3ffec5a
parent3d0738af2a6dac3c729126f2ceb3af6529da7348
x86: make D attribute usable for XOP and FMA4 insns

This once again allows to reduce redundancy in (and size of) the opcode
table.

Don't go as far as also making D work on the two 5-operand XOP insns:
This would significantly complicate the code, as there the first
(immediate) operand would need special treatment in several places.

Note that the .s suffix isn't being enabled to have any effect, for
being deprecated. Whereas neither {load} nor {store} pseudo prefixes
make sense here, as the respective operands are inputs (loads) only
anyway, regardless of order. Hence there is (as before) no way for the
programmer to request the alternative encoding to be used for register-
only insns.

Note further that it is always the first original template which is
retained (and altered), to make sure the same encoding as before is
used for register-only insns. This has the slightly odd (but pre-
existing) effect of XOP register-only insns having XOP.W clear, but FMA4
ones having VEX.W set.
gas/config/tc-i386.c
opcodes/i386-opc.h
opcodes/i386-opc.tbl
opcodes/i386-tbl.h