diff options
author | Jan Beulich <jbeulich@suse.com> | 2020-07-06 13:42:33 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2020-07-06 13:42:33 +0200 |
commit | fedfb81e60564682bc5c5d5592fdea39ca520c6e (patch) | |
tree | 5bafab5f3764344034beefa7041c85bc79a78528 /opcodes/i386-dis-evex.h | |
parent | 3a57774c7b3840355b5b21818515fa2b6df3e5e9 (diff) | |
download | gdb-fedfb81e60564682bc5c5d5592fdea39ca520c6e.zip gdb-fedfb81e60564682bc5c5d5592fdea39ca520c6e.tar.gz gdb-fedfb81e60564682bc5c5d5592fdea39ca520c6e.tar.bz2 |
x86: drop EVEX table entries that can be made served by VEX ones
By doing the EVEX.W decode first, in various cases VEX table entries can
be re-used.
Diffstat (limited to 'opcodes/i386-dis-evex.h')
-rw-r--r-- | opcodes/i386-dis-evex.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h index 667d39d..1f6635d 100644 --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -112,7 +112,7 @@ static const struct dis386 evex_table[][256] = { /* 60 */ { PREFIX_TABLE (PREFIX_VEX_0F60) }, { PREFIX_TABLE (PREFIX_VEX_0F61) }, - { PREFIX_TABLE (PREFIX_EVEX_0F62) }, + { VEX_W_TABLE (EVEX_W_0F62) }, { PREFIX_TABLE (PREFIX_VEX_0F63) }, { PREFIX_TABLE (PREFIX_EVEX_0F64) }, { PREFIX_TABLE (PREFIX_EVEX_0F65) }, @@ -121,10 +121,10 @@ static const struct dis386 evex_table[][256] = { /* 68 */ { PREFIX_TABLE (PREFIX_VEX_0F68) }, { PREFIX_TABLE (PREFIX_VEX_0F69) }, - { PREFIX_TABLE (PREFIX_EVEX_0F6A) }, - { PREFIX_TABLE (PREFIX_EVEX_0F6B) }, - { PREFIX_TABLE (PREFIX_EVEX_0F6C) }, - { PREFIX_TABLE (PREFIX_EVEX_0F6D) }, + { VEX_W_TABLE (EVEX_W_0F6A) }, + { VEX_W_TABLE (EVEX_W_0F6B) }, + { VEX_W_TABLE (EVEX_W_0F6C) }, + { VEX_W_TABLE (EVEX_W_0F6D) }, { PREFIX_TABLE (PREFIX_EVEX_0F6E) }, { PREFIX_TABLE (PREFIX_EVEX_0F6F) }, /* 70 */ @@ -238,9 +238,9 @@ static const struct dis386 evex_table[][256] = { /* D0 */ { Bad_Opcode }, { PREFIX_TABLE (PREFIX_VEX_0FD1) }, - { PREFIX_TABLE (PREFIX_EVEX_0FD2) }, - { PREFIX_TABLE (PREFIX_EVEX_0FD3) }, - { PREFIX_TABLE (PREFIX_EVEX_0FD4) }, + { VEX_W_TABLE (EVEX_W_0FD2) }, + { VEX_W_TABLE (EVEX_W_0FD3) }, + { VEX_W_TABLE (EVEX_W_0FD4) }, { PREFIX_TABLE (PREFIX_VEX_0FD5) }, { PREFIX_TABLE (PREFIX_EVEX_0FD6) }, { Bad_Opcode }, @@ -274,20 +274,20 @@ static const struct dis386 evex_table[][256] = { /* F0 */ { Bad_Opcode }, { PREFIX_TABLE (PREFIX_VEX_0FF1) }, - { PREFIX_TABLE (PREFIX_EVEX_0FF2) }, - { PREFIX_TABLE (PREFIX_EVEX_0FF3) }, - { PREFIX_TABLE (PREFIX_EVEX_0FF4) }, + { VEX_W_TABLE (EVEX_W_0FF2) }, + { VEX_W_TABLE (EVEX_W_0FF3) }, + { VEX_W_TABLE (EVEX_W_0FF4) }, { PREFIX_TABLE (PREFIX_VEX_0FF5) }, { PREFIX_TABLE (PREFIX_VEX_0FF6) }, { Bad_Opcode }, /* F8 */ { PREFIX_TABLE (PREFIX_VEX_0FF8) }, { PREFIX_TABLE (PREFIX_VEX_0FF9) }, - { PREFIX_TABLE (PREFIX_EVEX_0FFA) }, - { PREFIX_TABLE (PREFIX_EVEX_0FFB) }, + { VEX_W_TABLE (EVEX_W_0FFA) }, + { VEX_W_TABLE (EVEX_W_0FFB) }, { PREFIX_TABLE (PREFIX_VEX_0FFC) }, { PREFIX_TABLE (PREFIX_VEX_0FFD) }, - { PREFIX_TABLE (PREFIX_EVEX_0FFE) }, + { VEX_W_TABLE (EVEX_W_0FFE) }, { Bad_Opcode }, }, /* EVEX_0F38 */ @@ -341,7 +341,7 @@ static const struct dis386 evex_table[][256] = { { PREFIX_TABLE (PREFIX_EVEX_0F3828) }, { PREFIX_TABLE (PREFIX_EVEX_0F3829) }, { PREFIX_TABLE (PREFIX_EVEX_0F382A) }, - { PREFIX_TABLE (PREFIX_EVEX_0F382B) }, + { VEX_W_TABLE (EVEX_W_0F382B) }, { PREFIX_TABLE (PREFIX_EVEX_0F382C) }, { PREFIX_TABLE (PREFIX_EVEX_0F382D) }, { Bad_Opcode }, |