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()
235 if (MBBI != MBB.end() && MBBI->getOpcode() == ARM::tPUSH) { in emitPrologue()
236 ++MBBI; in emitPrologue()
255 tryFoldSPUpdateIntoPushPop(STI, MF, &*std::prev(MBBI), NumBytes)) { in emitPrologue()
265 BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) in emitPrologue()
293 BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) in emitPrologue()
304 BuildMI(MBB, MBBI, dl, TII.get(ARM::tADDrSPi), FramePtr) in emitPrologue()
313 BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) in emitPrologue()
320 BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) in emitPrologue()
335 MachineBasicBlock::iterator OldMBBI = MBBI; in emitPrologue()
337 while (MBBI != MBB.end() && MBBI->getOpcode() == ARM::tMOVr) in emitPrologue()
338 MBBI++; in emitPrologue()
339 if (MBBI != MBB.end() && MBBI->getOpcode() == ARM::tPUSH) { in emitPrologue()
340 MBBI++; in emitPrologue()
345 MBBI = OldMBBI; in emitPrologue()
362 BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) in emitPrologue()
386 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, -NumBytes, in emitPrologue()
392 BuildMI(MBB, MBBI, dl, TII.get(TargetOpcode::CFI_INSTRUCTION)) in emitPrologue()
414 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), ARM::R4) in emitPrologue()
418 BuildMI(MBB, MBBI, dl, TII.get(ARM::tLSRri), ARM::R4) in emitPrologue()
424 BuildMI(MBB, MBBI, dl, TII.get(ARM::tLSLri), ARM::R4) in emitPrologue()
430 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), ARM::SP) in emitPrologue()
442 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), BasePtr) in emitPrologue()
474 MachineBasicBlock::iterator MBBI = MBB.getFirstTerminator(); in emitEpilogue() local
475 DebugLoc dl = MBBI != MBB.end() ? MBBI->getDebugLoc() : DebugLoc(); in emitEpilogue()
492 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, in emitEpilogue()
497 if (MBBI != MBB.begin()) { in emitEpilogue()
499 --MBBI; in emitEpilogue()
500 while (MBBI != MBB.begin() && isCSRestore(*MBBI, CSRegs)); in emitEpilogue()
501 if (!isCSRestore(*MBBI, CSRegs)) in emitEpilogue()
502 ++MBBI; in emitEpilogue()
519 emitThumbRegPlusImmediate(MBB, MBBI, dl, ARM::R4, FramePtr, -NumBytes, in emitEpilogue()
521 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), ARM::SP) in emitEpilogue()
525 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), ARM::SP) in emitEpilogue()
541 if (MBBI != MBB.end() && MBBI->getOpcode() == ARM::tBX_RET && in emitEpilogue()
542 &MBB.front() != &*MBBI && std::prev(MBBI)->getOpcode() == ARM::tPOP) { in emitEpilogue()
543 MachineBasicBlock::iterator PMBBI = std::prev(MBBI); in emitEpilogue()
547 } else if (!tryFoldSPUpdateIntoPushPop(STI, MF, &*MBBI, NumBytes)) in emitEpilogue()
548 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, NumBytes, in emitEpilogue()
618 auto MBBI = MBB.getFirstTerminator(); in emitPopSpecialFixUp() local
621 if (MBBI != MBB.end() && MBBI->getOpcode() != ARM::tB) in emitPopSpecialFixUp()
622 CanRestoreDirectly = (MBBI->getOpcode() == ARM::tBX_RET || in emitPopSpecialFixUp()
623 MBBI->getOpcode() == ARM::tPOP_RET); in emitPopSpecialFixUp()
625 auto MBBI_prev = MBBI; in emitPopSpecialFixUp()
630 MBBI = MBBI_prev; // Replace the final tPOP with a tPOP_RET. in emitPopSpecialFixUp()
637 if (!DoIt || MBBI->getOpcode() == ARM::tPOP_RET) in emitPopSpecialFixUp()
640 BuildMI(MBB, MBBI, MBBI->getDebugLoc(), TII.get(ARM::tPOP_RET)) in emitPopSpecialFixUp()
643 for (auto MO: MBBI->operands()) in emitPopSpecialFixUp()
648 MBB.erase(MBBI); in emitPopSpecialFixUp()
666 if (MBBI != MBB.end()) { in emitPopSpecialFixUp()
667 dl = MBBI->getDebugLoc(); in emitPopSpecialFixUp()
669 while (InstUpToMBBI != MBBI) in emitPopSpecialFixUp()
702 if (!PopReg && MBBI != MBB.begin()) { in emitPopSpecialFixUp()
703 auto PrevMBBI = MBBI; in emitPopSpecialFixUp()
709 MBBI = PrevMBBI; in emitPopSpecialFixUp()
723 BuildMI(MBB, MBBI, dl, TII.get(ARM::tLDRspi)) in emitPopSpecialFixUp()
726 .addImm(MBBI->getNumExplicitOperands() - 2) in emitPopSpecialFixUp()
729 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr)) in emitPopSpecialFixUp()
734 MBBI++; in emitPopSpecialFixUp()
736 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, in emitPopSpecialFixUp()
745 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr)) in emitPopSpecialFixUp()
751 if (MBBI != MBB.end() && MBBI->getOpcode() == ARM::tPOP_RET) { in emitPopSpecialFixUp()
755 BuildMI(MBB, MBBI, MBBI->getDebugLoc(), TII.get(ARM::tPOP)) in emitPopSpecialFixUp()
758 for (auto MO: MBBI->operands()) in emitPopSpecialFixUp()
769 MBB.erase(MBBI); in emitPopSpecialFixUp()
770 MBBI = BuildMI(MBB, MBB.end(), dl, TII.get(ARM::tBX_RET)) in emitPopSpecialFixUp()
775 BuildMI(MBB, MBBI, dl, TII.get(ARM::tPOP)) in emitPopSpecialFixUp()
779 emitPrologueEpilogueSPUpdate(MBB, MBBI, TII, dl, *RegInfo, ArgRegsSaveSize, in emitPopSpecialFixUp()
782 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr)) in emitPopSpecialFixUp()
788 BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr)) in emitPopSpecialFixUp()