in24/in32/fl32 little/big-endian QuickTime PCM audio support
[mplayer/glamo.git] / mp3lib / dct64_MMX.c
blob2014c0fcde2f8b42741619c93d26004fd263096f
1 /*
2 * This code was taken from http://www.mpg123.org
3 * See ChangeLog of mpg123-0.59s-pre.1 for detail
4 * Applied to mplayer by Nick Kurshev <nickols_k@mail.ru>
5 */
6 #include "mangle.h"
7 #define real float /* ugly - but only way */
9 void dct64_MMX(real *a,real *b,real *c)
11 char tmp[256];
12 __asm __volatile(
13 " movl %2,%%eax\n\t"
14 /* Phase 1*/
15 " flds (%%eax)\n\t"
16 " leal 128+%3,%%edx\n\t"
17 " fadds 124(%%eax)\n\t"
18 " movl %0,%%esi\n\t"
19 " fstps (%%edx)\n\t"
20 " movl %1,%%edi\n\t"
22 " flds 4(%%eax)\n\t"
23 " movl $"MANGLE(costab_mmx)",%%ebx\n\t"
24 " fadds 120(%%eax)\n\t"
25 " orl %%ecx,%%ecx\n\t"
26 " fstps 4(%%edx)\n\t"
28 " flds (%%eax)\n\t"
29 " leal %3,%%ecx\n\t"
30 " fsubs 124(%%eax)\n\t"
31 " fmuls (%%ebx)\n\t"
32 " fstps 124(%%edx)\n\t"
34 " flds 4(%%eax)\n\t"
35 " fsubs 120(%%eax)\n\t"
36 " fmuls 4(%%ebx)\n\t"
37 " fstps 120(%%edx)\n\t"
39 " flds 8(%%eax)\n\t"
40 " fadds 116(%%eax)\n\t"
41 " fstps 8(%%edx)\n\t"
43 " flds 12(%%eax)\n\t"
44 " fadds 112(%%eax)\n\t"
45 " fstps 12(%%edx)\n\t"
47 " flds 8(%%eax)\n\t"
48 " fsubs 116(%%eax)\n\t"
49 " fmuls 8(%%ebx)\n\t"
50 " fstps 116(%%edx)\n\t"
52 " flds 12(%%eax)\n\t"
53 " fsubs 112(%%eax)\n\t"
54 " fmuls 12(%%ebx)\n\t"
55 " fstps 112(%%edx)\n\t"
57 " flds 16(%%eax)\n\t"
58 " fadds 108(%%eax)\n\t"
59 " fstps 16(%%edx)\n\t"
61 " flds 20(%%eax)\n\t"
62 " fadds 104(%%eax)\n\t"
63 " fstps 20(%%edx)\n\t"
65 " flds 16(%%eax)\n\t"
66 " fsubs 108(%%eax)\n\t"
67 " fmuls 16(%%ebx)\n\t"
68 " fstps 108(%%edx)\n\t"
70 " flds 20(%%eax)\n\t"
71 " fsubs 104(%%eax)\n\t"
72 " fmuls 20(%%ebx)\n\t"
73 " fstps 104(%%edx)\n\t"
75 " flds 24(%%eax)\n\t"
76 " fadds 100(%%eax)\n\t"
77 " fstps 24(%%edx)\n\t"
79 " flds 28(%%eax)\n\t"
80 " fadds 96(%%eax)\n\t"
81 " fstps 28(%%edx)\n\t"
83 " flds 24(%%eax)\n\t"
84 " fsubs 100(%%eax)\n\t"
85 " fmuls 24(%%ebx)\n\t"
86 " fstps 100(%%edx)\n\t"
88 " flds 28(%%eax)\n\t"
89 " fsubs 96(%%eax)\n\t"
90 " fmuls 28(%%ebx)\n\t"
91 " fstps 96(%%edx)\n\t"
93 " flds 32(%%eax)\n\t"
94 " fadds 92(%%eax)\n\t"
95 " fstps 32(%%edx)\n\t"
97 " flds 36(%%eax)\n\t"
98 " fadds 88(%%eax)\n\t"
99 " fstps 36(%%edx)\n\t"
101 " flds 32(%%eax)\n\t"
102 " fsubs 92(%%eax)\n\t"
103 " fmuls 32(%%ebx)\n\t"
104 " fstps 92(%%edx)\n\t"
106 " flds 36(%%eax)\n\t"
107 " fsubs 88(%%eax)\n\t"
108 " fmuls 36(%%ebx)\n\t"
109 " fstps 88(%%edx)\n\t"
111 " flds 40(%%eax)\n\t"
112 " fadds 84(%%eax)\n\t"
113 " fstps 40(%%edx)\n\t"
115 " flds 44(%%eax)\n\t"
116 " fadds 80(%%eax)\n\t"
117 " fstps 44(%%edx)\n\t"
119 " flds 40(%%eax)\n\t"
120 " fsubs 84(%%eax)\n\t"
121 " fmuls 40(%%ebx)\n\t"
122 " fstps 84(%%edx)\n\t"
124 " flds 44(%%eax)\n\t"
125 " fsubs 80(%%eax)\n\t"
126 " fmuls 44(%%ebx)\n\t"
127 " fstps 80(%%edx)\n\t"
129 " flds 48(%%eax)\n\t"
130 " fadds 76(%%eax)\n\t"
131 " fstps 48(%%edx)\n\t"
133 " flds 52(%%eax)\n\t"
134 " fadds 72(%%eax)\n\t"
135 " fstps 52(%%edx)\n\t"
137 " flds 48(%%eax)\n\t"
138 " fsubs 76(%%eax)\n\t"
139 " fmuls 48(%%ebx)\n\t"
140 " fstps 76(%%edx)\n\t"
142 " flds 52(%%eax)\n\t"
143 " fsubs 72(%%eax)\n\t"
144 " fmuls 52(%%ebx)\n\t"
145 " fstps 72(%%edx)\n\t"
147 " flds 56(%%eax)\n\t"
148 " fadds 68(%%eax)\n\t"
149 " fstps 56(%%edx)\n\t"
151 " flds 60(%%eax)\n\t"
152 " fadds 64(%%eax)\n\t"
153 " fstps 60(%%edx)\n\t"
155 " flds 56(%%eax)\n\t"
156 " fsubs 68(%%eax)\n\t"
157 " fmuls 56(%%ebx)\n\t"
158 " fstps 68(%%edx)\n\t"
160 " flds 60(%%eax)\n\t"
161 " fsubs 64(%%eax)\n\t"
162 " fmuls 60(%%ebx)\n\t"
163 " fstps 64(%%edx)\n\t"
165 /* Phase 2*/
167 " flds (%%edx)\n\t"
168 " fadds 60(%%edx)\n\t"
169 " fstps (%%ecx)\n\t"
171 " flds 4(%%edx)\n\t"
172 " fadds 56(%%edx)\n\t"
173 " fstps 4(%%ecx)\n\t"
175 " flds (%%edx)\n\t"
176 " fsubs 60(%%edx)\n\t"
177 " fmuls 64(%%ebx)\n\t"
178 " fstps 60(%%ecx)\n\t"
180 " flds 4(%%edx)\n\t"
181 " fsubs 56(%%edx)\n\t"
182 " fmuls 68(%%ebx)\n\t"
183 " fstps 56(%%ecx)\n\t"
185 " flds 8(%%edx)\n\t"
186 " fadds 52(%%edx)\n\t"
187 " fstps 8(%%ecx)\n\t"
189 " flds 12(%%edx)\n\t"
190 " fadds 48(%%edx)\n\t"
191 " fstps 12(%%ecx)\n\t"
193 " flds 8(%%edx)\n\t"
194 " fsubs 52(%%edx)\n\t"
195 " fmuls 72(%%ebx)\n\t"
196 " fstps 52(%%ecx)\n\t"
198 " flds 12(%%edx)\n\t"
199 " fsubs 48(%%edx)\n\t"
200 " fmuls 76(%%ebx)\n\t"
201 " fstps 48(%%ecx)\n\t"
203 " flds 16(%%edx)\n\t"
204 " fadds 44(%%edx)\n\t"
205 " fstps 16(%%ecx)\n\t"
207 " flds 20(%%edx)\n\t"
208 " fadds 40(%%edx)\n\t"
209 " fstps 20(%%ecx)\n\t"
211 " flds 16(%%edx)\n\t"
212 " fsubs 44(%%edx)\n\t"
213 " fmuls 80(%%ebx)\n\t"
214 " fstps 44(%%ecx)\n\t"
216 " flds 20(%%edx)\n\t"
217 " fsubs 40(%%edx)\n\t"
218 " fmuls 84(%%ebx)\n\t"
219 " fstps 40(%%ecx)\n\t"
221 " flds 24(%%edx)\n\t"
222 " fadds 36(%%edx)\n\t"
223 " fstps 24(%%ecx)\n\t"
225 " flds 28(%%edx)\n\t"
226 " fadds 32(%%edx)\n\t"
227 " fstps 28(%%ecx)\n\t"
229 " flds 24(%%edx)\n\t"
230 " fsubs 36(%%edx)\n\t"
231 " fmuls 88(%%ebx)\n\t"
232 " fstps 36(%%ecx)\n\t"
234 " flds 28(%%edx)\n\t"
235 " fsubs 32(%%edx)\n\t"
236 " fmuls 92(%%ebx)\n\t"
237 " fstps 32(%%ecx)\n\t"
239 /* Phase 3*/
241 " flds 64(%%edx)\n\t"
242 " fadds 124(%%edx)\n\t"
243 " fstps 64(%%ecx)\n\t"
245 " flds 68(%%edx)\n\t"
246 " fadds 120(%%edx)\n\t"
247 " fstps 68(%%ecx)\n\t"
249 " flds 124(%%edx)\n\t"
250 " fsubs 64(%%edx)\n\t"
251 " fmuls 64(%%ebx)\n\t"
252 " fstps 124(%%ecx)\n\t"
254 " flds 120(%%edx)\n\t"
255 " fsubs 68(%%edx)\n\t"
256 " fmuls 68(%%ebx)\n\t"
257 " fstps 120(%%ecx)\n\t"
259 " flds 72(%%edx)\n\t"
260 " fadds 116(%%edx)\n\t"
261 " fstps 72(%%ecx)\n\t"
263 " flds 76(%%edx)\n\t"
264 " fadds 112(%%edx)\n\t"
265 " fstps 76(%%ecx)\n\t"
267 " flds 116(%%edx)\n\t"
268 " fsubs 72(%%edx)\n\t"
269 " fmuls 72(%%ebx)\n\t"
270 " fstps 116(%%ecx)\n\t"
272 " flds 112(%%edx)\n\t"
273 " fsubs 76(%%edx)\n\t"
274 " fmuls 76(%%ebx)\n\t"
275 " fstps 112(%%ecx)\n\t"
277 " flds 80(%%edx)\n\t"
278 " fadds 108(%%edx)\n\t"
279 " fstps 80(%%ecx)\n\t"
281 " flds 84(%%edx)\n\t"
282 " fadds 104(%%edx)\n\t"
283 " fstps 84(%%ecx)\n\t"
285 " flds 108(%%edx)\n\t"
286 " fsubs 80(%%edx)\n\t"
287 " fmuls 80(%%ebx)\n\t"
288 " fstps 108(%%ecx)\n\t"
290 " flds 104(%%edx)\n\t"
291 " fsubs 84(%%edx)\n\t"
292 " fmuls 84(%%ebx)\n\t"
293 " fstps 104(%%ecx)\n\t"
295 " flds 88(%%edx)\n\t"
296 " fadds 100(%%edx)\n\t"
297 " fstps 88(%%ecx)\n\t"
299 " flds 92(%%edx)\n\t"
300 " fadds 96(%%edx)\n\t"
301 " fstps 92(%%ecx)\n\t"
303 " flds 100(%%edx)\n\t"
304 " fsubs 88(%%edx)\n\t"
305 " fmuls 88(%%ebx)\n\t"
306 " fstps 100(%%ecx)\n\t"
308 " flds 96(%%edx)\n\t"
309 " fsubs 92(%%edx)\n\t"
310 " fmuls 92(%%ebx)\n\t"
311 " fstps 96(%%ecx)\n\t"
313 /* Phase 4*/
315 " flds (%%ecx)\n\t"
316 " fadds 28(%%ecx)\n\t"
317 " fstps (%%edx)\n\t"
319 " flds (%%ecx)\n\t"
320 " fsubs 28(%%ecx)\n\t"
321 " fmuls 96(%%ebx)\n\t"
322 " fstps 28(%%edx)\n\t"
324 " flds 4(%%ecx)\n\t"
325 " fadds 24(%%ecx)\n\t"
326 " fstps 4(%%edx)\n\t"
328 " flds 4(%%ecx)\n\t"
329 " fsubs 24(%%ecx)\n\t"
330 " fmuls 100(%%ebx)\n\t"
331 " fstps 24(%%edx)\n\t"
333 " flds 8(%%ecx)\n\t"
334 " fadds 20(%%ecx)\n\t"
335 " fstps 8(%%edx)\n\t"
337 " flds 8(%%ecx)\n\t"
338 " fsubs 20(%%ecx)\n\t"
339 " fmuls 104(%%ebx)\n\t"
340 " fstps 20(%%edx)\n\t"
342 " flds 12(%%ecx)\n\t"
343 " fadds 16(%%ecx)\n\t"
344 " fstps 12(%%edx)\n\t"
346 " flds 12(%%ecx)\n\t"
347 " fsubs 16(%%ecx)\n\t"
348 " fmuls 108(%%ebx)\n\t"
349 " fstps 16(%%edx)\n\t"
351 " flds 32(%%ecx)\n\t"
352 " fadds 60(%%ecx)\n\t"
353 " fstps 32(%%edx)\n\t"
355 " flds 60(%%ecx)\n\t"
356 " fsubs 32(%%ecx)\n\t"
357 " fmuls 96(%%ebx)\n\t"
358 " fstps 60(%%edx)\n\t"
360 " flds 36(%%ecx)\n\t"
361 " fadds 56(%%ecx)\n\t"
362 " fstps 36(%%edx)\n\t"
364 " flds 56(%%ecx)\n\t"
365 " fsubs 36(%%ecx)\n\t"
366 " fmuls 100(%%ebx)\n\t"
367 " fstps 56(%%edx)\n\t"
369 " flds 40(%%ecx)\n\t"
370 " fadds 52(%%ecx)\n\t"
371 " fstps 40(%%edx)\n\t"
373 " flds 52(%%ecx)\n\t"
374 " fsubs 40(%%ecx)\n\t"
375 " fmuls 104(%%ebx)\n\t"
376 " fstps 52(%%edx)\n\t"
378 " flds 44(%%ecx)\n\t"
379 " fadds 48(%%ecx)\n\t"
380 " fstps 44(%%edx)\n\t"
382 " flds 48(%%ecx)\n\t"
383 " fsubs 44(%%ecx)\n\t"
384 " fmuls 108(%%ebx)\n\t"
385 " fstps 48(%%edx)\n\t"
387 " flds 64(%%ecx)\n\t"
388 " fadds 92(%%ecx)\n\t"
389 " fstps 64(%%edx)\n\t"
391 " flds 64(%%ecx)\n\t"
392 " fsubs 92(%%ecx)\n\t"
393 " fmuls 96(%%ebx)\n\t"
394 " fstps 92(%%edx)\n\t"
396 " flds 68(%%ecx)\n\t"
397 " fadds 88(%%ecx)\n\t"
398 " fstps 68(%%edx)\n\t"
400 " flds 68(%%ecx)\n\t"
401 " fsubs 88(%%ecx)\n\t"
402 " fmuls 100(%%ebx)\n\t"
403 " fstps 88(%%edx)\n\t"
405 " flds 72(%%ecx)\n\t"
406 " fadds 84(%%ecx)\n\t"
407 " fstps 72(%%edx)\n\t"
409 " flds 72(%%ecx)\n\t"
410 " fsubs 84(%%ecx)\n\t"
411 " fmuls 104(%%ebx)\n\t"
412 " fstps 84(%%edx)\n\t"
414 " flds 76(%%ecx)\n\t"
415 " fadds 80(%%ecx)\n\t"
416 " fstps 76(%%edx)\n\t"
418 " flds 76(%%ecx)\n\t"
419 " fsubs 80(%%ecx)\n\t"
420 " fmuls 108(%%ebx)\n\t"
421 " fstps 80(%%edx)\n\t"
423 " flds 96(%%ecx)\n\t"
424 " fadds 124(%%ecx)\n\t"
425 " fstps 96(%%edx)\n\t"
427 " flds 124(%%ecx)\n\t"
428 " fsubs 96(%%ecx)\n\t"
429 " fmuls 96(%%ebx)\n\t"
430 " fstps 124(%%edx)\n\t"
432 " flds 100(%%ecx)\n\t"
433 " fadds 120(%%ecx)\n\t"
434 " fstps 100(%%edx)\n\t"
436 " flds 120(%%ecx)\n\t"
437 " fsubs 100(%%ecx)\n\t"
438 " fmuls 100(%%ebx)\n\t"
439 " fstps 120(%%edx)\n\t"
441 " flds 104(%%ecx)\n\t"
442 " fadds 116(%%ecx)\n\t"
443 " fstps 104(%%edx)\n\t"
445 " flds 116(%%ecx)\n\t"
446 " fsubs 104(%%ecx)\n\t"
447 " fmuls 104(%%ebx)\n\t"
448 " fstps 116(%%edx)\n\t"
450 " flds 108(%%ecx)\n\t"
451 " fadds 112(%%ecx)\n\t"
452 " fstps 108(%%edx)\n\t"
454 " flds 112(%%ecx)\n\t"
455 " fsubs 108(%%ecx)\n\t"
456 " fmuls 108(%%ebx)\n\t"
457 " fstps 112(%%edx)\n\t"
459 " flds (%%edx)\n\t"
460 " fadds 12(%%edx)\n\t"
461 " fstps (%%ecx)\n\t"
463 " flds (%%edx)\n\t"
464 " fsubs 12(%%edx)\n\t"
465 " fmuls 112(%%ebx)\n\t"
466 " fstps 12(%%ecx)\n\t"
468 " flds 4(%%edx)\n\t"
469 " fadds 8(%%edx)\n\t"
470 " fstps 4(%%ecx)\n\t"
472 " flds 4(%%edx)\n\t"
473 " fsubs 8(%%edx)\n\t"
474 " fmuls 116(%%ebx)\n\t"
475 " fstps 8(%%ecx)\n\t"
477 " flds 16(%%edx)\n\t"
478 " fadds 28(%%edx)\n\t"
479 " fstps 16(%%ecx)\n\t"
481 " flds 28(%%edx)\n\t"
482 " fsubs 16(%%edx)\n\t"
483 " fmuls 112(%%ebx)\n\t"
484 " fstps 28(%%ecx)\n\t"
486 " flds 20(%%edx)\n\t"
487 " fadds 24(%%edx)\n\t"
488 " fstps 20(%%ecx)\n\t"
490 " flds 24(%%edx)\n\t"
491 " fsubs 20(%%edx)\n\t"
492 " fmuls 116(%%ebx)\n\t"
493 " fstps 24(%%ecx)\n\t"
495 " flds 32(%%edx)\n\t"
496 " fadds 44(%%edx)\n\t"
497 " fstps 32(%%ecx)\n\t"
499 " flds 32(%%edx)\n\t"
500 " fsubs 44(%%edx)\n\t"
501 " fmuls 112(%%ebx)\n\t"
502 " fstps 44(%%ecx)\n\t"
504 " flds 36(%%edx)\n\t"
505 " fadds 40(%%edx)\n\t"
506 " fstps 36(%%ecx)\n\t"
508 " flds 36(%%edx)\n\t"
509 " fsubs 40(%%edx)\n\t"
510 " fmuls 116(%%ebx)\n\t"
511 " fstps 40(%%ecx)\n\t"
513 " flds 48(%%edx)\n\t"
514 " fadds 60(%%edx)\n\t"
515 " fstps 48(%%ecx)\n\t"
517 " flds 60(%%edx)\n\t"
518 " fsubs 48(%%edx)\n\t"
519 " fmuls 112(%%ebx)\n\t"
520 " fstps 60(%%ecx)\n\t"
522 " flds 52(%%edx)\n\t"
523 " fadds 56(%%edx)\n\t"
524 " fstps 52(%%ecx)\n\t"
526 " flds 56(%%edx)\n\t"
527 " fsubs 52(%%edx)\n\t"
528 " fmuls 116(%%ebx)\n\t"
529 " fstps 56(%%ecx)\n\t"
531 " flds 64(%%edx)\n\t"
532 " fadds 76(%%edx)\n\t"
533 " fstps 64(%%ecx)\n\t"
535 " flds 64(%%edx)\n\t"
536 " fsubs 76(%%edx)\n\t"
537 " fmuls 112(%%ebx)\n\t"
538 " fstps 76(%%ecx)\n\t"
540 " flds 68(%%edx)\n\t"
541 " fadds 72(%%edx)\n\t"
542 " fstps 68(%%ecx)\n\t"
544 " flds 68(%%edx)\n\t"
545 " fsubs 72(%%edx)\n\t"
546 " fmuls 116(%%ebx)\n\t"
547 " fstps 72(%%ecx)\n\t"
549 " flds 80(%%edx)\n\t"
550 " fadds 92(%%edx)\n\t"
551 " fstps 80(%%ecx)\n\t"
553 " flds 92(%%edx)\n\t"
554 " fsubs 80(%%edx)\n\t"
555 " fmuls 112(%%ebx)\n\t"
556 " fstps 92(%%ecx)\n\t"
558 " flds 84(%%edx)\n\t"
559 " fadds 88(%%edx)\n\t"
560 " fstps 84(%%ecx)\n\t"
562 " flds 88(%%edx)\n\t"
563 " fsubs 84(%%edx)\n\t"
564 " fmuls 116(%%ebx)\n\t"
565 " fstps 88(%%ecx)\n\t"
567 " flds 96(%%edx)\n\t"
568 " fadds 108(%%edx)\n\t"
569 " fstps 96(%%ecx)\n\t"
571 " flds 96(%%edx)\n\t"
572 " fsubs 108(%%edx)\n\t"
573 " fmuls 112(%%ebx)\n\t"
574 " fstps 108(%%ecx)\n\t"
576 " flds 100(%%edx)\n\t"
577 " fadds 104(%%edx)\n\t"
578 " fstps 100(%%ecx)\n\t"
580 " flds 100(%%edx)\n\t"
581 " fsubs 104(%%edx)\n\t"
582 " fmuls 116(%%ebx)\n\t"
583 " fstps 104(%%ecx)\n\t"
585 " flds 112(%%edx)\n\t"
586 " fadds 124(%%edx)\n\t"
587 " fstps 112(%%ecx)\n\t"
589 " flds 124(%%edx)\n\t"
590 " fsubs 112(%%edx)\n\t"
591 " fmuls 112(%%ebx)\n\t"
592 " fstps 124(%%ecx)\n\t"
594 " flds 116(%%edx)\n\t"
595 " fadds 120(%%edx)\n\t"
596 " fstps 116(%%ecx)\n\t"
598 " flds 120(%%edx)\n\t"
599 " fsubs 116(%%edx)\n\t"
600 " fmuls 116(%%ebx)\n\t"
601 " fstps 120(%%ecx)\n\t"
603 /* Phase 5*/
605 " flds 32(%%ecx)\n\t"
606 " fadds 36(%%ecx)\n\t"
607 " fstps 32(%%edx)\n\t"
609 " flds 32(%%ecx)\n\t"
610 " fsubs 36(%%ecx)\n\t"
611 " fmuls 120(%%ebx)\n\t"
612 " fstps 36(%%edx)\n\t"
614 " flds 44(%%ecx)\n\t"
615 " fsubs 40(%%ecx)\n\t"
616 " fmuls 120(%%ebx)\n\t"
617 " fsts 44(%%edx)\n\t"
618 " fadds 40(%%ecx)\n\t"
619 " fadds 44(%%ecx)\n\t"
620 " fstps 40(%%edx)\n\t"
622 " flds 48(%%ecx)\n\t"
623 " fsubs 52(%%ecx)\n\t"
624 " fmuls 120(%%ebx)\n\t"
626 " flds 60(%%ecx)\n\t"
627 " fsubs 56(%%ecx)\n\t"
628 " fmuls 120(%%ebx)\n\t"
629 " fld %%st(0)\n\t"
630 " fadds 56(%%ecx)\n\t"
631 " fadds 60(%%ecx)\n\t"
632 " fld %%st(0)\n\t"
633 " fadds 48(%%ecx)\n\t"
634 " fadds 52(%%ecx)\n\t"
635 " fstps 48(%%edx)\n\t"
636 " fadd %%st(2)\n\t"
637 " fstps 56(%%edx)\n\t"
638 " fsts 60(%%edx)\n\t"
639 " faddp %%st(1)\n\t"
640 " fstps 52(%%edx)\n\t"
642 " flds 64(%%ecx)\n\t"
643 " fadds 68(%%ecx)\n\t"
644 " fstps 64(%%edx)\n\t"
646 " flds 64(%%ecx)\n\t"
647 " fsubs 68(%%ecx)\n\t"
648 " fmuls 120(%%ebx)\n\t"
649 " fstps 68(%%edx)\n\t"
651 " flds 76(%%ecx)\n\t"
652 " fsubs 72(%%ecx)\n\t"
653 " fmuls 120(%%ebx)\n\t"
654 " fsts 76(%%edx)\n\t"
655 " fadds 72(%%ecx)\n\t"
656 " fadds 76(%%ecx)\n\t"
657 " fstps 72(%%edx)\n\t"
659 " flds 92(%%ecx)\n\t"
660 " fsubs 88(%%ecx)\n\t"
661 " fmuls 120(%%ebx)\n\t"
662 " fsts 92(%%edx)\n\t"
663 " fadds 92(%%ecx)\n\t"
664 " fadds 88(%%ecx)\n\t"
665 " fld %%st(0)\n\t"
666 " fadds 80(%%ecx)\n\t"
667 " fadds 84(%%ecx)\n\t"
668 " fstps 80(%%edx)\n\t"
670 " flds 80(%%ecx)\n\t"
671 " fsubs 84(%%ecx)\n\t"
672 " fmuls 120(%%ebx)\n\t"
673 " fadd %%st(0), %%st(1)\n\t"
674 " fadds 92(%%edx)\n\t"
675 " fstps 84(%%edx)\n\t"
676 " fstps 88(%%edx)\n\t"
678 " flds 96(%%ecx)\n\t"
679 " fadds 100(%%ecx)\n\t"
680 " fstps 96(%%edx)\n\t"
682 " flds 96(%%ecx)\n\t"
683 " fsubs 100(%%ecx)\n\t"
684 " fmuls 120(%%ebx)\n\t"
685 " fstps 100(%%edx)\n\t"
687 " flds 108(%%ecx)\n\t"
688 " fsubs 104(%%ecx)\n\t"
689 " fmuls 120(%%ebx)\n\t"
690 " fsts 108(%%edx)\n\t"
691 " fadds 104(%%ecx)\n\t"
692 " fadds 108(%%ecx)\n\t"
693 " fstps 104(%%edx)\n\t"
695 " flds 124(%%ecx)\n\t"
696 " fsubs 120(%%ecx)\n\t"
697 " fmuls 120(%%ebx)\n\t"
698 " fsts 124(%%edx)\n\t"
699 " fadds 120(%%ecx)\n\t"
700 " fadds 124(%%ecx)\n\t"
701 " fld %%st(0)\n\t"
702 " fadds 112(%%ecx)\n\t"
703 " fadds 116(%%ecx)\n\t"
704 " fstps 112(%%edx)\n\t"
706 " flds 112(%%ecx)\n\t"
707 " fsubs 116(%%ecx)\n\t"
708 " fmuls 120(%%ebx)\n\t"
709 " fadd %%st(0),%%st(1)\n\t"
710 " fadds 124(%%edx)\n\t"
711 " fstps 116(%%edx)\n\t"
712 " fstps 120(%%edx)\n\t"
713 " jnz .L01\n\t"
715 /* Phase 6*/
717 " flds (%%ecx)\n\t"
718 " fadds 4(%%ecx)\n\t"
719 " fstps 1024(%%esi)\n\t"
721 " flds (%%ecx)\n\t"
722 " fsubs 4(%%ecx)\n\t"
723 " fmuls 120(%%ebx)\n\t"
724 " fsts (%%esi)\n\t"
725 " fstps (%%edi)\n\t"
727 " flds 12(%%ecx)\n\t"
728 " fsubs 8(%%ecx)\n\t"
729 " fmuls 120(%%ebx)\n\t"
730 " fsts 512(%%edi)\n\t"
731 " fadds 12(%%ecx)\n\t"
732 " fadds 8(%%ecx)\n\t"
733 " fstps 512(%%esi)\n\t"
735 " flds 16(%%ecx)\n\t"
736 " fsubs 20(%%ecx)\n\t"
737 " fmuls 120(%%ebx)\n\t"
739 " flds 28(%%ecx)\n\t"
740 " fsubs 24(%%ecx)\n\t"
741 " fmuls 120(%%ebx)\n\t"
742 " fsts 768(%%edi)\n\t"
743 " fld %%st(0)\n\t"
744 " fadds 24(%%ecx)\n\t"
745 " fadds 28(%%ecx)\n\t"
746 " fld %%st(0)\n\t"
747 " fadds 16(%%ecx)\n\t"
748 " fadds 20(%%ecx)\n\t"
749 " fstps 768(%%esi)\n\t"
750 " fadd %%st(2)\n\t"
751 " fstps 256(%%esi)\n\t"
752 " faddp %%st(1)\n\t"
753 " fstps 256(%%edi)\n\t"
755 /* Phase 7*/
757 " flds 32(%%edx)\n\t"
758 " fadds 48(%%edx)\n\t"
759 " fstps 896(%%esi)\n\t"
761 " flds 48(%%edx)\n\t"
762 " fadds 40(%%edx)\n\t"
763 " fstps 640(%%esi)\n\t"
765 " flds 40(%%edx)\n\t"
766 " fadds 56(%%edx)\n\t"
767 " fstps 384(%%esi)\n\t"
769 " flds 56(%%edx)\n\t"
770 " fadds 36(%%edx)\n\t"
771 " fstps 128(%%esi)\n\t"
773 " flds 36(%%edx)\n\t"
774 " fadds 52(%%edx)\n\t"
775 " fstps 128(%%edi)\n\t"
777 " flds 52(%%edx)\n\t"
778 " fadds 44(%%edx)\n\t"
779 " fstps 384(%%edi)\n\t"
781 " flds 60(%%edx)\n\t"
782 " fsts 896(%%edi)\n\t"
783 " fadds 44(%%edx)\n\t"
784 " fstps 640(%%edi)\n\t"
786 " flds 96(%%edx)\n\t"
787 " fadds 112(%%edx)\n\t"
788 " fld %%st(0)\n\t"
789 " fadds 64(%%edx)\n\t"
790 " fstps 960(%%esi)\n\t"
791 " fadds 80(%%edx)\n\t"
792 " fstps 832(%%esi)\n\t"
794 " flds 112(%%edx)\n\t"
795 " fadds 104(%%edx)\n\t"
796 " fld %%st(0)\n\t"
797 " fadds 80(%%edx)\n\t"
798 " fstps 704(%%esi)\n\t"
799 " fadds 72(%%edx)\n\t"
800 " fstps 576(%%esi)\n\t"
802 " flds 104(%%edx)\n\t"
803 " fadds 120(%%edx)\n\t"
804 " fld %%st(0)\n\t"
805 " fadds 72(%%edx)\n\t"
806 " fstps 448(%%esi)\n\t"
807 " fadds 88(%%edx)\n\t"
808 " fstps 320(%%esi)\n\t"
810 " flds 120(%%edx)\n\t"
811 " fadds 100(%%edx)\n\t"
812 " fld %%st(0)\n\t"
813 " fadds 88(%%edx)\n\t"
814 " fstps 192(%%esi)\n\t"
815 " fadds 68(%%edx)\n\t"
816 " fstps 64(%%esi)\n\t"
818 " flds 100(%%edx)\n\t"
819 " fadds 116(%%edx)\n\t"
820 " fld %%st(0)\n\t"
821 " fadds 68(%%edx)\n\t"
822 " fstps 64(%%edi)\n\t"
823 " fadds 84(%%edx)\n\t"
824 " fstps 192(%%edi)\n\t"
826 " flds 116(%%edx)\n\t"
827 " fadds 108(%%edx)\n\t"
828 " fld %%st(0)\n\t"
829 " fadds 84(%%edx)\n\t"
830 " fstps 320(%%edi)\n\t"
831 " fadds 76(%%edx)\n\t"
832 " fstps 448(%%edi)\n\t"
834 " flds 108(%%edx)\n\t"
835 " fadds 124(%%edx)\n\t"
836 " fld %%st(0)\n\t"
837 " fadds 76(%%edx)\n\t"
838 " fstps 576(%%edi)\n\t"
839 " fadds 92(%%edx)\n\t"
840 " fstps 704(%%edi)\n\t"
842 " flds 124(%%edx)\n\t"
843 " fsts 960(%%edi)\n\t"
844 " fadds 92(%%edx)\n\t"
845 " fstps 832(%%edi)\n\t"
846 " jmp .L_bye\n\t"
847 ".L01:\n\t"
848 /* Phase 8*/
850 " flds (%%ecx)\n\t"
851 " fadds 4(%%ecx)\n\t"
852 " fistp 512(%%esi)\n\t"
854 " flds (%%ecx)\n\t"
855 " fsubs 4(%%ecx)\n\t"
856 " fmuls 120(%%ebx)\n\t"
858 " fistp (%%esi)\n\t"
861 " flds 12(%%ecx)\n\t"
862 " fsubs 8(%%ecx)\n\t"
863 " fmuls 120(%%ebx)\n\t"
864 " fist 256(%%edi)\n\t"
865 " fadds 12(%%ecx)\n\t"
866 " fadds 8(%%ecx)\n\t"
867 " fistp 256(%%esi)\n\t"
869 " flds 16(%%ecx)\n\t"
870 " fsubs 20(%%ecx)\n\t"
871 " fmuls 120(%%ebx)\n\t"
873 " flds 28(%%ecx)\n\t"
874 " fsubs 24(%%ecx)\n\t"
875 " fmuls 120(%%ebx)\n\t"
876 " fist 384(%%edi)\n\t"
877 " fld %%st(0)\n\t"
878 " fadds 24(%%ecx)\n\t"
879 " fadds 28(%%ecx)\n\t"
880 " fld %%st(0)\n\t"
881 " fadds 16(%%ecx)\n\t"
882 " fadds 20(%%ecx)\n\t"
883 " fistp 384(%%esi)\n\t"
884 " fadd %%st(2)\n\t"
885 " fistp 128(%%esi)\n\t"
886 " faddp %%st(1)\n\t"
887 " fistp 128(%%edi)\n\t"
889 /* Phase 9*/
891 " flds 32(%%edx)\n\t"
892 " fadds 48(%%edx)\n\t"
893 " fistp 448(%%esi)\n\t"
895 " flds 48(%%edx)\n\t"
896 " fadds 40(%%edx)\n\t"
897 " fistp 320(%%esi)\n\t"
899 " flds 40(%%edx)\n\t"
900 " fadds 56(%%edx)\n\t"
901 " fistp 192(%%esi)\n\t"
903 " flds 56(%%edx)\n\t"
904 " fadds 36(%%edx)\n\t"
905 " fistp 64(%%esi)\n\t"
907 " flds 36(%%edx)\n\t"
908 " fadds 52(%%edx)\n\t"
909 " fistp 64(%%edi)\n\t"
911 " flds 52(%%edx)\n\t"
912 " fadds 44(%%edx)\n\t"
913 " fistp 192(%%edi)\n\t"
915 " flds 60(%%edx)\n\t"
916 " fist 448(%%edi)\n\t"
917 " fadds 44(%%edx)\n\t"
918 " fistp 320(%%edi)\n\t"
920 " flds 96(%%edx)\n\t"
921 " fadds 112(%%edx)\n\t"
922 " fld %%st(0)\n\t"
923 " fadds 64(%%edx)\n\t"
924 " fistp 480(%%esi)\n\t"
925 " fadds 80(%%edx)\n\t"
926 " fistp 416(%%esi)\n\t"
928 " flds 112(%%edx)\n\t"
929 " fadds 104(%%edx)\n\t"
930 " fld %%st(0)\n\t"
931 " fadds 80(%%edx)\n\t"
932 " fistp 352(%%esi)\n\t"
933 " fadds 72(%%edx)\n\t"
934 " fistp 288(%%esi)\n\t"
936 " flds 104(%%edx)\n\t"
937 " fadds 120(%%edx)\n\t"
938 " fld %%st(0)\n\t"
939 " fadds 72(%%edx)\n\t"
940 " fistp 224(%%esi)\n\t"
941 " fadds 88(%%edx)\n\t"
942 " fistp 160(%%esi)\n\t"
944 " flds 120(%%edx)\n\t"
945 " fadds 100(%%edx)\n\t"
946 " fld %%st(0)\n\t"
947 " fadds 88(%%edx)\n\t"
948 " fistp 96(%%esi)\n\t"
949 " fadds 68(%%edx)\n\t"
950 " fistp 32(%%esi)\n\t"
952 " flds 100(%%edx)\n\t"
953 " fadds 116(%%edx)\n\t"
954 " fld %%st(0)\n\t"
955 " fadds 68(%%edx)\n\t"
956 " fistp 32(%%edi)\n\t"
957 " fadds 84(%%edx)\n\t"
958 " fistp 96(%%edi)\n\t"
960 " flds 116(%%edx)\n\t"
961 " fadds 108(%%edx)\n\t"
962 " fld %%st(0)\n\t"
963 " fadds 84(%%edx)\n\t"
964 " fistp 160(%%edi)\n\t"
965 " fadds 76(%%edx)\n\t"
966 " fistp 224(%%edi)\n\t"
968 " flds 108(%%edx)\n\t"
969 " fadds 124(%%edx)\n\t"
970 " fld %%st(0)\n\t"
971 " fadds 76(%%edx)\n\t"
972 " fistp 288(%%edi)\n\t"
973 " fadds 92(%%edx)\n\t"
974 " fistp 352(%%edi)\n\t"
976 " flds 124(%%edx)\n\t"
977 " fist 480(%%edi)\n\t"
978 " fadds 92(%%edx)\n\t"
979 " fistp 416(%%edi)\n\t"
980 " movsw\n\t"
981 ".L_bye:"
983 :"m"(a),"m"(b),"m"(c),"m"(tmp[0])
984 :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi");