[llvm-commits] [llvm] r106582 - in /llvm/trunk: lib/Target/ARM/Thumb1InstrInfo.cpp test/CodeGen/ARM/arm-returnaddr.ll
Bob Wilson
bob.wilson at apple.com
Tue Jun 22 15:04:24 PDT 2010
Author: bwilson
Date: Tue Jun 22 17:04:24 2010
New Revision: 106582
URL: http://llvm.org/viewvc/llvm-project?rev=106582&view=rev
Log:
Thumb1 functions using @llvm.returnaddress were not saving the incoming LR.
Radar 8031193.
Modified:
llvm/trunk/lib/Target/ARM/Thumb1InstrInfo.cpp
llvm/trunk/test/CodeGen/ARM/arm-returnaddr.ll
Modified: llvm/trunk/lib/Target/ARM/Thumb1InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/Thumb1InstrInfo.cpp?rev=106582&r1=106581&r2=106582&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/Thumb1InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/ARM/Thumb1InstrInfo.cpp Tue Jun 22 17:04:24 2010
@@ -175,10 +175,10 @@
isKill = false;
}
- if (isKill) {
+ if (isKill)
MBB.addLiveIn(Reg);
- MIB.addReg(Reg, RegState::Kill);
- }
+
+ MIB.addReg(Reg, getKillRegState(isKill));
}
return true;
}
Modified: llvm/trunk/test/CodeGen/ARM/arm-returnaddr.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/arm-returnaddr.ll?rev=106582&r1=106581&r2=106582&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/arm-returnaddr.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/arm-returnaddr.ll Tue Jun 22 17:04:24 2010
@@ -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 @@
define i8* @rt2() nounwind readnone {
entry:
; CHECK: rt2:
+; CHECK: {r7, lr}
; CHECK: ldr r0, [r7]
; CHECK: ldr r0, [r0]
; CHECK: ldr r0, [r0, #4]
More information about the llvm-commits
mailing list