21#define GET_ATsList_IMPL
22#include "AArch64GenSystemOperands.inc"
29#define GET_DBnXSsList_IMPL
30#include "AArch64GenSystemOperands.inc"
36#define GET_DBsList_IMPL
37#include "AArch64GenSystemOperands.inc"
43#define GET_DCsList_IMPL
44#include "AArch64GenSystemOperands.inc"
50#define GET_ICsList_IMPL
51#include "AArch64GenSystemOperands.inc"
57#define GET_ISBsList_IMPL
58#include "AArch64GenSystemOperands.inc"
64#define GET_PRFMsList_IMPL
65#include "AArch64GenSystemOperands.inc"
71#define GET_SVEPRFMsList_IMPL
72#include "AArch64GenSystemOperands.inc"
78#define GET_RPRFMsList_IMPL
79#include "AArch64GenSystemOperands.inc"
85#define GET_SVEPREDPATsList_IMPL
86#include "AArch64GenSystemOperands.inc"
92#define GET_SVEVECLENSPECIFIERsList_IMPL
93#include "AArch64GenSystemOperands.inc"
99#define GET_ExactFPImmsList_IMPL
100#include "AArch64GenSystemOperands.inc"
106#define GET_PStateImm0_15sList_IMPL
107#include "AArch64GenSystemOperands.inc"
108#define GET_PStateImm0_1sList_IMPL
109#include "AArch64GenSystemOperands.inc"
115#define GET_TINDEX_IMPL
116#include "AArch64GenSystemOperands.inc"
122#define GET_SysRegsList_IMPL
123#include "AArch64GenSystemOperands.inc"
129 static const Regex GenericRegPattern(
"^S([0-3])_([0-7])_C([0-9]|1[0-5])_C([0-9]|1[0-5])_([0-7])$");
131 std::string UpperName = Name.upper();
133 if (!GenericRegPattern.
match(UpperName, &
Ops))
136 uint32_t Op0 = 0, Op1 = 0, CRn = 0, CRm = 0, Op2 = 0;
138 Ops[1].getAsInteger(10, Op0);
139 Ops[2].getAsInteger(10, Op1);
140 Ops[3].getAsInteger(10, CRn);
141 Ops[4].getAsInteger(10, CRm);
142 Ops[5].getAsInteger(10, Op2);
143 Bits = (Op0 << 14) | (Op1 << 11) | (CRn << 7) | (CRm << 3) | Op2;
162#define GET_TLBITable_IMPL
163#include "AArch64GenSystemOperands.inc"
169#define GET_PLBITable_IMPL
170#include "AArch64GenSystemOperands.inc"
176#define GET_TLBIPTable_IMPL
177#include "AArch64GenSystemOperands.inc"
183#define GET_GICTable_IMPL
184#include "AArch64GenSystemOperands.inc"
190#define GET_GICRTable_IMPL
191#include "AArch64GenSystemOperands.inc"
197#define GET_GSBTable_IMPL
198#include "AArch64GenSystemOperands.inc"
204#define GET_SVCRsList_IMPL
205#include "AArch64GenSystemOperands.inc"
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
const AbstractManglingParser< Derived, Alloc >::OperatorInfo AbstractManglingParser< Derived, Alloc >::Ops[]
This file defines the SmallVector class.
LLVM_ABI bool match(StringRef String, SmallVectorImpl< StringRef > *Matches=nullptr, std::string *Error=nullptr) const
matches - Match the regex against a given String.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Represent a constant reference to a string, i.e.
uint32_t parseGenericRegister(StringRef Name)
std::string genericRegisterString(uint32_t Bits)
This is an optimization pass for GlobalISel generic memory operations.
std::string utostr(uint64_t X, bool isNeg=false)