24 #include "AArch64GenSystemOperands.inc"
32 #include "AArch64GenSystemOperands.inc"
39 #include "AArch64GenSystemOperands.inc"
46 #include "AArch64GenSystemOperands.inc"
51 namespace AArch64ISB {
53 #include "AArch64GenSystemOperands.inc"
57 namespace AArch64PRFM {
59 #include "AArch64GenSystemOperands.inc"
64 namespace AArch64PState {
65 #define GET_PSTATE_IMPL
66 #include "AArch64GenSystemOperands.inc"
71 namespace AArch64PSBHint {
73 #include "AArch64GenSystemOperands.inc"
78 namespace AArch64SysReg {
79 #define GET_SYSREG_IMPL
80 #include "AArch64GenSystemOperands.inc"
86 Regex GenericRegPattern(
"^S([0-3])_([0-7])_C([0-9]|1[0-5])_C([0-9]|1[0-5])_([0-7])$");
88 std::string UpperName = Name.
upper();
90 if (!GenericRegPattern.
match(UpperName, &Ops))
93 uint32_t Op0 = 0, Op1 = 0, CRn = 0, CRm = 0, Op2 = 0;
95 Ops[1].getAsInteger(10, Op0);
96 Ops[2].getAsInteger(10, Op1);
97 Ops[3].getAsInteger(10, CRn);
98 Ops[4].getAsInteger(10, CRm);
99 Ops[5].getAsInteger(10, Op2);
100 Bits = (Op0 << 14) | (Op1 << 11) | (CRn << 7) | (CRm << 3) | Op2;
118 namespace AArch64TLBI {
119 #define GET_TLBI_IMPL
120 #include "AArch64GenSystemOperands.inc"
static std::string utostr(uint64_t X, bool isNeg=false)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
LLVM_NODISCARD std::string upper() const
Convert the given ASCII string to uppercase.
std::string genericRegisterString(uint32_t Bits)
uint32_t parseGenericRegister(StringRef Name)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
bool match(StringRef String, SmallVectorImpl< StringRef > *Matches=nullptr)
matches - Match the regex against a given String.
StringRef - Represent a constant reference to a string, i.e.