On Darwin, frame pointer r7 is never available.
authorEvan Cheng <evan.cheng@apple.com>
Mon, 15 Jun 2009 22:32:01 +0000 (22:32 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Mon, 15 Jun 2009 22:32:01 +0000 (22:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73434 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMRegisterInfo.cpp

index d06da67a5f87537d13c9227fd4310381d544e1a5..6298df9773febdc53dfa46b7f1eadf910c6facdc 100644 (file)
@@ -385,7 +385,7 @@ ARMRegisterInfo::getAllocationOrder(const TargetRegisterClass *RC,
 
 
   if (Hint.first == ARMRI::RegPairEven) {
-    if (!hasFP(MF)) {
+    if (!STI.isTargetDarwin() && !hasFP(MF)) {
       if (!STI.isR9Reserved())
         return std::make_pair(GPREven1,
                               GPREven1 + (sizeof(GPREven1)/sizeof(unsigned)));
@@ -408,7 +408,7 @@ ARMRegisterInfo::getAllocationOrder(const TargetRegisterClass *RC,
                               GPREven6 + (sizeof(GPREven6)/sizeof(unsigned)));
     }
   } else if (Hint.first == ARMRI::RegPairOdd) {
-    if (!hasFP(MF)) {
+    if (!STI.isTargetDarwin() && !hasFP(MF)) {
       if (!STI.isR9Reserved())
         return std::make_pair(GPROdd1,
                               GPROdd1 + (sizeof(GPROdd1)/sizeof(unsigned)));