x86: split MONITORX/MWAITX entries
authorJan Beulich <jbeulich@suse.com>
Tue, 5 Nov 2019 08:19:10 +0000 (09:19 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 5 Nov 2019 08:19:10 +0000 (09:19 +0100)
Both encodings do not ignore the 66/F3/F2 prefixes, so don't have the
disassembler ignore them either.

opcodes/ChangeLog
opcodes/i386-dis.c

index 14a140748171159cfe7b6540feedbeb8175ef78c..4f27092152bbc09c6005e51a02a9b6b36f02fb0a 100644 (file)
@@ -1,3 +1,10 @@
+2019-11-05  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (PREFIX_0F01_REG_7_MOD_3_RM_2,
+       PREFIX_0F01_REG_7_MOD_3_RM_3): New.
+       (prefix_table): Add respective entries.
+       (rm_table): Link to those entries.
+
 2019-11-05  Jan Beulich  <jbeulich@suse.com>
 
        * i386-dis.c (REG_0F1C_MOD_0): Rename to ...
index d1d8b55af3e766dc12da361a88b036db658daf55..11a9e33fbe751aa75f2b13c5a7e6ac2c8df8ced7 100644 (file)
@@ -964,6 +964,8 @@ enum
   PREFIX_0F01_REG_5_MOD_0,
   PREFIX_0F01_REG_5_MOD_3_RM_0,
   PREFIX_0F01_REG_5_MOD_3_RM_2,
+  PREFIX_0F01_REG_7_MOD_3_RM_2,
+  PREFIX_0F01_REG_7_MOD_3_RM_3,
   PREFIX_0F09,
   PREFIX_0F10,
   PREFIX_0F11,
@@ -3643,6 +3645,16 @@ static const struct dis386 prefix_table[][4] = {
     { "saveprevssp",   { Skip_MODRM }, PREFIX_OPCODE },
   },
 
+  /* PREFIX_0F01_REG_7_MOD_3_RM_2 */
+  {
+    { "monitorx",      { { OP_Monitor, 0 } }, 0  },
+  },
+
+  /* PREFIX_0F01_REG_7_MOD_3_RM_3 */
+  {
+    { "mwaitx",                { { OP_Mwaitx,  0 } }, 0  },
+  },
+
   /* PREFIX_0F09 */
   {
     { "wbinvd",   { XX }, 0 },
@@ -11016,8 +11028,8 @@ static const struct dis386 rm_table[][8] = {
     /* RM_0F01_REG_7_MOD_3 */
     { "swapgs",                { Skip_MODRM }, 0  },
     { "rdtscp",                { Skip_MODRM }, 0  },
-    { "monitorx",      { { OP_Monitor, 0 } }, 0  },
-    { "mwaitx",                { { OP_Mwaitx,  0 } }, 0  },
+    { PREFIX_TABLE (PREFIX_0F01_REG_7_MOD_3_RM_2) },
+    { PREFIX_TABLE (PREFIX_0F01_REG_7_MOD_3_RM_3) },
     { "clzero",                { Skip_MODRM }, 0  },
   },
   {