File: r5900-full-vu0.s

package info (click to toggle)
binutils 2.31.1-14
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 308,776 kB
  • sloc: ansic: 1,161,196; asm: 638,508; cpp: 128,829; exp: 68,562; makefile: 55,828; sh: 22,360; yacc: 14,238; lisp: 13,272; perl: 2,111; ada: 1,681; lex: 1,652; pascal: 1,446; cs: 879; sed: 195; python: 154; xml: 95; awk: 25
file content (219 lines) | stat: -rw-r--r-- 6,017 bytes parent folder | download | duplicates (29)
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
	.set noreorder
	.set noat

	.globl text_label .text
text_label:

	# VU Macromode instruction set
	vabs.xyzw	$vf0xyzw,$vf31xyzw
	vadd.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
	vaddi.xyzw	$vf10xyzw,$vf31xyzw,$I
	vaddq.xyzw	$vf10xyzw,$vf31xyzw,$Q
	vaddw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
	vaddx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
	vaddy.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
	vaddz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
	vadda.xyzw	$ACCxyzw,$vf0xyzw,$vf31xyzw
	vaddai.xyzw	$ACCxyzw,$vf31xyzw,$I
	vaddaq.xyzw	$ACCxyzw,$vf31xyzw,$Q
	vaddaw.xyzw	$ACCxyzw,$vf31xyzw,$vf1w
	vaddax.xyzw	$ACCxyzw,$vf31xyzw,$vf1x
	vadday.xyzw	$ACCxyzw,$vf31xyzw,$vf1y
	vaddaz.xyzw	$ACCxyzw,$vf31xyzw,$vf1z
	vcallms	0x0
	vcallms	0x340
	vcallms	0xff8
	vcallmsr	$vi27
	vclipw.xyz	$vf31xyz,$vf1w
	vclipw		$vf31xyz,$vf1w
	vdiv		$Q,$vf1y,$vf11x
	vftoi0.xyzw	$vf0xyzw,$vf31xyzw
	vftoi4.xyzw	$vf0xyzw,$vf31xyzw
	vftoi12.xyzw	$vf0xyzw,$vf31xyzw
	vftoi15.xyzw	$vf0xyzw,$vf31xyzw
	viadd	$vi1,$vi15,$vi0
	viaddi	$vi0,$vi15,-1
	viand	$vi1,$vi15,$vi0
	vilwr.w	$vi0,($vi15)
	vilwr.x	$vi0,($vi15)
	vilwr.y	$vi0,($vi15)
	vilwr.z	$vi0,($vi15)
	vior	$vi1,$vi15,$vi0
	viswr.w	$vi0,($vi15)
	viswr.x	$vi0,($vi15)
	viswr.y	$vi0,($vi15)
	viswr.z	$vi0,($vi15)
	visub	$vi1,$vi15,$vi0
	vitof0.xyzw	$vf0xyzw,$vf31xyzw
	vitof4.xyzw	$vf0xyzw,$vf31xyzw
	vitof12.xyzw	$vf0xyzw,$vf31xyzw
	vitof15.xyzw	$vf0xyzw,$vf31xyzw
	vlqd.xyzw	$vf0xyzw,(--$vi15)
	vlqi.xyzw	$vf0xyzw,($vi15++)
	vmadd.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
	vmaddi.xyzw	$vf10xyzw,$vf31xyzw,$I
	vmaddq.xyzw	$vf10xyzw,$vf31xyzw,$Q
	vmaddw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
	vmaddx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
	vmaddy.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
	vmaddz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
	vmaddz		$vf6, $vf3, $vf5
	vmadda.xyzw	$ACCxyzw,$vf31xyzw,$vf0xyzw
	vmaddai.xyzw	$ACCxyzw,$vf31xyzw,$I
	vmaddaq.xyzw	$ACCxyzw,$vf31xyzw,$Q
	vmaddaw.xyzw	$ACCxyzw,$vf31xyzw,$vf1w
	vmaddax.xyzw	$ACCxyzw,$vf31xyzw,$vf1x
	vmaddax		$ACC, $vf1, $vf5
	vmadday.xyzw	$ACCxyzw,$vf31xyzw,$vf1y
	vmadday		$ACC, $vf2, $vf5
	vmaddaz.xyzw	$ACCxyzw,$vf31xyzw,$vf1z
	vmax.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
	vmaxi.xyzw	$vf10xyzw,$vf31xyzw,$I
	vmaxw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
	vmaxx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
	vmaxy.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
	vmaxz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
	vmfir.xyzw	$vf0xyzw,$vi15
	vmini.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
	vminii.xyzw	$vf10xyzw,$vf31xyzw,$I
	vminiw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
	vminix.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
	vminiy.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
	vminiz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
	vmove.xyzw	$vf0xyzw,$vf31xyzw
	vmr32.xyzw	$vf0xyzw,$vf31xyzw
	vmsub.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
	vmsubi.xyzw	$vf10xyzw,$vf31xyzw,$I
	vmsubq.xyzw	$vf10xyzw,$vf31xyzw,$Q
	vmsubw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
	vmsubx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
	vmsuby.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
	vmsubz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
	vmsuba.xyzw	$ACCxyzw,$vf0xyzw,$vf31xyzw
	vmsubai.xyzw	$ACCxyzw,$vf31xyzw,$I
	vmsubaq.xyzw	$ACCxyzw,$vf31xyzw,$Q
	vmsubaw.xyzw	$ACCxyzw,$vf31xyzw,$vf1w
	vmsubax.xyzw	$ACCxyzw,$vf31xyzw,$vf1x
	vmsubay.xyzw	$ACCxyzw,$vf31xyzw,$vf1y
	vmsubaz.xyzw	$ACCxyzw,$vf31xyzw,$vf1z
	vmtir	$vi0,$vf1z
	vmul.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
	vmuli.xyzw	$vf10xyzw,$vf31xyzw,$I
	vmulq.xyzw	$vf10xyzw,$vf31xyzw,$Q
	vmulw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
	vmulx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
	vmuly.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
	vmulz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
	vmula.xyzw	$ACCxyzw,$vf31xyzw,$vf0xyzw
	vmulai.xyzw	$ACCxyzw,$vf31xyzw,$I
	vmulaq.xyzw	$ACCxyzw,$vf31xyzw,$Q
	vmulaw.xyzw	$ACCxyzw,$vf31xyzw,$vf1w
	vmulaw		$ACC, $vf4, $vf0
	vmulax.xyzw	$ACCxyzw,$vf31xyzw,$vf1x
	vmulay.xyzw	$ACCxyzw,$vf31xyzw,$vf1y
	vmulaz.xyzw	$ACCxyzw,$vf31xyzw,$vf1z
	vnop
	vopmula.xyz	$ACCxyz,$vf31xyz,$vf0xyz
	vopmsub.xyz	$vf10xyz,$vf31xyz,$vf0xyz
	vrget.xyzw	$vf0xyzw,$R
	vrinit	$R,$vf1w
	vrnext.xyzw	$vf0xyzw,$R
	vrsqrt	$Q,$vf1w,$vf11x
	vrxor	$R,$vf1x
	vsqd.xyzw	$vf31xyzw,(--$vi0)
	vsqi.xyzw	$vf31xyzw,($vi0++)
	vsqrt	$Q,$vf11z
	vsub.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
	vsubi.xyzw	$vf10xyzw,$vf31xyzw,$I
	vsubq.xyzw	$vf10xyzw,$vf31xyzw,$Q
	vsubw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
	vsubx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
	vsuby.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
	vsubz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
	vsuba.xyzw	$ACCxyzw,$vf31xyzw,$vf0xyzw
	vsubai.xyzw	$ACCxyzw,$vf31xyzw,$I
	vsubaq.xyzw	$ACCxyzw,$vf31xyzw,$Q
	vsubaw.xyzw	$ACCxyzw,$vf31xyzw,$vf1w
	vsubax.xyzw	$ACCxyzw,$vf31xyzw,$vf1x
	vsubay.xyzw	$ACCxyzw,$vf31xyzw,$vf1y
	vsubaz.xyzw	$ACCxyzw,$vf31xyzw,$vf1z
	vwaitq

	# Implicit suffixes
	vadd.xyzw	$vf10,$vf31,$vf0
	vadd.xy	$vf10,$vf31,$vf0
	vadd.xyzw	$vf10,$vf31,$vf0
	vlqi.xy	$vf0,($vi15++)

	# VU floating point registers
	vadd.xyzw	$vf0,$vf1,$vf2
	vadd.xyzw	$vf3,$vf4,$vf5
	vadd.xyzw	$vf6,$vf7,$vf8
	vadd.xyzw	$vf9,$vf10,$vf11
	vadd.xyzw	$vf12,$vf13,$vf14
	vadd.xyzw	$vf15,$vf16,$vf17
	vadd.xyzw	$vf18,$vf19,$vf20
	vadd.xyzw	$vf21,$vf22,$vf23
	vadd.xyzw	$vf24,$vf25,$vf26
	vadd.xyzw	$vf27,$vf28,$vf29
	vadd.xyzw	$vf30,$vf31,$vf0

	# VU integer registers
	viadd	$vi0,$vi1,$vi2
	viadd	$vi3,$vi4,$vi5
	viadd	$vi6,$vi7,$vi8
	viadd	$vi9,$vi10,$vi11
	viadd	$vi12,$vi13,$vi14
	viadd	$vi15,$vi16,$vi17
	viadd	$vi18,$vi19,$vi20
	viadd	$vi21,$vi22,$vi23
	viadd	$vi24,$vi25,$vi26
	viadd	$vi27,$vi28,$vi29
	viadd	$vi30,$vi31,$vi0

	# Floating point transfer to VU
	lqc2	$0,0($0)
	lqc2	$1, 0x7fff($1)
	lqc2	$8, -0x8000($8)
	lqc2	$31, -1($31)

	# Floating point transfer from VU
	sqc2	$0,0($0)
	sqc2	$1, 0x7fff($1)
	sqc2	$8, -0x8000($8)
	sqc2	$31, -1($31)

	# Integer transfer from VU
	cfc2	$0,$0
	cfc2	$0,$31
	cfc2.i	$0,$0
	cfc2.i	$0,$31
	cfc2.ni	$0,$0
	cfc2.ni	$0,$31

	# Integer transfer to VU
	ctc2	$0,$0
	ctc2	$0,$31
	ctc2.i	$0,$0
	ctc2.i	$0,$31
	ctc2.ni	$0,$0
	ctc2.ni	$0,$31

	# Floating point transfer from VU
	qmfc2	$0,$0
	qmfc2	$0,$31
	qmfc2.i	$0,$0
	qmfc2.i	$0,$31
	qmfc2.ni	$0,$0
	qmfc2.ni	$0,$31

	# Floating point transfer to VU
	qmtc2	$0,$0
	qmtc2	$0,$31
	qmtc2.i	$0,$0
	qmtc2.i	$0,$31
	qmtc2.ni	$0,$0
	qmtc2.ni	$0,$31

# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
      .space  8