Lines Matching defs:AFI

263   ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
278 ArgumentPopSize = AFI->getArgumentStackToRestore();
648 static void emitAligningInstructions(MachineFunction &MF, ARMFunctionInfo *AFI,
659 assert(!AFI->isThumb1OnlyFunction() && "Thumb1 not supported");
660 if (!AFI->isThumbFunction()) {
714 static int getMaxFPOffset(const ARMSubtarget &STI, const ARMFunctionInfo &AFI,
718 if (AFI.isThumb1OnlyFunction())
719 return -AFI.getArgRegsSaveSize() - (2 * 4);
729 (STI.hasV8_1MMainlineOps() && AFI.isCmseNSEntryFunction()) ? 4 : 0;
730 return -FPCXTSaveSize - AFI.getArgRegsSaveSize() - MaxRegBytes;
737 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
743 assert(!AFI->isThumb1OnlyFunction() &&
745 bool isARM = !AFI->isThumbFunction();
747 unsigned ArgRegsSaveSize = AFI->getArgRegsSaveSize();
773 if (!AFI->hasStackFrame() &&
824 if (Reg < ARM::D8 || Reg >= ARM::D8 + AFI->getNumAlignedDPRCS2Regs())
863 if (Reg < ARM::D8 || Reg >= ARM::D8 + AFI->getNumAlignedDPRCS2Regs())
872 if (AFI->shouldSignReturnAddress())
916 assert(getMaxFPOffset(STI, *AFI, MF) <= FPOffset &&
919 AFI->setFramePtrSpillOffset(MFI.getObjectOffset(FramePtrSpillFI) +
922 AFI->setGPRCalleeSavedArea1Offset(GPRCS1Offset);
923 AFI->setGPRCalleeSavedArea2Offset(GPRCS2Offset);
924 AFI->setDPRCalleeSavedAreaOffset(DPRCSOffset);
957 if (AFI->getNumAlignedDPRCS2Regs() > 0) {
958 MBBI = skipAlignedDPRCS2Spills(MBBI, AFI->getNumAlignedDPRCS2Regs());
1043 if (AFI->getNumAlignedDPRCS2Regs() == 0 &&
1061 AFI->setShouldRestoreSPFromFP(true);
1080 emitRegPlusImmediate(!AFI->isThumbFunction(), MBB, AfterPush, dl, TII,
1083 emitRegPlusImmediate(!AFI->isThumbFunction(), MBB, AfterPush, dl, TII,
1189 (Reg < ARM::D8 || Reg >= ARM::D8 + AFI->getNumAlignedDPRCS2Regs())) {
1210 AFI->getFramePtrSpillOffset());
1212 AFI->setFPCXTSaveAreaSize(FPCXTSaveSize);
1213 AFI->setGPRCalleeSavedArea1Size(GPRCS1Size);
1214 AFI->setGPRCalleeSavedArea2Size(GPRCS2Size);
1215 AFI->setDPRCalleeSavedGapSize(DPRGapSize);
1216 AFI->setDPRCalleeSavedAreaSize(DPRCSSize);
1222 if (!AFI->getNumAlignedDPRCS2Regs() && RegInfo->hasStackRealignment(MF)) {
1224 assert(!AFI->isThumb1OnlyFunction());
1225 if (!AFI->isThumbFunction()) {
1226 emitAligningInstructions(MF, AFI, TII, MBB, MBBI, dl, ARM::SP, MaxAlign,
1239 emitAligningInstructions(MF, AFI, TII, MBB, MBBI, dl, ARM::R4, MaxAlign,
1246 AFI->setShouldRestoreSPFromFP(true);
1270 AFI->setShouldRestoreSPFromFP(true);
1276 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
1280 assert(!AFI->isThumb1OnlyFunction() &&
1282 bool isARM = !AFI->isThumbFunction();
1286 unsigned ReservedArgStack = AFI->getArgRegsSaveSize();
1304 if (!AFI->hasStackFrame()) {
1334 AFI->getFPCXTSaveAreaSize() +
1335 AFI->getGPRCalleeSavedArea1Size() +
1336 AFI->getGPRCalleeSavedArea2Size() +
1337 AFI->getDPRCalleeSavedGapSize() +
1338 AFI->getDPRCalleeSavedAreaSize());
1342 if (AFI->shouldRestoreSPFromFP()) {
1343 NumBytes = AFI->getFramePtrSpillOffset() - NumBytes;
1386 if (AFI->getGPRCalleeSavedArea2Size() && STI.splitFramePointerPush(MF))
1389 if (MBBI != MBB.end() && AFI->getDPRCalleeSavedAreaSize()) {
1396 if (AFI->getDPRCalleeSavedGapSize()) {
1397 assert(AFI->getDPRCalleeSavedGapSize() == 4 &&
1399 emitSPUpdate(isARM, MBB, MBBI, dl, TII, AFI->getDPRCalleeSavedGapSize(),
1403 if (AFI->getGPRCalleeSavedArea2Size() && !STI.splitFramePointerPush(MF))
1405 if (AFI->getGPRCalleeSavedArea1Size()) MBBI++;
1419 if (AFI->shouldSignReturnAddress() && !AFI->isCmseNSEntryFunction())
1446 const ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
1448 int FPOffset = Offset - AFI->getFramePtrSpillOffset();
1475 if (hasFP(MF) && AFI->hasStackFrame()) {
1483 if (AFI->isThumb2Function()) {
1492 } else if (AFI->isThumbFunction()) {
1502 if (AFI->isThumb2Function() && FPOffset >= -255 && FPOffset < 0) {
1609 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
1610 bool hasPAC = AFI->shouldSignReturnAddress();
1644 !isCmseEntry && !isTrap && AFI->getArgumentStackToRestore() == 0 &&
1650 LdmOpc = AFI->isThumbFunction() ? ARM::t2LDMIA_RET : ARM::LDMIA_RET;
1721 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
1755 bool isThumb = AFI->isThumbFunction();
1756 assert(!AFI->isThumb1OnlyFunction() && "Can't realign stack for thumb1");
1757 AFI->setShouldRestoreSPFromFP(true);
1774 emitAligningInstructions(MF, AFI, TII, MBB, MI, DL, ARM::R4, MaxAlign, true);
1894 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
1911 bool isThumb = AFI->isThumbFunction();
1912 assert(!AFI->isThumb1OnlyFunction() && "Can't realign stack for thumb1");
1985 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
1987 unsigned PushOpc = AFI->isThumbFunction() ? ARM::t2STMDB_UPD : ARM::STMDB_UPD;
1988 unsigned PushOneOpc = AFI->isThumbFunction() ?
1991 unsigned NumAlignedDPRCS2Regs = AFI->getNumAlignedDPRCS2Regs();
1993 if (AFI->shouldSignReturnAddress()) {
2039 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
2040 bool isVarArg = AFI->getArgRegsSaveSize() > 0;
2041 unsigned NumAlignedDPRCS2Regs = AFI->getNumAlignedDPRCS2Regs();
2048 unsigned PopOpc = AFI->isThumbFunction() ? ARM::t2LDMIA_UPD : ARM::LDMIA_UPD;
2050 AFI->isThumbFunction() ? ARM::t2LDR_POST : ARM::LDR_POST_IMM;
2093 const ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
2143 if (TFI->hasFP(MF) && AFI->hasStackFrame())
2246 const ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
2247 if (!AFI->isThumb1OnlyFunction())
2284 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
2296 if (AFI->isThumb2Function() &&
2311 if (AFI->isThumb1OnlyFunction()) {
2313 if (AFI->getArgRegsSaveSize() > 0)
2335 if (STI.hasV8_1MMainlineOps() && AFI->isCmseNSEntryFunction())
2339 if (AFI->shouldSignReturnAddress())
2411 if (!LRSpilled && AFI->isThumb1OnlyFunction()) {
2447 if (AFI->hasStackFrame())
2458 if (AFI->isThumb1OnlyFunction()) {
2505 int MaxFPOffset = getMaxFPOffset(STI, *AFI, MF);
2517 AFI->setHasStackFrame(true);
2555 if (AFI->isThumb1OnlyFunction()) {
2582 int ExitRegDeficit = AFI->getReturnRegsCount() - 4;
2583 LLVM_DEBUG(dbgs() << AFI->getReturnRegsCount()
2673 bool ExpensiveLRRestore = AFI->isThumb1OnlyFunction() && MFI.hasTailCall();
2687 !AFI->isThumb1OnlyFunction())
2701 if (!AFI->isThumbFunction() ||
2709 !(Reg == ARM::LR && AFI->isThumb1OnlyFunction()))
2714 } else if (!UnspilledCS2GPRs.empty() && !AFI->isThumb1OnlyFunction()) {
2735 if (AFI->isThumb1OnlyFunction() && STI.genExecuteOnly() && !STI.useMovt())
2747 (!AFI->isThumb1OnlyFunction() || isARMLowRegister(Reg))) {
2753 if (!AFI->isThumb1OnlyFunction()) {
2784 AFI->setLRIsSpilled(SavedRegs.test(ARM::LR));
2824 const ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
2825 if (AFI->getPreservesR0())
2843 const auto &AFI = *MF.getInfo<ARMFunctionInfo>();
2844 if (AFI.shouldSignReturnAddress()) {
2875 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
2876 bool isARM = !AFI->isThumbFunction();
2882 assert(!AFI->isThumb1OnlyFunction() &&