LLVM: llvm::MCTargetAsmParser Class Reference (original) (raw)

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

#include "[llvm/MC/MCParser/MCTargetAsmParser.h](MCTargetAsmParser%5F8h%5Fsource.html)"

Public Member Functions
MCTargetAsmParser (const MCTargetAsmParser &)=delete
MCTargetAsmParser & operator= (const MCTargetAsmParser &)=delete
~MCTargetAsmParser () override
const MCSubtargetInfo & getSTI () const
const FeatureBitset & getAvailableFeatures () const
void setAvailableFeatures (const FeatureBitset &Value)
bool isParsingMSInlineAsm ()
void setParsingMSInlineAsm (bool Value)
MCTargetOptions getTargetOptions () const
void setSemaCallback (MCAsmParserSemaCallback *Callback)
virtual bool parsePrimaryExpr (const MCExpr *&Res, SMLoc &EndLoc)
virtual bool parseDataExpr (const MCExpr *&Res)
virtual bool parseRegister (MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc)=0
virtual ParseStatus tryParseRegister (MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc)=0
tryParseRegister - parse one register if possible
virtual bool parseInstruction (ParseInstructionInfo &Info, StringRef Name, SMLoc NameLoc, OperandVector &Operands)=0
Parse one assembly instruction.
virtual bool parseInstruction (ParseInstructionInfo &Info, StringRef Name, AsmToken Token, OperandVector &Operands)
virtual bool ParseDirective (AsmToken DirectiveID)
ParseDirective - Parse a target specific assembler directive This method is deprecated, use 'parseDirective' instead.
virtual ParseStatus parseDirective (AsmToken DirectiveID)
Parses a target-specific assembler directive.
virtual bool matchAndEmitInstruction (SMLoc IDLoc, unsigned &Opcode, OperandVector &Operands, MCStreamer &Out, uint64_t &ErrorInfo, bool MatchingInlineAsm)=0
Recognize a series of operands of a parsed instruction as an actual MCInst and emit it to the specified MCStreamer.
virtual bool omitRegisterFromClobberLists (MCRegister Reg)
Allows targets to let registers opt out of clobber lists.
virtual unsigned validateTargetOperandClass (MCParsedAsmOperand &Op, unsigned Kind)
Allow a target to add special case operand matching for things that tblgen doesn't/can't handle effectively.
virtual unsigned checkEarlyTargetMatchPredicate (MCInst &Inst, const OperandVector &Operands)
Validate the instruction match against any complex target predicates before rendering any operands to it.
virtual unsigned checkTargetMatchPredicate (MCInst &Inst)
checkTargetMatchPredicate - Validate the instruction match against any complex target predicates not expressible via match classes.
virtual void convertToMapAndConstraints (unsigned Kind, const OperandVector &Operands)=0
virtual bool areEqualRegs (const MCParsedAsmOperand &Op1, const MCParsedAsmOperand &Op2) const
Returns whether two operands are registers and are equal.
virtual bool equalIsAsmAssignment ()
virtual bool isLabel (AsmToken &Token)
virtual bool tokenIsStartOfStatement (AsmToken::TokenKind Token)
virtual const MCExpr * applySpecifier (const MCExpr *E, uint32_t, MCContext &Ctx)
virtual void doBeforeLabelEmit (MCSymbol *Symbol, SMLoc IDLoc)
virtual void onLabelParsed (MCSymbol *Symbol)
virtual void flushPendingInstructions (MCStreamer &Out)
Ensure that all previously parsed instructions have been emitted to the output streamer, if the target does not emit them immediately.
virtual void onBeginOfFile ()
virtual void onEndOfFile ()
Public Member Functions inherited from llvm::MCAsmParserExtension
MCAsmParserExtension (const MCAsmParserExtension &)=delete
MCAsmParserExtension & operator= (const MCAsmParserExtension &)=delete
virtual ~MCAsmParserExtension ()
virtual void Initialize (MCAsmParser &Parser)
Initialize the extension for parsing using the given Parser.
MCContext & getContext ()
AsmLexer & getLexer ()
const AsmLexer & getLexer () const
MCAsmParser & getParser ()
const MCAsmParser & getParser () const
SourceMgr & getSourceManager ()
MCStreamer & getStreamer ()
bool Warning (SMLoc L, const Twine &Msg)
bool Error (SMLoc L, const Twine &Msg, SMRange Range=SMRange())
void Note (SMLoc L, const Twine &Msg)
bool TokError (const Twine &Msg)
const AsmToken & Lex ()
const AsmToken & getTok ()
bool parseToken (AsmToken::TokenKind T, const Twine &Msg="unexpected token")
bool parseEOL ()
bool parseMany (function_ref< bool()> parseOne, bool hasComma=true)
bool parseOptionalToken (AsmToken::TokenKind T)
bool parseDirectiveCGProfile (StringRef, SMLoc)
parseDirectiveCGProfile ::= .cg_profile identifier, identifier,
bool maybeParseUniqueID (int64_t &UniqueID)
bool check (bool P, const Twine &Msg)
bool check (bool P, SMLoc Loc, const Twine &Msg)
bool addErrorSuffix (const Twine &Suffix)
bool HasBracketExpressions () const
Protected Member Functions
MCTargetAsmParser (MCTargetOptions const &, const MCSubtargetInfo &STI, const MCInstrInfo &MII)
MCSubtargetInfo & copySTI ()
Create a copy of STI and return a non-const reference to it.
Protected Member Functions inherited from llvm::MCAsmParserExtension
MCAsmParserExtension ()
Protected Attributes
FeatureBitset AvailableFeatures
AvailableFeatures - The current set of available features.
bool ParsingMSInlineAsm = false
ParsingMSInlineAsm - Are we parsing ms-style inline assembly?
MCAsmParserSemaCallback * SemaCallback = nullptr
SemaCallback - The Sema callback implementation.
MCTargetOptions MCOptions
Set of options which affects instrumentation of inline assembly.
const MCSubtargetInfo * STI
Current STI.
const MCInstrInfo & MII
Protected Attributes inherited from llvm::MCAsmParserExtension
bool BracketExpressionsSupported = false

