summaryrefslogtreecommitdiff
path: root/reference/ffox-otmc/ffox-otmc-05.asm
blob: be2ee4c821182d7c43f537eda972d1bc26ce51e1 (plain)
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
99
100
101
102
103
104
105
106
107
108
109
110
; options:
; VERT: new compiler
@in(r1.x)	in0
@in(r1.y)	in1
@in(r1.w)	in3
@out(r0.x)	out0
@out(r0.y)	out1
@out(r0.z)	out2
@out(r0.w)	out3
@out(r1.x)	out4
@out(r1.y)	out5
@out(r1.z)	out6
@out(r1.w)	out7
@const(c21.x)	0x00000000, 0x3f800000, 0x00000000, 0x00000000
(sy)(ss)trunc.f r0.x, r1.w
(rpt2)nop
cov.f32s16 hr0.x, r0.x
cov.f32s16 hr0.y, r0.x
(rpt1)nop
shl.b hr0.x, hr0.x, 2
shl.b hr0.y, hr0.y, 2
(rpt1)nop
mova a0.x, hr0.x
(rpt5)nop
mov.f32f32 r0.x, c<a0.x + 18>
mov.f32f32 r0.y, c<a0.x + 16>
mov.f32f32 r0.z, c<a0.x + 19>
(ul)mov.f32f32 r0.w, c<a0.x + 17>
mad.f32 r0.x, r1.x, r0.x, r0.y
(rpt2)nop
mul.f r0.y, c8.w, r0.x
mad.f32 r0.z, r1.y, r0.z, r0.w
mov.f32f32 r0.x, r0.x
(rpt1)nop
mad.f32 r0.y, c9.w, r0.z, r0.y
mul.f r0.w, c8.x, r0.x
mul.f r1.z, c8.y, r0.x
mul.f r0.x, c8.z, r0.x
add.f r0.y, r0.y, c11.w
mov.f32f32 r0.z, r0.z
(rpt4)nop
rcp r1.w, r0.y
mad.f32 r0.w, c9.x, r0.z, r0.w
mad.f32 r1.z, c9.y, r0.z, r1.z
mad.f32 r0.x, c9.z, r0.z, r0.x
(ss)add.f r0.y, r0.y, (neg)c12.w
add.f r0.z, r0.w, c11.x
add.f r0.w, r1.z, c11.y
add.f r0.x, r0.x, c11.z
nop
(ss)mul.f r0.z, r0.z, r1.w
mul.f r0.w, r0.w, r1.w
mul.f r0.x, r0.x, r1.w
nop
add.f r0.z, r0.z, (neg)c12.x
add.f r0.w, r0.w, (neg)c12.y
add.f r0.x, r0.x, (neg)c12.z
nop
mul.f r0.z, r0.z, r0.y
mul.f r1.z, r0.w, r0.y
mul.f r0.x, r0.x, r0.y
nop
mov.f32f32 r1.w, r0.z
mul.f r2.x, c0.x, r0.z
mov.f32f32 r2.y, r1.z
mov.f32f32 r2.z, r0.x
mul.f r0.z, c0.w, r1.w
mul.f r0.w, c0.z, r1.w
mad.f32 r0.z, c1.w, r2.y, r0.z
mad.f32 r0.w, c1.z, r2.y, r0.w
mad.f32 r0.z, c2.w, r2.z, r0.z
mad.f32 r2.w, c2.z, r2.z, r0.w
mad.f32 r0.w, c3.w, r0.y, r0.z
mad.f32 r0.z, c3.z, r0.y, r2.w
mul.f r1.w, c0.y, r1.w
mad.f32 r1.z, c1.x, r1.z, r2.x
mad.f32 r1.w, c1.y, r2.y, r1.w
mad.f32 r0.x, c2.x, r0.x, r1.z
mad.f32 r1.z, c2.y, r2.z, r1.w
mad.f32 r0.x, c3.x, r0.y, r0.x
mad.f32 r0.y, c3.y, r0.y, r1.z
mova a0.x, hr0.y
(rpt5)nop
mov.f32f32 r1.z, c<a0.x + 70>
mov.f32f32 r1.w, c<a0.x + 68>
mov.f32f32 r2.x, c<a0.x + 71>
(ul)mov.f32f32 r2.y, c<a0.x + 69>
mad.f32 r1.x, r1.x, r1.z, r1.w
(rpt2)nop
mov.f32f32 r1.z, r1.x
mul.f r1.x, c13.x, r1.x
mad.f32 r1.y, r1.y, r2.x, r2.y
nop
mul.f r1.w, c13.y, r1.z
mul.f r2.x, c13.w, r1.z
mov.f32f32 r2.y, r1.y
mul.f r1.z, c13.z, r1.z
mad.f32 r1.x, c14.x, r1.y, r1.x
nop
mad.f32 r1.y, c14.y, r2.y, r1.w
mad.f32 r1.w, c14.w, r2.y, r2.x
mad.f32 r1.z, c14.z, r2.y, r1.z
add.f r1.x, r1.x, c16.x
add.f r1.y, r1.y, c16.y
end
nop
; VERT: outputs: r0.x (0:0) r1.x (5:9)
; VERT: inputs: r1.x (0:0,cm=b,il=8,b=0)
; VERT: 114 instructions, 1 half, 3 full