LLVM
8.0.1
|
#include "MCTargetDesc/AArch64AddressingModes.h"
#include "MCTargetDesc/AArch64MCExpr.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
#include "MCTargetDesc/AArch64TargetStreamer.h"
#include "AArch64InstrInfo.h"
#include "Utils/AArch64BaseInfo.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/Twine.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCLinkerOptimizationHint.h"
#include "llvm/MC/MCObjectFileInfo.h"
#include "llvm/MC/MCParser/MCAsmLexer.h"
#include "llvm/MC/MCParser/MCAsmParser.h"
#include "llvm/MC/MCParser/MCAsmParserExtension.h"
#include "llvm/MC/MCParser/MCParsedAsmOperand.h"
#include "llvm/MC/MCParser/MCTargetAsmParser.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/MC/MCTargetOptions.h"
#include "llvm/MC/SubtargetFeature.h"
#include "llvm/MC/MCValue.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/SMLoc.h"
#include "llvm/Support/TargetParser.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cctype>
#include <cstdint>
#include <cstdio>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
#include "AArch64GenAsmMatcher.inc"
Go to the source code of this file.
Classes | |
struct | Extension |
Macros | |
#define | GET_OPERAND_DIAGNOSTIC_TYPES |
Auto-generated Match Functions | |
{ | |
#define | GET_ASSEMBLER_HEADER |
Enumerations | |
enum | RegKind |
enum | RegConstraintEqualityTy |
#define GET_ASSEMBLER_HEADER |
Definition at line 191 of file AArch64AsmParser.cpp.
#define GET_MATCHER_IMPLEMENTATION |
Definition at line 5525 of file AArch64AsmParser.cpp.
#define GET_MNEMONIC_SPELL_CHECKER |
Definition at line 5526 of file AArch64AsmParser.cpp.
#define GET_OPERAND_DIAGNOSTIC_TYPES |
Definition at line 231 of file AArch64AsmParser.cpp.
#define GET_REGISTER_MATCHER |
Definition at line 5523 of file AArch64AsmParser.cpp.
#define GET_SUBTARGET_FEATURE_NAME |
Definition at line 5524 of file AArch64AsmParser.cpp.
Definition at line 71 of file AArch64AsmParser.cpp.
|
strong |
Definition at line 64 of file AArch64AsmParser.cpp.
|
static |
Referenced by isMatchingOrAlias().
|
static |
Definition at line 5050 of file AArch64AsmParser.cpp.
References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::StringRef::empty(), llvm::sys::path::end(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::AsmToken::EndOfStatement, llvm::Error, ExtensionMap, Extension::Features, Features, llvm::find(), llvm::AArch64::getArchFeatures(), llvm::AArch64::getDefaultExtensions(), llvm::AArch64::getExtensionFeatures(), llvm::MCSubtargetInfo::getFeatureBits(), llvm::AsmToken::getLoc(), llvm::AsmToken::getString(), llvm::MCAsmParser::getTok(), llvm::AsmToken::Identifier, llvm::join(), Extension::Name, llvm::AArch64::parseArch(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::report_fatal_error(), llvm::MCSubtargetInfo::setDefaultFeatures(), llvm::StringRef::split(), llvm::StringRef::startswith_lower(), llvm::StringRef::substr(), llvm::MCSubtargetInfo::ToggleFeature(), and llvm::StringRef::trim().
Referenced by incrementLoc().
Referenced by isMatchingOrAlias(), and printMCExpr().
Definition at line 5204 of file AArch64AsmParser.cpp.
References llvm::MCInst::addOperand(), llvm::AMDGPU::HSAMD::Kernel::Key::Args, assert(), llvm::AsmToken::Comma, llvm::AArch64MCExpr::create(), llvm::MCSymbolRefExpr::create(), llvm::MCOperand::createExpr(), llvm::dyn_cast(), llvm::StringRef::empty(), llvm::AsmToken::EndOfStatement, llvm::Error, llvm::MCExpr::evaluateAsRelocatable(), ExpandCryptoAEK(), ExtensionMap, Extension::Features, Features, llvm::MCValue::getConstant(), llvm::AArch64::getCPUArchKind(), llvm::MCSubtargetInfo::getFeatureBits(), llvm::SMLoc::getFromPointer(), llvm::AsmToken::getIdentifier(), llvm::MCSymbolRefExpr::getKind(), llvm::SMLoc::getPointer(), llvm::MCValue::getSymA(), llvm::MCValue::getSymB(), llvm::MCAsmParser::getTok(), llvm::MCConstantExpr::getValue(), llvm::AsmToken::Identifier, llvm::AsmToken::Integer, llvm::isValidMCLOHType(), Kind, llvm::MCAsmParser::Lex(), llvm::StringRef::lower(), llvm::MatchOperand_ParseFail, llvm::MatchOperand_Success, llvm::MCLOHIdToNbArgs(), llvm::MCLOHNameToId(), Name, Extension::Name, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::report_fatal_error(), llvm::NVPTX::PTXLdStInstCode::Scalar, llvm::MCSubtargetInfo::setDefaultFeatures(), llvm::MCInst::setOpcode(), llvm::StringRef::size(), llvm::StringRef::split(), llvm::StringRef::startswith_lower(), llvm::StringRef::substr(), llvm::MCSubtargetInfo::ToggleFeature(), llvm::StringRef::trim(), llvm::AArch64MCExpr::VK_INVALID, llvm::MCSymbolRefExpr::VK_None, llvm::AArch64MCExpr::VK_TLSDESC, and llvm::Warning.
Definition at line 3873 of file AArch64AsmParser.cpp.
References AArch64MnemonicSpellCheck(), assert(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::SmallVectorTemplateCommon< T, typename >::back(), contains(), llvm::MCConstantExpr::create(), llvm::AArch64::DestructiveInstTypeMask, llvm::dyn_cast(), llvm::AArch64::ElementSizeMask, llvm::AArch64::ElementSizeNone, llvm::MCStreamer::EmitInstruction(), llvm::SmallVectorBase::empty(), llvm::Error, llvm::Format, llvm::MCOperand::getExpr(), llvm::AsmToken::getIdentifier(), llvm::AsmToken::getLoc(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCInstrDesc::getOperandConstraint(), llvm::MCOperand::getReg(), getSubtargetFeatureName(), llvm::getToken(), llvm::MCConstantExpr::getValue(), llvm::getWRegFromXReg(), llvm::getXRegFromWReg(), llvm::MCOperand::isExpr(), llvm::MCObjectFileInfo::IsMachO, llvm::MCOperand::isReg(), llvm::MCRegisterInfo::isSubRegisterEq(), LLVM_FALLTHROUGH, llvm_unreachable, llvm::StringRef::lower(), llvm::BitmaskEnumDetail::Mask(), llvm::MCLOHDirectiveName(), llvm::AArch64::NotDestructive, llvm::cl::Prefix, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::NVPTX::PTXLdStInstCode::Scalar, llvm::SmallVectorBase::size(), llvm::MCOI::TIED_TO, llvm::MCInstrDesc::TSFlags, llvm::AArch64MCExpr::VK_DTPREL_HI12, llvm::AArch64MCExpr::VK_DTPREL_LO12, llvm::AArch64MCExpr::VK_DTPREL_LO12_NC, llvm::AArch64MCExpr::VK_LO12, llvm::MCSymbolRefExpr::VK_PAGEOFF, llvm::AArch64MCExpr::VK_SECREL_HI12, llvm::AArch64MCExpr::VK_SECREL_LO12, llvm::AArch64MCExpr::VK_TLSDESC_LO12, llvm::MCSymbolRefExpr::VK_TLVPPAGEOFF, llvm::AArch64MCExpr::VK_TPREL_HI12, llvm::AArch64MCExpr::VK_TPREL_LO12, llvm::AArch64MCExpr::VK_TPREL_LO12_NC, and llvm::Warning.
Definition at line 2193 of file AArch64AsmParser.cpp.
void LLVMInitializeAArch64AsmParser | ( | ) |
Force static initialization.
Definition at line 5517 of file AArch64AsmParser.cpp.
References llvm::getTheAArch64beTarget(), llvm::getTheAArch64leTarget(), llvm::getTheARM64Target(), X, Y, and llvm::Z.
}
Definition at line 2099 of file AArch64AsmParser.cpp.
Referenced by addNegOperand(), convertFPR32ToFPR64(), EvaluateCRExpr(), and makeCombineInst().
Definition at line 2197 of file AArch64AsmParser.cpp.
Definition at line 2234 of file AArch64AsmParser.cpp.
References llvm::AArch64CC::AL, llvm::AArch64_AM::ASR, assert(), llvm::StringSwitch< T, R >::Case(), llvm::APFloat::changeSign(), llvm::AsmToken::Comma, llvm::APFloat::convertFromString(), llvm::AArch64MCExpr::create(), llvm::StringSwitch< T, R >::Default(), llvm::StringRef::drop_front(), llvm::dyn_cast(), E, llvm::AArch64CC::EQ, llvm::StringRef::equals_lower(), llvm::Error, F(), llvm::AArch64CC::GE, llvm::StringRef::getAsInteger(), llvm::AArch64_AM::getFPImmFloat(), llvm::SMLoc::getFromPointer(), llvm::AsmToken::getIdentifier(), llvm::AsmToken::getIntVal(), llvm::AArch64CC::getInvertedCondCode(), llvm::AsmToken::getLoc(), llvm::AsmToken::getString(), llvm::MCAsmParser::getTok(), llvm::MCConstantExpr::getValue(), llvm::AArch64CC::GT, llvm::AsmToken::Hash, llvm::AArch64CC::HI, llvm::AArch64CC::HS, llvm::AsmToken::Identifier, llvm::APFloatBase::IEEEdouble(), llvm::AsmToken::Integer, llvm::AArch64CC::Invalid, llvm::AArch64_AM::InvalidShiftExtend, llvm::AsmToken::is(), llvm::AsmToken::isNot(), llvm::APFloat::isPosZero(), llvm::AsmToken::LBrac, llvm::AArch64CC::LE, llvm::MCAsmParser::Lex(), llvm::AArch64CC::LO, llvm::StringRef::lower(), llvm::AsmToken::LParen, llvm::AArch64CC::LS, llvm::AArch64_AM::LSL, llvm::AArch64_AM::LSR, llvm::AArch64CC::LT, llvm::MatchOperand_NoMatch, llvm::MatchOperand_ParseFail, llvm::MatchOperand_Success, llvm::AArch64CC::MI, llvm::AsmToken::Minus, llvm::AArch64_AM::MSL, N, llvm::AArch64CC::NE, llvm::AArch64CC::NV, llvm::APFloatBase::opOK, llvm::AArch64CC::PL, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::AsmToken::Real, Reg, llvm::APFloatBase::rmTowardZero, llvm::AArch64_AM::ROR, llvm::NVPTX::PTXLdStInstCode::Scalar, llvm::StringRef::startswith(), llvm::AArch64_AM::SXTB, llvm::AArch64_AM::SXTH, llvm::AArch64_AM::SXTW, llvm::AArch64_AM::SXTX, llvm::utostr(), llvm::AArch64_AM::UXTB, llvm::AArch64_AM::UXTH, llvm::AArch64_AM::UXTW, llvm::AArch64_AM::UXTX, llvm::AArch64CC::VC, llvm::AArch64MCExpr::VK_ABS, llvm::AArch64MCExpr::VK_ABS_PAGE, llvm::AArch64MCExpr::VK_GOT_PAGE, llvm::MCSymbolRefExpr::VK_GOTPAGE, llvm::AArch64MCExpr::VK_GOTTPREL_PAGE, llvm::AArch64MCExpr::VK_INVALID, llvm::MCSymbolRefExpr::VK_None, llvm::MCSymbolRefExpr::VK_PAGE, llvm::AArch64MCExpr::VK_TLSDESC_PAGE, llvm::MCSymbolRefExpr::VK_TLVPPAGE, and llvm::AArch64CC::VS.
|
static |
Returns an optional pair of (#elements, element-width) if Suffix is a valid vector kind.
Where the number of elements in a vector or the vector width is implicit or explicitly unknown (but still a valid suffix kind), 0 is used.
Definition at line 2140 of file AArch64AsmParser.cpp.
Referenced by setRequiredFeatureString().
|
static |
Definition at line 2843 of file AArch64AsmParser.cpp.
References assert(), llvm::sys::path::begin(), llvm::AsmToken::Comma, llvm::MCConstantExpr::create(), DC, llvm::dyn_cast(), E, llvm::StringRef::empty(), llvm::SysAlias::Encoding, llvm::sys::path::end(), llvm::AsmToken::EndOfStatement, llvm::Error, ExtensionMap, Extension::Features, llvm::StringRef::find(), llvm::find_if(), llvm::AsmToken::getLoc(), llvm::SysAlias::getRequiredFeatures(), llvm::AsmToken::getString(), llvm::MCAsmParser::getTok(), llvm::MCConstantExpr::getValue(), llvm::AsmToken::Hash, llvm::SysAlias::haveFeatures(), llvm::AsmToken::Identifier, llvm::AsmToken::Integer, llvm::AsmToken::is(), llvm::AsmToken::isNot(), Kind, llvm::AsmToken::LBrac, llvm::MCAsmParser::Lex(), llvm::AArch64SysReg::lookupSysRegByName(), llvm::StringRef::lower(), llvm::MatchOperand_NoMatch, llvm::MatchOperand_ParseFail, llvm::MatchOperand_Success, Name, llvm::SysAlias::Name, llvm::StringRef::npos, llvm::AArch64SysReg::parseGenericRegister(), parseVectorKind(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::AsmToken::RBrac, llvm::AArch64SysReg::SysReg::Readable, and Reg.
Referenced by ExpandCryptoAEK(), incrementLoc(), and setRequiredFeatureString().