summaryrefslogtreecommitdiff
path: root/reference/chrome/bad.asm
blob: 386d1c869936607f54c2ee3609a4ce1e071e997a (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
111
112
113
114
115
116
117
118
119
120
121
; options:
; VERT: new compiler
@in(r0.x)	in0
@in(r0.y)	in1
@in(r0.z)	in2
@in(r0.w)	in3
@in(r1.x)	in4
@in(r1.y)	in5
@in(r1.z)	in8
@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
(sy)(ss)mul.f r1.z, r1.z, c40.x
(rpt2)nop
trunc.f r1.z, r1.z
(rpt2)nop
mov.f32f32 r1.z, r1.z
(rpt2)nop
max.f r1.w, r1.z, c40.y
max.f r2.x, r1.z, c40.y
max.f r2.y, r1.z, c40.y
max.f r2.z, r1.z, c40.y
min.f r1.w, r1.w, c40.z
mov.f32f32 r2.x, r2.x
min.f r2.y, r2.y, c40.z
min.f r2.z, r2.z, c40.z
mov.f32f32 r1.w, r1.w
min.f r2.x, r2.x, c40.z
mov.f32f32 r2.y, r2.y
mov.f32f32 r2.z, r2.z
trunc.f r1.w, r1.w
mov.f32f32 r2.x, r2.x
trunc.f r2.y, r2.y
trunc.f r2.z, r2.z
mov.f32f32 r1.w, r1.w
trunc.f r2.x, r2.x
mov.f32f32 r2.y, r2.y
mov.f32f32 r2.z, r2.z
mul.f r1.w, r1.w, c40.w
mov.f32f32 r2.x, r2.x
mul.f r2.y, r2.y, c40.w
mul.f r2.z, r2.z, c40.w
mov.f32f32 r1.w, r1.w
cov.f32s16 hr0.x, r2.x
mov.f32f32 r2.x, r2.y
mov.f32f32 r2.y, r2.z
cov.f32s16 hr0.y, r1.w
shl.b hr0.x, hr0.x, 2
cov.f32s16 hr0.z, r2.x
cov.f32s16 hr0.w, r2.y
shl.b hr0.y, hr0.y, 2
mova a0.x, hr0.x
shl.b hr0.x, hr0.z, 2
shl.b hr0.z, hr0.w, 2
max.f r2.x, r1.z, c40.y
(rpt2)nop
mov.f32f32 r1.z, c<a0.x + 129>
mov.f32f32 r1.w, c<a0.x + 131>
mov.f32f32 r2.y, c<a0.x + 128>
(ul)mov.f32f32 r2.z, c<a0.x + 130>
mova a0.x, hr0.y
mad.f32 r1.y, r1.y, r1.w, r1.z
mov.f32f32 r1.w, r1.w
mov.f32f32 r1.z, r2.z
mad.f32 r1.x, r1.x, r2.z, r2.y
min.f r2.x, r2.x, c40.z
nop
mul.f r2.y, c<a0.x>, r0.x
mul.f r2.z, c<a0.x>, r0.x
mul.f r2.w, c<a0.x>, r0.x
(ul)mul.f r0.x, c<a0.x>, r0.x
mova a0.x, hr0.x
mov.f32f32 r1.y, r1.y
mov.f32f32 r1.x, r1.x
mov.f32f32 r2.x, r2.x
(rpt2)nop
mad.f32 r2.y, c<a0.x + 4>, r0.y, r2.y
mad.f32 r2.z, c<a0.x + 4>, r0.y, r2.z
mad.f32 r2.w, c<a0.x + 4>, r0.y, r2.w
(ul)mad.f32 r0.x, c<a0.x + 4>, r0.y, r0.x
mova a0.x, hr0.z
mov.f32f32 r1.y, r1.y
mov.f32f32 r1.x, r1.x
trunc.f r0.y, r2.x
(rpt2)nop
mad.f32 r2.x, c<a0.x + 8>, r0.z, r2.y
mov.f32f32 r0.y, r0.y
mad.f32 r2.y, c<a0.x + 8>, r0.z, r2.z
mad.f32 r2.z, c<a0.x + 8>, r0.z, r2.w
(ul)mad.f32 r0.x, c<a0.x + 8>, r0.z, r0.x
mul.f r0.y, r0.y, c40.w
(rpt2)nop
mov.f32f32 r0.y, r0.y
(rpt2)nop
cov.f32s16 hr0.x, r0.y
(rpt2)nop
shl.b hr0.x, hr0.x, 2
(rpt2)nop
mova a0.x, hr0.x
(rpt5)nop
mad.f32 r0.y, c<a0.x + 12>, r0.w, r2.x
mad.f32 r0.z, c<a0.x + 12>, r0.w, r2.y
mad.f32 r2.x, c<a0.x + 12>, r0.w, r2.z
(ul)mad.f32 r0.x, c<a0.x + 12>, r0.w, r0.x
mov.f32f32 r0.w, r0.y
mov.f32f32 r0.z, r0.z
mov.f32f32 r0.y, r2.x
mov.f32f32 r0.x, r0.x
end
nop
nop
nop
; VERT: outputs: r0.x (0:0) r1.x (5:20)
; VERT: inputs: r0.x (0:0,cm=f,il=8,b=0) r1.x (0:0,cm=3,il=12,b=0) r1.z (0:0,cm=1,il=16,b=0)
; VERT: 122 instructions, 1 half, 3 full