In Thumb mode, the frame register must be R7.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36512 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Lauro Ramos Venancio 2007-04-27 17:58:03 +00:00
parent d3e28347e5
commit fdc9692f97
2 changed files with 11 additions and 2 deletions

View File

@ -85,7 +85,7 @@ ARMRegisterInfo::ARMRegisterInfo(const TargetInstrInfo &tii,
const ARMSubtarget &sti)
: ARMGenRegisterInfo(ARM::ADJCALLSTACKDOWN, ARM::ADJCALLSTACKUP),
TII(tii), STI(sti),
FramePtr(STI.useThumbBacktraces() ? ARM::R7 : ARM::R11) {
FramePtr(STI.useThumbBacktraces() || STI.isThumb() ? ARM::R7 : ARM::R11) {
}
bool ARMRegisterInfo::spillCalleeSavedRegisters(MachineBasicBlock &MBB,
@ -1472,7 +1472,7 @@ unsigned ARMRegisterInfo::getRARegister() const {
unsigned ARMRegisterInfo::getFrameRegister(MachineFunction &MF) const {
if (STI.isTargetDarwin() || hasFP(MF))
return STI.useThumbBacktraces() ? ARM::R7 : ARM::R11;
return STI.useThumbBacktraces() || STI.isThumb() ? ARM::R7 : ARM::R11;
else
return ARM::SP;
}

View File

@ -0,0 +1,9 @@
; RUN: llvm-as < %s | llc -march=thumb -mtriple=arm-apple-darwin \
; RUN: -disable-fp-elim | not grep {r11}
; RUN: llvm-as < %s | llc -march=thumb -mtriple=arm-linux-gnueabi \
; RUN: -disable-fp-elim | not grep {r11}
define i32 @f() {
entry:
ret i32 10
}