#ifndef LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64ADDRESSINGMODES_H
#define LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64ADDRESSINGMODES_H
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/bit.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include <cassert>
namespace llvm {
namespace AArch64_AM {
enum ShiftExtendType { … };
static inline const char *getShiftExtendName(AArch64_AM::ShiftExtendType ST) { … }
static inline AArch64_AM::ShiftExtendType getShiftType(unsigned Imm) { … }
static inline unsigned getShiftValue(unsigned Imm) { … }
static inline unsigned getShifterImm(AArch64_AM::ShiftExtendType ST,
unsigned Imm) { … }
static inline unsigned getArithShiftValue(unsigned Imm) { … }
static inline AArch64_AM::ShiftExtendType getExtendType(unsigned Imm) { … }
static inline AArch64_AM::ShiftExtendType getArithExtendType(unsigned Imm) { … }
inline unsigned getExtendEncoding(AArch64_AM::ShiftExtendType ET) { … }
static inline unsigned getArithExtendImm(AArch64_AM::ShiftExtendType ET,
unsigned Imm) { … }
static inline bool getMemDoShift(unsigned Imm) { … }
static inline AArch64_AM::ShiftExtendType getMemExtendType(unsigned Imm) { … }
static inline unsigned getMemExtendImm(AArch64_AM::ShiftExtendType ET,
bool DoShift) { … }
static inline uint64_t ror(uint64_t elt, unsigned size) { … }
static inline bool processLogicalImmediate(uint64_t Imm, unsigned RegSize,
uint64_t &Encoding) { … }
static inline bool isLogicalImmediate(uint64_t imm, unsigned regSize) { … }
static inline uint64_t encodeLogicalImmediate(uint64_t imm, unsigned regSize) { … }
static inline uint64_t decodeLogicalImmediate(uint64_t val, unsigned regSize) { … }
static inline bool isValidDecodeLogicalImmediate(uint64_t val,
unsigned regSize) { … }
static inline float getFPImmFloat(unsigned Imm) { … }
static inline int getFP16Imm(const APInt &Imm) { … }
static inline int getFP16Imm(const APFloat &FPImm) { … }
static inline int getFP32Imm(const APInt &Imm) { … }
static inline int getFP32Imm(const APFloat &FPImm) { … }
static inline int getFP64Imm(const APInt &Imm) { … }
static inline int getFP64Imm(const APFloat &FPImm) { … }
static inline bool isAdvSIMDModImmType1(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType1(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType1(uint8_t Imm) { … }
static inline bool isAdvSIMDModImmType2(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType2(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType2(uint8_t Imm) { … }
static inline bool isAdvSIMDModImmType3(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType3(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType3(uint8_t Imm) { … }
static inline bool isAdvSIMDModImmType4(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType4(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType4(uint8_t Imm) { … }
static inline bool isAdvSIMDModImmType5(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType5(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType5(uint8_t Imm) { … }
static inline bool isAdvSIMDModImmType6(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType6(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType6(uint8_t Imm) { … }
static inline bool isAdvSIMDModImmType7(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType7(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType7(uint8_t Imm) { … }
static inline bool isAdvSIMDModImmType8(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType8(uint8_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType8(uint64_t Imm) { … }
static inline bool isAdvSIMDModImmType9(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType9(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType9(uint8_t Imm) { … }
static inline bool isAdvSIMDModImmType10(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType10(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType10(uint8_t Imm) { … }
static inline bool isAdvSIMDModImmType11(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType11(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType11(uint8_t Imm) { … }
static inline bool isAdvSIMDModImmType12(uint64_t Imm) { … }
static inline uint8_t encodeAdvSIMDModImmType12(uint64_t Imm) { … }
static inline uint64_t decodeAdvSIMDModImmType12(uint8_t Imm) { … }
template <typename T>
static inline bool isSVEMaskOfIdenticalElements(int64_t Imm) { … }
template <typename T>
static inline bool isSVECpyImm(int64_t Imm) { … }
template <typename T>
static inline bool isSVEAddSubImm(int64_t Imm) { … }
static inline bool isSVEMoveMaskPreferredLogicalImmediate(int64_t Imm) { … }
inline static bool isAnyMOVZMovAlias(uint64_t Value, int RegWidth) { … }
inline static bool isMOVZMovAlias(uint64_t Value, int Shift, int RegWidth) { … }
inline static bool isMOVNMovAlias(uint64_t Value, int Shift, int RegWidth) { … }
inline static bool isAnyMOVWMovAlias(uint64_t Value, int RegWidth) { … }
}
}
#endif