22 cl::desc(
"MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"),
26static const MCPhysReg O32IntRegs[4] = {Mips::A0, Mips::A1, Mips::A2, Mips::A3};
28static const MCPhysReg Mips64IntRegs[8] = {
29 Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64,
30 Mips::T0_64, Mips::T1_64, Mips::T2_64, Mips::T3_64};
59 if (
Options.getABIName().starts_with(
"o32"))
61 if (
Options.getABIName().starts_with(
"n32"))
63 if (
Options.getABIName().starts_with(
"n64"))
67 assert(
Options.getABIName().empty() &&
"Unknown ABI option for MIPS");
119 static const unsigned EhDataReg[] = {
120 Mips::A0, Mips::A1, Mips::A2, Mips::A3
122 static const unsigned EhDataReg64[] = {
123 Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64
126 return IsN64() ? EhDataReg64[
I] : EhDataReg[
I];
Implement a low-level type suitable for MachineInstr level instruction selection.
cl::opt< bool > EmitJalrReloc("mips-jalr-reloc", cl::Hidden, cl::desc("MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"), cl::init(true))
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
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
ArrayRef< MCPhysReg > GetVarArgRegs() const
The registers to use for the variable argument list.
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 CPU, const MCTargetOptions &Options)
ArrayRef< MCPhysReg > GetByValArgRegs() const
The registers to use for byval arguments.
unsigned GetNullPtr() const
unsigned GetPtrAdduOp() const
unsigned GetBasePtr() const
unsigned GetPtrSubuOp() const
StringRef - Represent a constant reference to a string, i.e.
Triple - Helper class for working with autoconf configuration names.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
@ 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.