Lines Matching refs:RPI

2821     RegPairInfo RPI;  in computeCalleeSaveRegisterPairs()  local
2822 RPI.Reg1 = CSI[i].getReg(); in computeCalleeSaveRegisterPairs()
2824 if (AArch64::GPR64RegClass.contains(RPI.Reg1)) in computeCalleeSaveRegisterPairs()
2825 RPI.Type = RegPairInfo::GPR; in computeCalleeSaveRegisterPairs()
2826 else if (AArch64::FPR64RegClass.contains(RPI.Reg1)) in computeCalleeSaveRegisterPairs()
2827 RPI.Type = RegPairInfo::FPR64; in computeCalleeSaveRegisterPairs()
2828 else if (AArch64::FPR128RegClass.contains(RPI.Reg1)) in computeCalleeSaveRegisterPairs()
2829 RPI.Type = RegPairInfo::FPR128; in computeCalleeSaveRegisterPairs()
2830 else if (AArch64::ZPRRegClass.contains(RPI.Reg1)) in computeCalleeSaveRegisterPairs()
2831 RPI.Type = RegPairInfo::ZPR; in computeCalleeSaveRegisterPairs()
2832 else if (AArch64::PPRRegClass.contains(RPI.Reg1)) in computeCalleeSaveRegisterPairs()
2833 RPI.Type = RegPairInfo::PPR; in computeCalleeSaveRegisterPairs()
2841 switch (RPI.Type) { in computeCalleeSaveRegisterPairs()
2844 !invalidateRegisterPairing(RPI.Reg1, NextReg, IsWindows, in computeCalleeSaveRegisterPairs()
2847 RPI.Reg2 = NextReg; in computeCalleeSaveRegisterPairs()
2851 !invalidateWindowsRegisterPairing(RPI.Reg1, NextReg, NeedsWinCFI, in computeCalleeSaveRegisterPairs()
2853 RPI.Reg2 = NextReg; in computeCalleeSaveRegisterPairs()
2857 RPI.Reg2 = NextReg; in computeCalleeSaveRegisterPairs()
2871 assert((!RPI.isPaired() || in computeCalleeSaveRegisterPairs()
2875 assert((!RPI.isPaired() || !NeedsFrameRecord || RPI.Reg2 != AArch64::FP || in computeCalleeSaveRegisterPairs()
2876 RPI.Reg1 == AArch64::LR) && in computeCalleeSaveRegisterPairs()
2880 assert((!RPI.isPaired() || !NeedsFrameRecord || RPI.Reg1 != AArch64::FP || in computeCalleeSaveRegisterPairs()
2881 RPI.Reg2 == AArch64::LR) && in computeCalleeSaveRegisterPairs()
2889 (RPI.isPaired() && in computeCalleeSaveRegisterPairs()
2890 ((RPI.Reg1 == AArch64::LR && RPI.Reg2 == AArch64::FP) || in computeCalleeSaveRegisterPairs()
2891 RPI.Reg1 + 1 == RPI.Reg2))) && in computeCalleeSaveRegisterPairs()
2894 RPI.FrameIdx = CSI[i].getFrameIdx(); in computeCalleeSaveRegisterPairs()
2896 RPI.isPaired()) // RPI.FrameIdx must be the lower index of the pair in computeCalleeSaveRegisterPairs()
2897 RPI.FrameIdx = CSI[i + RegInc].getFrameIdx(); in computeCalleeSaveRegisterPairs()
2899 int Scale = RPI.getScale(); in computeCalleeSaveRegisterPairs()
2901 int OffsetPre = RPI.isScalable() ? ScalableByteOffset : ByteOffset; in computeCalleeSaveRegisterPairs()
2904 if (RPI.isScalable()) in computeCalleeSaveRegisterPairs()
2907 ByteOffset += StackFillDir * (RPI.isPaired() ? 2 * Scale : Scale); in computeCalleeSaveRegisterPairs()
2912 ((!IsWindows && RPI.Reg2 == AArch64::FP) || in computeCalleeSaveRegisterPairs()
2913 (IsWindows && RPI.Reg2 == AArch64::LR))) in computeCalleeSaveRegisterPairs()
2916 assert(!(RPI.isScalable() && RPI.isPaired()) && in computeCalleeSaveRegisterPairs()
2922 !RPI.isScalable() && RPI.Type != RegPairInfo::FPR128 && in computeCalleeSaveRegisterPairs()
2923 !RPI.isPaired() && ByteOffset % 16 != 0) { in computeCalleeSaveRegisterPairs()
2925 assert(MFI.getObjectAlign(RPI.FrameIdx) <= Align(16)); in computeCalleeSaveRegisterPairs()
2929 MFI.setObjectAlignment(RPI.FrameIdx, Align(16)); in computeCalleeSaveRegisterPairs()
2933 int OffsetPost = RPI.isScalable() ? ScalableByteOffset : ByteOffset; in computeCalleeSaveRegisterPairs()
2942 ((!IsWindows && RPI.Reg2 == AArch64::FP) || in computeCalleeSaveRegisterPairs()
2943 (IsWindows && RPI.Reg2 == AArch64::LR))) in computeCalleeSaveRegisterPairs()
2945 RPI.Offset = Offset / Scale; in computeCalleeSaveRegisterPairs()
2947 assert(((!RPI.isScalable() && RPI.Offset >= -64 && RPI.Offset <= 63) || in computeCalleeSaveRegisterPairs()
2948 (RPI.isScalable() && RPI.Offset >= -256 && RPI.Offset <= 255)) && in computeCalleeSaveRegisterPairs()
2953 if (NeedsFrameRecord && ((!IsWindows && RPI.Reg1 == AArch64::LR && in computeCalleeSaveRegisterPairs()
2954 RPI.Reg2 == AArch64::FP) || in computeCalleeSaveRegisterPairs()
2955 (IsWindows && RPI.Reg1 == AArch64::FP && in computeCalleeSaveRegisterPairs()
2956 RPI.Reg2 == AArch64::LR))) in computeCalleeSaveRegisterPairs()
2959 RegPairs.push_back(RPI); in computeCalleeSaveRegisterPairs()
2960 if (RPI.isPaired()) in computeCalleeSaveRegisterPairs()
2993 for (auto &RPI : RegPairs) { in spillCalleeSavedRegisters() local
2994 MIB.addReg(RPI.Reg1); in spillCalleeSavedRegisters()
2995 MIB.addReg(RPI.Reg2); in spillCalleeSavedRegisters()
2998 if (!MRI.isReserved(RPI.Reg1)) in spillCalleeSavedRegisters()
2999 MBB.addLiveIn(RPI.Reg1); in spillCalleeSavedRegisters()
3000 if (RPI.isPaired() && !MRI.isReserved(RPI.Reg2)) in spillCalleeSavedRegisters()
3001 MBB.addLiveIn(RPI.Reg2); in spillCalleeSavedRegisters()
3005 for (const RegPairInfo &RPI : llvm::reverse(RegPairs)) { in spillCalleeSavedRegisters() local
3006 unsigned Reg1 = RPI.Reg1; in spillCalleeSavedRegisters()
3007 unsigned Reg2 = RPI.Reg2; in spillCalleeSavedRegisters()
3022 switch (RPI.Type) { in spillCalleeSavedRegisters()
3024 StrOpc = RPI.isPaired() ? AArch64::STPXi : AArch64::STRXui; in spillCalleeSavedRegisters()
3029 StrOpc = RPI.isPaired() ? AArch64::STPDi : AArch64::STRDui; in spillCalleeSavedRegisters()
3034 StrOpc = RPI.isPaired() ? AArch64::STPQi : AArch64::STRQui; in spillCalleeSavedRegisters()
3050 if (RPI.isPaired()) dbgs() << ", " << printReg(Reg2, TRI); in spillCalleeSavedRegisters()
3051 dbgs() << ") -> fi#(" << RPI.FrameIdx; in spillCalleeSavedRegisters()
3052 if (RPI.isPaired()) dbgs() << ", " << RPI.FrameIdx + 1; in spillCalleeSavedRegisters()
3060 unsigned FrameIdxReg1 = RPI.FrameIdx; in spillCalleeSavedRegisters()
3061 unsigned FrameIdxReg2 = RPI.FrameIdx + 1; in spillCalleeSavedRegisters()
3062 if (NeedsWinCFI && RPI.isPaired()) { in spillCalleeSavedRegisters()
3069 if (RPI.isPaired()) { in spillCalleeSavedRegisters()
3079 .addImm(RPI.Offset) // [sp, #offset*scale], in spillCalleeSavedRegisters()
3090 if (RPI.Type == RegPairInfo::ZPR || RPI.Type == RegPairInfo::PPR) in spillCalleeSavedRegisters()
3091 MFI.setStackID(RPI.FrameIdx, TargetStackID::ScalableVector); in spillCalleeSavedRegisters()
3111 auto EmitMI = [&](const RegPairInfo &RPI) -> MachineBasicBlock::iterator { in restoreCalleeSavedRegisters() argument
3112 unsigned Reg1 = RPI.Reg1; in restoreCalleeSavedRegisters()
3113 unsigned Reg2 = RPI.Reg2; in restoreCalleeSavedRegisters()
3126 switch (RPI.Type) { in restoreCalleeSavedRegisters()
3128 LdrOpc = RPI.isPaired() ? AArch64::LDPXi : AArch64::LDRXui; in restoreCalleeSavedRegisters()
3133 LdrOpc = RPI.isPaired() ? AArch64::LDPDi : AArch64::LDRDui; in restoreCalleeSavedRegisters()
3138 LdrOpc = RPI.isPaired() ? AArch64::LDPQi : AArch64::LDRQui; in restoreCalleeSavedRegisters()
3154 if (RPI.isPaired()) dbgs() << ", " << printReg(Reg2, TRI); in restoreCalleeSavedRegisters()
3155 dbgs() << ") -> fi#(" << RPI.FrameIdx; in restoreCalleeSavedRegisters()
3156 if (RPI.isPaired()) dbgs() << ", " << RPI.FrameIdx + 1; in restoreCalleeSavedRegisters()
3162 unsigned FrameIdxReg1 = RPI.FrameIdx; in restoreCalleeSavedRegisters()
3163 unsigned FrameIdxReg2 = RPI.FrameIdx + 1; in restoreCalleeSavedRegisters()
3164 if (NeedsWinCFI && RPI.isPaired()) { in restoreCalleeSavedRegisters()
3169 if (RPI.isPaired()) { in restoreCalleeSavedRegisters()
3177 .addImm(RPI.Offset) // [sp, #offset*scale] in restoreCalleeSavedRegisters()
3190 for (const RegPairInfo &RPI : reverse(RegPairs)) in restoreCalleeSavedRegisters() local
3191 if (RPI.isScalable()) in restoreCalleeSavedRegisters()
3192 EmitMI(RPI); in restoreCalleeSavedRegisters()
3197 for (auto &RPI : RegPairs) { in restoreCalleeSavedRegisters() local
3198 MIB.addReg(RPI.Reg1, RegState::Define); in restoreCalleeSavedRegisters()
3199 MIB.addReg(RPI.Reg2, RegState::Define); in restoreCalleeSavedRegisters()
3206 for (const RegPairInfo &RPI : reverse(RegPairs)) { in restoreCalleeSavedRegisters() local
3207 if (RPI.isScalable()) in restoreCalleeSavedRegisters()
3209 MachineBasicBlock::iterator It = EmitMI(RPI); in restoreCalleeSavedRegisters()
3216 for (const RegPairInfo &RPI : RegPairs) { in restoreCalleeSavedRegisters() local
3217 if (RPI.isScalable()) in restoreCalleeSavedRegisters()
3219 (void)EmitMI(RPI); in restoreCalleeSavedRegisters()