Lines Matching defs:Regs

132 static std::string getFrameHelperName(SmallVectorImpl<unsigned> &Regs,
150 for (auto Reg : Regs) {
283 /// Return a unique function if a helper can be formed with the given Regs
310 /// @param Regs callee save regs that the helper will handle
314 SmallVectorImpl<unsigned> &Regs,
317 assert(Regs.size() >= 2);
318 auto Name = getFrameHelperName(Regs, Type, FpOffset);
328 int Size = (int)Regs.size();
333 auto LRIdx = std::distance(Regs.begin(), llvm::find(Regs, AArch64::LR));
338 assert(Regs[Size - 2] != AArch64::LR);
339 emitStore(MF, MBB, MBB.end(), TII, Regs[Size - 2], Regs[Size - 1],
346 if (Regs[I - 1] == AArch64::LR)
348 emitStore(MF, MBB, MBB.end(), TII, Regs[I - 1], Regs[I], Size - I - 1,
374 emitLoad(MF, MBB, MBB.end(), TII, Regs[I], Regs[I + 1], Size - I - 2,
377 emitLoad(MF, MBB, MBB.end(), TII, Regs[Size - 2], Regs[Size - 1], Size,
392 /// @param Regs callee save registers that are saved or restored.
397 SmallVectorImpl<unsigned> &Regs,
400 auto RegCount = Regs.size();
406 if (!llvm::is_contained(Regs, AArch64::LR))
475 SmallVector<unsigned, 8> Regs;
485 Regs.push_back(MO.getReg());
488 int Size = (int)Regs.size();
496 if (shouldUseFrameHelper(MBB, NextMBBI, Regs, FrameHelperType::EpilogTail)) {
499 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::EpilogTail);
508 } else if (shouldUseFrameHelper(MBB, NextMBBI, Regs,
512 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::Epilog);
520 emitLoad(MF, MBB, MBBI, *TII, Regs[I], Regs[I + 1], Size - I - 2, false);
522 emitLoad(MF, MBB, MBBI, *TII, Regs[Size - 2], Regs[Size - 1], Size, true);
558 SmallVector<unsigned, 8> Regs;
566 LRIdx = Regs.size();
573 Regs.push_back(MO.getReg());
579 int Size = (int)Regs.size();
587 shouldUseFrameHelper(MBB, NextMBBI, Regs, FrameHelperType::PrologFrame)) {
591 M, MMI, Regs, FrameHelperType::PrologFrame, *FpOffset);
598 } else if (!FpOffset && shouldUseFrameHelper(MBB, NextMBBI, Regs,
603 getOrCreateFrameHelper(M, MMI, Regs, FrameHelperType::Prolog);
610 emitStore(MF, MBB, MBBI, *TII, Regs[Size - 2], Regs[Size - 1], -Size, true);
612 emitStore(MF, MBB, MBBI, *TII, Regs[I - 1], Regs[I], Size - I - 1, false);