Fixed some bugs in MBlaze asm parser that were introduced when removing OwningPtrs...
authorWesley Peck <peckw@wesleypeck.com>
Thu, 11 Nov 2010 18:41:33 +0000 (18:41 +0000)
committerWesley Peck <peckw@wesleypeck.com>
Thu, 11 Nov 2010 18:41:33 +0000 (18:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118807 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/MBlaze/AsmParser/MBlazeAsmParser.cpp

index 80d7f3935a9a15f6bc8969592300f7033bdab567..2534691faf4d0cca3117df27929df223df479ebc 100644 (file)
@@ -446,15 +446,15 @@ ParseOperand(SmallVectorImpl<MCParsedAsmOperand*> &Operands) {
   if (!Op)
     Op = ParseImmediate();
 
-  // Move past the parsed token in the token stream
-  getLexer().Lex();
-
   // If the token could not be parsed then fail
   if (!Op) {
     Error(Parser.getTok().getLoc(), "unknown operand");
     return 0;
   }
 
+  // Move past the parsed token in the token stream
+  getLexer().Lex();
+
   // Push the parsed operand into the list of operands
   Operands.push_back(Op);
   return Op;
@@ -472,7 +472,7 @@ ParseInstruction(StringRef Name, SMLoc NameLoc,
     return false;
 
   // Parse the first operand
-  if (ParseOperand(Operands))
+  if (!ParseOperand(Operands))
     return true;
 
   while (getLexer().isNot(AsmToken::EndOfStatement) &&
@@ -485,7 +485,7 @@ ParseInstruction(StringRef Name, SMLoc NameLoc,
     getLexer().Lex();
 
     // Parse the next operand
-    if (ParseOperand(Operands))
+    if (!ParseOperand(Operands))
       return true;
   }