LLVM  13.0.0git
Classes | Macros
AArch64AsmParser.cpp File Reference
#include "MCTargetDesc/AArch64AddressingModes.h"
#include "MCTargetDesc/AArch64InstPrinter.h"
#include "MCTargetDesc/AArch64MCExpr.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
#include "MCTargetDesc/AArch64TargetStreamer.h"
#include "TargetInfo/AArch64TargetInfo.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
 

Auto-generated Match Functions

{

#define GET_REGISTER_MATCHER
 
#define GET_SUBTARGET_FEATURE_NAME
 
#define GET_MATCHER_IMPLEMENTATION
 
#define GET_MNEMONIC_SPELL_CHECKER
 
static const struct Extension ExtensionMap []
 
static unsigned MatchRegisterName (StringRef Name)
 
static unsigned MatchNeonVectorRegName (StringRef Name)
 } More...
 
static Optional< std::pair< int, int > > parseVectorKind (StringRef Suffix, RegKind VectorKind)
 Returns an optional pair of (elements, element-width) if Suffix is a valid vector kind. More...
 
static bool isValidVectorKind (StringRef Suffix, RegKind VectorKind)
 
static unsigned matchSVEDataVectorRegName (StringRef Name)
 
static unsigned matchSVEPredicateVectorRegName (StringRef Name)
 
static void setRequiredFeatureString (FeatureBitset FBS, std::string &Str)
 
static bool isMatchingOrAlias (unsigned ZReg, unsigned Reg)
 
static std::string AArch64MnemonicSpellCheck (StringRef S, const FeatureBitset &FBS, unsigned VariantID=0)
 
static const char * getSubtargetFeatureName (uint64_t Val)
 
static void ExpandCryptoAEK (AArch64::ArchKind ArchKind, SmallVector< StringRef, 4 > &RequestedExtensions)
 
static SMLoc incrementLoc (SMLoc L, int Offset)
 
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAArch64AsmParser ()
 Force static initialization. More...
 

Macro Definition Documentation

◆ GET_ASSEMBLER_HEADER

#define GET_ASSEMBLER_HEADER

Definition at line 224 of file AArch64AsmParser.cpp.

◆ GET_MATCHER_IMPLEMENTATION

#define GET_MATCHER_IMPLEMENTATION

Definition at line 6093 of file AArch64AsmParser.cpp.

◆ GET_MNEMONIC_SPELL_CHECKER

#define GET_MNEMONIC_SPELL_CHECKER

Definition at line 6094 of file AArch64AsmParser.cpp.

◆ GET_OPERAND_DIAGNOSTIC_TYPES

#define GET_OPERAND_DIAGNOSTIC_TYPES

Definition at line 266 of file AArch64AsmParser.cpp.

◆ GET_REGISTER_MATCHER

#define GET_REGISTER_MATCHER

Definition at line 6091 of file AArch64AsmParser.cpp.

◆ GET_SUBTARGET_FEATURE_NAME

#define GET_SUBTARGET_FEATURE_NAME

Definition at line 6092 of file AArch64AsmParser.cpp.

Function Documentation

◆ AArch64MnemonicSpellCheck()

static std::string AArch64MnemonicSpellCheck ( StringRef  S,
const FeatureBitset FBS,
unsigned  VariantID = 0 
)
static

◆ ExpandCryptoAEK()

static void ExpandCryptoAEK ( AArch64::ArchKind  ArchKind,
SmallVector< StringRef, 4 > &  RequestedExtensions 
)
static

Definition at line 5362 of file AArch64AsmParser.cpp.

References llvm::is_contained().

◆ getSubtargetFeatureName()

static const char* getSubtargetFeatureName ( uint64_t  Val)
static

◆ incrementLoc()

static SMLoc incrementLoc ( SMLoc  L,
int  Offset 
)
static

◆ isMatchingOrAlias()

static bool isMatchingOrAlias ( unsigned  ZReg,
unsigned  Reg 
)
inlinestatic

Definition at line 4119 of file AArch64AsmParser.cpp.

References assert(), and Reg.

◆ isValidVectorKind()

static bool isValidVectorKind ( StringRef  Suffix,
RegKind  VectorKind 
)
static

Definition at line 2255 of file AArch64AsmParser.cpp.

◆ LLVMInitializeAArch64AsmParser()

LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAArch64AsmParser ( )

◆ MatchNeonVectorRegName()

static unsigned MatchNeonVectorRegName ( StringRef  Name)
static

}

Definition at line 2161 of file AArch64AsmParser.cpp.

◆ MatchRegisterName()

static unsigned MatchRegisterName ( StringRef  Name)
static

◆ matchSVEDataVectorRegName()

static unsigned matchSVEDataVectorRegName ( StringRef  Name)
static

Definition at line 2259 of file AArch64AsmParser.cpp.

◆ matchSVEPredicateVectorRegName()

static unsigned matchSVEPredicateVectorRegName ( StringRef  Name)
static

Definition at line 2296 of file AArch64AsmParser.cpp.

◆ parseVectorKind()

static Optional<std::pair<int, int> > parseVectorKind ( StringRef  Suffix,
RegKind  VectorKind 
)
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 2202 of file AArch64AsmParser.cpp.

◆ setRequiredFeatureString()

static void setRequiredFeatureString ( FeatureBitset  FBS,
std::string &  Str 
)
static

Definition at line 2930 of file AArch64AsmParser.cpp.

References llvm::MipsISD::Ext, and ExtensionMap.

Variable Documentation

◆ ExtensionMap

const struct Extension ExtensionMap[]
static