mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-14 02:33:53 +00:00
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:
parent
d3e28347e5
commit
fdc9692f97
@ -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;
|
||||
}
|
||||
|
9
test/CodeGen/ARM/frame_thumb.ll
Normal file
9
test/CodeGen/ARM/frame_thumb.ll
Normal 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
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user