Lines Matching defs:MBBI
230 MachineBasicBlock::iterator &MBBI,
251 BuildMI(MBB, MBBI, DL, TII.get(X86::STACKALLOC_W_PROBING)).addImm(Offset);
262 Reg = TRI->findDeadCallerSavedReg(MBB, MBBI);
267 BuildMI(MBB, MBBI, DL, TII.get(getMOVriOpcode(Is64Bit, Offset)), Reg)
270 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(AddSubRROpc), StackPtr)
284 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64r))
293 BuildMI(MBB, MBBI, DL, TII.get(getMOVriOpcode(Is64Bit, Offset)), Rax)
296 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(X86::ADD64rr), Rax)
302 BuildMI(MBB, MBBI, DL, TII.get(X86::XCHG64rm), Rax).addReg(Rax),
305 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64rm), StackPtr),
317 : TRI->findDeadCallerSavedReg(MBB, MBBI);
321 BuildMI(MBB, MBBI, DL, TII.get(Opc))
329 BuildStackAdjustment(MBB, MBBI, DL, isSub ? -ThisVal : ThisVal, InEpilogue)
337 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
367 MI = addRegOffset(BuildMI(MBB, MBBI, DL,
376 MI = BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr)
385 MachineBasicBlock::iterator &MBBI,
387 if ((doMergeWithPrevious && MBBI == MBB.begin()) ||
388 (!doMergeWithPrevious && MBBI == MBB.end()))
391 MachineBasicBlock::iterator PI = doMergeWithPrevious ? std::prev(MBBI) : MBBI;
439 MBBI = skipDebugInstructionsForward(PI, MBB.end());
445 MachineBasicBlock::iterator MBBI,
455 BuildMI(MBB, MBBI, DL, TII.get(TargetOpcode::CFI_INSTRUCTION))
463 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI) const {
466 emitCalleeSavedFrameMoves(MBB, MBBI, DebugLoc{}, true);
477 BuildCFI(MBB, MBBI, DebugLoc{},
479 emitCalleeSavedFrameMoves(MBB, MBBI, DebugLoc{}, true);
483 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
520 BuildCFI(MBB, MBBI, DL,
524 BuildCFI(MBB, MBBI, DL,
528 BuildCFI(MBB, MBBI, DL,
552 BuildCFI(MBB, MBBI, DL,
563 MachineBasicBlock::iterator MBBI = MBB.getFirstTerminator();
567 if (MBBI != MBB.end())
568 DL = MBBI->getDebugLoc();
579 BuildMI(MBB, MBBI, DL, TII.get(X86::LD_F0));
582 BuildMI(MBB, MBBI, DL, TII.get(X86::ST_FPrr)).addReg(X86::ST0);
596 TII.buildClearRegister(Reg, MBB, MBBI, DL);
600 TII.buildClearRegister(Reg, MBB, MBBI, DL);
605 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, bool InProlog,
610 BuildMI(MBB, MBBI, DL, TII.get(X86::STACKALLOC_W_PROBING))
613 emitStackProbeInline(MF, MBB, MBBI, DL, false);
616 emitStackProbeCall(MF, MBB, MBBI, DL, InProlog, InstrNum);
638 MachineBasicBlock::iterator MBBI,
643 emitStackProbeInlineWindowsCoreCLR64(MF, MBB, MBBI, DL, InProlog);
645 emitStackProbeInlineGeneric(MF, MBB, MBBI, DL, InProlog);
650 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, bool InProlog) const {
651 MachineInstr &AllocWithProbe = *MBBI;
669 emitStackProbeInlineGenericLoop(MF, MBB, MBBI, DL, Offset,
672 emitStackProbeInlineGenericBlock(MF, MBB, MBBI, DL, Offset,
679 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, uint64_t Offset,
697 BuildStackAdjustment(MBB, MBBI, DL, -StackAdjustment, /*InEpilogue=*/false)
701 MBB, MBBI, DL,
705 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(MovMIOpc))
718 BuildStackAdjustment(MBB, MBBI, DL, -StackProbeSize, /*InEpilogue=*/false)
723 MBB, MBBI, DL,
726 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(MovMIOpc))
742 BuildMI(MBB, MBBI, DL, TII.get(Opc))
746 BuildStackAdjustment(MBB, MBBI, DL, -ChunkSize, /*InEpilogue=*/false)
755 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, uint64_t Offset,
759 assert(MBB.computeRegisterLiveness(TRI, X86::EFLAGS, MBBI) !=
773 BuildStackAdjustment(MBB, MBBI, DL, -AlignOffset, /*InEpilogue=*/false)
776 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(MovMIOpc))
801 BuildMI(MBB, MBBI, DL, TII.get(TargetOpcode::COPY), FinalStackProbed)
809 BuildMI(MBB, MBBI, DL, TII.get(SUBOpc), FinalStackProbed)
824 BuildCFI(MBB, MBBI, DL,
827 BuildCFI(MBB, MBBI, DL,
859 tailMBB->splice(tailMBB->end(), &MBB, MBBI, MBB.end());
892 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, bool InProlog) const {
899 assert(MBB.computeRegisterLiveness(TRI, X86::EFLAGS, MBBI) !=
941 MachineBasicBlock::iterator BeforeMBBI = std::prev(MBBI);
942 ContinueMBB->splice(ContinueMBB->begin(), &MBB, MBBI, MBB.end());
1126 MachineBasicBlock::iterator MBBI, const DebugLoc &DL, bool InProlog,
1135 assert(MBB.computeRegisterLiveness(TRI, X86::EFLAGS, MBBI) !=
1148 MachineBasicBlock::iterator ExpansionMBBI = std::prev(MBBI);
1155 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64ri), X86::R11)
1157 CI = BuildMI(MBB, MBBI, DL, TII.get(CallOp)).addReg(X86::R11);
1159 CI = BuildMI(MBB, MBBI, DL, TII.get(CallOp))
1180 BuildMI(MBB, MBBI, DL, TII.get(getSUBrrOpcode(Uses64BitFramePtr)), SP)
1204 for (++ExpansionMBBI; ExpansionMBBI != MBBI; ++ExpansionMBBI)
1245 MachineBasicBlock::iterator MBBI,
1285 entryMBB->splice(entryMBB->end(), &MBB, MBB.begin(), MBBI);
1382 MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(AndOp), Reg)
1530 MachineBasicBlock::iterator MBBI = MBB.begin();
1572 BuildMI(MBB, MBBI, DL, TII.get(Is64Bit ? X86::LEA64r : X86::LEA32r),
1583 BuildCFI(MBB, MBBI, DL,
1587 BuildStackAlignAND(MBB, MBBI, DL, StackPtr, MaxAlign);
1589 BuildMI(MBB, MBBI, DL, TII.get(Is64Bit ? X86::PUSH64rmm : X86::PUSH32rmm))
1614 BuildMI(MBB, MBBI, DL, TII.get(X86::OR64rm), MachineFramePtr)
1630 BuildMI(MBB, MBBI, DL, TII.get(X86::BTS64ri8), MachineFramePtr)
1658 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64r))
1687 BuildStackAdjustment(MBB, MBBI, DL, -(int)TailCallArgReserveSize,
1721 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(MOVmr)), StackPtr, true, 16)
1740 BuildMI(MBB, MBBI, DL,
1749 BuildCFI(MBB, MBBI, DL,
1756 BuildCFI(MBB, MBBI, DL,
1765 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_PushReg))
1783 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64r))
1789 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64i32))
1796 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_PushReg))
1801 BuildMI(MBB, MBBI, DL, TII.get(X86::LEA64r), FramePtr)
1808 BuildMI(MBB, MBBI, DL, TII.get(X86::SUB64ri32), X86::RSP)
1817 BuildMI(MBB, MBBI, DL,
1834 BuildCFI(MBB, MBBI, DL,
1842 MBB, MBBI, DL,
1851 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_SetFrame))
1882 MachineBasicBlock::const_iterator LastCSPush = MBBI;
1883 auto IsCSPush = [&](const MachineBasicBlock::iterator &MBBI) {
1884 if (MBBI == MBB.end() || !MBBI->getFlag(MachineInstr::FrameSetup))
1886 unsigned Opc = MBBI->getOpcode();
1891 while (IsCSPush(MBBI)) {
1893 Register Reg = MBBI->getOperand(0).getReg();
1894 LastCSPush = MBBI;
1895 ++MBBI;
1906 BuildCFI(MBB, MBBI, DL,
1914 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_PushReg))
1918 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_PushReg))
1930 BuildStackAlignAND(MBB, MBBI, DL, StackPtr, MaxAlign);
1934 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_StackAlign))
1943 NumBytes -= mergeSPUpdates(MBB, MBBI, true);
1968 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64r))
1973 BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH32r))
1983 BuildMI(MBB, MBBI, DL, TII.get(getMOVriOpcode(Is64Bit, Alloc)), X86::RAX)
1989 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32ri), X86::EAX)
1995 emitStackProbe(MF, MBB, MBBI, DL, true);
2007 MBB.insert(MBBI, MI);
2010 emitSPUpdate(MBB, MBBI, DL, -(int64_t)NumBytes, /*InEpilogue=*/false);
2015 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_StackAlloc))
2031 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64rm), Establisher),
2038 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64mr)), StackPtr,
2057 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::LEA64r), FramePtr),
2060 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64rr), FramePtr)
2067 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_SetFrame))
2076 MBBI = restoreWin32EHStackPointers(MBB, MBBI, DL);
2085 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32mr)), FrameReg,
2091 while (MBBI != MBB.end() && MBBI->getFlag(MachineInstr::FrameSetup)) {
2092 const MachineInstr &FrameInstr = *MBBI;
2093 ++MBBI;
2110 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_SaveXMM))
2120 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_EndPrologue))
2130 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64mr)), StackPtr, false,
2143 BuildStackAlignAND(MBB, MBBI, DL, SPOrEstablisher, MaxAlign);
2157 BuildMI(MBB, MBBI, DL, TII.get(Opc), BasePtr)
2164 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(Opm)), FramePtr, true,
2181 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(Opm)), UsedReg, true, Offset)
2192 addFrameReference(BuildMI(MBB, MBBI, DL, TII.get(MOVmr)), FI)
2203 MBB, MBBI, DL,
2209 emitCalleeSavedFrameMoves(MBB, MBBI, DL, true);
2250 BuildMI(MBB, MBBI, DL, TII.get(X86::CLD))
2347 MachineBasicBlock::iterator MBBI = Terminator;
2349 if (MBBI != MBB.end())
2350 DL = MBBI->getDebugLoc();
2360 bool IsFunclet = MBBI == MBB.end() ? false : isFuncletReturnInstr(*MBBI);
2385 BuildMI(MBB, MBBI, DL, TII.get(Opc), StackReg)
2394 BuildCFI(MBB, MBBI, DL,
2397 --MBBI;
2399 --MBBI;
2420 MachineBasicBlock::iterator AfterPop = MBBI;
2424 int Offset = 16 + mergeSPUpdates(MBB, MBBI, true);
2425 emitSPUpdate(MBB, MBBI, DL, Offset, /*InEpilogue*/ true);
2428 BuildMI(MBB, MBBI, DL,
2436 BuildMI(MBB, MBBI, DL, TII.get(X86::BTR64ri8), MachineFramePtr)
2446 BuildCFI(MBB, MBBI, DL,
2455 --MBBI;
2458 --MBBI;
2462 MachineBasicBlock::iterator FirstCSPop = MBBI;
2464 while (MBBI != MBB.begin()) {
2465 MachineBasicBlock::iterator PI = std::prev(MBBI);
2477 --MBBI;
2485 addFrameReference(BuildMI(MBB, MBBI, DL, TII.get(MOVrm), ArgBaseReg), FI)
2488 MBBI = FirstCSPop;
2493 if (MBBI != MBB.end())
2494 DL = MBBI->getDebugLoc();
2498 NumBytes += mergeSPUpdates(MBB, MBBI, true);
2507 MBBI = FirstCSPop;
2524 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr), FramePtr,
2526 --MBBI;
2529 BuildMI(MBB, MBBI, DL, TII.get(Opc), StackPtr).addReg(FramePtr);
2530 --MBBI;
2534 emitSPUpdate(MBB, MBBI, DL, NumBytes, /*InEpilogue=*/true);
2537 BuildCFI(MBB, MBBI, DL,
2542 --MBBI;
2552 BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_Epilogue));
2555 MBBI = FirstCSPop;
2559 while (MBBI != MBB.end()) {
2560 MachineBasicBlock::iterator PI = MBBI;
2562 ++MBBI;
2570 BuildCFI(MBB, MBBI, DL,
3039 MachineBasicBlock::iterator MBBI,
3051 BuildMI(MBB, MBBI, DL, TII.get(X86::LEA64r), X86::RAX)
3059 BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32ri), X86::EAX)
3486 // non-meta instructions between MBBI and MBB.end().
3488 MachineBasicBlock::const_iterator MBBI) {
3492 std::all_of(MBBI, MBB.end(), [](const MachineInstr &MI) {
3652 MachineBasicBlock::iterator MBBI,
3668 if (MBBI == MBB.begin())
3670 MachineBasicBlock::iterator Prev = std::prev(MBBI);
3719 BuildMI(MBB, MBBI, DL, TII.get(STI.is64Bit() ? X86::POP64r : X86::POP32r),
3895 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
3916 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32rm), X86::ESP),
3929 BuildMI(MBB, MBBI, DL, TII.get(ADDri), FramePtr)
3939 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::LEA32r), BasePtr),
3948 addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32rm), FramePtr),
3954 return MBBI;
4192 auto MBBI = MBB.begin();
4193 while (MBBI != MBB.end() && MBBI->getFlag(MachineInstr::FrameSetup))
4194 ++MBBI;
4196 DebugLoc DL = MBB.findDebugLoc(MBBI);
4197 addFrameReference(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64mi32)),