Lines Matching refs:MBBI
68 MachineBasicBlock::iterator &MBBI, in emitPrologueEpilogueSPUpdate() argument
84 BuildMI(MBB, MBBI, dl, TII.get(ARM::t2MOVi32imm), ScratchReg) in emitPrologueEpilogueSPUpdate()
87 MRI.emitLoadConstPool(MBB, MBBI, dl, ScratchReg, 0, NumBytes, ARMCC::AL, in emitPrologueEpilogueSPUpdate()
90 BuildMI(MBB, MBBI, dl, TII.get(ARM::tADDhirr), ARM::SP) in emitPrologueEpilogueSPUpdate()
99 emitThumbRegPlusImmediate(MBB, MBBI, dl, ARM::SP, ARM::SP, NumBytes, TII, in emitPrologueEpilogueSPUpdate()
105 MachineBasicBlock::iterator &MBBI, in emitCallSPUpdate() argument
109 emitThumbRegPlusImmediate(MBB, MBBI, dl, ARM::SP, ARM::SP, NumBytes, TII, in emitCallSPUpdate()
149 MachineBasicBlock::iterator MBBI = MBB.begin(); in emitPrologue() local
183 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, -ArgRegsSaveSize, in emitPrologue()
188 BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) in emitPrologue()
195 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, in emitPrologue()
201 BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) in emitPrologue()
253 std::advance(MBBI, 2); in emitPrologue()
254 FRPush = MBBI++; in emitPrologue()
257 if (MBBI != MBB.end() && MBBI->getOpcode() == ARM::tPUSH) { in emitPrologue()
258 GPRCS1Push = MBBI; in emitPrologue()
259 ++MBBI; in emitPrologue()
265 MachineBasicBlock::iterator OldMBBI = MBBI; in emitPrologue()
267 while (MBBI != MBB.end() && MBBI->getOpcode() == ARM::tMOVr && in emitPrologue()
268 MBBI->getFlag(MachineInstr::FrameSetup)) in emitPrologue()
269 MBBI++; in emitPrologue()
270 if (MBBI != MBB.end() && MBBI->getOpcode() == ARM::tPUSH && in emitPrologue()
271 MBBI->getFlag(MachineInstr::FrameSetup)) { in emitPrologue()
272 GPRCS2Push = MBBI; in emitPrologue()
273 MBBI++; in emitPrologue()
278 MBBI = OldMBBI; in emitPrologue()
430 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, -NumBytes, in emitPrologue()
436 BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) in emitPrologue()
458 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), ARM::R4) in emitPrologue()
462 BuildMI(MBB, MBBI, dl, TII.get(ARM::tLSRri), ARM::R4) in emitPrologue()
468 BuildMI(MBB, MBBI, dl, TII.get(ARM::tLSLri), ARM::R4) in emitPrologue()
474 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), ARM::SP) in emitPrologue()
486 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), BasePtr) in emitPrologue()
503 MachineBasicBlock::iterator MBBI = MBB.getFirstTerminator(); in emitEpilogue() local
504 DebugLoc dl = MBBI != MBB.end() ? MBBI->getDebugLoc() : DebugLoc(); in emitEpilogue()
520 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, in emitEpilogue()
525 if (MBBI != MBB.begin()) { in emitEpilogue()
527 --MBBI; in emitEpilogue()
528 while (MBBI != MBB.begin() && MBBI->getFlag(MachineInstr::FrameDestroy)); in emitEpilogue()
529 if (!MBBI->getFlag(MachineInstr::FrameDestroy)) in emitEpilogue()
530 ++MBBI; in emitEpilogue()
548 emitThumbRegPlusImmediate(MBB, MBBI, dl, ARM::R4, FramePtr, -NumBytes, in emitEpilogue()
550 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), ARM::SP) in emitEpilogue()
555 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), ARM::SP) in emitEpilogue()
572 if (MBBI != MBB.end() && MBBI->getOpcode() == ARM::tBX_RET && in emitEpilogue()
573 &MBB.front() != &*MBBI && std::prev(MBBI)->getOpcode() == ARM::tPOP) { in emitEpilogue()
574 MachineBasicBlock::iterator PMBBI = std::prev(MBBI); in emitEpilogue()
578 } else if (!tryFoldSPUpdateIntoPushPop(STI, MF, &*MBBI, NumBytes)) in emitEpilogue()
579 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, NumBytes, in emitEpilogue()
649 auto MBBI = MBB.getFirstTerminator(); in emitPopSpecialFixUp() local
652 if (MBBI != MBB.end() && MBBI->getOpcode() != ARM::tB) in emitPopSpecialFixUp()
653 CanRestoreDirectly = (MBBI->getOpcode() == ARM::tBX_RET || in emitPopSpecialFixUp()
654 MBBI->getOpcode() == ARM::tPOP_RET); in emitPopSpecialFixUp()
656 auto MBBI_prev = MBBI; in emitPopSpecialFixUp()
661 MBBI = MBBI_prev; // Replace the final tPOP with a tPOP_RET. in emitPopSpecialFixUp()
668 if (!DoIt || MBBI->getOpcode() == ARM::tPOP_RET) in emitPopSpecialFixUp()
671 BuildMI(MBB, MBBI, MBBI->getDebugLoc(), TII.get(ARM::tPOP_RET)) in emitPopSpecialFixUp()
675 for (auto MO: MBBI->operands()) in emitPopSpecialFixUp()
680 MBB.erase(MBBI); in emitPopSpecialFixUp()
698 if (MBBI != MBB.end()) { in emitPopSpecialFixUp()
699 dl = MBBI->getDebugLoc(); in emitPopSpecialFixUp()
701 while (InstUpToMBBI != MBBI) in emitPopSpecialFixUp()
735 if (!PopReg && MBBI != MBB.begin()) { in emitPopSpecialFixUp()
736 auto PrevMBBI = MBBI; in emitPopSpecialFixUp()
743 MBBI = PrevMBBI; in emitPopSpecialFixUp()
757 BuildMI(MBB, MBBI, dl, TII.get(ARM::tLDRspi)) in emitPopSpecialFixUp()
760 .addImm(MBBI->getNumExplicitOperands() - 2) in emitPopSpecialFixUp()
764 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr)) in emitPopSpecialFixUp()
770 MBBI++; in emitPopSpecialFixUp()
772 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, in emitPopSpecialFixUp()
781 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr)) in emitPopSpecialFixUp()
788 if (MBBI != MBB.end() && MBBI->getOpcode() == ARM::tPOP_RET) { in emitPopSpecialFixUp()
792 BuildMI(MBB, MBBI, MBBI->getDebugLoc(), TII.get(ARM::tPOP)) in emitPopSpecialFixUp()
796 for (auto MO: MBBI->operands()) in emitPopSpecialFixUp()
807 MBB.erase(MBBI); in emitPopSpecialFixUp()
808 MBBI = BuildMI(MBB, MBB.end(), dl, TII.get(ARM::tBX_RET)) in emitPopSpecialFixUp()
814 BuildMI(MBB, MBBI, dl, TII.get(ARM::tPOP)) in emitPopSpecialFixUp()
819 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, ArgRegsSaveSize, in emitPopSpecialFixUp()
822 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr)) in emitPopSpecialFixUp()
829 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr)) in emitPopSpecialFixUp()