diff options
author | Jan Beulich <jbeulich@suse.com> | 2021-03-10 08:19:11 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2021-03-10 08:19:11 +0100 |
commit | 85ba7507f695f914d0ad22b6d1c60bc3571f5345 (patch) | |
tree | 9de6b0b4de79c378ee0d1dafd1870532d806e9db /opcodes/i386-dis-evex.h | |
parent | 066f82b96a4902b9f4f76dfc8d24f8d73ceeef0f (diff) | |
download | fsf-binutils-gdb-85ba7507f695f914d0ad22b6d1c60bc3571f5345.zip fsf-binutils-gdb-85ba7507f695f914d0ad22b6d1c60bc3571f5345.tar.gz fsf-binutils-gdb-85ba7507f695f914d0ad22b6d1c60bc3571f5345.tar.bz2 |
x86: reuse further VEX entries for EVEX
When the VEX.L=1 decode matches that of both EVEX.L'L=1 and EVEX.L'L=2
(typically when all three are invalid) the (smaller) VEX table entry can
be reused by EVEX, instead of duplicating data. (Note that XM and XMM as
well as EXxmm_md and EXd are equivalent at least for the purposes here.)
Diffstat (limited to 'opcodes/i386-dis-evex.h')
-rw-r--r-- | opcodes/i386-dis-evex.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h index 27446c4..eb88e5f 100644 --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -125,7 +125,7 @@ static const struct dis386 evex_table[][256] = { { VEX_W_TABLE (EVEX_W_0F6B) }, { VEX_W_TABLE (EVEX_W_0F6C) }, { VEX_W_TABLE (EVEX_W_0F6D) }, - { EVEX_LEN_TABLE (EVEX_LEN_0F6E) }, + { VEX_LEN_TABLE (VEX_LEN_0F6E) }, { PREFIX_TABLE (PREFIX_EVEX_0F6F) }, /* 70 */ { PREFIX_TABLE (PREFIX_EVEX_0F70) }, @@ -222,8 +222,8 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { PREFIX_TABLE (PREFIX_EVEX_0FC2) }, { Bad_Opcode }, - { EVEX_LEN_TABLE (EVEX_LEN_0FC4) }, - { EVEX_LEN_TABLE (EVEX_LEN_0FC5) }, + { VEX_LEN_TABLE (VEX_LEN_0FC4) }, + { VEX_LEN_TABLE (VEX_LEN_0FC5) }, { "vshufpX", { XM, Vex, EXx, Ib }, PREFIX_OPCODE }, { Bad_Opcode }, /* C8 */ @@ -242,7 +242,7 @@ static const struct dis386 evex_table[][256] = { { VEX_W_TABLE (EVEX_W_0FD3) }, { VEX_W_TABLE (EVEX_W_0FD4) }, { "vpmullw", { XM, Vex, EXx }, PREFIX_DATA }, - { EVEX_LEN_TABLE (EVEX_LEN_0FD6) }, + { VEX_W_TABLE (EVEX_W_0FD6) }, { Bad_Opcode }, /* D8 */ { "vpsubusb", { XM, Vex, EXx }, PREFIX_DATA }, @@ -606,10 +606,10 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { EVEX_LEN_TABLE (EVEX_LEN_0F3A14) }, - { EVEX_LEN_TABLE (EVEX_LEN_0F3A15) }, - { EVEX_LEN_TABLE (EVEX_LEN_0F3A16) }, - { EVEX_LEN_TABLE (EVEX_LEN_0F3A17) }, + { VEX_LEN_TABLE (VEX_LEN_0F3A14) }, + { VEX_LEN_TABLE (VEX_LEN_0F3A15) }, + { VEX_LEN_TABLE (VEX_LEN_0F3A16) }, + { VEX_LEN_TABLE (VEX_LEN_0F3A17) }, /* 18 */ { EVEX_LEN_TABLE (EVEX_LEN_0F3A18) }, { EVEX_LEN_TABLE (EVEX_LEN_0F3A19) }, @@ -620,9 +620,9 @@ static const struct dis386 evex_table[][256] = { { "vpcmpu%DQ", { XMask, Vex, EXx, VPCMP }, PREFIX_DATA }, { "vpcmp%DQ", { XMask, Vex, EXx, VPCMP }, PREFIX_DATA }, /* 20 */ - { EVEX_LEN_TABLE (EVEX_LEN_0F3A20) }, + { VEX_LEN_TABLE (VEX_LEN_0F3A20) }, { VEX_W_TABLE (EVEX_W_0F3A21) }, - { EVEX_LEN_TABLE (EVEX_LEN_0F3A22) }, + { VEX_LEN_TABLE (VEX_LEN_0F3A22) }, { EVEX_LEN_TABLE (EVEX_LEN_0F3A23) }, { Bad_Opcode }, { "vpternlog%DQ", { XM, Vex, EXx, Ib }, PREFIX_DATA }, |