16#ifndef LLVM_LIB_TARGET_AARCH64_UTILS_AARCH64BASEINFO_H
17#define LLVM_LIB_TARGET_AARCH64_UTILS_AARCH64BASEINFO_H
34 case AArch64::X0:
return AArch64::W0;
35 case AArch64::X1:
return AArch64::W1;
36 case AArch64::X2:
return AArch64::W2;
37 case AArch64::X3:
return AArch64::W3;
38 case AArch64::X4:
return AArch64::W4;
39 case AArch64::X5:
return AArch64::W5;
40 case AArch64::X6:
return AArch64::W6;
41 case AArch64::X7:
return AArch64::W7;
42 case AArch64::X8:
return AArch64::W8;
43 case AArch64::X9:
return AArch64::W9;
44 case AArch64::X10:
return AArch64::W10;
45 case AArch64::X11:
return AArch64::W11;
46 case AArch64::X12:
return AArch64::W12;
47 case AArch64::X13:
return AArch64::W13;
48 case AArch64::X14:
return AArch64::W14;
49 case AArch64::X15:
return AArch64::W15;
50 case AArch64::X16:
return AArch64::W16;
51 case AArch64::X17:
return AArch64::W17;
52 case AArch64::X18:
return AArch64::W18;
53 case AArch64::X19:
return AArch64::W19;
54 case AArch64::X20:
return AArch64::W20;
55 case AArch64::X21:
return AArch64::W21;
56 case AArch64::X22:
return AArch64::W22;
57 case AArch64::X23:
return AArch64::W23;
58 case AArch64::X24:
return AArch64::W24;
59 case AArch64::X25:
return AArch64::W25;
60 case AArch64::X26:
return AArch64::W26;
61 case AArch64::X27:
return AArch64::W27;
62 case AArch64::X28:
return AArch64::W28;
63 case AArch64::FP:
return AArch64::W29;
64 case AArch64::LR:
return AArch64::W30;
65 case AArch64::SP:
return AArch64::WSP;
66 case AArch64::XZR:
return AArch64::WZR;
74 case AArch64::W0:
return AArch64::X0;
75 case AArch64::W1:
return AArch64::X1;
76 case AArch64::W2:
return AArch64::X2;
77 case AArch64::W3:
return AArch64::X3;
78 case AArch64::W4:
return AArch64::X4;
79 case AArch64::W5:
return AArch64::X5;
80 case AArch64::W6:
return AArch64::X6;
81 case AArch64::W7:
return AArch64::X7;
82 case AArch64::W8:
return AArch64::X8;
83 case AArch64::W9:
return AArch64::X9;
84 case AArch64::W10:
return AArch64::X10;
85 case AArch64::W11:
return AArch64::X11;
86 case AArch64::W12:
return AArch64::X12;
87 case AArch64::W13:
return AArch64::X13;
88 case AArch64::W14:
return AArch64::X14;
89 case AArch64::W15:
return AArch64::X15;
90 case AArch64::W16:
return AArch64::X16;
91 case AArch64::W17:
return AArch64::X17;
92 case AArch64::W18:
return AArch64::X18;
93 case AArch64::W19:
return AArch64::X19;
94 case AArch64::W20:
return AArch64::X20;
95 case AArch64::W21:
return AArch64::X21;
96 case AArch64::W22:
return AArch64::X22;
97 case AArch64::W23:
return AArch64::X23;
98 case AArch64::W24:
return AArch64::X24;
99 case AArch64::W25:
return AArch64::X25;
100 case AArch64::W26:
return AArch64::X26;
101 case AArch64::W27:
return AArch64::X27;
102 case AArch64::W28:
return AArch64::X28;
103 case AArch64::W29:
return AArch64::FP;
104 case AArch64::W30:
return AArch64::LR;
105 case AArch64::WSP:
return AArch64::SP;
106 case AArch64::WZR:
return AArch64::XZR;
113 switch (RegTuple.
id()) {
114 case AArch64::X0_X1_X2_X3_X4_X5_X6_X7:
return AArch64::X0;
115 case AArch64::X2_X3_X4_X5_X6_X7_X8_X9:
return AArch64::X2;
116 case AArch64::X4_X5_X6_X7_X8_X9_X10_X11:
return AArch64::X4;
117 case AArch64::X6_X7_X8_X9_X10_X11_X12_X13:
return AArch64::X6;
118 case AArch64::X8_X9_X10_X11_X12_X13_X14_X15:
return AArch64::X8;
119 case AArch64::X10_X11_X12_X13_X14_X15_X16_X17:
return AArch64::X10;
120 case AArch64::X12_X13_X14_X15_X16_X17_X18_X19:
return AArch64::X12;
121 case AArch64::X14_X15_X16_X17_X18_X19_X20_X21:
return AArch64::X14;
122 case AArch64::X16_X17_X18_X19_X20_X21_X22_X23:
return AArch64::X16;
123 case AArch64::X18_X19_X20_X21_X22_X23_X24_X25:
return AArch64::X18;
124 case AArch64::X20_X21_X22_X23_X24_X25_X26_X27:
return AArch64::X20;
125 case AArch64::X22_X23_X24_X25_X26_X27_X28_FP:
return AArch64::X22;
133 case AArch64::D0:
return AArch64::B0;
134 case AArch64::D1:
return AArch64::B1;
135 case AArch64::D2:
return AArch64::B2;
136 case AArch64::D3:
return AArch64::B3;
137 case AArch64::D4:
return AArch64::B4;
138 case AArch64::D5:
return AArch64::B5;
139 case AArch64::D6:
return AArch64::B6;
140 case AArch64::D7:
return AArch64::B7;
141 case AArch64::D8:
return AArch64::B8;
142 case AArch64::D9:
return AArch64::B9;
143 case AArch64::D10:
return AArch64::B10;
144 case AArch64::D11:
return AArch64::B11;
145 case AArch64::D12:
return AArch64::B12;
146 case AArch64::D13:
return AArch64::B13;
147 case AArch64::D14:
return AArch64::B14;
148 case AArch64::D15:
return AArch64::B15;
149 case AArch64::D16:
return AArch64::B16;
150 case AArch64::D17:
return AArch64::B17;
151 case AArch64::D18:
return AArch64::B18;
152 case AArch64::D19:
return AArch64::B19;
153 case AArch64::D20:
return AArch64::B20;
154 case AArch64::D21:
return AArch64::B21;
155 case AArch64::D22:
return AArch64::B22;
156 case AArch64::D23:
return AArch64::B23;
157 case AArch64::D24:
return AArch64::B24;
158 case AArch64::D25:
return AArch64::B25;
159 case AArch64::D26:
return AArch64::B26;
160 case AArch64::D27:
return AArch64::B27;
161 case AArch64::D28:
return AArch64::B28;
162 case AArch64::D29:
return AArch64::B29;
163 case AArch64::D30:
return AArch64::B30;
164 case AArch64::D31:
return AArch64::B31;
172 case AArch64::B0:
return AArch64::D0;
173 case AArch64::B1:
return AArch64::D1;
174 case AArch64::B2:
return AArch64::D2;
175 case AArch64::B3:
return AArch64::D3;
176 case AArch64::B4:
return AArch64::D4;
177 case AArch64::B5:
return AArch64::D5;
178 case AArch64::B6:
return AArch64::D6;
179 case AArch64::B7:
return AArch64::D7;
180 case AArch64::B8:
return AArch64::D8;
181 case AArch64::B9:
return AArch64::D9;
182 case AArch64::B10:
return AArch64::D10;
183 case AArch64::B11:
return AArch64::D11;
184 case AArch64::B12:
return AArch64::D12;
185 case AArch64::B13:
return AArch64::D13;
186 case AArch64::B14:
return AArch64::D14;
187 case AArch64::B15:
return AArch64::D15;
188 case AArch64::B16:
return AArch64::D16;
189 case AArch64::B17:
return AArch64::D17;
190 case AArch64::B18:
return AArch64::D18;
191 case AArch64::B19:
return AArch64::D19;
192 case AArch64::B20:
return AArch64::D20;
193 case AArch64::B21:
return AArch64::D21;
194 case AArch64::B22:
return AArch64::D22;
195 case AArch64::B23:
return AArch64::D23;
196 case AArch64::B24:
return AArch64::D24;
197 case AArch64::B25:
return AArch64::D25;
198 case AArch64::B26:
return AArch64::D26;
199 case AArch64::B27:
return AArch64::D27;
200 case AArch64::B28:
return AArch64::D28;
201 case AArch64::B29:
return AArch64::D29;
202 case AArch64::B30:
return AArch64::D30;
203 case AArch64::B31:
return AArch64::D31;
211 case AArch64::LDADDAB:
case AArch64::LDADDAH:
212 case AArch64::LDADDAW:
case AArch64::LDADDAX:
213 case AArch64::LDADDALB:
case AArch64::LDADDALH:
214 case AArch64::LDADDALW:
case AArch64::LDADDALX:
215 case AArch64::LDCLRAB:
case AArch64::LDCLRAH:
216 case AArch64::LDCLRAW:
case AArch64::LDCLRAX:
217 case AArch64::LDCLRALB:
case AArch64::LDCLRALH:
218 case AArch64::LDCLRALW:
case AArch64::LDCLRALX:
219 case AArch64::LDEORAB:
case AArch64::LDEORAH:
220 case AArch64::LDEORAW:
case AArch64::LDEORAX:
221 case AArch64::LDEORALB:
case AArch64::LDEORALH:
222 case AArch64::LDEORALW:
case AArch64::LDEORALX:
223 case AArch64::LDSETAB:
case AArch64::LDSETAH:
224 case AArch64::LDSETAW:
case AArch64::LDSETAX:
225 case AArch64::LDSETALB:
case AArch64::LDSETALH:
226 case AArch64::LDSETALW:
case AArch64::LDSETALX:
227 case AArch64::LDSMAXAB:
case AArch64::LDSMAXAH:
228 case AArch64::LDSMAXAW:
case AArch64::LDSMAXAX:
229 case AArch64::LDSMAXALB:
case AArch64::LDSMAXALH:
230 case AArch64::LDSMAXALW:
case AArch64::LDSMAXALX:
231 case AArch64::LDSMINAB:
case AArch64::LDSMINAH:
232 case AArch64::LDSMINAW:
case AArch64::LDSMINAX:
233 case AArch64::LDSMINALB:
case AArch64::LDSMINALH:
234 case AArch64::LDSMINALW:
case AArch64::LDSMINALX:
235 case AArch64::LDUMAXAB:
case AArch64::LDUMAXAH:
236 case AArch64::LDUMAXAW:
case AArch64::LDUMAXAX:
237 case AArch64::LDUMAXALB:
case AArch64::LDUMAXALH:
238 case AArch64::LDUMAXALW:
case AArch64::LDUMAXALX:
239 case AArch64::LDUMINAB:
case AArch64::LDUMINAH:
240 case AArch64::LDUMINAW:
case AArch64::LDUMINAX:
241 case AArch64::LDUMINALB:
case AArch64::LDUMINALH:
242 case AArch64::LDUMINALW:
case AArch64::LDUMINALX:
243 case AArch64::SWPAB:
case AArch64::SWPAH:
244 case AArch64::SWPAW:
case AArch64::SWPAX:
245 case AArch64::SWPALB:
case AArch64::SWPALH:
246 case AArch64::SWPALW:
case AArch64::SWPALX:
273 if (!IsExact || !IntVal.isPowerOf2())
275 unsigned FBits = IntVal.logBase2();
279 if (FBits == 0 || FBits > RegWidth)
318 case EQ:
return "eq";
319 case NE:
return "ne";
320 case HS:
return "hs";
321 case LO:
return "lo";
322 case MI:
return "mi";
323 case PL:
return "pl";
324 case VS:
return "vs";
325 case VC:
return "vc";
326 case HI:
return "hi";
327 case LS:
return "ls";
328 case GE:
return "ge";
329 case LT:
return "lt";
330 case GT:
return "gt";
331 case LE:
return "le";
332 case AL:
return "al";
333 case NV:
return "nv";
340 return static_cast<CondCode>(
static_cast<unsigned>(Code) ^ 0x1);
379 enum {
N = 8, Z = 4,
C = 2, V = 1 };
431 return ActiveFeatures[llvm::AArch64::FeatureAll] ||
464namespace AArch64SVCR {
468#define GET_SVCRValues_DECL
469#define GET_SVCRsList_DECL
470#include "AArch64GenSystemOperands.inc"
477#define GET_ATValues_DECL
478#define GET_ATsList_DECL
479#include "AArch64GenSystemOperands.inc"
486#define GET_DBValues_DECL
487#define GET_DBsList_DECL
488#include "AArch64GenSystemOperands.inc"
495#define GET_DBnXSValues_DECL
496#define GET_DBnXSsList_DECL
497#include "AArch64GenSystemOperands.inc"
504#define GET_DCValues_DECL
505#define GET_DCsList_DECL
506#include "AArch64GenSystemOperands.inc"
513#define GET_ICValues_DECL
514#define GET_ICsList_DECL
515#include "AArch64GenSystemOperands.inc"
522#define GET_ISBValues_DECL
523#define GET_ISBsList_DECL
524#include "AArch64GenSystemOperands.inc"
531#define GET_TSBValues_DECL
532#define GET_TSBsList_DECL
533#include "AArch64GenSystemOperands.inc"
540#define GET_PRFMValues_DECL
541#define GET_PRFMsList_DECL
542#include "AArch64GenSystemOperands.inc"
549#define GET_SVEPRFMValues_DECL
550#define GET_SVEPRFMsList_DECL
551#include "AArch64GenSystemOperands.inc"
558#define GET_RPRFMValues_DECL
559#define GET_RPRFMsList_DECL
560#include "AArch64GenSystemOperands.inc"
568#define GET_SVEPREDPATValues_DECL
569#define GET_SVEPREDPATsList_DECL
570#include "AArch64GenSystemOperands.inc"
578#define GET_SVEVECLENSPECIFIERValues_DECL
579#define GET_SVEVECLENSPECIFIERsList_DECL
580#include "AArch64GenSystemOperands.inc"
589 case AArch64SVEPredPattern::vl1:
590 case AArch64SVEPredPattern::vl2:
591 case AArch64SVEPredPattern::vl3:
592 case AArch64SVEPredPattern::vl4:
593 case AArch64SVEPredPattern::vl5:
594 case AArch64SVEPredPattern::vl6:
595 case AArch64SVEPredPattern::vl7:
596 case AArch64SVEPredPattern::vl8:
598 case AArch64SVEPredPattern::vl16:
600 case AArch64SVEPredPattern::vl32:
602 case AArch64SVEPredPattern::vl64:
604 case AArch64SVEPredPattern::vl128:
606 case AArch64SVEPredPattern::vl256:
612inline std::optional<unsigned>
614 switch (MinNumElts) {
627 return AArch64SVEPredPattern::vl16;
629 return AArch64SVEPredPattern::vl32;
631 return AArch64SVEPredPattern::vl64;
633 return AArch64SVEPredPattern::vl128;
635 return AArch64SVEPredPattern::vl256;
665#define GET_ExactFPImmValues_DECL
666#define GET_ExactFPImmsList_DECL
667#include "AArch64GenSystemOperands.inc"
674#define GET_PStateImm0_15Values_DECL
675#define GET_PStateImm0_15sList_DECL
676#include "AArch64GenSystemOperands.inc"
681#define GET_PStateImm0_1Values_DECL
682#define GET_PStateImm0_1sList_DECL
683#include "AArch64GenSystemOperands.inc"
690#define GET_PSBValues_DECL
691#define GET_PSBsList_DECL
692#include "AArch64GenSystemOperands.inc"
702 return ActiveFeatures[llvm::AArch64::FeatureAll] ||
707#define GET_PHintValues_DECL
708#define GET_PHintsList_DECL
709#include "AArch64GenSystemOperands.inc"
719#define GET_BTIValues_DECL
720#define GET_BTIsList_DECL
721#include "AArch64GenSystemOperands.inc"
728#define GET_CMHPRIORITYHINT_DECL
729#include "AArch64GenSystemOperands.inc"
736#define GET_TINDEX_DECL
737#include "AArch64GenSystemOperands.inc"
791inline static const char *
828namespace AArch64SysReg {
837 return ActiveFeatures[llvm::AArch64::FeatureAll] ||
842#define GET_SysRegsList_DECL
843#define GET_SysRegValues_DECL
844#include "AArch64GenSystemOperands.inc"
854#define GET_TLBITable_DECL
855#include "AArch64GenSystemOperands.inc"
862#define GET_TLBIPTable_DECL
863#include "AArch64GenSystemOperands.inc"
870#define GET_MLBITable_DECL
871#include "AArch64GenSystemOperands.inc"
878#define GET_GICTable_DECL
879#include "AArch64GenSystemOperands.inc"
886#define GET_GICRTable_DECL
887#include "AArch64GenSystemOperands.inc"
894#define GET_GSBTable_DECL
895#include "AArch64GenSystemOperands.inc"
902#define GET_PLBITable_DECL
903#include "AArch64GenSystemOperands.inc"
1027inline static std::optional<AArch64PACKey::ID>
1037 return std::nullopt;
1041 unsigned HintNum = 32;
1046 assert(HintNum != 32 &&
"No target kinds!");
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
This file declares a class to represent arbitrary precision floating point values and provide a varie...
This file implements the APSInt class, which is a simple class that represents an arbitrary sized int...
#define LLVM_DECLARE_ENUM_AS_BITMASK(Enum, LargestValue)
LLVM_DECLARE_ENUM_AS_BITMASK can be used to declare an enum type as a bit set, so that bitwise operat...
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
static constexpr roundingMode rmTowardZero
LLVM_ABI bool getExactInverse(APFloat *Inv) const
If this value is normal and has an exact, normal, multiplicative inverse, store it in inv and return ...
opStatus convertToInteger(MutableArrayRef< integerPart > Input, unsigned int Width, bool IsSigned, roundingMode RM, bool *IsExact) const
An arbitrary precision integer that knows its signedness.
Container class for subtarget features.
Wrapper class representing physical registers. Should be passed by value.
constexpr unsigned id() const
StringRef - Represent a constant reference to a string, i.e.
A switch()-like statement whose cases are string literals.
StringSwitch & Case(StringLiteral S, T Value)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
static bool isValidCBCond(AArch64CC::CondCode Code)
True, if a given condition code can be used in a fused compare-and-branch instructions,...
static CondCode getSwappedCondition(CondCode CC)
getSwappedCondition - assume the flags are set by MI(a,b), return the condition code if we modify the...
static const char * getCondCodeName(CondCode Code)
static CondCode getInvertedCondCode(CondCode Code)
static unsigned getNZCVToSatisfyCondCode(CondCode Code)
Given a condition code, return NZCV flags that would satisfy that condition.
TOF
Target Operand Flag enum.
@ MO_DLLIMPORT
MO_DLLIMPORT - On a symbol operand, this represents that the reference to the symbol is for an import...
@ MO_NC
MO_NC - Indicates whether the linker is expected to check the symbol reference for overflow.
@ MO_G1
MO_G1 - A symbol operand with this flag (granule 1) represents the bits 16-31 of a 64-bit address,...
@ MO_S
MO_S - Indicates that the bits of the symbol operand represented by MO_G0 etc are signed.
@ MO_PAGEOFF
MO_PAGEOFF - A symbol operand with this flag represents the offset of that symbol within a 4K page.
@ MO_GOT
MO_GOT - This flag indicates that a symbol operand represents the address of the GOT entry for the sy...
@ MO_PREL
MO_PREL - Indicates that the bits of the symbol operand represented by MO_G0 etc are PC relative.
@ MO_G0
MO_G0 - A symbol operand with this flag (granule 0) represents the bits 0-15 of a 64-bit address,...
@ MO_ARM64EC_CALLMANGLE
MO_ARM64EC_CALLMANGLE - Operand refers to the Arm64EC-mangled version of a symbol,...
@ MO_PAGE
MO_PAGE - A symbol operand with this flag represents the pc-relative offset of the 4K page containing...
@ MO_HI12
MO_HI12 - This flag indicates that a symbol operand represents the bits 13-24 of a 64-bit address,...
@ MO_TLS
MO_TLS - Indicates that the operand being accessed is some kind of thread-local symbol.
@ MO_G2
MO_G2 - A symbol operand with this flag (granule 2) represents the bits 32-47 of a 64-bit address,...
@ MO_TAGGED
MO_TAGGED - With MO_PAGE, indicates that the page includes a memory tag in bits 56-63.
@ MO_G3
MO_G3 - A symbol operand with this flag (granule 3) represents the high 16-bits of a 64-bit address,...
@ MO_COFFSTUB
MO_COFFSTUB - On a symbol operand "FOO", this indicates that the reference is actually to the "....
const PHint * lookupPHintByName(StringRef)
const PHint * lookupPHintByEncoding(uint16_t)
uint32_t parseGenericRegister(StringRef Name)
std::string genericRegisterString(uint32_t Bits)
static constexpr unsigned SVEMaxBitsPerVector
static constexpr unsigned SVEBitsPerBlock
@ C
The default llvm calling convention, compatible with C.
This is an optimization pass for GlobalISel generic memory operations.
static std::optional< AArch64PACKey::ID > AArch64StringToPACKeyID(StringRef Name)
Return numeric key ID for 2-letter identifier string.
TailFoldingOpts
An enum to describe what types of loops we should attempt to tail-fold: Disabled: None Reductions: Lo...
static unsigned getBTIHintNum(bool CallTarget, bool JumpTarget)
unsigned CheckFixedPointOperandConstant(APFloat &FVal, unsigned RegWidth, bool isReciprocal)
static AArch64Layout::VectorLayout AArch64StringToVectorLayout(StringRef LayoutStr)
static const char * AArch64VectorLayoutToString(AArch64Layout::VectorLayout Layout)
std::optional< unsigned > getSVEPredPatternFromNumElements(unsigned MinNumElts)
Return specific VL predicate pattern based on the number of elements.
static bool atomicBarrierDroppedOnZero(unsigned Opcode)
static MCRegister getXRegFromWReg(MCRegister Reg)
static MCRegister getXRegFromXRegTuple(MCRegister RegTuple)
static MCRegister getWRegFromXReg(MCRegister Reg)
unsigned getNumElementsFromSVEPredPattern(unsigned Pattern)
Return the number of active elements for VL1 to VL256 predicate pattern, zero for all other patterns.
static MCRegister getDRegFromBReg(MCRegister Reg)
@ Disabled
Don't do any conversion of .debug_str_offsets tables.
static MCRegister getBRegFromDReg(MCRegister Reg)
static StringRef AArch64PACKeyIDToString(AArch64PACKey::ID KeyID)
Return 2-letter identifier string for numeric key ID.
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAliasImm(const char *N, uint16_t E, uint16_t I)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAliasReg(const char *N, uint16_t E, bool R)
constexpr SysAliasReg(const char *N, uint16_t E, bool R)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAliasReg(const char *N, uint16_t E, bool R)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAliasReg(const char *N, uint16_t E, bool R)
bool haveFeatures(FeatureBitset ActiveFeatures) const
FeatureBitset FeaturesRequired
constexpr SysAliasOptionalReg(const char *N, uint16_t E, bool R, bool O)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAlias(const char *N, uint16_t E)
FeatureBitset FeaturesRequired
bool haveFeatures(FeatureBitset ActiveFeatures) const
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAliasOptionalReg(const char *N, uint16_t E, bool R, bool O)
constexpr SysAliasOptionalReg(const char *N, uint16_t E, bool R, bool O)
constexpr SysAlias(const char *N, uint16_t E)
constexpr SysAliasImm(const char *N, uint16_t E, uint16_t I)
constexpr SysAliasImm(const char *N, uint16_t E, uint16_t I, FeatureBitset F)
constexpr SysAliasOptionalReg(const char *N, uint16_t E, bool R, bool O, FeatureBitset F)
constexpr SysAliasOptionalReg(const char *N, uint16_t E, bool R, bool O)
constexpr SysAliasReg(const char *N, uint16_t E, bool R, FeatureBitset F)
constexpr SysAliasReg(const char *N, uint16_t E, bool R)
bool haveFeatures(FeatureBitset ActiveFeatures) const
constexpr SysAlias(const char *N, uint16_t E)
FeatureBitset getRequiredFeatures() const
FeatureBitset FeaturesRequired
constexpr SysAlias(const char *N, uint16_t E, FeatureBitset F)