summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/AsmParser
diff options
context:
space:
mode:
authorVenkatraman Govindaraju <venkatra@cs.wisc.edu>2014-03-02 22:55:53 +0000
committerVenkatraman Govindaraju <venkatra@cs.wisc.edu>2014-03-02 22:55:53 +0000
commit07d3af282121d69c6fcae0f81933870fca5ac69e (patch)
treeab3bd06d2f6d8bab6cbbc3aaae654279c2163782 /llvm/lib/Target/Sparc/AsmParser
parentee68e352a7952372256e4db997755b42b88f172e (diff)
downloadbcm5719-llvm-07d3af282121d69c6fcae0f81933870fca5ac69e.tar.gz
bcm5719-llvm-07d3af282121d69c6fcae0f81933870fca5ac69e.zip
[Sparc] Add return/rett instruction to Sparc backend.
llvm-svn: 202666
Diffstat (limited to 'llvm/lib/Target/Sparc/AsmParser')
-rw-r--r--llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp b/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
index 901560c5c97..2ff6cdd8f43 100644
--- a/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
+++ b/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
@@ -446,6 +446,9 @@ ParseRegister(unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc)
return Error(StartLoc, "invalid register name");
}
+static void applyMnemonicAliases(StringRef &Mnemonic, unsigned Features,
+ unsigned VariantID);
+
bool SparcAsmParser::
ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc,
@@ -455,6 +458,9 @@ ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
// First operand in MCInst is instruction mnemonic.
Operands.push_back(SparcOperand::CreateToken(Name, NameLoc));
+ // apply mnemonic aliases, if any, so that we can parse operands correctly.
+ applyMnemonicAliases(Name, getAvailableFeatures(), 0);
+
if (getLexer().isNot(AsmToken::EndOfStatement)) {
// Read the first operand.
if (getLexer().is(AsmToken::Comma)) {
OpenPOWER on IntegriCloud