LLVM: lib/MC/MCParser/AsmParser.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
Functions
static bool isAngleBracketString (SMLoc &StrLoc, SMLoc &EndLoc)
This function checks if the next token is type or arithmetic.
static std::string angleBracketString (StringRef AltMacroStr)
creating a string without the escape characters '!'.
static unsigned getDarwinBinOpPrecedence (AsmToken::TokenKind K, MCBinaryExpr::Opcode &Kind, bool ShouldUseLogicalShr)
static unsigned getGNUBinOpPrecedence (const MCAsmInfo &MAI, AsmToken::TokenKind K, MCBinaryExpr::Opcode &Kind, bool ShouldUseLogicalShr)
static bool isIdentifierChar (char c)
static bool isOperator (AsmToken::TokenKind kind)
static bool parseHexOcta (AsmParser &Asm, uint64_t &hi, uint64_t &lo)
static bool isValidEncoding (int64_t Encoding)
static int rewritesSort (const AsmRewrite *AsmRewriteA, const AsmRewrite *AsmRewriteB)

angleBracketString()

getDarwinBinOpPrecedence()

Definition at line 1499 of file AsmParser.cpp.

References llvm::MCBinaryExpr::Add, llvm::AsmToken::Amp, llvm::AsmToken::AmpAmp, llvm::MCBinaryExpr::And, llvm::MCBinaryExpr::AShr, llvm::AsmToken::Caret, llvm::MCBinaryExpr::Div, llvm::MCBinaryExpr::EQ, llvm::AsmToken::EqualEqual, llvm::AsmToken::ExclaimEqual, llvm::AsmToken::Greater, llvm::AsmToken::GreaterEqual, llvm::AsmToken::GreaterGreater, llvm::MCBinaryExpr::GT, llvm::MCBinaryExpr::GTE, llvm::MCBinaryExpr::LAnd, llvm::AsmToken::Less, llvm::AsmToken::LessEqual, llvm::AsmToken::LessGreater, llvm::AsmToken::LessLess, llvm::MCBinaryExpr::LOr, llvm::MCBinaryExpr::LShr, llvm::MCBinaryExpr::LT, llvm::MCBinaryExpr::LTE, llvm::AsmToken::Minus, llvm::MCBinaryExpr::Mod, llvm::MCBinaryExpr::Mul, llvm::MCBinaryExpr::NE, llvm::MCBinaryExpr::Or, llvm::AsmToken::Percent, llvm::AsmToken::Pipe, llvm::AsmToken::PipePipe, llvm::AsmToken::Plus, llvm::MCBinaryExpr::Shl, llvm::AsmToken::Slash, llvm::AsmToken::Star, llvm::MCBinaryExpr::Sub, and llvm::MCBinaryExpr::Xor.

getGNUBinOpPrecedence()

Definition at line 1575 of file AsmParser.cpp.

References llvm::MCBinaryExpr::Add, llvm::AsmToken::Amp, llvm::AsmToken::AmpAmp, llvm::MCBinaryExpr::And, llvm::MCBinaryExpr::AShr, llvm::AsmToken::Caret, llvm::MCBinaryExpr::Div, llvm::MCBinaryExpr::EQ, llvm::AsmToken::EqualEqual, llvm::AsmToken::Exclaim, llvm::AsmToken::ExclaimEqual, llvm::MCAsmInfo::getCommentString(), llvm::AsmToken::Greater, llvm::AsmToken::GreaterEqual, llvm::AsmToken::GreaterGreater, llvm::MCBinaryExpr::GT, llvm::MCBinaryExpr::GTE, llvm::MCBinaryExpr::LAnd, llvm::AsmToken::Less, llvm::AsmToken::LessEqual, llvm::AsmToken::LessGreater, llvm::AsmToken::LessLess, llvm::MCBinaryExpr::LOr, llvm::MCBinaryExpr::LShr, llvm::MCBinaryExpr::LT, llvm::MCBinaryExpr::LTE, llvm::AsmToken::Minus, llvm::MCBinaryExpr::Mod, llvm::MCBinaryExpr::Mul, llvm::MCBinaryExpr::NE, llvm::MCBinaryExpr::Or, llvm::MCBinaryExpr::OrNot, llvm::AsmToken::Percent, llvm::AsmToken::Pipe, llvm::AsmToken::PipePipe, llvm::AsmToken::Plus, llvm::MCBinaryExpr::Shl, llvm::AsmToken::Slash, llvm::AsmToken::Star, llvm::MCBinaryExpr::Sub, and llvm::MCBinaryExpr::Xor.

isAngleBracketString()

This function checks if the next token is type or arithmetic.

string that begin with character '<' must end with character '>'. otherwise it is arithmetics. If the function returns a 'true' value, the End argument will be filled with the last location pointed to the '>' character. There is a gap between the AltMacro's documentation and the single quote implementation. GCC does not fully support this feature and so we will not support it. TODO: Adding single quote as a string.

Definition at line 1389 of file AsmParser.cpp.

References assert(), llvm::SMLoc::getFromPointer(), and llvm::SMLoc::getPointer().

isIdentifierChar()

isOperator()

Definition at line 2557 of file AsmParser.cpp.

References llvm::AsmToken::Amp, llvm::AsmToken::AmpAmp, llvm::AsmToken::Caret, llvm::AsmToken::Dot, llvm::AsmToken::Equal, llvm::AsmToken::EqualEqual, llvm::AsmToken::Exclaim, llvm::AsmToken::ExclaimEqual, llvm::AsmToken::Greater, llvm::AsmToken::GreaterEqual, llvm::AsmToken::GreaterGreater, llvm::AsmToken::Less, llvm::AsmToken::LessEqual, llvm::AsmToken::LessGreater, llvm::AsmToken::LessLess, llvm::AsmToken::Minus, llvm::AsmToken::Pipe, llvm::AsmToken::PipePipe, llvm::AsmToken::Plus, llvm::AsmToken::Slash, llvm::AsmToken::Star, and llvm::AsmToken::Tilde.

isValidEncoding()

bool isValidEncoding ( int64_t Encoding) static

parseHexOcta()

rewritesSort()