Lines Matching refs:Regs
130 static std::string getFrameHelperName(SmallVectorImpl<unsigned> &Regs, in getFrameHelperName() argument
148 for (auto Reg : Regs) in getFrameHelperName()
273 SmallVectorImpl<unsigned> &Regs, in getOrCreateFrameHelper() argument
276 assert(Regs.size() >= 2); in getOrCreateFrameHelper()
277 auto Name = getFrameHelperName(Regs, Type, FpOffset); in getOrCreateFrameHelper()
287 int Size = (int)Regs.size(); in getOrCreateFrameHelper()
293 Regs.begin(), std::find(Regs.begin(), Regs.end(), AArch64::LR)); in getOrCreateFrameHelper()
298 assert(Regs[Size - 2] != AArch64::LR); in getOrCreateFrameHelper()
299 emitStore(MF, MBB, MBB.end(), TII, Regs[Size - 2], Regs[Size - 1], in getOrCreateFrameHelper()
306 if (Regs[I - 1] == AArch64::LR) in getOrCreateFrameHelper()
308 emitStore(MF, MBB, MBB.end(), TII, Regs[I - 1], Regs[I], Size - I - 1, in getOrCreateFrameHelper()
334 emitLoad(MF, MBB, MBB.end(), TII, Regs[I], Regs[I + 1], Size - I - 2, in getOrCreateFrameHelper()
337 emitLoad(MF, MBB, MBB.end(), TII, Regs[Size - 2], Regs[Size - 1], Size, in getOrCreateFrameHelper()
357 SmallVectorImpl<unsigned> &Regs, in shouldUseFrameHelper() argument
360 auto RegCount = Regs.size(); in shouldUseFrameHelper()
366 if (!llvm::is_contained(Regs, AArch64::LR)) in shouldUseFrameHelper()
435 SmallVector<unsigned, 8> Regs; in lowerEpilog() local
438 Regs.push_back(MO.getReg()); in lowerEpilog()
439 int Size = (int)Regs.size(); in lowerEpilog()
447 if (shouldUseFrameHelper(MBB, NextMBBI, Regs, FrameHelperType::EpilogTail)) { in lowerEpilog()
450 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::EpilogTail); in lowerEpilog()
459 } else if (shouldUseFrameHelper(MBB, NextMBBI, Regs, in lowerEpilog()
463 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::Epilog); in lowerEpilog()
471 emitLoad(MF, MBB, MBBI, *TII, Regs[I], Regs[I + 1], Size - I - 2, false); in lowerEpilog()
473 emitLoad(MF, MBB, MBBI, *TII, Regs[Size - 2], Regs[Size - 1], Size, true); in lowerEpilog()
509 SmallVector<unsigned, 8> Regs; in lowerProlog() local
515 LRIdx = Regs.size(); in lowerProlog()
516 Regs.push_back(MO.getReg()); in lowerProlog()
521 int Size = (int)Regs.size(); in lowerProlog()
529 shouldUseFrameHelper(MBB, NextMBBI, Regs, FrameHelperType::PrologFrame)) { in lowerProlog()
533 M, MMI, Regs, FrameHelperType::PrologFrame, *FpOffset); in lowerProlog()
540 } else if (!FpOffset && shouldUseFrameHelper(MBB, NextMBBI, Regs, in lowerProlog()
545 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::Prolog); in lowerProlog()
552 emitStore(MF, MBB, MBBI, *TII, Regs[Size - 2], Regs[Size - 1], -Size, true); in lowerProlog()
554 emitStore(MF, MBB, MBBI, *TII, Regs[I - 1], Regs[I], Size - I - 1, false); in lowerProlog()