x86: split MONITORX/MWAITX entries

Both encodings do not ignore the 66/F3/F2 prefixes, so don't have the
disassembler ignore them either.
This commit is contained in:
Jan Beulich 2019-11-05 09:19:10 +01:00
parent f8687e93a6
commit 267b8516f2
2 changed files with 21 additions and 2 deletions

View 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 ...

View 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 },
},
{