Lines Matching refs:MBB
51 MachineBasicBlock &MBB) const { in emitPrologue()
52 MachineBasicBlock::iterator MBBI = MBB.begin(); in emitPrologue()
53 DebugLoc DL = (MBBI != MBB.end()) ? MBBI->getDebugLoc() : DebugLoc(); in emitPrologue()
62 BuildMI(MBB, MBBI, DL, TII.get(AVR::BSETs)) in emitPrologue()
70 BuildMI(MBB, MBBI, DL, TII.get(AVR::PUSHRr)) in emitPrologue()
74 BuildMI(MBB, MBBI, DL, TII.get(AVR::INRdA), STI.getTmpRegister()) in emitPrologue()
77 BuildMI(MBB, MBBI, DL, TII.get(AVR::PUSHRr)) in emitPrologue()
81 BuildMI(MBB, MBBI, DL, TII.get(AVR::PUSHRr)) in emitPrologue()
84 BuildMI(MBB, MBBI, DL, TII.get(AVR::EORRdRr)) in emitPrologue()
102 (MBBI != MBB.end()) && MBBI->getFlag(MachineInstr::FrameSetup) && in emitPrologue()
108 BuildMI(MBB, MBBI, DL, TII.get(AVR::SPREAD), AVR::R29R28) in emitPrologue()
125 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(Opcode), AVR::R29R28) in emitPrologue()
133 BuildMI(MBB, MBBI, DL, TII.get(AVR::SPWRITE), AVR::SP) in emitPrologue()
138 static void restoreStatusRegister(MachineFunction &MF, MachineBasicBlock &MBB) { in restoreStatusRegister() argument
142 MachineBasicBlock::iterator MBBI = MBB.getLastNonDebugInstr(); in restoreStatusRegister()
152 BuildMI(MBB, MBBI, DL, TII.get(AVR::POPRd), STI.getZeroRegister()); in restoreStatusRegister()
154 BuildMI(MBB, MBBI, DL, TII.get(AVR::POPRd), STI.getTmpRegister()); in restoreStatusRegister()
155 BuildMI(MBB, MBBI, DL, TII.get(AVR::OUTARr)) in restoreStatusRegister()
158 BuildMI(MBB, MBBI, DL, TII.get(AVR::POPRd), STI.getTmpRegister()); in restoreStatusRegister()
163 MachineBasicBlock &MBB) const { in emitEpilogue()
172 MachineBasicBlock::iterator MBBI = MBB.getLastNonDebugInstr(); in emitEpilogue()
184 restoreStatusRegister(MF, MBB); in emitEpilogue()
189 while (MBBI != MBB.begin()) { in emitEpilogue()
212 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(Opcode), AVR::R29R28) in emitEpilogue()
220 BuildMI(MBB, MBBI, DL, TII.get(AVR::SPWRITE), AVR::SP) in emitEpilogue()
223 restoreStatusRegister(MF, MBB); in emitEpilogue()
244 MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, in spillCalleeSavedRegisters() argument
251 DebugLoc DL = MBB.findDebugLoc(MI); in spillCalleeSavedRegisters()
252 MachineFunction &MF = *MBB.getParent(); in spillCalleeSavedRegisters()
259 bool IsNotLiveIn = !MBB.isLiveIn(Reg); in spillCalleeSavedRegisters()
264 for (const auto &LiveIn : MBB.liveins()) in spillCalleeSavedRegisters()
267 MBB.addLiveIn(Reg); in spillCalleeSavedRegisters()
278 MBB.addLiveIn(Reg); in spillCalleeSavedRegisters()
282 BuildMI(MBB, MI, DL, TII.get(AVR::PUSHRr)) in spillCalleeSavedRegisters()
294 MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, in restoreCalleeSavedRegisters() argument
300 DebugLoc DL = MBB.findDebugLoc(MI); in restoreCalleeSavedRegisters()
301 const MachineFunction &MF = *MBB.getParent(); in restoreCalleeSavedRegisters()
311 BuildMI(MBB, MI, DL, TII.get(AVR::POPRd), Reg); in restoreCalleeSavedRegisters()
319 static void fixStackStores(MachineBasicBlock &MBB, in fixStackStores() argument
324 llvm::make_early_inc_range(llvm::make_range(StartMI, MBB.end()))) { in fixStackStores()
348 MachineFunction &MF, MachineBasicBlock &MBB, in eliminateCallFramePseudoInstr() argument
354 return MBB.erase(MI); in eliminateCallFramePseudoInstr()
362 return MBB.erase(MI); in eliminateCallFramePseudoInstr()
373 BuildMI(MBB, MI, DL, TII.get(AVR::SPREAD), AVR::R31R30).addReg(AVR::SP); in eliminateCallFramePseudoInstr()
376 BuildMI(MBB, MI, DL, TII.get(AVR::SUBIWRdK), AVR::R31R30) in eliminateCallFramePseudoInstr()
381 BuildMI(MBB, MI, DL, TII.get(AVR::SPWRITE), AVR::SP).addReg(AVR::R31R30); in eliminateCallFramePseudoInstr()
385 fixStackStores(MBB, MI, TII); in eliminateCallFramePseudoInstr()
404 BuildMI(MBB, MI, DL, TII.get(AVR::SPREAD), AVR::R31R30).addReg(AVR::SP); in eliminateCallFramePseudoInstr()
406 MachineInstr *New = BuildMI(MBB, MI, DL, TII.get(AddOpcode), AVR::R31R30) in eliminateCallFramePseudoInstr()
411 BuildMI(MBB, MI, DL, TII.get(AVR::SPWRITE), AVR::SP) in eliminateCallFramePseudoInstr()
415 return MBB.erase(MI); in eliminateCallFramePseudoInstr()