summaryrefslogtreecommitdiff
path: root/reference/chrome/bad.asm
blob: 9cccfa5b32f546b5772b0cc72c40cd97948c2e04 (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
; options:
; VERT: new compiler
@in(r2.x)	in0
@in(r2.y)	in1
@in(r2.z)	in2
@in(r2.w)	in3
@in(r0.x)	in4
@in(r0.y)	in5
@in(r0.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
@const(c40.x)	0x3e800000, 0x00000000, 0x40e00000, 0x40800000
(sy)(ss)mul.f r0.z, r0.z, c40.x
(rpt2)nop
trunc.f r0.z, r0.z
(rpt2)nop
mov.f32f32 r0.w, r0.z
max.f r0.z, r0.z, c40.y
(rpt1)nop
max.f r1.x, r0.w, c40.y
max.f r1.y, r0.w, c40.y
max.f r1.z, r0.w, c40.y
max.f r0.w, r0.w, c40.y
min.f r1.x, r1.x, c40.z
min.f r1.y, r1.y, c40.z
min.f r1.z, r1.z, c40.z
min.f r0.w, r0.w, c40.z
trunc.f r1.x, r1.x
trunc.f r1.y, r1.y
trunc.f r1.z, r1.z
trunc.f r0.w, r0.w
mul.f r1.x, r1.x, c40.w
cov.f32s16 hr0.x, r1.y
mul.f r1.y, r1.z, c40.w
mul.f r0.w, r0.w, c40.w
cov.f32s16 hr0.y, r1.x
shl.b hr0.x, hr0.x, 2
cov.f32s16 hr0.z, r1.y
cov.f32s16 hr0.w, r0.w
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
min.f r0.z, r0.z, c40.z
(rpt2)nop
mov.f32f32 r0.w, c<a0.x + 129>
mov.f32f32 r1.w, c<a0.x + 131>
mov.f32f32 r1.x, c<a0.x + 128>
(ul)mov.f32f32 r1.z, c<a0.x + 130>
mova a0.x, hr0.y
mad.f32 r1.y, r0.y, r1.w, r0.w
trunc.f r0.y, r0.z
(rpt3)nop
mul.f r0.z, c<a0.x>, r2.x
mul.f r0.w, c<a0.x>, r2.x
mul.f r3.x, c<a0.x>, r2.x
(ul)mul.f r2.x, c<a0.x>, r2.x
mova a0.x, hr0.x
mad.f32 r1.x, r0.x, r1.z, r1.x
mul.f r0.x, r0.y, c40.w
(rpt3)nop
mad.f32 r0.y, c<a0.x + 4>, r2.y, r0.z
mad.f32 r0.z, c<a0.x + 4>, r2.y, r0.w
mad.f32 r0.w, c<a0.x + 4>, r2.y, r3.x
(ul)mad.f32 r2.x, c<a0.x + 4>, r2.y, r2.x
mova a0.x, hr0.z
cov.f32s16 hr0.x, r0.x
(rpt4)nop
mad.f32 r0.x, c<a0.x + 8>, r2.z, r0.y
shl.b hr0.x, hr0.x, 2
mad.f32 r0.y, c<a0.x + 8>, r2.z, r0.z
mad.f32 r2.y, c<a0.x + 8>, r2.z, r0.w
(ul)mad.f32 r2.x, c<a0.x + 8>, r2.z, r2.x
mova a0.x, hr0.x
(rpt5)nop
mad.f32 r0.w, c<a0.x + 12>, r2.w, r0.x
mad.f32 r0.z, c<a0.x + 12>, r2.w, r0.y
mad.f32 r0.y, c<a0.x + 12>, r2.w, r2.y
(ul)mad.f32 r0.x, c<a0.x + 12>, r2.w, r2.x
end
; VERT: outputs: r0.x (0:0) r1.x (5:20)
; VERT: inputs: r2.x (0:0,cm=f,il=8,b=0) r0.x (0:0,cm=3,il=12,b=0) r0.z (0:0,cm=1,il=16,b=0)
; VERT: 90 instructions, 1 half, 4 full