[llvm-commits] [llvm] r141446 - in /llvm/trunk: lib/Target/ARM/ARMInstrFormats.td lib/Target/ARM/ARMInstrNEON.td lib/Target/ARM/AsmParser/ARMAsmParser.cpp lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp lib/Target/ARM/InstPrinter/ARMInstPrinter.h t
Jim Grosbach
grosbach at apple.com
Thu Jan 26 08:00:53 PST 2012
On Jan 25, 2012, at 8:44 PM, NAKAMURA Takumi wrote:
> Jim, excuse me to comment to an old commit. ;)
>
No problem at all.
> 2011/10/8 Jim Grosbach <grosbach at apple.com>:
>> Author: grosbach
>> Date: Fri Oct 7 18:56:00 2011
>> New Revision: 141446
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=141446&view=rev
>> Log:
>> ARM NEON assembly parsing and encoding for VDUP(scalar).
>>
>> Modified:
>> llvm/trunk/lib/Target/ARM/ARMInstrFormats.td
>> llvm/trunk/lib/Target/ARM/ARMInstrNEON.td
>> llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
>> llvm/trunk/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
>> llvm/trunk/lib/Target/ARM/InstPrinter/ARMInstPrinter.h
>> llvm/trunk/test/MC/ARM/neont2-dup-encoding.s
>> llvm/trunk/utils/TableGen/EDEmitter.cpp
>
>> --- llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp (original)
>> +++ llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp Fri Oct 7 18:56:00 2011
>> @@ -1815,6 +1903,37 @@
>> Operands.push_back(ARMOperand::CreateToken(ExclaimTok.getString(),
>> ExclaimTok.getLoc()));
>> Parser.Lex(); // Eat exclaim token
>> + return false;
>> + }
>> +
>> + // Also check for an index operand. This is only legal for vector registers,
>> + // but that'll get caught OK in operand matching, so we don't need to
>> + // explicitly filter everything else out here.
>> + if (Parser.getTok().is(AsmToken::LBrac)) {
>> + SMLoc SIdx = Parser.getTok().getLoc();
>> + Parser.Lex(); // Eat left bracket token.
>> +
>> + const MCExpr *ImmVal;
>> + SMLoc ExprLoc = Parser.getTok().getLoc();
>> + if (getParser().ParseExpression(ImmVal))
>> + return MatchOperand_ParseFail;
>> + const MCConstantExpr *MCE = dyn_cast<MCConstantExpr>(ImmVal);
>> + if (!MCE) {
>> + TokError("immediate value expected for vector index");
>> + return MatchOperand_ParseFail;
>> + }
>> +
>> + SMLoc E = Parser.getTok().getLoc();
>> + if (Parser.getTok().isNot(AsmToken::RBrac)) {
>> + Error(E, "']' expected");
>> + return MatchOperand_ParseFail;
>> + }
>> +
>> + Parser.Lex(); // Eat right bracket token.
>> +
>> + Operands.push_back(ARMOperand::CreateVectorIndex(MCE->getValue(),
>> + SIdx, E,
>> + getContext()));
>> }
>>
>> return false;
>
> I think "MatchOperand_ParseFail" would be incompatible against "bool".
> I have found ms cl.exe warns about it.
>
Ack! Absolutely right. Probably a copy/paste error. Fixed in r149062.
Thanks for the review!
> ...Takumi
More information about the llvm-commits
mailing list