aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis-evex.h
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2020-07-06 13:42:33 +0200
committerJan Beulich <jbeulich@suse.com>2020-07-06 13:42:33 +0200
commitfedfb81e60564682bc5c5d5592fdea39ca520c6e (patch)
tree5bafab5f3764344034beefa7041c85bc79a78528 /opcodes/i386-dis-evex.h
parent3a57774c7b3840355b5b21818515fa2b6df3e5e9 (diff)
downloadgdb-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.h30
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 },