1	.set noreorder
2	.set noat
3
4	.globl text_label .text
5text_label:
6
7	# VU Macromode instruction set
8	vabs.xyzw	$vf0xyzw,$vf31xyzw
9	vadd.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
10	vaddi.xyzw	$vf10xyzw,$vf31xyzw,$I
11	vaddq.xyzw	$vf10xyzw,$vf31xyzw,$Q
12	vaddw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
13	vaddx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
14	vaddy.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
15	vaddz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
16	vadda.xyzw	$ACCxyzw,$vf0xyzw,$vf31xyzw
17	vaddai.xyzw	$ACCxyzw,$vf31xyzw,$I
18	vaddaq.xyzw	$ACCxyzw,$vf31xyzw,$Q
19	vaddaw.xyzw	$ACCxyzw,$vf31xyzw,$vf1w
20	vaddax.xyzw	$ACCxyzw,$vf31xyzw,$vf1x
21	vadday.xyzw	$ACCxyzw,$vf31xyzw,$vf1y
22	vaddaz.xyzw	$ACCxyzw,$vf31xyzw,$vf1z
23	vcallms	0x0
24	vcallms	0x340
25	vcallms	0xff8
26	vcallmsr	$vi27
27	vclipw.xyz	$vf31xyz,$vf1w
28	vclipw		$vf31xyz,$vf1w
29	vdiv		$Q,$vf1y,$vf11x
30	vftoi0.xyzw	$vf0xyzw,$vf31xyzw
31	vftoi4.xyzw	$vf0xyzw,$vf31xyzw
32	vftoi12.xyzw	$vf0xyzw,$vf31xyzw
33	vftoi15.xyzw	$vf0xyzw,$vf31xyzw
34	viadd	$vi1,$vi15,$vi0
35	viaddi	$vi0,$vi15,-1
36	viand	$vi1,$vi15,$vi0
37	vilwr.w	$vi0,($vi15)
38	vilwr.x	$vi0,($vi15)
39	vilwr.y	$vi0,($vi15)
40	vilwr.z	$vi0,($vi15)
41	vior	$vi1,$vi15,$vi0
42	viswr.w	$vi0,($vi15)
43	viswr.x	$vi0,($vi15)
44	viswr.y	$vi0,($vi15)
45	viswr.z	$vi0,($vi15)
46	visub	$vi1,$vi15,$vi0
47	vitof0.xyzw	$vf0xyzw,$vf31xyzw
48	vitof4.xyzw	$vf0xyzw,$vf31xyzw
49	vitof12.xyzw	$vf0xyzw,$vf31xyzw
50	vitof15.xyzw	$vf0xyzw,$vf31xyzw
51	vlqd.xyzw	$vf0xyzw,(--$vi15)
52	vlqi.xyzw	$vf0xyzw,($vi15++)
53	vmadd.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
54	vmaddi.xyzw	$vf10xyzw,$vf31xyzw,$I
55	vmaddq.xyzw	$vf10xyzw,$vf31xyzw,$Q
56	vmaddw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
57	vmaddx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
58	vmaddy.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
59	vmaddz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
60	vmaddz		$vf6, $vf3, $vf5
61	vmadda.xyzw	$ACCxyzw,$vf31xyzw,$vf0xyzw
62	vmaddai.xyzw	$ACCxyzw,$vf31xyzw,$I
63	vmaddaq.xyzw	$ACCxyzw,$vf31xyzw,$Q
64	vmaddaw.xyzw	$ACCxyzw,$vf31xyzw,$vf1w
65	vmaddax.xyzw	$ACCxyzw,$vf31xyzw,$vf1x
66	vmaddax		$ACC, $vf1, $vf5
67	vmadday.xyzw	$ACCxyzw,$vf31xyzw,$vf1y
68	vmadday		$ACC, $vf2, $vf5
69	vmaddaz.xyzw	$ACCxyzw,$vf31xyzw,$vf1z
70	vmax.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
71	vmaxi.xyzw	$vf10xyzw,$vf31xyzw,$I
72	vmaxw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
73	vmaxx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
74	vmaxy.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
75	vmaxz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
76	vmfir.xyzw	$vf0xyzw,$vi15
77	vmini.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
78	vminii.xyzw	$vf10xyzw,$vf31xyzw,$I
79	vminiw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
80	vminix.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
81	vminiy.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
82	vminiz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
83	vmove.xyzw	$vf0xyzw,$vf31xyzw
84	vmr32.xyzw	$vf0xyzw,$vf31xyzw
85	vmsub.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
86	vmsubi.xyzw	$vf10xyzw,$vf31xyzw,$I
87	vmsubq.xyzw	$vf10xyzw,$vf31xyzw,$Q
88	vmsubw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
89	vmsubx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
90	vmsuby.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
91	vmsubz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
92	vmsuba.xyzw	$ACCxyzw,$vf0xyzw,$vf31xyzw
93	vmsubai.xyzw	$ACCxyzw,$vf31xyzw,$I
94	vmsubaq.xyzw	$ACCxyzw,$vf31xyzw,$Q
95	vmsubaw.xyzw	$ACCxyzw,$vf31xyzw,$vf1w
96	vmsubax.xyzw	$ACCxyzw,$vf31xyzw,$vf1x
97	vmsubay.xyzw	$ACCxyzw,$vf31xyzw,$vf1y
98	vmsubaz.xyzw	$ACCxyzw,$vf31xyzw,$vf1z
99	vmtir	$vi0,$vf1z
100	vmul.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
101	vmuli.xyzw	$vf10xyzw,$vf31xyzw,$I
102	vmulq.xyzw	$vf10xyzw,$vf31xyzw,$Q
103	vmulw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
104	vmulx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
105	vmuly.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
106	vmulz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
107	vmula.xyzw	$ACCxyzw,$vf31xyzw,$vf0xyzw
108	vmulai.xyzw	$ACCxyzw,$vf31xyzw,$I
109	vmulaq.xyzw	$ACCxyzw,$vf31xyzw,$Q
110	vmulaw.xyzw	$ACCxyzw,$vf31xyzw,$vf1w
111	vmulaw		$ACC, $vf4, $vf0
112	vmulax.xyzw	$ACCxyzw,$vf31xyzw,$vf1x
113	vmulay.xyzw	$ACCxyzw,$vf31xyzw,$vf1y
114	vmulaz.xyzw	$ACCxyzw,$vf31xyzw,$vf1z
115	vnop
116	vopmula.xyz	$ACCxyz,$vf31xyz,$vf0xyz
117	vopmsub.xyz	$vf10xyz,$vf31xyz,$vf0xyz
118	vrget.xyzw	$vf0xyzw,$R
119	vrinit	$R,$vf1w
120	vrnext.xyzw	$vf0xyzw,$R
121	vrsqrt	$Q,$vf1w,$vf11x
122	vrxor	$R,$vf1x
123	vsqd.xyzw	$vf31xyzw,(--$vi0)
124	vsqi.xyzw	$vf31xyzw,($vi0++)
125	vsqrt	$Q,$vf11z
126	vsub.xyzw	$vf10xyzw,$vf31xyzw,$vf0xyzw
127	vsubi.xyzw	$vf10xyzw,$vf31xyzw,$I
128	vsubq.xyzw	$vf10xyzw,$vf31xyzw,$Q
129	vsubw.xyzw	$vf10xyzw,$vf31xyzw,$vf1w
130	vsubx.xyzw	$vf10xyzw,$vf31xyzw,$vf1x
131	vsuby.xyzw	$vf10xyzw,$vf31xyzw,$vf1y
132	vsubz.xyzw	$vf10xyzw,$vf31xyzw,$vf1z
133	vsuba.xyzw	$ACCxyzw,$vf31xyzw,$vf0xyzw
134	vsubai.xyzw	$ACCxyzw,$vf31xyzw,$I
135	vsubaq.xyzw	$ACCxyzw,$vf31xyzw,$Q
136	vsubaw.xyzw	$ACCxyzw,$vf31xyzw,$vf1w
137	vsubax.xyzw	$ACCxyzw,$vf31xyzw,$vf1x
138	vsubay.xyzw	$ACCxyzw,$vf31xyzw,$vf1y
139	vsubaz.xyzw	$ACCxyzw,$vf31xyzw,$vf1z
140	vwaitq
141
142	# Implicit suffixes
143	vadd.xyzw	$vf10,$vf31,$vf0
144	vadd.xy	$vf10,$vf31,$vf0
145	vadd.xyzw	$vf10,$vf31,$vf0
146	vlqi.xy	$vf0,($vi15++)
147
148	# VU floating point registers
149	vadd.xyzw	$vf0,$vf1,$vf2
150	vadd.xyzw	$vf3,$vf4,$vf5
151	vadd.xyzw	$vf6,$vf7,$vf8
152	vadd.xyzw	$vf9,$vf10,$vf11
153	vadd.xyzw	$vf12,$vf13,$vf14
154	vadd.xyzw	$vf15,$vf16,$vf17
155	vadd.xyzw	$vf18,$vf19,$vf20
156	vadd.xyzw	$vf21,$vf22,$vf23
157	vadd.xyzw	$vf24,$vf25,$vf26
158	vadd.xyzw	$vf27,$vf28,$vf29
159	vadd.xyzw	$vf30,$vf31,$vf0
160
161	# VU integer registers
162	viadd	$vi0,$vi1,$vi2
163	viadd	$vi3,$vi4,$vi5
164	viadd	$vi6,$vi7,$vi8
165	viadd	$vi9,$vi10,$vi11
166	viadd	$vi12,$vi13,$vi14
167	viadd	$vi15,$vi16,$vi17
168	viadd	$vi18,$vi19,$vi20
169	viadd	$vi21,$vi22,$vi23
170	viadd	$vi24,$vi25,$vi26
171	viadd	$vi27,$vi28,$vi29
172	viadd	$vi30,$vi31,$vi0
173
174	# Floating point transfer to VU
175	lqc2	$0,0($0)
176	lqc2	$1, 0x7fff($1)
177	lqc2	$8, -0x8000($8)
178	lqc2	$31, -1($31)
179
180	# Floating point transfer from VU
181	sqc2	$0,0($0)
182	sqc2	$1, 0x7fff($1)
183	sqc2	$8, -0x8000($8)
184	sqc2	$31, -1($31)
185
186	# Integer transfer from VU
187	cfc2	$0,$0
188	cfc2	$0,$31
189	cfc2.i	$0,$0
190	cfc2.i	$0,$31
191	cfc2.ni	$0,$0
192	cfc2.ni	$0,$31
193
194	# Integer transfer to VU
195	ctc2	$0,$0
196	ctc2	$0,$31
197	ctc2.i	$0,$0
198	ctc2.i	$0,$31
199	ctc2.ni	$0,$0
200	ctc2.ni	$0,$31
201
202	# Floating point transfer from VU
203	qmfc2	$0,$0
204	qmfc2	$0,$31
205	qmfc2.i	$0,$0
206	qmfc2.i	$0,$31
207	qmfc2.ni	$0,$0
208	qmfc2.ni	$0,$31
209
210	# Floating point transfer to VU
211	qmtc2	$0,$0
212	qmtc2	$0,$31
213	qmtc2.i	$0,$0
214	qmtc2.i	$0,$31
215	qmtc2.ni	$0,$0
216	qmtc2.ni	$0,$31
217
218# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
219      .space  8
220