LR is in GPR, not tGPR even in Thumb1 mode.
[oota-llvm.git] / test / CodeGen / ARM / arm-returnaddr.ll
1 ; RUN: llc < %s -mtriple=arm-apple-darwin | FileCheck %s
2 ; RUN: llc < %s -mtriple=thumbv6-apple-darwin
3 ; rdar://8015977
4 ; rdar://8020118
5
6 define arm_apcscc i8* @rt0(i32 %x) nounwind readnone {
7 entry:
8 ; CHECK: rt0:
9 ; CHECK: mov r0, lr
10   %0 = tail call i8* @llvm.returnaddress(i32 0)
11   ret i8* %0
12 }
13
14 define arm_apcscc i8* @rt2() nounwind readnone {
15 entry:
16 ; CHECK: rt2:
17 ; CHECK: ldr r0, [r7]
18 ; CHECK: ldr r0, [r0]
19 ; CHECK: ldr r0, [r0, #4]
20   %0 = tail call i8* @llvm.returnaddress(i32 2)
21   ret i8* %0
22 }
23
24 declare i8* @llvm.returnaddress(i32) nounwind readnone