aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2020-03-04 08:58:13 +0100
committerJan Beulich <jbeulich@suse.com>2020-03-04 08:58:13 +0100
commita847e32224d9a4297514a9a291c024c207eefdb9 (patch)
tree4b3249c7f20c260a86f95a95b67f2c7693ee54fe /opcodes/i386-dis.c
parent45830fd60e3c7b694dfa03f6fc1e7de431a3fcd1 (diff)
downloadgdb-a847e32224d9a4297514a9a291c024c207eefdb9.zip
gdb-a847e32224d9a4297514a9a291c024c207eefdb9.tar.gz
gdb-a847e32224d9a4297514a9a291c024c207eefdb9.tar.bz2
x86: support VMGEXIT
It has been publicly documented for quite some time, albeit not in the "General-Purpose and System Instructions" volume: https://www.amd.com/system/files/TechDocs/24593.pdf.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r--opcodes/i386-dis.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 77813e1..734cfa6 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -959,6 +959,7 @@ enum
enum
{
PREFIX_90 = 0,
+ PREFIX_0F01_REG_3_RM_1,
PREFIX_0F01_REG_5_MOD_0,
PREFIX_0F01_REG_5_MOD_3_RM_0,
PREFIX_0F01_REG_5_MOD_3_RM_2,
@@ -3627,6 +3628,14 @@ static const struct dis386 prefix_table[][4] = {
{ NULL, { { NULL, 0 } }, PREFIX_IGNORED }
},
+ /* PREFIX_0F01_REG_3_MOD_1 */
+ {
+ { "vmmcall", { Skip_MODRM }, 0 },
+ { "vmgexit", { Skip_MODRM }, 0 },
+ { Bad_Opcode },
+ { "vmgexit", { Skip_MODRM }, 0 },
+ },
+
/* PREFIX_0F01_REG_5_MOD_0 */
{
{ Bad_Opcode },
@@ -11018,7 +11027,7 @@ static const struct dis386 rm_table[][8] = {
{
/* RM_0F01_REG_3 */
{ "vmrun", { Skip_MODRM }, 0 },
- { "vmmcall", { Skip_MODRM }, 0 },
+ { PREFIX_TABLE (PREFIX_0F01_REG_3_RM_1) },
{ "vmload", { Skip_MODRM }, 0 },
{ "vmsave", { Skip_MODRM }, 0 },
{ "stgi", { Skip_MODRM }, 0 },