LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::MCTargetAsmParser Class Referenceabstract

MCTargetAsmParser - Generic interface to target specific assembly parsers. More...

#include <MCTargetAsmParser.h>

Inheritance diagram for llvm::MCTargetAsmParser:
Inheritance graph
[legend]
Collaboration diagram for llvm::MCTargetAsmParser:
Collaboration graph
[legend]

Public Types

enum  MatchResultTy {
  Match_InvalidOperand, Match_MissingFeature, Match_MnemonicFail, Match_Success,
  FIRST_TARGET_MATCH_RESULT_TY
}
 

Public Member Functions

virtual ~MCTargetAsmParser ()
 
unsigned getAvailableFeatures () const
 
void setAvailableFeatures (unsigned Value)
 
bool isParsingInlineAsm ()
 
void setParsingInlineAsm (bool Value)
 
void setSemaCallback (MCAsmParserSemaCallback *Callback)
 
virtual bool ParseRegister (unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc)=0
 
virtual bool ParseInstruction (ParseInstructionInfo &Info, StringRef Name, SMLoc NameLoc, SmallVectorImpl< MCParsedAsmOperand * > &Operands)=0
 
virtual bool ParseDirective (AsmToken DirectiveID)=0
 
virtual bool mnemonicIsValid (StringRef Mnemonic, unsigned VariantID)=0
 
virtual bool MatchAndEmitInstruction (SMLoc IDLoc, unsigned &Opcode, SmallVectorImpl< MCParsedAsmOperand * > &Operands, MCStreamer &Out, unsigned &ErrorInfo, bool MatchingInlineAsm)=0
 
virtual unsigned validateTargetOperandClass (MCParsedAsmOperand *Op, unsigned Kind)
 
virtual unsigned checkTargetMatchPredicate (MCInst &Inst)
 
virtual void convertToMapAndConstraints (unsigned Kind, const SmallVectorImpl< MCParsedAsmOperand * > &Operands)=0
 
virtual const MCExprapplyModifierToExpr (const MCExpr *E, MCSymbolRefExpr::VariantKind, MCContext &Ctx)
 
virtual void onLabelParsed (MCSymbol *Symbol)
 
- Public Member Functions inherited from llvm::MCAsmParserExtension
virtual ~MCAsmParserExtension ()
 
virtual void Initialize (MCAsmParser &Parser)
 Initialize the extension for parsing using the given Parser. The extension should use the AsmParser interfaces to register its parsing routines. More...
 
MCContextgetContext ()
 
MCAsmLexergetLexer ()
 
MCAsmParsergetParser ()
 
SourceMgrgetSourceManager ()
 
MCStreamergetStreamer ()
 
bool Warning (SMLoc L, const Twine &Msg)
 
bool Error (SMLoc L, const Twine &Msg)
 
bool TokError (const Twine &Msg)
 
const AsmTokenLex ()
 
const AsmTokengetTok ()
 
bool HasBracketExpressions () const
 

Protected Member Functions

 MCTargetAsmParser ()
 
- Protected Member Functions inherited from llvm::MCAsmParserExtension
 MCAsmParserExtension ()
 

Protected Attributes

unsigned AvailableFeatures
 AvailableFeatures - The current set of available features. More...
 
bool ParsingInlineAsm
 ParsingInlineAsm - Are we parsing ms-style inline assembly? More...
 
MCAsmParserSemaCallbackSemaCallback
 
- Protected Attributes inherited from llvm::MCAsmParserExtension
bool BracketExpressionsSupported
 

Additional Inherited Members

- Static Protected Member Functions inherited from llvm::MCAsmParserExtension
template<typename T , bool(T::*)(StringRef, SMLoc) Handler>
static bool HandleDirective (MCAsmParserExtension *Target, StringRef Directive, SMLoc DirectiveLoc)
 

Detailed Description

MCTargetAsmParser - Generic interface to target specific assembly parsers.

Definition at line 74 of file MCTargetAsmParser.h.

Member Enumeration Documentation

Enumerator
Match_InvalidOperand 
Match_MissingFeature 
Match_MnemonicFail 
Match_Success 
FIRST_TARGET_MATCH_RESULT_TY 

Definition at line 76 of file MCTargetAsmParser.h.

Constructor & Destructor Documentation

MCTargetAsmParser::MCTargetAsmParser ( )
protected

Definition at line 13 of file MCTargetAsmParser.cpp.

MCTargetAsmParser::~MCTargetAsmParser ( )
virtual

Definition at line 18 of file MCTargetAsmParser.cpp.

Member Function Documentation

virtual const MCExpr* llvm::MCTargetAsmParser::applyModifierToExpr ( const MCExpr E,
MCSymbolRefExpr::VariantKind  ,
MCContext Ctx 
)
inlinevirtual

Definition at line 179 of file MCTargetAsmParser.h.

virtual unsigned llvm::MCTargetAsmParser::checkTargetMatchPredicate ( MCInst Inst)
inlinevirtual

