Lines Matching refs:Regs
131 static std::string getFrameHelperName(SmallVectorImpl<unsigned> &Regs, in getFrameHelperName() argument
149 for (auto Reg : Regs) { in getFrameHelperName()
313 SmallVectorImpl<unsigned> &Regs, in getOrCreateFrameHelper() argument
316 assert(Regs.size() >= 2); in getOrCreateFrameHelper()
317 auto Name = getFrameHelperName(Regs, Type, FpOffset); in getOrCreateFrameHelper()
327 int Size = (int)Regs.size(); in getOrCreateFrameHelper()
332 auto LRIdx = std::distance(Regs.begin(), llvm::find(Regs, AArch64::LR)); in getOrCreateFrameHelper()
337 assert(Regs[Size - 2] != AArch64::LR); in getOrCreateFrameHelper()
338 emitStore(MF, MBB, MBB.end(), TII, Regs[Size - 2], Regs[Size - 1], in getOrCreateFrameHelper()
345 if (Regs[I - 1] == AArch64::LR) in getOrCreateFrameHelper()
347 emitStore(MF, MBB, MBB.end(), TII, Regs[I - 1], Regs[I], Size - I - 1, in getOrCreateFrameHelper()
373 emitLoad(MF, MBB, MBB.end(), TII, Regs[I], Regs[I + 1], Size - I - 2, in getOrCreateFrameHelper()
376 emitLoad(MF, MBB, MBB.end(), TII, Regs[Size - 2], Regs[Size - 1], Size, in getOrCreateFrameHelper()
396 SmallVectorImpl<unsigned> &Regs, in shouldUseFrameHelper() argument
399 auto RegCount = Regs.size(); in shouldUseFrameHelper()
405 if (!llvm::is_contained(Regs, AArch64::LR)) in shouldUseFrameHelper()
474 SmallVector<unsigned, 8> Regs; in lowerEpilog() local
484 Regs.push_back(MO.getReg()); in lowerEpilog()
487 int Size = (int)Regs.size(); in lowerEpilog()
495 if (shouldUseFrameHelper(MBB, NextMBBI, Regs, FrameHelperType::EpilogTail)) { in lowerEpilog()
498 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::EpilogTail); in lowerEpilog()
507 } else if (shouldUseFrameHelper(MBB, NextMBBI, Regs, in lowerEpilog()
511 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::Epilog); in lowerEpilog()
519 emitLoad(MF, MBB, MBBI, *TII, Regs[I], Regs[I + 1], Size - I - 2, false); in lowerEpilog()
521 emitLoad(MF, MBB, MBBI, *TII, Regs[Size - 2], Regs[Size - 1], Size, true); in lowerEpilog()
557 SmallVector<unsigned, 8> Regs; in lowerProlog() local
565 LRIdx = Regs.size(); in lowerProlog()
572 Regs.push_back(MO.getReg()); in lowerProlog()
578 int Size = (int)Regs.size(); in lowerProlog()
586 shouldUseFrameHelper(MBB, NextMBBI, Regs, FrameHelperType::PrologFrame)) { in lowerProlog()
590 M, MMI, Regs, FrameHelperType::PrologFrame, *FpOffset); in lowerProlog()
597 } else if (!FpOffset && shouldUseFrameHelper(MBB, NextMBBI, Regs, in lowerProlog()
602 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::Prolog); in lowerProlog()
609 emitStore(MF, MBB, MBBI, *TII, Regs[Size - 2], Regs[Size - 1], -Size, true); in lowerProlog()
611 emitStore(MF, MBB, MBBI, *TII, Regs[I - 1], Regs[I], Size - I - 1, false); in lowerProlog()