diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index 7f01f81605a..c25e8b3d2db 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -3105,7 +3105,8 @@ bool X86AsmParser::ParseInstruction(ParseInstructionInfo &Info, StringRef Name, (PatchedName.startswith("j") && ParseConditionCode(PatchedName.substr(1)) != X86::COND_INVALID))) { StringRef NextTok = Parser.getTok().getString(); - if (NextTok == "short") { + if (Parser.isParsingMasm() ? NextTok.equals_lower("short") + : NextTok == "short") { SMLoc NameEndLoc = NameLoc.getFromPointer(NameLoc.getPointer() + Name.size()); // Eat the short keyword. diff --git a/test/tools/llvm-ml/jmp_short.asm b/test/tools/llvm-ml/jmp_short.asm new file mode 100644 index 00000000000..d9bd41a34c5 --- /dev/null +++ b/test/tools/llvm-ml/jmp_short.asm @@ -0,0 +1,21 @@ +; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s + +.code + +t1: + jmp short t1_label + jmp SHORT t1_label + JmP Short t1_label + JMP SHORT t1_label + mov eax, eax +t1_label: + ret + +; CHECK-LABEL: t1: +; CHECK-NEXT: jmp t1_label +; CHECK-NEXT: jmp t1_label +; CHECK-NEXT: jmp t1_label +; CHECK-NEXT: jmp t1_label +; CHECK-NEXT: mov eax, eax + +end