17 #ifndef LLVM_AARCH64_BASEINFO_H
18 #define LLVM_AARCH64_BASEINFO_H
272 namespace A64PState {
309 namespace A64Layout {
331 inline static const char *
368 namespace A64SysReg {
1056 namespace AArch64II {
1124 bool isMOVZImm(
int RegWidth, uint64_t
Value,
int &UImm16,
int &Shift);
1125 bool isMOVNImm(
int RegWidth, uint64_t
Value,
int &UImm16,
int &Shift);
1131 uint64_t
decodeNeonModImm(
unsigned Val,
unsigned OpCmode,
unsigned &EltBits);
1133 unsigned &ShiftOnesIn);
static const NamedImmMapper::Mapping SysRegPairs[]
bool isMOVNImm(int RegWidth, uint64_t Value, int &UImm16, int &Shift)
const NamedImmMapper::Mapping * InstPairs
static A64Layout::VectorLayout A64StringToVectorLayout(StringRef LayoutStr)
static const Mapping ICPairs[]
static A64CC::CondCodes A64StringToCondCode(StringRef CondStr)
bool isLogicalImmBits(unsigned RegWidth, uint32_t Bits, uint64_t &Imm)
static const Mapping PRFMPairs[]
bool isLogicalImm(unsigned RegWidth, uint64_t Imm, uint32_t &Bits)
StringSwitch & Case(const char(&S)[N], const T &Value)
static bool NeedsRegister(ICValues Val)
#define llvm_unreachable(msg)
bool isMOVZImm(int RegWidth, uint64_t Value, int &UImm16, int &Shift)
bool decodeNeonModShiftImm(unsigned OpCmode, unsigned &ShiftImm, unsigned &ShiftOnesIn)
static const NamedImmMapper::Mapping MRSPairs[]
A self-contained host- and target-independent arbitrary-precision floating-point software implementat...
A switch()-like statement whose cases are string literals.
static const Mapping TLBIPairs[]
static const char * A64VectorLayoutToString(A64Layout::VectorLayout Layout)
static const NamedImmMapper::Mapping MSRPairs[]
uint64_t decodeNeonModImm(unsigned Val, unsigned OpCmode, unsigned &EltBits)
NamedImmMapper(const Mapping(&Pairs)[N], uint32_t TooBigImm)
bool validImm(uint32_t Value) const
static const Mapping ATPairs[]
static const Mapping DBarrierPairs[]
static bool NeedsRegister(TLBIValues Val)
static const Mapping PStatePairs[]
R Default(const T &Value) const
uint32_t ParseGenericRegister(StringRef Name, bool &Valid)
std::string toString(uint32_t Bits, bool &Valid) const
static const Mapping DCPairs[]
StringRef toString(uint32_t Value, bool &Valid) const
uint32_t fromString(StringRef Name, bool &Valid) const
static A64CC::CondCodes A64InvertCondCode(A64CC::CondCodes CC)
bool isOnlyMOVNImm(int RegWidth, uint64_t Value, int &UImm16, int &Shift)
LLVM Value Representation.
uint32_t fromString(StringRef Name, bool &Valid) const
bool isFPImm(const APFloat &Val, uint32_t &Imm8Bits)
static const Mapping ISBPairs[]
static const char * A64CondCodeToString(A64CC::CondCodes CC)
std::string lower() const