Lines Matching refs:AFI
262 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in getArgumentStackToRestore() local
277 ArgumentPopSize = AFI->getArgumentStackToRestore(); in getArgumentStackToRestore()
646 static void emitAligningInstructions(MachineFunction &MF, ARMFunctionInfo *AFI, in emitAligningInstructions() argument
657 assert(!AFI->isThumb1OnlyFunction() && "Thumb1 not supported"); in emitAligningInstructions()
658 if (!AFI->isThumbFunction()) { in emitAligningInstructions()
712 static int getMaxFPOffset(const ARMSubtarget &STI, const ARMFunctionInfo &AFI, in getMaxFPOffset() argument
716 if (AFI.isThumb1OnlyFunction()) in getMaxFPOffset()
717 return -AFI.getArgRegsSaveSize() - (2 * 4); in getMaxFPOffset()
727 (STI.hasV8_1MMainlineOps() && AFI.isCmseNSEntryFunction()) ? 4 : 0; in getMaxFPOffset()
728 return -FPCXTSaveSize - AFI.getArgRegsSaveSize() - MaxRegBytes; in getMaxFPOffset()
735 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in emitPrologue() local
742 assert(!AFI->isThumb1OnlyFunction() && in emitPrologue()
744 bool isARM = !AFI->isThumbFunction(); in emitPrologue()
746 unsigned ArgRegsSaveSize = AFI->getArgRegsSaveSize(); in emitPrologue()
772 if (!AFI->hasStackFrame() && in emitPrologue()
823 if (Reg < ARM::D8 || Reg >= ARM::D8 + AFI->getNumAlignedDPRCS2Regs()) in emitPrologue()
862 if (Reg < ARM::D8 || Reg >= ARM::D8 + AFI->getNumAlignedDPRCS2Regs()) in emitPrologue()
871 if (AFI->shouldSignReturnAddress()) in emitPrologue()
915 assert(getMaxFPOffset(STI, *AFI, MF) <= FPOffset && in emitPrologue()
918 AFI->setFramePtrSpillOffset(MFI.getObjectOffset(FramePtrSpillFI) + in emitPrologue()
921 AFI->setGPRCalleeSavedArea1Offset(GPRCS1Offset); in emitPrologue()
922 AFI->setGPRCalleeSavedArea2Offset(GPRCS2Offset); in emitPrologue()
923 AFI->setDPRCalleeSavedAreaOffset(DPRCSOffset); in emitPrologue()
956 if (AFI->getNumAlignedDPRCS2Regs() > 0) { in emitPrologue()
957 MBBI = skipAlignedDPRCS2Spills(MBBI, AFI->getNumAlignedDPRCS2Regs()); in emitPrologue()
1042 if (AFI->getNumAlignedDPRCS2Regs() == 0 && in emitPrologue()
1060 AFI->setShouldRestoreSPFromFP(true); in emitPrologue()
1079 emitRegPlusImmediate(!AFI->isThumbFunction(), MBB, AfterPush, dl, TII, in emitPrologue()
1082 emitRegPlusImmediate(!AFI->isThumbFunction(), MBB, AfterPush, dl, TII, in emitPrologue()
1188 (Reg < ARM::D8 || Reg >= ARM::D8 + AFI->getNumAlignedDPRCS2Regs())) { in emitPrologue()
1209 AFI->getFramePtrSpillOffset()); in emitPrologue()
1211 AFI->setFPCXTSaveAreaSize(FPCXTSaveSize); in emitPrologue()
1212 AFI->setGPRCalleeSavedArea1Size(GPRCS1Size); in emitPrologue()
1213 AFI->setGPRCalleeSavedArea2Size(GPRCS2Size); in emitPrologue()
1214 AFI->setDPRCalleeSavedGapSize(DPRGapSize); in emitPrologue()
1215 AFI->setDPRCalleeSavedAreaSize(DPRCSSize); in emitPrologue()
1221 if (!AFI->getNumAlignedDPRCS2Regs() && RegInfo->hasStackRealignment(MF)) { in emitPrologue()
1223 assert(!AFI->isThumb1OnlyFunction()); in emitPrologue()
1224 if (!AFI->isThumbFunction()) { in emitPrologue()
1225 emitAligningInstructions(MF, AFI, TII, MBB, MBBI, dl, ARM::SP, MaxAlign, in emitPrologue()
1238 emitAligningInstructions(MF, AFI, TII, MBB, MBBI, dl, ARM::R4, MaxAlign, in emitPrologue()
1245 AFI->setShouldRestoreSPFromFP(true); in emitPrologue()
1269 AFI->setShouldRestoreSPFromFP(true); in emitPrologue()
1275 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in emitEpilogue() local
1279 assert(!AFI->isThumb1OnlyFunction() && in emitEpilogue()
1281 bool isARM = !AFI->isThumbFunction(); in emitEpilogue()
1285 unsigned ReservedArgStack = AFI->getArgRegsSaveSize(); in emitEpilogue()
1303 if (!AFI->hasStackFrame()) { in emitEpilogue()
1333 AFI->getFPCXTSaveAreaSize() + in emitEpilogue()
1334 AFI->getGPRCalleeSavedArea1Size() + in emitEpilogue()
1335 AFI->getGPRCalleeSavedArea2Size() + in emitEpilogue()
1336 AFI->getDPRCalleeSavedGapSize() + in emitEpilogue()
1337 AFI->getDPRCalleeSavedAreaSize()); in emitEpilogue()
1341 if (AFI->shouldRestoreSPFromFP()) { in emitEpilogue()
1342 NumBytes = AFI->getFramePtrSpillOffset() - NumBytes; in emitEpilogue()
1385 if (AFI->getGPRCalleeSavedArea2Size() && STI.splitFramePointerPush(MF)) in emitEpilogue()
1388 if (MBBI != MBB.end() && AFI->getDPRCalleeSavedAreaSize()) { in emitEpilogue()
1395 if (AFI->getDPRCalleeSavedGapSize()) { in emitEpilogue()
1396 assert(AFI->getDPRCalleeSavedGapSize() == 4 && in emitEpilogue()
1398 emitSPUpdate(isARM, MBB, MBBI, dl, TII, AFI->getDPRCalleeSavedGapSize(), in emitEpilogue()
1402 if (AFI->getGPRCalleeSavedArea2Size() && !STI.splitFramePointerPush(MF)) in emitEpilogue()
1404 if (AFI->getGPRCalleeSavedArea1Size()) MBBI++; in emitEpilogue()
1418 if (AFI->shouldSignReturnAddress() && !AFI->isCmseNSEntryFunction()) in emitEpilogue()
1445 const ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in ResolveFrameIndexReference() local
1447 int FPOffset = Offset - AFI->getFramePtrSpillOffset(); in ResolveFrameIndexReference()
1474 if (hasFP(MF) && AFI->hasStackFrame()) { in ResolveFrameIndexReference()
1482 if (AFI->isThumb2Function()) { in ResolveFrameIndexReference()
1491 } else if (AFI->isThumbFunction()) { in ResolveFrameIndexReference()
1501 if (AFI->isThumb2Function() && FPOffset >= -255 && FPOffset < 0) { in ResolveFrameIndexReference()
1608 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in emitPopInst() local
1609 bool hasPAC = AFI->shouldSignReturnAddress(); in emitPopInst()
1641 !isCmseEntry && !isTrap && AFI->getArgumentStackToRestore() == 0 && in emitPopInst()
1647 LdmOpc = AFI->isThumbFunction() ? ARM::t2LDMIA_RET : ARM::LDMIA_RET; in emitPopInst()
1718 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in emitAlignedDPRCS2Spills() local
1752 bool isThumb = AFI->isThumbFunction(); in emitAlignedDPRCS2Spills()
1753 assert(!AFI->isThumb1OnlyFunction() && "Can't realign stack for thumb1"); in emitAlignedDPRCS2Spills()
1754 AFI->setShouldRestoreSPFromFP(true); in emitAlignedDPRCS2Spills()
1771 emitAligningInstructions(MF, AFI, TII, MBB, MI, DL, ARM::R4, MaxAlign, true); in emitAlignedDPRCS2Spills()
1891 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in emitAlignedDPRCS2Restores() local
1908 bool isThumb = AFI->isThumbFunction(); in emitAlignedDPRCS2Restores()
1909 assert(!AFI->isThumb1OnlyFunction() && "Can't realign stack for thumb1"); in emitAlignedDPRCS2Restores()
1982 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in spillCalleeSavedRegisters() local
1984 unsigned PushOpc = AFI->isThumbFunction() ? ARM::t2STMDB_UPD : ARM::STMDB_UPD; in spillCalleeSavedRegisters()
1985 unsigned PushOneOpc = AFI->isThumbFunction() ? in spillCalleeSavedRegisters()
1988 unsigned NumAlignedDPRCS2Regs = AFI->getNumAlignedDPRCS2Regs(); in spillCalleeSavedRegisters()
1990 if (AFI->shouldSignReturnAddress()) { in spillCalleeSavedRegisters()
2036 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in restoreCalleeSavedRegisters() local
2037 bool isVarArg = AFI->getArgRegsSaveSize() > 0; in restoreCalleeSavedRegisters()
2038 unsigned NumAlignedDPRCS2Regs = AFI->getNumAlignedDPRCS2Regs(); in restoreCalleeSavedRegisters()
2045 unsigned PopOpc = AFI->isThumbFunction() ? ARM::t2LDMIA_UPD : ARM::LDMIA_UPD; in restoreCalleeSavedRegisters()
2047 AFI->isThumbFunction() ? ARM::t2LDR_POST : ARM::LDR_POST_IMM; in restoreCalleeSavedRegisters()
2090 const ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in estimateRSStackSizeLimit() local
2140 if (TFI->hasFP(MF) && AFI->hasStackFrame()) in estimateRSStackSizeLimit()
2243 const ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in canSpillOnFrameIndexAccess() local
2244 if (!AFI->isThumb1OnlyFunction()) in canSpillOnFrameIndexAccess()
2281 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in determineCalleeSaves() local
2293 if (AFI->isThumb2Function() && in determineCalleeSaves()
2308 if (AFI->isThumb1OnlyFunction()) { in determineCalleeSaves()
2310 if (AFI->getArgRegsSaveSize() > 0) in determineCalleeSaves()
2332 if (STI.hasV8_1MMainlineOps() && AFI->isCmseNSEntryFunction()) in determineCalleeSaves()
2336 if (AFI->shouldSignReturnAddress()) in determineCalleeSaves()
2408 if (!LRSpilled && AFI->isThumb1OnlyFunction()) { in determineCalleeSaves()
2444 if (AFI->hasStackFrame()) in determineCalleeSaves()
2455 if (AFI->isThumb1OnlyFunction()) { in determineCalleeSaves()
2502 int MaxFPOffset = getMaxFPOffset(STI, *AFI, MF); in determineCalleeSaves()
2514 AFI->setHasStackFrame(true); in determineCalleeSaves()
2552 if (AFI->isThumb1OnlyFunction()) { in determineCalleeSaves()
2579 int ExitRegDeficit = AFI->getReturnRegsCount() - 4; in determineCalleeSaves()
2580 LLVM_DEBUG(dbgs() << AFI->getReturnRegsCount() in determineCalleeSaves()
2670 bool ExpensiveLRRestore = AFI->isThumb1OnlyFunction() && MFI.hasTailCall(); in determineCalleeSaves()
2684 !AFI->isThumb1OnlyFunction()) in determineCalleeSaves()
2698 if (!AFI->isThumbFunction() || in determineCalleeSaves()
2706 !(Reg == ARM::LR && AFI->isThumb1OnlyFunction())) in determineCalleeSaves()
2711 } else if (!UnspilledCS2GPRs.empty() && !AFI->isThumb1OnlyFunction()) { in determineCalleeSaves()
2732 if (AFI->isThumb1OnlyFunction() && STI.genExecuteOnly() && !STI.useMovt()) in determineCalleeSaves()
2744 (!AFI->isThumb1OnlyFunction() || isARMLowRegister(Reg))) { in determineCalleeSaves()
2750 if (!AFI->isThumb1OnlyFunction()) { in determineCalleeSaves()
2781 AFI->setLRIsSpilled(SavedRegs.test(ARM::LR)); in determineCalleeSaves()
2821 const ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in getCalleeSaves() local
2822 if (AFI->getPreservesR0()) in getCalleeSaves()
2840 const auto &AFI = *MF.getInfo<ARMFunctionInfo>(); in assignCalleeSavedSpillSlots() local
2841 if (AFI.shouldSignReturnAddress()) { in assignCalleeSavedSpillSlots()
2872 ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); in eliminateCallFramePseudoInstr() local
2873 bool isARM = !AFI->isThumbFunction(); in eliminateCallFramePseudoInstr()
2879 assert(!AFI->isThumb1OnlyFunction() && in eliminateCallFramePseudoInstr()