diff options
author | Chris Lattner <sabre@nondot.org> | 2010-09-15 05:30:20 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-09-15 05:30:20 +0000 |
commit | d0bcc9a01590c60adb4d288691120c46a49a2288 (patch) | |
tree | c04f07ad6e8fe7692912994bff3b2cecc70bff5a /lib/Target/X86/AsmParser/X86AsmParser.cpp | |
parent | cbb442640fdefae48edca2b4c60555a68352b553 (diff) |
lcall and ljmp always default to lcalll and ljmpl. This finally
wraps up r8418316
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113949 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/AsmParser/X86AsmParser.cpp')
-rw-r--r-- | lib/Target/X86/AsmParser/X86AsmParser.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index acee68c54e..303a0f282a 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -979,16 +979,6 @@ ParseInstruction(StringRef Name, SMLoc NameLoc, NameLoc, NameLoc)); } - // lcall *x and ljmp *x -> lcalll and ljmpl - if ((Name == "lcall" || Name == "ljmp") && - Operands.size() == 3 && - static_cast<X86Operand*>(Operands[1])->isToken() && - static_cast<X86Operand*>(Operands[1])->getToken() == "*") { - delete Operands[0]; - Operands[0] = X86Operand::CreateToken(Name == "lcall" ? "lcalll" : "ljmpl", - NameLoc); - } - // jmp $42,$5 -> ljmp, similarly for call. if ((Name.startswith("call") || Name.startswith("jmp")) && Operands.size() == 3 && @@ -1007,9 +997,17 @@ ParseInstruction(StringRef Name, SMLoc NameLoc, if (NewOpName) { delete Operands[0]; Operands[0] = X86Operand::CreateToken(NewOpName, NameLoc); + Name = NewOpName; } } + // lcall and ljmp -> lcalll and ljmpl + if ((Name == "lcall" || Name == "ljmp") && Operands.size() == 3) { + delete Operands[0]; + Operands[0] = X86Operand::CreateToken(Name == "lcall" ? "lcalll" : "ljmpl", + NameLoc); + } + return false; } |