diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/ARM/ARMRegisterInfo.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMRegisterInfo.cpp b/lib/Target/ARM/ARMRegisterInfo.cpp index 09420071bf..8177c806c2 100644 --- a/lib/Target/ARM/ARMRegisterInfo.cpp +++ b/lib/Target/ARM/ARMRegisterInfo.cpp @@ -1474,7 +1474,10 @@ unsigned ARMRegisterInfo::getRARegister() const { } unsigned ARMRegisterInfo::getFrameRegister(MachineFunction &MF) const { - return STI.useThumbBacktraces() ? ARM::R7 : ARM::R11; + if (STI.isTargetDarwin() || hasFP(MF)) + return STI.useThumbBacktraces() ? ARM::R7 : ARM::R11; + else + return ARM::SP; } unsigned ARMRegisterInfo::getEHExceptionRegister() const { |