Lines Matching refs:RPI

1640     RegPairInfo RPI;  in computeCalleeSaveRegisterPairs()  local
1641 RPI.Reg1 = CSI[i].getReg(); in computeCalleeSaveRegisterPairs()
1643 if (AArch64::GPR64RegClass.contains(RPI.Reg1)) in computeCalleeSaveRegisterPairs()
1644 RPI.Type = RegPairInfo::GPR; in computeCalleeSaveRegisterPairs()
1645 else if (AArch64::FPR64RegClass.contains(RPI.Reg1)) in computeCalleeSaveRegisterPairs()
1646 RPI.Type = RegPairInfo::FPR64; in computeCalleeSaveRegisterPairs()
1647 else if (AArch64::FPR128RegClass.contains(RPI.Reg1)) in computeCalleeSaveRegisterPairs()
1648 RPI.Type = RegPairInfo::FPR128; in computeCalleeSaveRegisterPairs()
1655 switch (RPI.Type) { in computeCalleeSaveRegisterPairs()
1658 !invalidateWindowsRegisterPairing(RPI.Reg1, NextReg, NeedsWinCFI)) in computeCalleeSaveRegisterPairs()
1659 RPI.Reg2 = NextReg; in computeCalleeSaveRegisterPairs()
1663 !invalidateWindowsRegisterPairing(RPI.Reg1, NextReg, NeedsWinCFI)) in computeCalleeSaveRegisterPairs()
1664 RPI.Reg2 = NextReg; in computeCalleeSaveRegisterPairs()
1668 RPI.Reg2 = NextReg; in computeCalleeSaveRegisterPairs()
1675 if ((RPI.Reg1 == AArch64::LR || RPI.Reg2 == AArch64::LR) && in computeCalleeSaveRegisterPairs()
1688 assert((!RPI.isPaired() || in computeCalleeSaveRegisterPairs()
1696 (RPI.isPaired() && in computeCalleeSaveRegisterPairs()
1697 ((RPI.Reg1 == AArch64::LR && RPI.Reg2 == AArch64::FP) || in computeCalleeSaveRegisterPairs()
1698 RPI.Reg1 + 1 == RPI.Reg2))) && in computeCalleeSaveRegisterPairs()
1701 RPI.FrameIdx = CSI[i].getFrameIdx(); in computeCalleeSaveRegisterPairs()
1703 int Scale = RPI.Type == RegPairInfo::FPR128 ? 16 : 8; in computeCalleeSaveRegisterPairs()
1704 Offset -= RPI.isPaired() ? 2 * Scale : Scale; in computeCalleeSaveRegisterPairs()
1709 RPI.Type != RegPairInfo::FPR128 && !RPI.isPaired()) { in computeCalleeSaveRegisterPairs()
1713 assert(MFI.getObjectAlignment(RPI.FrameIdx) <= 16); in computeCalleeSaveRegisterPairs()
1714 MFI.setObjectAlignment(RPI.FrameIdx, 16); in computeCalleeSaveRegisterPairs()
1718 RPI.Offset = Offset / Scale; in computeCalleeSaveRegisterPairs()
1719 assert((RPI.Offset >= -64 && RPI.Offset <= 63) && in computeCalleeSaveRegisterPairs()
1722 RegPairs.push_back(RPI); in computeCalleeSaveRegisterPairs()
1723 if (RPI.isPaired()) in computeCalleeSaveRegisterPairs()
1779 RegPairInfo RPI = *RPII; in spillCalleeSavedRegisters() local
1780 unsigned Reg1 = RPI.Reg1; in spillCalleeSavedRegisters()
1781 unsigned Reg2 = RPI.Reg2; in spillCalleeSavedRegisters()
1795 switch (RPI.Type) { in spillCalleeSavedRegisters()
1797 StrOpc = RPI.isPaired() ? AArch64::STPXi : AArch64::STRXui; in spillCalleeSavedRegisters()
1802 StrOpc = RPI.isPaired() ? AArch64::STPDi : AArch64::STRDui; in spillCalleeSavedRegisters()
1807 StrOpc = RPI.isPaired() ? AArch64::STPQi : AArch64::STRQui; in spillCalleeSavedRegisters()
1813 if (RPI.isPaired()) dbgs() << ", " << printReg(Reg2, TRI); in spillCalleeSavedRegisters()
1814 dbgs() << ") -> fi#(" << RPI.FrameIdx; in spillCalleeSavedRegisters()
1815 if (RPI.isPaired()) dbgs() << ", " << RPI.FrameIdx + 1; in spillCalleeSavedRegisters()
1823 unsigned FrameIdxReg1 = RPI.FrameIdx; in spillCalleeSavedRegisters()
1824 unsigned FrameIdxReg2 = RPI.FrameIdx + 1; in spillCalleeSavedRegisters()
1825 if (NeedsWinCFI && RPI.isPaired()) { in spillCalleeSavedRegisters()
1832 if (RPI.isPaired()) { in spillCalleeSavedRegisters()
1842 .addImm(RPI.Offset) // [sp, #offset*scale], in spillCalleeSavedRegisters()
1872 auto EmitMI = [&](const RegPairInfo &RPI) { in restoreCalleeSavedRegisters() argument
1873 unsigned Reg1 = RPI.Reg1; in restoreCalleeSavedRegisters()
1874 unsigned Reg2 = RPI.Reg2; in restoreCalleeSavedRegisters()
1886 switch (RPI.Type) { in restoreCalleeSavedRegisters()
1888 LdrOpc = RPI.isPaired() ? AArch64::LDPXi : AArch64::LDRXui; in restoreCalleeSavedRegisters()
1893 LdrOpc = RPI.isPaired() ? AArch64::LDPDi : AArch64::LDRDui; in restoreCalleeSavedRegisters()
1898 LdrOpc = RPI.isPaired() ? AArch64::LDPQi : AArch64::LDRQui; in restoreCalleeSavedRegisters()
1904 if (RPI.isPaired()) dbgs() << ", " << printReg(Reg2, TRI); in restoreCalleeSavedRegisters()
1905 dbgs() << ") -> fi#(" << RPI.FrameIdx; in restoreCalleeSavedRegisters()
1906 if (RPI.isPaired()) dbgs() << ", " << RPI.FrameIdx + 1; in restoreCalleeSavedRegisters()
1912 unsigned FrameIdxReg1 = RPI.FrameIdx; in restoreCalleeSavedRegisters()
1913 unsigned FrameIdxReg2 = RPI.FrameIdx + 1; in restoreCalleeSavedRegisters()
1914 if (NeedsWinCFI && RPI.isPaired()) { in restoreCalleeSavedRegisters()
1919 if (RPI.isPaired()) { in restoreCalleeSavedRegisters()
1927 .addImm(RPI.Offset) // [sp, #offset*scale] in restoreCalleeSavedRegisters()
1937 for (const RegPairInfo &RPI : reverse(RegPairs)) in restoreCalleeSavedRegisters() local
1938 EmitMI(RPI); in restoreCalleeSavedRegisters()
1940 for (const RegPairInfo &RPI : RegPairs) in restoreCalleeSavedRegisters() local
1941 EmitMI(RPI); in restoreCalleeSavedRegisters()