MCTargetAsmParser - Generic interface to target specific assembly parsers.

Definition at line 335 of file MCTargetAsmParser.h.

MatchResultTy

Enumerator
Match_InvalidOperand
Match_InvalidTiedOperand
Match_MissingFeature
Match_MnemonicFail
Match_Success
Match_NearMisses
FIRST_TARGET_MATCH_RESULT_TY

Definition at line 337 of file MCTargetAsmParser.h.

MCTargetAsmParser() [2/2]

~MCTargetAsmParser()

MCTargetAsmParser::~MCTargetAsmParser ( ) overridedefault

applySpecifier()

areEqualRegs()

checkEarlyTargetMatchPredicate()

Validate the instruction match against any complex target predicates before rendering any operands to it.

Definition at line 489 of file MCTargetAsmParser.h.

References Match_Success.

checkTargetMatchPredicate()

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 495 of file MCTargetAsmParser.h.

References Match_Success.

convertToMapAndConstraints()

copySTI()

doBeforeLabelEmit()

virtual void llvm::MCTargetAsmParser::doBeforeLabelEmit ( MCSymbol * Symbol, SMLoc IDLoc ) inlinevirtual

equalIsAsmAssignment()

virtual bool llvm::MCTargetAsmParser::equalIsAsmAssignment ( ) inlinevirtual

flushPendingInstructions()

virtual void llvm::MCTargetAsmParser::flushPendingInstructions ( MCStreamer & Out) inlinevirtual

Ensure that all previously parsed instructions have been emitted to the output streamer, if the target does not emit them immediately.

Definition at line 529 of file MCTargetAsmParser.h.

getAvailableFeatures()

getSTI()

getTargetOptions()

isLabel()

virtual bool llvm::MCTargetAsmParser::isLabel ( AsmToken & Token) inlinevirtual

isParsingMSInlineAsm()

bool llvm::MCTargetAsmParser::isParsingMSInlineAsm ( ) inline

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.

omitRegisterFromClobberLists()

virtual bool llvm::MCTargetAsmParser::omitRegisterFromClobberLists ( MCRegister Reg) inlinevirtual

Allows targets to let registers opt out of clobber lists.

Definition at line 475 of file MCTargetAsmParser.h.

References Reg.

onBeginOfFile()

virtual void llvm::MCTargetAsmParser::onBeginOfFile ( ) inlinevirtual

onEndOfFile()

virtual void llvm::MCTargetAsmParser::onEndOfFile ( ) inlinevirtual

onLabelParsed()

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

operator=()

parseDataExpr()

virtual bool llvm::MCTargetAsmParser::parseDataExpr ( const MCExpr *& Res) inlinevirtual

ParseDirective()

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

ParseDirective - Parse a target specific assembler directive This method is deprecated, use 'parseDirective' instead.

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.

Definition at line 449 of file MCTargetAsmParser.h.

Referenced by parseDirective().

parseDirective()

Parses 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 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. If the directive is not target-specific, no tokens should be consumed and NoMatch is returned.

Parameters

DirectiveID - The token identifying the directive.

Definition at line 38 of file MCTargetAsmParser.cpp.

References llvm::ParseStatus::Failure, llvm::AsmToken::getLoc(), llvm::MCAsmParserExtension::getParser(), llvm::MCAsmParserExtension::getTok(), llvm::ParseStatus::NoMatch, ParseDirective(), and llvm::ParseStatus::Success.

parseInstruction() [1/2]

parseInstruction() [2/2]

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.

References Info.

Referenced by parseInstruction().

parsePrimaryExpr()

parseRegister()

setAvailableFeatures()

setParsingMSInlineAsm()

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

setSemaCallback()

tokenIsStartOfStatement()

tryParseRegister()

tryParseRegister - parse one register if possible

Check whether a register specification can be parsed at the current location, without failing the entire parse if it can't. Must not consume tokens if the parse fails.

References Reg.

validateTargetOperandClass()

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 481 of file MCTargetAsmParser.h.

References Match_InvalidOperand.

AvailableFeatures

MCOptions

MII

ParsingMSInlineAsm

bool llvm::MCTargetAsmParser::ParsingMSInlineAsm = false protected

SemaCallback

STI


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