mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-26 22:19:02 +00:00
Removed AFGR32 register class
Handle odd registers allocation in FGR32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67422 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -133,8 +133,8 @@ MipsRegisterInfo::getCalleeSavedRegClasses(const MachineFunction *MF) const
|
||||
&Mips::CPURegsRegClass, &Mips::CPURegsRegClass, &Mips::CPURegsRegClass,
|
||||
&Mips::CPURegsRegClass, &Mips::CPURegsRegClass, &Mips::CPURegsRegClass,
|
||||
&Mips::CPURegsRegClass, &Mips::CPURegsRegClass,
|
||||
&Mips::AFGR32RegClass, &Mips::AFGR32RegClass, &Mips::AFGR32RegClass,
|
||||
&Mips::AFGR32RegClass, &Mips::AFGR32RegClass, &Mips::AFGR32RegClass,
|
||||
&Mips::FGR32RegClass, &Mips::FGR32RegClass, &Mips::FGR32RegClass,
|
||||
&Mips::FGR32RegClass, &Mips::FGR32RegClass, &Mips::FGR32RegClass,
|
||||
&Mips::AFGR64RegClass, &Mips::AFGR64RegClass, &Mips::AFGR64RegClass,
|
||||
&Mips::AFGR64RegClass, &Mips::AFGR64RegClass, &Mips::AFGR64RegClass, 0
|
||||
};
|
||||
@@ -157,6 +157,12 @@ getReservedRegs(const MachineFunction &MF) const
|
||||
Reserved.set(Mips::SP);
|
||||
Reserved.set(Mips::FP);
|
||||
Reserved.set(Mips::RA);
|
||||
|
||||
// SRV4 requires that odd register can't be used.
|
||||
if (!Subtarget.isSingleFloat())
|
||||
for (unsigned FReg=(Mips::F0)+1; FReg < Mips::F30; FReg+=2)
|
||||
Reserved.set(FReg);
|
||||
|
||||
return Reserved;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user