Go to the documentation of this file.
23 cl::desc(
"MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"),
27 static const MCPhysReg O32IntRegs[4] = {Mips::A0, Mips::A1, Mips::A2, Mips::A3};
29 static const MCPhysReg Mips64IntRegs[8] = {
30 Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64,
31 Mips::T0_64, Mips::T1_64, Mips::T2_64, Mips::T3_64};
60 if (
Options.getABIName().startswith(
"o32"))
62 if (
Options.getABIName().startswith(
"n32"))
64 if (
Options.getABIName().startswith(
"n64"))
68 assert(
Options.getABIName().empty() &&
"Unknown ABI option for MIPS");
120 static const unsigned EhDataReg[] = {
121 Mips::A0, Mips::A1, Mips::A2, Mips::A3
123 static const unsigned EhDataReg64[] = {
124 Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64
127 return IsN64() ? EhDataReg64[
I] : EhDataReg[
I];
unsigned GetCalleeAllocdArgSizeInBytes(CallingConv::ID CC) const
Obtain the size of the area allocated by the callee for arguments.
This is an optimization pass for GlobalISel generic memory operations.
bool ArePtrs64bit() const
unsigned GetFramePtr() const
Triple - Helper class for working with autoconf configuration names.
bool AreGprs64bit() const
ArrayRef< MCPhysReg > GetByValArgRegs() const
The registers to use for byval arguments.
unsigned GetStackPtr() const
unsigned GetPtrSubuOp() const
cl::opt< bool > EmitJalrReloc("mips-jalr-reloc", cl::Hidden, cl::desc("MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"), cl::init(true))
ArrayRef< MCPhysReg > GetVarArgRegs() const
The registers to use for the variable argument list.
static MipsABIInfo computeTargetABI(const Triple &TT, StringRef CPU, const MCTargetOptions &Options)
unsigned GetPtrAddiuOp() const
const char LLVMTargetMachineRef LLVMPassBuilderOptionsRef Options
@ AND
Bitwise operators - logical and, logical or, logical xor.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
@ Fast
Fast - This calling convention attempts to make calls as fast as possible (e.g.
unsigned GetPtrAndOp() const
uint16_t MCPhysReg
An unsigned integer type large enough to represent all physical registers, but not necessarily virtua...
initializer< Ty > init(const Ty &Val)
unsigned GetZeroReg() const
unsigned GetGlobalPtr() const
unsigned GetPtrAdduOp() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
StringRef - Represent a constant reference to a string, i.e.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
unsigned GetEhDataReg(unsigned I) const
unsigned GetGPRMoveOp() const
unsigned GetNullPtr() const
ArrayRef< T > makeArrayRef(const T &OneElt)
Construct an ArrayRef from a single element.
unsigned GetBasePtr() const