[llvm] r186567 - This patch extends mips register parsing methods to allow indexed register parsing. The corresponding test cases are added to the patch.
Vladimir Medic
Vladimir.Medic at imgtec.com
Thu Jul 18 02:28:36 PDT 2013
Author: vmedic
Date: Thu Jul 18 04:28:35 2013
New Revision: 186567
URL: http://llvm.org/viewvc/llvm-project?rev=186567&view=rev
Log:
This patch extends mips register parsing methods to allow indexed register parsing. The corresponding test cases are added to the patch.
Modified:
llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
llvm/trunk/test/MC/Mips/mips-fpu-instructions.s
Modified: llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp?rev=186567&r1=186566&r2=186567&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp (original)
+++ llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp Thu Jul 18 04:28:35 2013
@@ -1268,6 +1268,18 @@ MipsAsmParser::parseRegs(SmallVectorImpl
// Set the proper register kind.
MipsOperand* op = static_cast<MipsOperand*>(Operands.back());
op->setRegKind(Kind);
+ if ((Kind == MipsOperand::Kind_CPURegs)
+ && (getLexer().is(AsmToken::LParen))) {
+ // Check if it is indexed addressing operand.
+ Operands.push_back(MipsOperand::CreateToken("(", getLexer().getLoc()));
+ Parser.Lex(); // Eat the parenthesis.
+ if (parseRegs(Operands,RegKind) != MatchOperand_Success)
+ return MatchOperand_NoMatch;
+ if (getLexer().isNot(AsmToken::RParen))
+ return MatchOperand_NoMatch;
+ Operands.push_back(MipsOperand::CreateToken(")", getLexer().getLoc()));
+ Parser.Lex();
+ }
return MatchOperand_Success;
}
return MatchOperand_NoMatch;
Modified: llvm/trunk/test/MC/Mips/mips-fpu-instructions.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Mips/mips-fpu-instructions.s?rev=186567&r1=186566&r2=186567&view=diff
==============================================================================
--- llvm/trunk/test/MC/Mips/mips-fpu-instructions.s (original)
+++ llvm/trunk/test/MC/Mips/mips-fpu-instructions.s Thu Jul 18 04:28:35 2013
@@ -158,6 +158,8 @@
# CHECK: mtc2 $9, $4, 5 # encoding: [0x05,0x20,0x89,0x48]
# CHECK: movf $2, $1, $fcc0 # encoding: [0x01,0x10,0x20,0x00]
# CHECK: movt $2, $1, $fcc0 # encoding: [0x01,0x10,0x21,0x00]
+# CHECK: luxc1 $f0, $6($5) # encoding: [0x05,0x00,0xa6,0x4c]
+# CHECK: suxc1 $f4, $24($5) # encoding: [0x0d,0x20,0xb8,0x4c]
cfc1 $a2,$0
mfc1 $a2,$f7
@@ -179,3 +181,5 @@
mtc2 $9, $4, 5
movf $2, $1, $fcc0
movt $2, $1, $fcc0
+ luxc1 $f0, $a2($a1)
+ suxc1 $f4, $t8($a1)
\ No newline at end of file
More information about the llvm-commits
mailing list