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;
52 VuxRotMatrixX(&mx, r->x);
53 VuxRotMatrixY(&my, r->y);
54 VuxRotMatrixZ(&mz, r->z);
56 VuxMulMatrix(&mx, &my, &m0);
57 VuxMulMatrix(&m0, &mz, m);
67 "sqc2 $vf1, 48(%0) \n"
77void Vu0TransMatrixXYZ(
VU_MATRIX *m,
float x,
float y,
float z)
86 Vu0TransMatrix(m, &t);
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"
136void Vu0ScaleMatrixXYZ(
VU_MATRIX *m,
float x,
float y,
float z)
144 Vu0ScaleMatrix(m, &s);
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)
232 "lqc2 $vf20, 0x00(%1) \n"
233 "lqc2 $vf16, 0x00(%0) \n"
234 "lqc2 $vf17, 0x10(%0) \n"
235 "lqc2 $vf18, 0x20(%0) \n"
236 "lqc2 $vf19, 0x30(%0) \n"
237 "vmulax.xyzw $ACC, $vf16,$vf20 \n"
238 "vmadday.xyzw $ACC, $vf17,$vf20 \n"
239 "vmaddaz.xyzw $ACC, $vf18,$vf20 \n"
240 "vmaddw.xyzw $vf20, $vf19,$vf20 \n"
241 "sqc2 $vf20,0x00(%2) \n"
243 "lqc2 vf20, 0x00(%1) \n"
244 "lqc2 vf16, 0x00(%0) \n"
245 "lqc2 vf17, 0x10(%0) \n"
246 "lqc2 vf18, 0x20(%0) \n"
247 "lqc2 vf19, 0x30(%0) \n"
248 "vmulax.xyzw ACC, vf16,vf20 \n"
249 "vmadday.xyzw ACC, vf17,vf20 \n"
250 "vmaddaz.xyzw ACC, vf18,vf20 \n"
251 "vmaddw.xyzw vf20, vf19,vf20 \n"
252 "sqc2 vf20,0x00(%2) \n"
254 : :
"r"(m),
"r"(v0),
"r"(out)
269 "lqc2 $vf20, 0x00(%1) \n"
270 "lqc2 $vf16, 0x00(%0) \n"
271 "lqc2 $vf17, 0x10(%0) \n"
272 "lqc2 $vf18, 0x20(%0) \n"
273 "vmulax.xyz $ACC, $vf16,$vf20 \n"
274 "vmadday.xyz $ACC, $vf17,$vf20 \n"
275 "vmaddz.xyz $vf20, $vf18,$vf20 \n"
276 "vmulw.w $vf20, $vf0, $vf0 \n"
277 "sqc2 $vf20, 0x00(%2) \n"
279 "lqc2 vf20, 0x00(%1) \n"
280 "lqc2 vf16, 0x00(%0) \n"
281 "lqc2 vf17, 0x10(%0) \n"
282 "lqc2 vf18, 0x20(%0) \n"
283 "vmulax.xyz ACC, vf16,vf20 \n"
284 "vmadday.xyz ACC, vf17,vf20 \n"
285 "vmaddz.xyz vf20, vf18,vf20 \n"
286 "vmulw.w vf20, vf0, vf0 \n"
287 "sqc2 vf20, 0x00(%2) \n"
289 : :
"r"(m),
"r"(v0),
"r"(out)
299 "lqc2 $vf1, 0(%1) \n"
300 "lqc2 $vf2, 16(%1) \n"
301 "lqc2 $vf3, 32(%1) \n"
302 "lqc2 $vf4, 48(%1) \n"
304 "sqc2 $vf1, 0(%0) \n"
305 "sqc2 $vf2, 16(%0) \n"
306 "sqc2 $vf3, 32(%0) \n"
307 "sqc2 $vf4, 48(%0) \n"
310 "lqc2 vf2, 16(%1) \n"
311 "lqc2 vf3, 32(%1) \n"
312 "lqc2 vf4, 48(%1) \n"
315 "sqc2 vf2, 16(%0) \n"
316 "sqc2 vf3, 32(%0) \n"
317 "sqc2 vf4, 48(%0) \n"
320 : :
"r" (dest),
"r" (src)
332 "lqc2 $vf1, 0(%1) \n"
333 "lqc2 $vf2, 0(%2) \n"
335 "vmul.xyz $vf3, $vf1, $vf2 \n"
337 "vaddy.x $vf3, $vf3, $vf3y \n"
338 "vaddz.x $vf3, $vf3, $vf3z \n"
345 "vmul.xyz vf3, vf1, vf2 \n"
347 "vaddy.x vf3, vf3, vf3y \n"
348 "vaddz.x vf3, vf3, vf3z \n"
352 :
"=r" (ret) :
"r" (v0),
"r" (v1)