[RISCV][NFC] Rename callee saved regs 'CSR' to CSR_ILP32_LP64 and minor RISCVRegisterInfo refactoring
The CSR renaming further prepares the way for an upcoming patch adding support for more RISC-V ABIs. Modify RISCVRegisterInfo::getCalleeSavedRegs and RISCVRegisterInfo::getReservedRegs to do MF->getSubtarget<RISCVSubtarget>() once rather than multiple times. llvm-svn: 356123
This commit is contained in:
parent
d08ed38e08
commit
8dbc6398e1
|
@ -13,7 +13,8 @@
|
|||
// The RISC-V calling convention is handled with custom code in
|
||||
// RISCVISelLowering.cpp (CC_RISCV).
|
||||
|
||||
def CSR : CalleeSavedRegs<(add X1, X3, X4, X8, X9, (sequence "X%u", 18, 27))>;
|
||||
def CSR_ILP32_LP64
|
||||
: CalleeSavedRegs<(add X1, X3, X4, X8, X9, (sequence "X%u", 18, 27))>;
|
||||
|
||||
// Needed for implementation of RISCVRegisterInfo::getNoPreservedMask()
|
||||
def CSR_NoRegs : CalleeSavedRegs<(add)>;
|
||||
|
|
|
@ -32,14 +32,15 @@ RISCVRegisterInfo::RISCVRegisterInfo(unsigned HwMode)
|
|||
|
||||
const MCPhysReg *
|
||||
RISCVRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const {
|
||||
auto &Subtarget = MF->getSubtarget<RISCVSubtarget>();
|
||||
if (MF->getFunction().hasFnAttribute("interrupt")) {
|
||||
if (MF->getSubtarget<RISCVSubtarget>().hasStdExtD())
|
||||
if (Subtarget.hasStdExtD())
|
||||
return CSR_XLEN_F64_Interrupt_SaveList;
|
||||
if (MF->getSubtarget<RISCVSubtarget>().hasStdExtF())
|
||||
if (Subtarget..hasStdExtF())
|
||||
return CSR_XLEN_F32_Interrupt_SaveList;
|
||||
return CSR_Interrupt_SaveList;
|
||||
}
|
||||
return CSR_SaveList;
|
||||
return CSR_ILP32_LP64_SaveList;
|
||||
}
|
||||
|
||||
BitVector RISCVRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
|
||||
|
@ -118,12 +119,13 @@ unsigned RISCVRegisterInfo::getFrameRegister(const MachineFunction &MF) const {
|
|||
const uint32_t *
|
||||
RISCVRegisterInfo::getCallPreservedMask(const MachineFunction & MF,
|
||||
CallingConv::ID /*CC*/) const {
|
||||
auto &Subtarget = MF->getSubtarget<RISCVSubtarget>();
|
||||
if (MF.getFunction().hasFnAttribute("interrupt")) {
|
||||
if (MF.getSubtarget<RISCVSubtarget>().hasStdExtD())
|
||||
if (Subtarget.hasStdExtD())
|
||||
return CSR_XLEN_F64_Interrupt_RegMask;
|
||||
if (MF.getSubtarget<RISCVSubtarget>().hasStdExtF())
|
||||
if (Subtarget.hasStdExtF())
|
||||
return CSR_XLEN_F32_Interrupt_RegMask;
|
||||
return CSR_Interrupt_RegMask;
|
||||
}
|
||||
return CSR_RegMask;
|
||||
return CSR_ILP32_LP64_RegMask;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue