[PATCH] D30165: AArch64AsmParser: don't try to parse “[1]” for non-vector register operands

Sjoerd Meijer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 20 07:05:45 PST 2017


SjoerdMeijer created this revision.
Herald added subscribers: rengolin, aemerson.

Hi Tim,
Do you think we can remove this code? It is not covered by tests, i.e. it never gets executed. But more importantly, it tries to parse  “[1]” for non-vector register operands but I don't think that there are any instructions allowing this. The comments are suggesting FMOV, but this accepts [1] only for vector operands. 
Cheers,
Sjoerd.


https://reviews.llvm.org/D30165

Files:
  lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp


Index: lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
===================================================================
--- lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -2745,7 +2745,6 @@
 
 /// parseRegister - Parse a non-vector register operand.
 bool AArch64AsmParser::parseRegister(OperandVector &Operands) {
-  MCAsmParser &Parser = getParser();
   SMLoc S = getLoc();
   // Try for a vector register.
   if (!tryParseVectorRegister(Operands))
@@ -2758,30 +2757,6 @@
   Operands.push_back(
       AArch64Operand::CreateReg(Reg, false, S, getLoc(), getContext()));
 
-  // A small number of instructions (FMOVXDhighr, for example) have "[1]"
-  // as a string token in the instruction itself.
-  SMLoc LBracS = getLoc();
-  const AsmToken &Tok = Parser.getTok();
-  if (parseOptionalToken(AsmToken::LBrac)) {
-    if (Tok.is(AsmToken::Integer)) {
-      SMLoc IntS = getLoc();
-      int64_t Val = Tok.getIntVal();
-      if (Val == 1) {
-        Parser.Lex();
-        SMLoc RBracS = getLoc();
-        if (parseOptionalToken(AsmToken::RBrac)) {
-          Operands.push_back(
-              AArch64Operand::CreateToken("[", false, LBracS, getContext()));
-          Operands.push_back(
-              AArch64Operand::CreateToken("1", false, IntS, getContext()));
-          Operands.push_back(
-              AArch64Operand::CreateToken("]", false, RBracS, getContext()));
-          return false;
-        }
-      }
-    }
-  }
-
   return false;
 }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30165.89114.patch
Type: text/x-patch
Size: 1527 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170220/5a5b589a/attachment.bin>


More information about the llvm-commits mailing list