21 cl::desc(
"MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"),
25 cl::desc(
"MIPS: Don't trap on integer division by zero."),
29static const MCPhysReg O32IntRegs[4] = {Mips::A0, Mips::A1, Mips::A2, Mips::A3};
31static const MCPhysReg Mips64IntRegs[8] = {
32 Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64,
33 Mips::T0_64, Mips::T1_64, Mips::T2_64, Mips::T3_64};
73 assert(ABIName.
empty() &&
"Unknown ABI option for MIPS");
125 static const unsigned EhDataReg[] = {
126 Mips::A0, Mips::A1, Mips::A2, Mips::A3
128 static const unsigned EhDataReg64[] = {
129 Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64
132 return IsN64() ? EhDataReg64[
I] : EhDataReg[
I];
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
cl::opt< bool > EmitJalrReloc("mips-jalr-reloc", cl::Hidden, cl::desc("MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"), cl::init(true))
cl::opt< bool > NoZeroDivCheck("mno-check-zero-division", cl::Hidden, cl::desc("MIPS: Don't trap on integer division by zero."), cl::init(false))
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
bool AreGprs64bit() const
unsigned GetGlobalPtr() const
unsigned GetEhDataReg(unsigned I) const
bool ArePtrs64bit() const
unsigned GetGPRMoveOp() const
unsigned GetStackPtr() const
unsigned GetZeroReg() const
unsigned GetCalleeAllocdArgSizeInBytes(CallingConv::ID CC) const
Obtain the size of the area allocated by the callee for arguments.
unsigned GetPtrAddiuOp() const
unsigned GetPtrAndOp() const
unsigned GetFramePtr() const
static MipsABIInfo computeTargetABI(const Triple &TT, StringRef ABIName)
ArrayRef< MCPhysReg > GetByValArgRegs() const
The registers to use for byval arguments.
unsigned GetNullPtr() const
ArrayRef< MCPhysReg > getVarArgRegs(bool isGP64bit) const
The registers to use for the variable argument list.
unsigned GetPtrAdduOp() const
unsigned GetBasePtr() const
unsigned GetPtrSubuOp() const
StringRef - Represent a constant reference to a string, i.e.
bool starts_with(StringRef Prefix) const
Check if this string starts with the given Prefix.
constexpr bool empty() const
empty - Check if the string is empty.
Triple - Helper class for working with autoconf configuration names.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
@ Fast
Attempts to make calls as fast as possible (e.g.
initializer< Ty > init(const Ty &Val)
This is an optimization pass for GlobalISel generic memory operations.
uint16_t MCPhysReg
An unsigned integer type large enough to represent all physical registers, but not necessarily virtua...
ArrayRef(const T &OneElt) -> ArrayRef< T >