[llvm-branch-commits] [llvm-branch] r96021 - /llvm/branches/Apple/Hermes/lib/Target/PowerPC/PPCRegisterInfo.cpp

Dale Johannesen dalej at apple.com
Fri Feb 12 14:03:31 PST 2010


Author: johannes
Date: Fri Feb 12 16:03:31 2010
New Revision: 96021

URL: http://llvm.org/viewvc/llvm-project?rev=96021&view=rev
Log:
--- Merging r96020 into '.':
U    lib/Target/PowerPC/PPCRegisterInfo.cpp


Modified:
    llvm/branches/Apple/Hermes/lib/Target/PowerPC/PPCRegisterInfo.cpp

Modified: llvm/branches/Apple/Hermes/lib/Target/PowerPC/PPCRegisterInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Hermes/lib/Target/PowerPC/PPCRegisterInfo.cpp?rev=96021&r1=96020&r2=96021&view=diff

==============================================================================
--- llvm/branches/Apple/Hermes/lib/Target/PowerPC/PPCRegisterInfo.cpp (original)
+++ llvm/branches/Apple/Hermes/lib/Target/PowerPC/PPCRegisterInfo.cpp Fri Feb 12 16:03:31 2010
@@ -427,6 +427,12 @@
     Reserved.set(PPC::R2);  // System-reserved register
     Reserved.set(PPC::R13); // Small Data Area pointer register
   }
+  // Reserve R2 on Darwin to hack around the problem of save/restore of CR
+  // when the stack frame is too big to address directly; we need two regs.
+  // This is a hack.
+  if (Subtarget.isDarwinABI()) {
+    Reserved.set(PPC::R2);
+  }
   
   // On PPC64, r13 is the thread pointer. Never allocate this register.
   // Note that this is over conservative, as it also prevents allocation of R31
@@ -447,6 +453,12 @@
     if (Subtarget.isSVR4ABI()) {
       Reserved.set(PPC::X2);
     }
+    // Reserve R2 on Darwin to hack around the problem of save/restore of CR
+    // when the stack frame is too big to address directly; we need two regs.
+    // This is a hack.
+    if (Subtarget.isDarwinABI()) {
+      Reserved.set(PPC::X2);
+    }
   }
 
   if (needsFP(MF))





More information about the llvm-branch-commits mailing list