Lines Matching refs:MBB
54 MachineBasicBlock &MBB) const { in emitPrologue()
55 MachineBasicBlock::iterator MBBI = MBB.begin(); in emitPrologue()
57 DebugLoc DL = (MBBI != MBB.end()) ? MBBI->getDebugLoc() : DebugLoc(); in emitPrologue()
64 BuildMI(MBB, MBBI, DL, TII.get(AVR::BSETs)) in emitPrologue()
71 BuildMI(MBB, MBBI, DL, TII.get(AVR::PUSHWRr)) in emitPrologue()
80 BuildMI(MBB, MBBI, DL, TII.get(AVR::PUSHWRr)) in emitPrologue()
84 BuildMI(MBB, MBBI, DL, TII.get(AVR::INRdA), AVR::R0) in emitPrologue()
87 BuildMI(MBB, MBBI, DL, TII.get(AVR::PUSHRr)) in emitPrologue()
90 BuildMI(MBB, MBBI, DL, TII.get(AVR::EORRdRr)) in emitPrologue()
108 (MBBI != MBB.end()) && MBBI->getFlag(MachineInstr::FrameSetup) && in emitPrologue()
114 BuildMI(MBB, MBBI, DL, TII.get(AVR::SPREAD), AVR::R29R28) in emitPrologue()
131 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(Opcode), AVR::R29R28) in emitPrologue()
139 BuildMI(MBB, MBBI, DL, TII.get(AVR::SPWRITE), AVR::SP) in emitPrologue()
145 MachineBasicBlock &MBB) const { in emitEpilogue()
156 MachineBasicBlock::iterator MBBI = MBB.getLastNonDebugInstr(); in emitEpilogue()
170 BuildMI(MBB, MBBI, DL, TII.get(AVR::POPRd), AVR::R0); in emitEpilogue()
171 BuildMI(MBB, MBBI, DL, TII.get(AVR::OUTARr)) in emitEpilogue()
174 BuildMI(MBB, MBBI, DL, TII.get(AVR::POPWRd), AVR::R1R0); in emitEpilogue()
178 BuildMI(MBB, MBBI, DL, TII.get(AVR::POPWRd), AVR::R29R28); 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()
236 MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, in spillCalleeSavedRegisters() argument
244 DebugLoc DL = MBB.findDebugLoc(MI); in spillCalleeSavedRegisters()
245 MachineFunction &MF = *MBB.getParent(); in spillCalleeSavedRegisters()
252 bool IsNotLiveIn = !MBB.isLiveIn(Reg); in spillCalleeSavedRegisters()
261 MBB.addLiveIn(Reg); in spillCalleeSavedRegisters()
265 BuildMI(MBB, MI, DL, TII.get(AVR::PUSHRr)) in spillCalleeSavedRegisters()
277 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()
305 static void fixStackStores(MachineBasicBlock &MBB, in fixStackStores() argument
308 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in fixStackStores()
312 for (auto I = MI, E = MBB.end(); I != E && !I->isCall();) { in fixStackStores()
333 BuildMI(MBB, I, MI.getDebugLoc(), TII.get(AVR::PUSHRr)) in fixStackStores()
336 BuildMI(MBB, I, MI.getDebugLoc(), TII.get(AVR::PUSHRr)) in fixStackStores()
340 BuildMI(MBB, I, MI.getDebugLoc(), TII.get(AVR::PUSHRr)) in fixStackStores()
362 MachineFunction &MF, MachineBasicBlock &MBB, in eliminateCallFramePseudoInstr() argument
372 fixStackStores(MBB, MI, TII, false); in eliminateCallFramePseudoInstr()
373 return MBB.erase(MI); in eliminateCallFramePseudoInstr()
388 fixStackStores(MBB, MI, TII, true); in eliminateCallFramePseudoInstr()
402 BuildMI(MBB, MI, DL, TII.get(AVR::SPREAD), AVR::R31R30).addReg(AVR::SP); in eliminateCallFramePseudoInstr()
404 MachineInstr *New = BuildMI(MBB, MI, DL, TII.get(addOpcode), AVR::R31R30) in eliminateCallFramePseudoInstr()
409 BuildMI(MBB, MI, DL, TII.get(AVR::SPWRITE), AVR::SP) in eliminateCallFramePseudoInstr()
414 return MBB.erase(MI); in eliminateCallFramePseudoInstr()
522 for (MachineBasicBlock &MBB : MF) { in runOnMachineFunction()
524 if (!MBB.empty() && MBB.back().isReturn()) { in runOnMachineFunction()
525 MBBI = MBB.getLastNonDebugInstr(); in runOnMachineFunction()
527 BuildMI(MBB, MBBI, DL, TII.get(AVR::COPY), AVR::SP) in runOnMachineFunction()