22 "vmr32.xyzw $vf18, $vf0 \n"
23 "sqc2 $vf0, 0x30(%0) \n"
24 "vmr32.xyzw $vf17, $vf18 \n"
25 "sqc2 $vf18, 0x20(%0) \n"
26 "vmr32.xyzw $vf16, $vf17 \n"
27 "sqc2 $vf17, 0x10(%0) \n"
28 "sqc2 $vf16, 0x00(%0) \n"
30 "vmr32.xyzw vf18, vf00 \n"
31 "sqc2 vf00, 0x30(%0) \n"
32 "vmr32.xyzw vf17, vf18 \n"
33 "sqc2 vf18, 0x20(%0) \n"
34 "vmr32.xyzw vf16, vf17 \n"
35 "sqc2 vf17, 0x10(%0) \n"
36 "sqc2 vf16, 0x00(%0) \n"
49 mx = my = mz = m0 = *m;
67 "sqc2 $vf1, 48(%0) \n"
99 "lqc2 $vf10, 0(%0) \n"
100 "lqc2 $vf11, 16(%0) \n"
101 "lqc2 $vf12, 32(%0) \n"
104 "vmulx.x $vf10, $vf10, $vf1x \n"
105 "vmuly.y $vf11, $vf11, $vf1y \n"
106 "vmulz.z $vf12, $vf12, $vf1z \n"
109 "sqc2 $vf10, 0(%0) \n"
110 "sqc2 $vf11, 16(%0) \n"
111 "sqc2 $vf12, 32(%0) \n"
115 "lqc2 vf10, 0(%0) \n"
116 "lqc2 vf11, 16(%0) \n"
117 "lqc2 vf12, 32(%0) \n"
120 "vmulx.x vf10, vf10, vf1x \n"
121 "vmuly.y vf11, vf11, vf1y \n"
122 "vmulz.z vf12, vf12, vf1z \n"
125 "sqc2 vf10, 0(%0) \n"
126 "sqc2 vf11, 16(%0) \n"
127 "sqc2 vf12, 32(%0) \n"
153 "lqc2 $vf1, 0x00(%0) \n"
154 "lqc2 $vf2, 0x10(%0) \n"
155 "lqc2 $vf3, 0x20(%0) \n"
156 "lqc2 $vf4, 0x30(%0) \n"
157 "lqc2 $vf5, 0x00(%1) \n"
158 "lqc2 $vf6, 0x10(%1) \n"
159 "lqc2 $vf7, 0x20(%1) \n"
160 "lqc2 $vf8, 0x30(%1) \n"
161 "vmulax.xyzw $ACC, $vf5, $vf1 \n"
162 "vmadday.xyzw $ACC, $vf6, $vf1 \n"
163 "vmaddaz.xyzw $ACC, $vf7, $vf1 \n"
164 "vmaddw.xyzw $vf1, $vf8, $vf1 \n"
165 "vmulax.xyzw $ACC, $vf5, $vf2 \n"
166 "vmadday.xyzw $ACC, $vf6, $vf2 \n"
167 "vmaddaz.xyzw $ACC, $vf7, $vf2 \n"
168 "vmaddw.xyzw $vf2, $vf8, $vf2 \n"
169 "vmulax.xyzw $ACC, $vf5, $vf3 \n"
170 "vmadday.xyzw $ACC, $vf6, $vf3 \n"
171 "vmaddaz.xyzw $ACC, $vf7, $vf3 \n"
172 "vmaddw.xyzw $vf3, $vf8, $vf3 \n"
173 "vmulax.xyzw $ACC, $vf5, $vf4 \n"
174 "vmadday.xyzw $ACC, $vf6, $vf4 \n"
175 "vmaddaz.xyzw $ACC, $vf7, $vf4 \n"
176 "vmaddw.xyzw $vf4, $vf8, $vf4 \n"
177 "sqc2 $vf1, 0x00(%2) \n"
178 "sqc2 $vf2, 0x10(%2) \n"
179 "sqc2 $vf3, 0x20(%2) \n"
180 "sqc2 $vf4, 0x30(%2) \n"
182 "lqc2 vf1, 0x00(%0) \n"
183 "lqc2 vf2, 0x10(%0) \n"
184 "lqc2 vf3, 0x20(%0) \n"
185 "lqc2 vf4, 0x30(%0) \n"
186 "lqc2 vf5, 0x00(%1) \n"
187 "lqc2 vf6, 0x10(%1) \n"
188 "lqc2 vf7, 0x20(%1) \n"
189 "lqc2 vf8, 0x30(%1) \n"
190 "vmulax.xyzw ACC, vf5, vf1 \n"
191 "vmadday.xyzw ACC, vf6, vf1 \n"
192 "vmaddaz.xyzw ACC, vf7, vf1 \n"
193 "vmaddw.xyzw vf1, vf8, vf1 \n"
194 "vmulax.xyzw ACC, vf5, vf2 \n"
195 "vmadday.xyzw ACC, vf6, vf2 \n"
196 "vmaddaz.xyzw ACC, vf7, vf2 \n"
197 "vmaddw.xyzw vf2, vf8, vf2 \n"
198 "vmulax.xyzw ACC, vf5, vf3 \n"
199 "vmadday.xyzw ACC, vf6, vf3 \n"
200 "vmaddaz.xyzw ACC, vf7, vf3 \n"
201 "vmaddw.xyzw vf3, vf8, vf3 \n"
202 "vmulax.xyzw ACC, vf5, vf4 \n"
203 "vmadday.xyzw ACC, vf6, vf4 \n"
204 "vmaddaz.xyzw ACC, vf7, vf4 \n"
205 "vmaddw.xyzw vf4, vf8, vf4 \n"
206 "sqc2 vf1, 0x00(%2) \n"
207 "sqc2 vf2, 0x10(%2) \n"
208 "sqc2 vf3, 0x20(%2) \n"
209 "sqc2 vf4, 0x30(%2) \n"
211 : :
"r" (m0),
"r" (m1),
"r" (out)
229 "lqc2 $vf20, 0x00(%1) \n"
230 "lqc2 $vf16, 0x00(%0) \n"
231 "lqc2 $vf17, 0x10(%0) \n"
232 "lqc2 $vf18, 0x20(%0) \n"
233 "lqc2 $vf19, 0x30(%0) \n"
234 "vmulax.xyzw $ACC, $vf16,$vf20 \n"
235 "vmadday.xyzw $ACC, $vf17,$vf20 \n"
236 "vmaddaz.xyzw $ACC, $vf18,$vf20 \n"
237 "vmaddw.xyzw $vf20, $vf19,$vf20 \n"
238 "sqc2 $vf20,0x00(%2) \n"
240 "lqc2 vf20, 0x00(%1) \n"
241 "lqc2 vf16, 0x00(%0) \n"
242 "lqc2 vf17, 0x10(%0) \n"
243 "lqc2 vf18, 0x20(%0) \n"
244 "lqc2 vf19, 0x30(%0) \n"
245 "vmulax.xyzw ACC, vf16,vf20 \n"
246 "vmadday.xyzw ACC, vf17,vf20 \n"
247 "vmaddaz.xyzw ACC, vf18,vf20 \n"
248 "vmaddw.xyzw vf20, vf19,vf20 \n"
249 "sqc2 vf20,0x00(%2) \n"
251 : :
"r"(m),
"r"(
v0),
"r"(out)
266 "lqc2 $vf20, 0x00(%1) \n"
267 "lqc2 $vf16, 0x00(%0) \n"
268 "lqc2 $vf17, 0x10(%0) \n"
269 "lqc2 $vf18, 0x20(%0) \n"
270 "vmulax.xyz $ACC, $vf16,$vf20 \n"
271 "vmadday.xyz $ACC, $vf17,$vf20 \n"
272 "vmaddz.xyz $vf20, $vf18,$vf20 \n"
273 "vmulw.w $vf20, $vf0, $vf0 \n"
274 "sqc2 $vf20, 0x00(%2) \n"
276 "lqc2 vf20, 0x00(%1) \n"
277 "lqc2 vf16, 0x00(%0) \n"
278 "lqc2 vf17, 0x10(%0) \n"
279 "lqc2 vf18, 0x20(%0) \n"
280 "vmulax.xyz ACC, vf16,vf20 \n"
281 "vmadday.xyz ACC, vf17,vf20 \n"
282 "vmaddz.xyz vf20, vf18,vf20 \n"
283 "vmulw.w vf20, vf0, vf0 \n"
284 "sqc2 vf20, 0x00(%2) \n"
286 : :
"r"(m),
"r"(
v0),
"r"(out)
296 "lqc2 $vf1, 0(%1) \n"
297 "lqc2 $vf2, 16(%1) \n"
298 "lqc2 $vf3, 32(%1) \n"
299 "lqc2 $vf4, 48(%1) \n"
301 "sqc2 $vf1, 0(%0) \n"
302 "sqc2 $vf2, 16(%0) \n"
303 "sqc2 $vf3, 32(%0) \n"
304 "sqc2 $vf4, 48(%0) \n"
307 "lqc2 vf2, 16(%1) \n"
308 "lqc2 vf3, 32(%1) \n"
309 "lqc2 vf4, 48(%1) \n"
312 "sqc2 vf2, 16(%0) \n"
313 "sqc2 vf3, 32(%0) \n"
314 "sqc2 vf4, 48(%0) \n"
317 : :
"r" (dest),
"r" (src)
329 "lqc2 $vf1, 0(%1) \n"
330 "lqc2 $vf2, 0(%2) \n"
332 "vmul.xyz $vf3, $vf1, $vf2 \n"
334 "vaddy.x $vf3, $vf3, $vf3y \n"
335 "vaddz.x $vf3, $vf3, $vf3z \n"
342 "vmul.xyz vf3, vf1, vf2 \n"
344 "vaddy.x vf3, vf3, vf3y \n"
345 "vaddz.x vf3, vf3, vf3z \n"
349 :
"=r" (ret) :
"r" (
v0),
"r" (
v1)
void VuxRotMatrixX(VU_MATRIX *m, float x)
void VuxRotMatrixZ(VU_MATRIX *m, float z)
void VuxRotMatrix(VU_MATRIX *m, VU_VECTOR *v)
void VuxResetMatrix(VU_MATRIX *m)
void VuxRotMatrixY(VU_MATRIX *m, float y)
void VuxMulMatrix(VU_MATRIX *m0, VU_MATRIX *m1, VU_MATRIX *out)
void Vu0TransMatrixXYZ(VU_MATRIX *m, float x, float y, float z)
void Vu0IdMatrix(VU_MATRIX *m)
void Vu0TransMatrix(VU_MATRIX *m, VU_VECTOR *t)
void Vu0CopyMatrix(VU_MATRIX *dest, VU_MATRIX *src)
void Vu0MulMatrix(VU_MATRIX *m0, VU_MATRIX *m1, VU_MATRIX *out)
void Vu0ScaleMatrix(VU_MATRIX *m, VU_VECTOR *s)
void Vu0ResetMatrix(VU_MATRIX *m)
void Vu0ApplyMatrix(VU_MATRIX *m, VU_VECTOR *v0, VU_VECTOR *out)
void Vu0ScaleMatrixXYZ(VU_MATRIX *m, float x, float y, float z)
void Vu0InverseMatrix(VU_MATRIX *in, VU_MATRIX *out)
void Vu0ApplyRotMatrix(VU_MATRIX *m, VU_VECTOR *v0, VU_VECTOR *out)
float Vu0DotProduct(VU_VECTOR *v0, VU_VECTOR *v1)