namespace llvm {
+class FeatureBitset;
+
inline static unsigned getWRegFromXReg(unsigned Reg) {
switch (Reg) {
case AArch64::X0: return AArch64::W0;
const AArch64NamedImmMapper::Mapping *InstPairs;
size_t NumInstPairs;
- uint64_t FeatureBits;
+ const FeatureBitset &FeatureBits;
- SysRegMapper(uint64_t FeatureBits) : FeatureBits(FeatureBits) { }
+ SysRegMapper(const FeatureBitset &FeatureBits) : FeatureBits(FeatureBits) { }
uint32_t fromString(StringRef Name, bool &Valid) const;
std::string toString(uint32_t Bits) const;
};
struct MSRMapper : SysRegMapper {
static const AArch64NamedImmMapper::Mapping MSRPairs[];
- MSRMapper(uint64_t FeatureBits);
+ MSRMapper(const FeatureBitset &FeatureBits);
};
struct MRSMapper : SysRegMapper {
static const AArch64NamedImmMapper::Mapping MRSPairs[];
- MRSMapper(uint64_t FeatureBits);
+ MRSMapper(const FeatureBitset &FeatureBits);
};
uint32_t ParseGenericRegister(StringRef Name, bool &Valid);