mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 17:32:19 +00:00
Thumb1 functions using @llvm.returnaddress were not saving the incoming LR.
Radar 8031193. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106582 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
97994e0262
commit
a3a204664d
@ -175,10 +175,10 @@ spillCalleeSavedRegisters(MachineBasicBlock &MBB,
|
||||
isKill = false;
|
||||
}
|
||||
|
||||
if (isKill) {
|
||||
if (isKill)
|
||||
MBB.addLiveIn(Reg);
|
||||
MIB.addReg(Reg, RegState::Kill);
|
||||
}
|
||||
|
||||
MIB.addReg(Reg, getKillRegState(isKill));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -1,11 +1,12 @@
|
||||
; RUN: llc < %s -mtriple=arm-apple-darwin | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=thumbv6-apple-darwin
|
||||
; RUN: llc < %s -mtriple=thumbv6-apple-darwin | FileCheck %s
|
||||
; rdar://8015977
|
||||
; rdar://8020118
|
||||
|
||||
define i8* @rt0(i32 %x) nounwind readnone {
|
||||
entry:
|
||||
; CHECK: rt0:
|
||||
; CHECK: {r7, lr}
|
||||
; CHECK: mov r0, lr
|
||||
%0 = tail call i8* @llvm.returnaddress(i32 0)
|
||||
ret i8* %0
|
||||
@ -14,6 +15,7 @@ entry:
|
||||
define i8* @rt2() nounwind readnone {
|
||||
entry:
|
||||
; CHECK: rt2:
|
||||
; CHECK: {r7, lr}
|
||||
; CHECK: ldr r0, [r7]
|
||||
; CHECK: ldr r0, [r0]
|
||||
; CHECK: ldr r0, [r0, #4]
|
||||
|
Loading…
x
Reference in New Issue
Block a user