diff options
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/i386-dis.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 725b38b..ddb659f 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -13601,31 +13601,25 @@ MOVSXD_Fixup (int bytemode, int sizeflag) switch (bytemode) { case movsxd_mode: - if (intel_syntax) + if (!intel_syntax) { - *p++ = 'x'; - *p++ = 'd'; - goto skip; + USED_REX (REX_W); + if (rex & REX_W) + { + *p++ = 'l'; + *p++ = 'q'; + break; + } } - USED_REX (REX_W); - if (rex & REX_W) - { - *p++ = 'l'; - *p++ = 'q'; - } - else - { - *p++ = 'x'; - *p++ = 'd'; - } + *p++ = 'x'; + *p++ = 'd'; break; default: oappend (INTERNAL_DISASSEMBLER_ERROR); break; } - skip: mnemonicendp = p; *p = '\0'; OP_E (bytemode, sizeflag); |