-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
reftypes.clif
99 lines (84 loc) · 1.52 KB
/
reftypes.clif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
test compile precise-output
target s390x
function %f0(r64, r64) -> r64 {
block0(v0: r64, v1: r64):
return v1
}
; block0:
; lgr %r2, %r3
; br %r14
function %f1(r64) -> b1 {
block0(v0: r64):
v1 = is_null v0
return v1
}
; block0:
; cghi %r2, 0
; lhi %r2, 0
; lochie %r2, 1
; br %r14
function %f2(r64) -> b1 {
block0(v0: r64):
v1 = is_invalid v0
return v1
}
; block0:
; cghi %r2, -1
; lhi %r2, 0
; lochie %r2, 1
; br %r14
function %f3() -> r64 {
block0:
v0 = null.r64
return v0
}
; block0:
; lghi %r2, 0
; br %r14
function %f4(r64, r64) -> r64, r64, r64 {
fn0 = %f(r64) -> b1
ss0 = explicit_slot 8
block0(v0: r64, v1: r64):
v2 = call fn0(v0)
stack_store.r64 v0, ss0
brz v2, block1(v1, v0)
jump block2(v0, v1)
block1(v3: r64, v4: r64):
jump block3(v3, v4)
block2(v5: r64, v6: r64):
jump block3(v5, v6)
block3(v7: r64, v8: r64):
v9 = stack_load.r64 ss0
return v7, v8, v9
}
; stmg %r14, %r15, 112(%r15)
; aghi %r15, -184
; virtual_sp_offset_adjust 160
; block0:
; stg %r3, 176(%r15)
; stg %r2, 168(%r15)
; bras %r1, 12 ; data %f + 0 ; lg %r5, 0(%r1)
; basr %r14, %r5
; la %r3, 160(%r15)
; lg %r5, 168(%r15)
; stg %r5, 0(%r3)
; llcr %r4, %r2
; chi %r4, 0
; jgnlh label1 ; jg label3
; block1:
; jg label2
; block2:
; lgr %r3, %r5
; lg %r2, 176(%r15)
; jg label5
; block3:
; jg label4
; block4:
; lgr %r2, %r5
; lg %r3, 176(%r15)
; jg label5
; block5:
; la %r4, 160(%r15)
; lg %r4, 0(%r4)
; lmg %r14, %r15, 296(%r15)
; br %r14