Home | History | Annotate | Download | only in ARM
      1 ; RUN: llc < %s -mtriple=arm-apple-ios | FileCheck %s
      2 ; RUN: llc < %s -mtriple=thumbv6-apple-ios | FileCheck %s
      3 ; RUN: llc < %s -mtriple=arm-apple-ios -regalloc=basic | FileCheck %s
      4 ; RUN: llc < %s -mtriple=thumbv6-apple-ios -regalloc=basic | FileCheck %s
      5 ; rdar://8015977
      6 ; rdar://8020118
      7 
      8 define i8* @rt0(i32 %x) nounwind readnone {
      9 entry:
     10 ; CHECK-LABEL: rt0:
     11 ; CHECK: mov r0, lr
     12   %0 = tail call i8* @llvm.returnaddress(i32 0)
     13   ret i8* %0
     14 }
     15 
     16 define i8* @rt2() nounwind readnone {
     17 entry:
     18 ; CHECK-LABEL: rt2:
     19 ; CHECK: ldr r[[R0:[0-9]+]], [r7]
     20 ; CHECK: ldr r0, [r[[R0]]]
     21 ; CHECK: ldr r0, [r[[R0]], #4]
     22   %0 = tail call i8* @llvm.returnaddress(i32 2)
     23   ret i8* %0
     24 }
     25 
     26 declare i8* @llvm.returnaddress(i32) nounwind readnone
     27