diff --git a/llvm/lib/Target/PowerPC/PowerPCRegisterInfo.td b/llvm/lib/Target/PowerPC/PowerPCRegisterInfo.td index d6aaf4bda1c0..da7152edc761 100644 --- a/llvm/lib/Target/PowerPC/PowerPCRegisterInfo.td +++ b/llvm/lib/Target/PowerPC/PowerPCRegisterInfo.td @@ -73,9 +73,17 @@ def TBL : SPR<4>; def TBU : SPR<5>; /// Register classes: one for floats and another for non-floats. -def GPRC : RegisterClass; +def GPRC : RegisterClass { + let Methods = [{ + iterator allocation_order_end(MachineFunction &MF) const { + return end()-13; // do not allocate r0-r12 + } + }]; +} + def FPRC : RegisterClass;