47 TII.
makeFrame(Mips::SP, StackSize, MBB, MBBI);
72 BuildMI(MBB, MBBI, dl, TII.get(Mips::MoveR3216), Mips::S0)
90 BuildMI(MBB, MBBI, dl, TII.get(Mips::Move32R16), Mips::SP)
101 const std::vector<CalleeSavedInfo> &CSI,
111 for (
unsigned i = 0, e = CSI.size(); i != e; ++i) {
117 unsigned Reg = CSI[i].getReg();
118 bool IsRAAndRetAddrIsTaken = (Reg == Mips::RA)
120 if (!IsRAAndRetAddrIsTaken)
129 const std::vector<CalleeSavedInfo> &CSI,
146 int64_t Amount = I->getOperand(0).getImm();
148 if (I->getOpcode() == Mips::ADJCALLSTACKDOWN)
void processFunctionBeforeCalleeSavedScan(MachineFunction &MF, RegScavenger *RS) const
const MachineFunction * getParent() const
instr_iterator erase(instr_iterator I)
void setPhysRegUsed(unsigned Reg)
int getDwarfRegNum(unsigned RegNum, bool isEH) const
Map a target register to an equivalent dwarf register number. Returns -1 if there is no equivalent va...
const MipsFrameLowering * createMips16FrameLowering(const MipsSubtarget &ST)
Create MipsFrameLowering objects.
void eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const
void makeFrame(unsigned SP, int64_t FrameSize, MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const
bool spillCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const std::vector< CalleeSavedInfo > &CSI, const TargetRegisterInfo *TRI) const
static MCCFIInstruction createOffset(MCSymbol *L, unsigned Register, int Offset)
.cfi_offset Previous value of Register is saved at offset Offset from CFA.
bool adjustsStack() const
void addLiveIn(unsigned Reg)
bool isReturnAddressTaken() const
static MCCFIInstruction createDefCfaOffset(MCSymbol *L, int Offset)
.cfi_def_cfa_offset modifies a rule for computing CFA. Register remains the same, but offset is new...
uint64_t getStackSize() const
MCSymbol * CreateTempSymbol()
const HexagonInstrInfo * TII
void adjustStackPtr(unsigned SP, int64_t Amount, MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const
Adjust SP by Amount bytes.
Abstract Stack Frame Information.
const MachineBasicBlock & front() const
iterator getLastNonDebugInstr()
void emitPrologue(MachineFunction &MF) const
void restoreFrame(unsigned SP, int64_t FrameSize, MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const
bundle_iterator< MachineInstr, instr_iterator > iterator
bool hasReservedCallFrame(const MachineFunction &MF) const
bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const std::vector< CalleeSavedInfo > &CSI, const TargetRegisterInfo *TRI) const
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const
MachineInstrBuilder BuildMI(MachineFunction &MF, DebugLoc DL, const MCInstrDesc &MCID)
virtual const TargetInstrInfo * getInstrInfo() const
const MCContext & getContext() const
unsigned getMaxCallFrameSize() const
MachineFrameInfo * getFrameInfo()
const MCRegisterInfo * getRegisterInfo() const
MachineRegisterInfo & getRegInfo()
void addFrameInst(const MCCFIInstruction &Inst)
const TargetMachine & getTarget() const
bool hasVarSizedObjects() const
MachineModuleInfo & getMMI() const
const MCRegisterInfo & MRI
bool hasFP(const MachineFunction &MF) const