LLVM 19.0.0git
Classes | Macros
AArch64AsmParser.cpp File Reference
#include "AArch64InstrInfo.h"
#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 "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/SmallSet.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/MCValue.h"
#include "llvm/MC/TargetRegistry.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/raw_ostream.h"
#include "llvm/TargetParser/AArch64TargetParser.h"
#include "llvm/TargetParser/SubtargetFeature.h"
#include <cassert>
#include <cctype>
#include <cstdint>
#include <cstdio>
#include <optional>
#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
 
#define MATCH_HASH(N)
 
#define MATCH_HASH_MINUS(N)
 
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 MCRegister MatchRegisterName (StringRef Name)
 
static unsigned MatchNeonVectorRegName (StringRef Name)
 }
 
static std::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.
 
static bool isValidVectorKind (StringRef Suffix, RegKind VectorKind)
 
static unsigned matchSVEDataVectorRegName (StringRef Name)
 
static unsigned matchSVEPredicateVectorRegName (StringRef Name)
 
static unsigned matchSVEPredicateAsCounterRegName (StringRef Name)
 
static unsigned matchMatrixTileListRegName (StringRef Name)
 
static unsigned matchMatrixRegName (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 chargetSubtargetFeatureName (uint64_t Val)
 
static void ExpandCryptoAEK (const AArch64::ArchInfo &ArchInfo, SmallVector< StringRef, 4 > &RequestedExtensions)
 
static SMLoc incrementLoc (SMLoc L, int Offset)
 
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAArch64AsmParser ()
 Force static initialization.
 

Macro Definition Documentation

◆ GET_ASSEMBLER_HEADER

#define GET_ASSEMBLER_HEADER

Definition at line 241 of file AArch64AsmParser.cpp.

◆ GET_MATCHER_IMPLEMENTATION

#define GET_MATCHER_IMPLEMENTATION

Definition at line 7730 of file AArch64AsmParser.cpp.

◆ GET_MNEMONIC_SPELL_CHECKER

#define GET_MNEMONIC_SPELL_CHECKER

Definition at line 7731 of file AArch64AsmParser.cpp.

◆ GET_OPERAND_DIAGNOSTIC_TYPES

#define GET_OPERAND_DIAGNOSTIC_TYPES

Definition at line 291 of file AArch64AsmParser.cpp.

◆ GET_REGISTER_MATCHER

#define GET_REGISTER_MATCHER

Definition at line 7728 of file AArch64AsmParser.cpp.

◆ GET_SUBTARGET_FEATURE_NAME

#define GET_SUBTARGET_FEATURE_NAME

Definition at line 7729 of file AArch64AsmParser.cpp.

◆ MATCH_HASH

#define MATCH_HASH (   N)
Value:
case MCK__HASH_##N: \
return MatchesOpImmediate(N);
#define N

◆ MATCH_HASH_MINUS

#define MATCH_HASH_MINUS (   N)
Value:
case MCK__HASH__MINUS_##N: \
return MatchesOpImmediate(-N);

Function Documentation

◆ AArch64MnemonicSpellCheck()

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

◆ ExpandCryptoAEK()

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

◆ getSubtargetFeatureName()

static const char * getSubtargetFeatureName ( uint64_t  Val)
static

◆ incrementLoc()

static SMLoc incrementLoc ( SMLoc  L,
int  Offset 
)
static

Definition at line 6974 of file AArch64AsmParser.cpp.

References llvm::SMLoc::getFromPointer(), and llvm::Offset.

◆ isMatchingOrAlias()

static bool isMatchingOrAlias ( unsigned  ZReg,
unsigned  Reg 
)
inlinestatic

Definition at line 5200 of file AArch64AsmParser.cpp.

References assert().

◆ isValidVectorKind()

static bool isValidVectorKind ( StringRef  Suffix,
RegKind  VectorKind 
)
static

Definition at line 2703 of file AArch64AsmParser.cpp.

References parseVectorKind().

◆ LLVMInitializeAArch64AsmParser()

LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAArch64AsmParser ( )

◆ matchMatrixRegName()

static unsigned matchMatrixRegName ( StringRef  Name)
static

◆ matchMatrixTileListRegName()

static unsigned matchMatrixTileListRegName ( StringRef  Name)
static

◆ MatchNeonVectorRegName()

static unsigned MatchNeonVectorRegName ( StringRef  Name)
static

◆ MatchRegisterName()

static MCRegister MatchRegisterName ( StringRef  Name)
static

◆ matchSVEDataVectorRegName()

static unsigned matchSVEDataVectorRegName ( StringRef  Name)
static

◆ matchSVEPredicateAsCounterRegName()

static unsigned matchSVEPredicateAsCounterRegName ( StringRef  Name)
static

◆ matchSVEPredicateVectorRegName()

static unsigned matchSVEPredicateVectorRegName ( StringRef  Name)
static

◆ parseVectorKind()

static std::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 2648 of file AArch64AsmParser.cpp.

References Default, llvm_unreachable, and llvm::StringRef::lower().

Referenced by isValidVectorKind().

◆ setRequiredFeatureString()

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

Variable Documentation

◆ ExtensionMap

const struct Extension ExtensionMap[]
static