Add in the first step of the multiple pointer support. This adds in support to the...
[oota-llvm.git] / include / llvm / MC / MCTargetAsmParser.h
index 16cf6273a5af79ca8e344771727eb082b291dc3b..a966a6b8b32cae12e42a7b83cfcd23ff62562a80 100644 (file)
@@ -50,6 +50,12 @@ public:
   virtual bool ParseRegister(unsigned &RegNo, SMLoc &StartLoc,
                              SMLoc &EndLoc) = 0;
 
+  /// MapAndConstraints - Map inline assembly operands to MCInst operands
+  /// and an associated constraint.
+  typedef std::pair< unsigned, std::string > MapAndConstraint;
+  typedef SmallVector<MapAndConstraint, 4> MatchInstMapAndConstraints;
+  typedef SmallVectorImpl<MapAndConstraint> MatchInstMapAndConstraintsImpl;
+
   /// ParseInstruction - Parse one assembly instruction.
   ///
   /// The parser is positioned following the instruction name. The target
@@ -92,7 +98,7 @@ public:
   MatchInstruction(SMLoc IDLoc, 
                    SmallVectorImpl<MCParsedAsmOperand*> &Operands,
                    MCStreamer &Out, unsigned &Kind, unsigned &Opcode,
-        SmallVectorImpl<std::pair< unsigned, std::string > > &MapAndConstraints,
+                   MatchInstMapAndConstraintsImpl &MapAndConstraints,
                    unsigned &OrigErrorInfo, bool matchingInlineAsm = false) {
     OrigErrorInfo = ~0x0;
     return true;
@@ -117,7 +123,7 @@ public:
 
   virtual void convertToMapAndConstraints(unsigned Kind,
                            const SmallVectorImpl<MCParsedAsmOperand*> &Operands,
-   SmallVectorImpl<std::pair< unsigned, std::string > > &MapAndConstraints) = 0;
+                         MatchInstMapAndConstraintsImpl &MapAndConstraints) = 0;
 };
 
 } // End llvm namespace