diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2020-07-02 06:30:00 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2020-07-02 08:46:48 -0700 |
commit | c2ecccb33c307faa21f4d2f47348e7346b032d94 (patch) | |
tree | bbf59bb652aa85aa0f254538e6054db5117c51d0 /opcodes/i386-opc.h | |
parent | f436f38e7dff19b0d80bf62a58edd98697242108 (diff) | |
download | gdb-c2ecccb33c307faa21f4d2f47348e7346b032d94.zip gdb-c2ecccb33c307faa21f4d2f47348e7346b032d94.tar.gz gdb-c2ecccb33c307faa21f4d2f47348e7346b032d94.tar.bz2 |
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.
Diffstat (limited to 'opcodes/i386-opc.h')
-rw-r--r-- | opcodes/i386-opc.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h index 1744386..c65febb 100644 --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -635,6 +635,9 @@ enum */ ImplicitQuadGroup, + /* Two source operands are swapped. */ + SwapSources, + /* Support encoding optimization. */ Optimize, @@ -710,6 +713,7 @@ typedef struct i386_opcode_modifier unsigned int disp8memshift:3; unsigned int nodefmask:1; unsigned int implicitquadgroup:1; + unsigned int swapsources:1; unsigned int optimize:1; unsigned int attmnemonic:1; unsigned int attsyntax:1; |