Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
Show First 20 Lines • Show All 95 Lines • ▼ Show 20 Lines | if (TFI->hasBP(MF)) | ||||
markSuperRegs(Reserved, RISCVABI::getBPReg()); // bp | markSuperRegs(Reserved, RISCVABI::getBPReg()); // bp | ||||
// V registers for code generation. We handle them manually. | // V registers for code generation. We handle them manually. | ||||
markSuperRegs(Reserved, RISCV::VL); | markSuperRegs(Reserved, RISCV::VL); | ||||
markSuperRegs(Reserved, RISCV::VTYPE); | markSuperRegs(Reserved, RISCV::VTYPE); | ||||
markSuperRegs(Reserved, RISCV::VXSAT); | markSuperRegs(Reserved, RISCV::VXSAT); | ||||
markSuperRegs(Reserved, RISCV::VXRM); | markSuperRegs(Reserved, RISCV::VXRM); | ||||
// Floating point environment registers. | |||||
markSuperRegs(Reserved, RISCV::FRM); | |||||
markSuperRegs(Reserved, RISCV::FFLAGS); | |||||
markSuperRegs(Reserved, RISCV::FCSR); | |||||
assert(checkAllSuperRegsMarked(Reserved)); | assert(checkAllSuperRegsMarked(Reserved)); | ||||
return Reserved; | return Reserved; | ||||
} | } | ||||
bool RISCVRegisterInfo::isAsmClobberable(const MachineFunction &MF, | bool RISCVRegisterInfo::isAsmClobberable(const MachineFunction &MF, | ||||
MCRegister PhysReg) const { | MCRegister PhysReg) const { | ||||
return !MF.getSubtarget<RISCVSubtarget>().isRegisterReservedByUser(PhysReg); | return !MF.getSubtarget<RISCVSubtarget>().isRegisterReservedByUser(PhysReg); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 220 Lines • Show Last 20 Lines |