<div dir="ltr">And here is yet another commit that you landed without getting an LGTM from anyone.<br><br><div class="gmail_quote"><div dir="ltr">On Sun, Nov 8, 2015 at 4:18 PM Colin LeMahieu via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This revision was automatically updated to reflect the committed changes.<br>
Closed by commit rL252435: [AsmParser] Provide target direct access to mnemonic token. Allow assignment… (authored by colinl).<br>
<br>
Changed prior to commit:<br>
<a href="http://reviews.llvm.org/D14255?vs=38961&id=39657#toc" rel="noreferrer" target="_blank">http://reviews.llvm.org/D14255?vs=38961&id=39657#toc</a><br>
<br>
Repository:<br>
rL LLVM<br>
<br>
<a href="http://reviews.llvm.org/D14255" rel="noreferrer" target="_blank">http://reviews.llvm.org/D14255</a><br>
<br>
Files:<br>
llvm/trunk/include/llvm/MC/MCTargetAsmParser.h<br>
llvm/trunk/lib/MC/MCParser/AsmParser.cpp<br>
<br>
Index: llvm/trunk/include/llvm/MC/MCTargetAsmParser.h<br>
===================================================================<br>
--- llvm/trunk/include/llvm/MC/MCTargetAsmParser.h<br>
+++ llvm/trunk/include/llvm/MC/MCTargetAsmParser.h<br>
@@ -143,6 +143,10 @@<br>
/// \return True on failure.<br>
virtual bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,<br>
SMLoc NameLoc, OperandVector &Operands) = 0;<br>
+ virtual bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,<br>
+ AsmToken Token, OperandVector &Operands) {<br>
+ return ParseInstruction(Info, Name, Token.getLoc(), Operands);<br>
+ }<br>
<br>
/// ParseDirective - Parse a target specific assembler directive<br>
///<br>
@@ -192,6 +196,11 @@<br>
virtual void convertToMapAndConstraints(unsigned Kind,<br>
const OperandVector &Operands) = 0;<br>
<br>
+ // Return whether this parser uses assignment statements with equals tokens<br>
+ virtual bool equalIsAsmAssignment() { return true; };<br>
+ // Return whether this start of statement identifier is a label<br>
+ virtual bool isLabel(AsmToken &Token) { return true; };<br>
+<br>
virtual const MCExpr *applyModifierToExpr(const MCExpr *E,<br>
MCSymbolRefExpr::VariantKind,<br>
MCContext &Ctx) {<br>
Index: llvm/trunk/lib/MC/MCParser/AsmParser.cpp<br>
===================================================================<br>
--- llvm/trunk/lib/MC/MCParser/AsmParser.cpp<br>
+++ llvm/trunk/lib/MC/MCParser/AsmParser.cpp<br>
@@ -1396,6 +1396,8 @@<br>
// See what kind of statement we have.<br>
switch (Lexer.getKind()) {<br>
case AsmToken::Colon: {<br>
+ if (!getTargetParser().isLabel(ID))<br>
+ break;<br>
checkForValidSection();<br>
<br>
// identifier ':' -> Label.<br>
@@ -1454,6 +1456,8 @@<br>
}<br>
<br>
case AsmToken::Equal:<br>
+ if (!getTargetParser().equalIsAsmAssignment())<br>
+ break;<br>
// identifier '=' ... -> assignment statement<br>
Lex();<br>
<br>
@@ -1701,7 +1705,7 @@<br>
// Canonicalize the opcode to lower case.<br>
std::string OpcodeStr = IDVal.lower();<br>
ParseInstructionInfo IInfo(Info.AsmRewrites);<br>
- bool HadError = getTargetParser().ParseInstruction(IInfo, OpcodeStr, IDLoc,<br>
+ bool HadError = getTargetParser().ParseInstruction(IInfo, OpcodeStr, ID,<br>
Info.ParsedOperands);<br>
Info.ParseError = HadError;<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div>