diff options
author | Jan Beulich <jbeulich@suse.com> | 2019-11-05 09:19:50 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2019-11-05 09:19:50 +0100 |
commit | 7abb8d81115a2a748443f041e37cc13a70b34faa (patch) | |
tree | 44641c4b24d8a692f422d563484277e82c2dc487 /opcodes/i386-dis.c | |
parent | 267b8516f2899ed24cd77cb9233b514c22506ecf (diff) | |
download | gdb-7abb8d81115a2a748443f041e37cc13a70b34faa.zip gdb-7abb8d81115a2a748443f041e37cc13a70b34faa.tar.gz gdb-7abb8d81115a2a748443f041e37cc13a70b34faa.tar.bz2 |
x86: fold OP_Mwaitx() into OP_Mwait()
There's no need to have separate functions, the difference can easily be
expressed using the function arguments.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 29 |
1 files changed, 5 insertions, 24 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 11a9e33..0f4a844 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -101,7 +101,6 @@ static void VPCOM_Fixup (int, int); static void OP_0f07 (int, int); static void OP_Monitor (int, int); static void OP_Mwait (int, int); -static void OP_Mwaitx (int, int); static void NOP_Fixup1 (int, int); static void NOP_Fixup2 (int, int); static void OP_3DNowSuffix (int, int); @@ -3652,7 +3651,7 @@ static const struct dis386 prefix_table[][4] = { /* PREFIX_0F01_REG_7_MOD_3_RM_3 */ { - { "mwaitx", { { OP_Mwaitx, 0 } }, 0 }, + { "mwaitx", { { OP_Mwait, eBX_reg } }, 0 }, }, /* PREFIX_0F09 */ @@ -15516,35 +15515,17 @@ CMP_Fixup (int bytemode ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED) } static void -OP_Mwaitx (int bytemode ATTRIBUTE_UNUSED, - int sizeflag ATTRIBUTE_UNUSED) +OP_Mwait (int bytemode, int sizeflag ATTRIBUTE_UNUSED) { - /* mwaitx %eax,%ecx,%ebx */ - if (!intel_syntax) - { - const char **names = (address_mode == mode_64bit - ? names64 : names32); - strcpy (op_out[0], names[0]); - strcpy (op_out[1], names[1]); - strcpy (op_out[2], names[3]); - two_source_ops = 1; - } - /* Skip mod/rm byte. */ - MODRM_CHECK; - codep++; -} - -static void -OP_Mwait (int bytemode ATTRIBUTE_UNUSED, - int sizeflag ATTRIBUTE_UNUSED) -{ - /* mwait %eax,%ecx */ + /* mwait %eax,%ecx / mwaitx %eax,%ecx,%ebx */ if (!intel_syntax) { const char **names = (address_mode == mode_64bit ? names64 : names32); strcpy (op_out[0], names[0]); strcpy (op_out[1], names[1]); + if (bytemode == eBX_reg) + strcpy (op_out[2], names[3]); two_source_ops = 1; } /* Skip mod/rm byte. */ |