diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-03-13 00:47:29 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-03-13 00:47:29 +0000 |
commit | 18fc344290d7241fd47a9eaba21cde777e7bae9e (patch) | |
tree | 409a8b16654e5e6a79aeab3e3d682291fbf1db8f /llvm/lib | |
parent | b86672059ed9a5c10d60e15406a50e6ca214269d (diff) | |
download | bcm5719-llvm-18fc344290d7241fd47a9eaba21cde777e7bae9e.tar.gz bcm5719-llvm-18fc344290d7241fd47a9eaba21cde777e7bae9e.zip |
MC/X86: Add temporary hack to match shrl $1,%eax correctly, to support testing
other functionality on 403.gcc compiled at -O0.
llvm-svn: 98405
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index 84d7bb7a6f3..dde86fbbe44 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -542,6 +542,15 @@ ParseInstruction(const StringRef &Name, SMLoc NameLoc, } } + // FIXME: Hack to handle recognizing s{hr,ar,hl}? $1. + if ((Name.startswith("shr") || Name.startswith("sar") || + Name.startswith("shl")) && + Operands.size() == 3 && + static_cast<X86Operand*>(Operands[1])->isImm() && + isa<MCConstantExpr>(static_cast<X86Operand*>(Operands[1])->getImm()) && + cast<MCConstantExpr>(static_cast<X86Operand*>(Operands[1])->getImm())->getValue() == 1) + Operands.erase(Operands.begin() + 1); + return false; } |