checkTargetMatchPredicate - Validate the instruction match against any complex target predicates not expressible via match classes.

Definition at line 172 of file MCTargetAsmParser.h.

References Match_Success.

virtual void llvm::MCTargetAsmParser::convertToMapAndConstraints ( unsigned  Kind,
const SmallVectorImpl< MCParsedAsmOperand * > &  Operands 
)
pure virtual
unsigned llvm::MCTargetAsmParser::getAvailableFeatures ( ) const
inline

Definition at line 103 of file MCTargetAsmParser.h.

References AvailableFeatures.

bool llvm::MCTargetAsmParser::isParsingInlineAsm ( )
inline

Definition at line 106 of file MCTargetAsmParser.h.

References ParsingInlineAsm.

virtual bool llvm::MCTargetAsmParser::MatchAndEmitInstruction ( SMLoc  IDLoc,
unsigned Opcode,
SmallVectorImpl< MCParsedAsmOperand * > &  Operands,
MCStreamer Out,
unsigned ErrorInfo,
bool  MatchingInlineAsm 
)
pure virtual

MatchAndEmitInstruction - Recognize a series of operands of a parsed instruction as an actual MCInst and emit it to the specified MCStreamer. This returns false on success and returns true on failure to match.

On failure, the target parser is responsible for emitting a diagnostic explaining the match failure.

virtual bool llvm::MCTargetAsmParser::mnemonicIsValid ( StringRef  Mnemonic,
unsigned  VariantID 
)
pure virtual

mnemonicIsValid - This returns true if this is a valid mnemonic and false otherwise.

virtual void llvm::MCTargetAsmParser::onLabelParsed ( MCSymbol Symbol)
inlinevirtual

Definition at line 185 of file MCTargetAsmParser.h.

virtual bool llvm::MCTargetAsmParser::ParseDirective ( AsmToken  DirectiveID)
pure virtual

ParseDirective - Parse a target specific assembler directive

The parser is positioned following the directive name. The target specific directive parser should parse the entire directive doing or recording any target specific work, or return true and do nothing if the directive is not target specific. If the directive is specific for the target, the entire line is parsed up to and including the end-of-statement token and false is returned.

Parameters
DirectiveID- the identifier token of the directive.
virtual bool llvm::MCTargetAsmParser::ParseInstruction ( ParseInstructionInfo Info,
StringRef  Name,
SMLoc  NameLoc,
SmallVectorImpl< MCParsedAsmOperand * > &  Operands 
)
pure virtual

ParseInstruction - Parse one assembly instruction.

The parser is positioned following the instruction name. The target specific instruction parser should parse the entire instruction and construct the appropriate MCInst, or emit an error. On success, the entire line should be parsed up to and including the end-of-statement token. On failure, the parser is not required to read to the end of the line.

Parameters
Name- The instruction name.
NameLoc- The source location of the name.
Operands[out] - The list of parsed operands, this returns ownership of them to the caller.
Returns
True on failure.
virtual bool llvm::MCTargetAsmParser::ParseRegister ( unsigned RegNo,
SMLoc StartLoc,
SMLoc EndLoc 
)
pure virtual
void llvm::MCTargetAsmParser::setAvailableFeatures ( unsigned  Value)
inline

Definition at line 104 of file MCTargetAsmParser.h.

References AvailableFeatures.

void llvm::MCTargetAsmParser::setParsingInlineAsm ( bool  Value)
inline

Definition at line 107 of file MCTargetAsmParser.h.

References ParsingInlineAsm.

void llvm::MCTargetAsmParser::setSemaCallback ( MCAsmParserSemaCallback Callback)
inline

Definition at line 109 of file MCTargetAsmParser.h.

References SemaCallback.

virtual unsigned llvm::MCTargetAsmParser::validateTargetOperandClass ( MCParsedAsmOperand Op,
unsigned  Kind 
)
inlinevirtual

Allow a target to add special case operand matching for things that tblgen doesn't/can't handle effectively. For example, literal immediates on ARM. TableGen expects a token operand, but the parser will recognize them as immediates.

Definition at line 165 of file MCTargetAsmParser.h.

References Match_InvalidOperand.

Member Data Documentation

unsigned llvm::MCTargetAsmParser::AvailableFeatures
protected

AvailableFeatures - The current set of available features.

Definition at line 91 of file MCTargetAsmParser.h.

Referenced by getAvailableFeatures(), and setAvailableFeatures().

bool llvm::MCTargetAsmParser::ParsingInlineAsm
protected

ParsingInlineAsm - Are we parsing ms-style inline assembly?

Definition at line 94 of file MCTargetAsmParser.h.

Referenced by isParsingInlineAsm(), and setParsingInlineAsm().

MCAsmParserSemaCallback* llvm::MCTargetAsmParser::SemaCallback
protected

SemaCallback - The Sema callback implementation. Must be set when parsing ms-style inline assembly.

Definition at line 98 of file MCTargetAsmParser.h.

Referenced by setSemaCallback().


The documentation for this class was generated from the following files: