Lines Matching refs:Regs

132 static std::string getFrameHelperName(SmallVectorImpl<unsigned> &Regs,  in getFrameHelperName()  argument
150 for (auto Reg : Regs) { in getFrameHelperName()
314 SmallVectorImpl<unsigned> &Regs, in getOrCreateFrameHelper() argument
317 assert(Regs.size() >= 2); in getOrCreateFrameHelper()
318 auto Name = getFrameHelperName(Regs, Type, FpOffset); in getOrCreateFrameHelper()
328 int Size = (int)Regs.size(); in getOrCreateFrameHelper()
333 auto LRIdx = std::distance(Regs.begin(), llvm::find(Regs, AArch64::LR)); in getOrCreateFrameHelper()
338 assert(Regs[Size - 2] != AArch64::LR); in getOrCreateFrameHelper()
339 emitStore(MF, MBB, MBB.end(), TII, Regs[Size - 2], Regs[Size - 1], in getOrCreateFrameHelper()
346 if (Regs[I - 1] == AArch64::LR) in getOrCreateFrameHelper()
348 emitStore(MF, MBB, MBB.end(), TII, Regs[I - 1], Regs[I], Size - I - 1, in getOrCreateFrameHelper()
374 emitLoad(MF, MBB, MBB.end(), TII, Regs[I], Regs[I + 1], Size - I - 2, in getOrCreateFrameHelper()
377 emitLoad(MF, MBB, MBB.end(), TII, Regs[Size - 2], Regs[Size - 1], Size, in getOrCreateFrameHelper()
397 SmallVectorImpl<unsigned> &Regs, in shouldUseFrameHelper() argument
400 auto RegCount = Regs.size(); in shouldUseFrameHelper()
406 if (!llvm::is_contained(Regs, AArch64::LR)) in shouldUseFrameHelper()
475 SmallVector<unsigned, 8> Regs; in lowerEpilog() local
485 Regs.push_back(MO.getReg()); in lowerEpilog()
488 int Size = (int)Regs.size(); in lowerEpilog()
496 if (shouldUseFrameHelper(MBB, NextMBBI, Regs, FrameHelperType::EpilogTail)) { in lowerEpilog()
499 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::EpilogTail); in lowerEpilog()
508 } else if (shouldUseFrameHelper(MBB, NextMBBI, Regs, in lowerEpilog()
512 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::Epilog); in lowerEpilog()
520 emitLoad(MF, MBB, MBBI, *TII, Regs[I], Regs[I + 1], Size - I - 2, false); in lowerEpilog()
522 emitLoad(MF, MBB, MBBI, *TII, Regs[Size - 2], Regs[Size - 1], Size, true); in lowerEpilog()
558 SmallVector<unsigned, 8> Regs; in lowerProlog() local
566 LRIdx = Regs.size(); in lowerProlog()
573 Regs.push_back(MO.getReg()); in lowerProlog()
579 int Size = (int)Regs.size(); in lowerProlog()
587 shouldUseFrameHelper(MBB, NextMBBI, Regs, FrameHelperType::PrologFrame)) { in lowerProlog()
591 M, MMI, Regs, FrameHelperType::PrologFrame, *FpOffset); in lowerProlog()
598 } else if (!FpOffset && shouldUseFrameHelper(MBB, NextMBBI, Regs, in lowerProlog()
603 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::Prolog); in lowerProlog()
610 emitStore(MF, MBB, MBBI, *TII, Regs[Size - 2], Regs[Size - 1], -Size, true); in lowerProlog()
612 emitStore(MF, MBB, MBBI, *TII, Regs[I - 1], Regs[I], Size - I - 1, false); in lowerProlog()