diff --git a/arch/X86/X86IntelInstPrinter.c b/arch/X86/X86IntelInstPrinter.c index 2f14e8c01..4f9d9051e 100644 --- a/arch/X86/X86IntelInstPrinter.c +++ b/arch/X86/X86IntelInstPrinter.c @@ -82,13 +82,21 @@ static void printi16mem(MCInst *MI, unsigned OpNo, SStream *O) static void printi32mem(MCInst *MI, unsigned OpNo, SStream *O) { - if (MI->Opcode == X86_BOUNDS32rm) { - SStream_concat0(O, "qword ptr "); - MI->x86opsize = 8; - } else { - SStream_concat0(O, "dword ptr "); - MI->x86opsize = 4; + switch(MI->Opcode) { + default: + SStream_concat0(O, "dword ptr "); + MI->x86opsize = 4; + break; + case X86_BOUNDS32rm: + SStream_concat0(O, "qword ptr "); + MI->x86opsize = 8; + break; + case X86_MOV32ms: + SStream_concat0(O, "word ptr "); + MI->x86opsize = 2; + break; } + printMemReference(MI, OpNo, O); }