blob: 6c821f3ce96b8bb2628cf2207470fb331d26e834 [file] [log] [blame]
Venkatraman Govindaraju860b64c2011-01-12 05:08:36 +00001;RUN: llc -march=sparc < %s | FileCheck %s
2
3
4define i8* @frameaddr() nounwind readnone {
5entry:
6;CHECK: frameaddr
7;CHECK: or %g0, %fp, {{.+}}
8 %0 = tail call i8* @llvm.frameaddress(i32 0)
9 ret i8* %0
10}
11
12define i8* @frameaddr2() nounwind readnone {
13entry:
14;CHECK: frameaddr2
15;CHECK: flushw
16;CHECK: ld [%fp+56], {{.+}}
17;CHECK: ld [{{.+}}+56], {{.+}}
18;CHECK: ld [{{.+}}+56], {{.+}}
19 %0 = tail call i8* @llvm.frameaddress(i32 3)
20 ret i8* %0
21}
22
23declare i8* @llvm.frameaddress(i32) nounwind readnone
24
25
26
27define i8* @retaddr() nounwind readnone {
28entry:
29;CHECK: retaddr
30;CHECK: or %g0, %i7, {{.+}}
31 %0 = tail call i8* @llvm.returnaddress(i32 0)
32 ret i8* %0
33}
34
35define i8* @retaddr2() nounwind readnone {
36entry:
37;CHECK: retaddr2
38;CHECK: flushw
39;CHECK: ld [%fp+56], {{.+}}
40;CHECK: ld [{{.+}}+56], {{.+}}
41;CHECK: ld [{{.+}}+60], {{.+}}
42 %0 = tail call i8* @llvm.returnaddress(i32 3)
43 ret i8* %0
44}
45
46declare i8* @llvm.returnaddress(i32) nounwind readnone