x86: Add SwapSources
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 2 Jul 2020 13:30:00 +0000 (06:30 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 2 Jul 2020 15:46:48 +0000 (08:46 -0700)
commitc2ecccb33c307faa21f4d2f47348e7346b032d94
treebbf59bb652aa85aa0f254538e6054db5117c51d0
parentf436f38e7dff19b0d80bf62a58edd98697242108
x86: Add SwapSources

We check register-only source operand to decide if two source operands of
VEX encoded instructions should be swapped.  But source operands in AMX
instructions with two source operands swapped are all register-only
operand.  Add SwapSources to indicate two source operands should be
swapped.

gas/

* config/tc-i386.c (build_modrm_byte): Check vexswapsources to
swap two source operands.

opcodes/

* i386-gen.c (opcode_modifiers): Add VexSwapSources.
* i386-opc.h (VexSwapSources): New.
(i386_opcode_modifier): Add vexswapsources.
* i386-opc.tbl: Add VexSwapSources to BMI2 and BMI instructions
with two source operands swapped.
* i386-tbl.h: Regenerated.
gas/ChangeLog
gas/config/tc-i386.c
opcodes/ChangeLog
opcodes/i386-gen.c
opcodes/i386-opc.h
opcodes/i386-opc.tbl
opcodes/i386-tbl.h