Lines Matching refs:MBB
53 MachineBasicBlock &MBB) const { in emitPrologue()
54 MachineBasicBlock::iterator MBBI = MBB.begin(); in emitPrologue()
55 DebugLoc DL = (MBBI != MBB.end()) ? MBBI->getDebugLoc() : DebugLoc(); in emitPrologue()
63 BuildMI(MBB, MBBI, DL, TII.get(AVR::BSETs)) in emitPrologue()
71 BuildMI(MBB, MBBI, DL, TII.get(AVR::PUSHWRr)) in emitPrologue()
75 BuildMI(MBB, MBBI, DL, TII.get(AVR::INRdA), AVR::R0) in emitPrologue()
78 BuildMI(MBB, MBBI, DL, TII.get(AVR::PUSHRr)) in emitPrologue()
81 BuildMI(MBB, MBBI, DL, TII.get(AVR::EORRdRr)) in emitPrologue()
86 BuildMI(MBB, MBBI, DL, TII.get(AVR::EORRdRr)) in emitPrologue()
103 (MBBI != MBB.end()) && MBBI->getFlag(MachineInstr::FrameSetup) && in emitPrologue()
109 BuildMI(MBB, MBBI, DL, TII.get(AVR::SPREAD), AVR::R29R28) in emitPrologue()
126 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(Opcode), AVR::R29R28) in emitPrologue()
134 BuildMI(MBB, MBBI, DL, TII.get(AVR::SPWRITE), AVR::SP) in emitPrologue()
139 static void restoreStatusRegister(MachineFunction &MF, MachineBasicBlock &MBB) { in restoreStatusRegister() argument
142 MachineBasicBlock::iterator MBBI = MBB.getLastNonDebugInstr(); in restoreStatusRegister()
151 BuildMI(MBB, MBBI, DL, TII.get(AVR::POPRd), AVR::R0); in restoreStatusRegister()
152 BuildMI(MBB, MBBI, DL, TII.get(AVR::OUTARr)) in restoreStatusRegister()
155 BuildMI(MBB, MBBI, DL, TII.get(AVR::POPWRd), AVR::R1R0); in restoreStatusRegister()
160 MachineBasicBlock &MBB) const { in emitEpilogue()
169 MachineBasicBlock::iterator MBBI = MBB.getLastNonDebugInstr(); in emitEpilogue()
181 restoreStatusRegister(MF, MBB); in emitEpilogue()
186 while (MBBI != MBB.begin()) { in emitEpilogue()
208 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(Opcode), AVR::R29R28) in emitEpilogue()
215 BuildMI(MBB, MBBI, DL, TII.get(AVR::SPWRITE), AVR::SP) in emitEpilogue()
218 restoreStatusRegister(MF, MBB); in emitEpilogue()
238 MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, in spillCalleeSavedRegisters() argument
245 DebugLoc DL = MBB.findDebugLoc(MI); in spillCalleeSavedRegisters()
246 MachineFunction &MF = *MBB.getParent(); in spillCalleeSavedRegisters()
253 bool IsNotLiveIn = !MBB.isLiveIn(Reg); in spillCalleeSavedRegisters()
262 MBB.addLiveIn(Reg); in spillCalleeSavedRegisters()
266 BuildMI(MBB, MI, DL, TII.get(AVR::PUSHRr)) in spillCalleeSavedRegisters()
278 MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, in restoreCalleeSavedRegisters() argument
284 DebugLoc DL = MBB.findDebugLoc(MI); in restoreCalleeSavedRegisters()
285 const MachineFunction &MF = *MBB.getParent(); in restoreCalleeSavedRegisters()
295 BuildMI(MBB, MI, DL, TII.get(AVR::POPRd), Reg); in restoreCalleeSavedRegisters()
303 static void fixStackStores(MachineBasicBlock &MBB, in fixStackStores() argument
307 for (auto I = MI, E = MBB.end(); I != E && !I->isCall();) { in fixStackStores()
334 MachineFunction &MF, MachineBasicBlock &MBB, in eliminateCallFramePseudoInstr() argument
343 fixStackStores(MBB, MI, TII, AVR::R29R28); in eliminateCallFramePseudoInstr()
344 return MBB.erase(MI); in eliminateCallFramePseudoInstr()
362 BuildMI(MBB, MI, DL, TII.get(AVR::SPREAD), AVR::R31R30).addReg(AVR::SP); in eliminateCallFramePseudoInstr()
364 MachineInstr *New = BuildMI(MBB, MI, DL, TII.get(AVR::SUBIWRdK), AVR::R31R30) in eliminateCallFramePseudoInstr()
369 BuildMI(MBB, MI, DL, TII.get(AVR::SPWRITE), AVR::SP) in eliminateCallFramePseudoInstr()
374 fixStackStores(MBB, MI, TII, AVR::R31R30); in eliminateCallFramePseudoInstr()
392 BuildMI(MBB, MI, DL, TII.get(AVR::SPREAD), AVR::R31R30).addReg(AVR::SP); in eliminateCallFramePseudoInstr()
394 MachineInstr *New = BuildMI(MBB, MI, DL, TII.get(addOpcode), AVR::R31R30) in eliminateCallFramePseudoInstr()
399 BuildMI(MBB, MI, DL, TII.get(AVR::SPWRITE), AVR::SP) in eliminateCallFramePseudoInstr()
404 return MBB.erase(MI); in eliminateCallFramePseudoInstr()
514 for (MachineBasicBlock &MBB : MF) { in runOnMachineFunction()
516 if (!MBB.empty() && MBB.back().isReturn()) { in runOnMachineFunction()
517 MBBI = MBB.getLastNonDebugInstr(); in runOnMachineFunction()
519 BuildMI(MBB, MBBI, DL, TII.get(AVR::COPY), AVR::SP) in runOnMachineFunction()