[llvm-commits] [llvm] r165955 - in /llvm/trunk/lib: MC/MCParser/AsmParser.cpp Target/X86/AsmParser/X86AsmParser.cpp

Chad Rosier mcrosier at apple.com
Mon Oct 15 12:08:18 PDT 2012


Author: mcrosier
Date: Mon Oct 15 14:08:18 2012
New Revision: 165955

URL: http://llvm.org/viewvc/llvm-project?rev=165955&view=rev
Log:
[ms-inline asm] If we parsed a statement and the opcode is valid, then it's an instruction.

Modified:
    llvm/trunk/lib/MC/MCParser/AsmParser.cpp
    llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp

Modified: llvm/trunk/lib/MC/MCParser/AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/AsmParser.cpp?rev=165955&r1=165954&r2=165955&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCParser/AsmParser.cpp (original)
+++ llvm/trunk/lib/MC/MCParser/AsmParser.cpp Mon Oct 15 14:08:18 2012
@@ -136,9 +136,6 @@
   /// ParsingInlineAsm - Are we parsing ms-style inline assembly?
   bool ParsingInlineAsm;
 
-  /// IsInstruction - Was the last parsed statement an instruction?
-  bool IsInstruction;
-
   /// ParsedOperands - The parsed operands from the last parsed statement.
   SmallVector<MCParsedAsmOperand*, 8> ParsedOperands;
 
@@ -195,7 +192,7 @@
       delete ParsedOperands[i];
     ParsedOperands.clear();
   }
-  bool isInstruction() { return IsInstruction; }
+  bool isInstruction() { return Opcode != (unsigned)~0x0; }
   unsigned getOpcode() { return Opcode; }
 
   bool ParseExpression(const MCExpr *&Res);
@@ -439,7 +436,7 @@
     GenericParser(new GenericAsmParser), PlatformParser(0),
     CurBuffer(0), MacrosEnabled(true), CppHashLineNumber(0),
     AssemblerDialect(~0U), IsDarwin(false), ParsingInlineAsm(false),
-    IsInstruction(false), Opcode(0) {
+    Opcode(~0x0) {
   // Save the old handler.
   SavedDiagHandler = SrcMgr.getDiagHandler();
   SavedDiagContext = SrcMgr.getDiagContext();

Modified: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp?rev=165955&r1=165954&r2=165955&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp Mon Oct 15 14:08:18 2012
@@ -1526,6 +1526,9 @@
   assert(Op->isToken() && "Leading operand should always be a mnemonic!");
   ArrayRef<SMRange> EmptyRanges = ArrayRef<SMRange>();
 
+  // Clear the opcode.
+  Opcode = ~0x0;
+
   // First, handle aliases that expand to multiple instructions.
   // FIXME: This should be replaced with a real .td file alias mechanism.
   // Also, MatchInstructionImpl should actually *do* the EmitInstruction





More information about the llvm-commits mailing list