Index: lib/Target/X86/AsmParser/X86AsmParser.cpp =================================================================== --- lib/Target/X86/AsmParser/X86AsmParser.cpp +++ lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -2372,6 +2372,15 @@ } } + // Transforms "xlat mem8" into "xlatb" + if ((Name == "xlat" || Name == "xlatb") && Operands.size() == 2) { + X86Operand &Op1 = static_cast(*Operands[1]); + if (Op1.isMem8()) { + Operands.pop_back(); + static_cast(*Operands[0]).setTokenValue("xlatb"); + } + } + return false; } Index: test/MC/X86/intel-syntax.s =================================================================== --- test/MC/X86/intel-syntax.s +++ test/MC/X86/intel-syntax.s @@ -736,3 +736,6 @@ fbstp tbyte ptr [eax] // CHECK: fbld (%eax) // CHECK: fbstp (%eax) + +xlat byte ptr [eax] +// CHECK: xlatb