25 cl::desc(
"Always use $gp as the global base register."));
43 ? &Mips::CPU16RegsRegClass
46 ? &Mips::GPRMM16_64RegClass
47 : &Mips::GPRMM16RegClass
51 ? &Mips::GPR64RegClass
52 : &Mips::GPR32RegClass;
57 for (
int I = 0;
I < 4; ++
I) {
60 ? &Mips::GPR64RegClass
61 : &Mips::GPR32RegClass;
75 for (
int I = 0;
I < 2; ++
I)
81 return CallsEhReturn && (FI == EhDataRegFI[0] || FI == EhDataRegFI[1]
82 || FI == EhDataRegFI[2] || FI == EhDataRegFI[3]);
86 return IsISR && (FI == ISRDataRegFI[0] || FI == ISRDataRegFI[1]);
97 if (MoveF64ViaSpillFI == -1) {
101 return MoveF64ViaSpillFI;
104 void MipsFunctionInfo::anchor() { }
unsigned createVirtualRegister(const TargetRegisterClass *RegClass)
createVirtualRegister - Create and return a new virtual register in the function with the specified r...
unsigned getSize() const
Return the size of the register in bytes, which is also the size of a stack slot allocated to hold a ...
MachinePointerInfo callPtrInfo(const char *ES)
Create a MachinePointerInfo that has an ExternalSymbolPseudoSourceValue object representing a GOT ent...
const TargetSubtargetInfo & getSubtarget() const
getSubtarget - Return the subtarget for which this machine code is being compiled.
void createEhDataRegsFI()
PseudoSourceValueManager & getPSVManager() const
initializer< Ty > init(const Ty &Val)
const PseudoSourceValue * getExternalSymbolCallEntry(const char *ES)
unsigned getAlignment() const
Return the minimum required alignment for a register of this class.
MachineFrameInfo & getFrameInfo()
getFrameInfo - Return the frame info object for the current function.
bool inMicroMipsMode() const
bool inMips16Mode() const
bool isISRRegFI(int FI) const
This class contains a discriminated union of information about pointers in memory operands...
bool isEhDataRegFI(int FI) const
unsigned getGlobalBaseReg()
const PseudoSourceValue * getGlobalValueCallEntry(const GlobalValue *GV)
MachineRegisterInfo & getRegInfo()
getRegInfo - Return information about the registers currently in use.
int getMoveF64ViaSpillFI(const TargetRegisterClass *RC)
const TargetMachine & getTarget() const
getTarget - Return the target machine this machine code is compiled with
bool globalBaseRegSet() const
int CreateStackObject(uint64_t Size, unsigned Alignment, bool isSS, const AllocaInst *Alloca=nullptr)
Create a new statically sized stack object, returning a nonnegative identifier to represent it...
static cl::opt< bool > FixGlobalBaseReg("mips-fix-global-base-reg", cl::Hidden, cl::init(true), cl::desc("Always use $gp as the global base register."))