comparison mp3lib/dct64_k7.s @ 1277:3a9699d9e7da

Slight otimization
author nick
date Thu, 05 Jul 2001 09:44:18 +0000
parents 2864e32cd267
children 175423b2691e
comparison
equal deleted inserted replaced
1276:ae943748e0d9 1277:3a9699d9e7da
5 # 5 #
6 # TODO: optimize scalar 3dnow! code 6 # TODO: optimize scalar 3dnow! code
7 # Warning: Phases 7 & 8 are not tested 7 # Warning: Phases 7 & 8 are not tested
8 # 8 #
9 9
10 .data
11 .align 8
12 x_plus_minus_3dnow: .long 0x00000000, 0x80000000
13 plus_1f: .float 1.0
14
10 .text 15 .text
11 16
12 .align 16 17 .align 16
13 18
14 .globl dct64_MMX_3dnowex 19 .globl dct64_MMX_3dnowex
199 movq %mm3, 104(%ecx) 204 movq %mm3, 104(%ecx)
200 movq %mm7, 96(%ecx) 205 movq %mm7, 96(%ecx)
201 206
202 /* Phase 4*/ 207 /* Phase 4*/
203 208
209 movq 96(%ebx), %mm2
210 movq 104(%ebx), %mm6
211
204 movq (%ecx), %mm0 212 movq (%ecx), %mm0
205 movq 8(%ecx), %mm4 213 movq 8(%ecx), %mm4
206 movq %mm0, %mm3 214 movq %mm0, %mm3
207 movq %mm4, %mm7 215 movq %mm4, %mm7
208 movq 24(%ecx), %mm1 216 movq 24(%ecx), %mm1
213 pfadd %mm5, %mm4 221 pfadd %mm5, %mm4
214 movq %mm0, (%edx) 222 movq %mm0, (%edx)
215 movq %mm4, 8(%edx) 223 movq %mm4, 8(%edx)
216 pfsub %mm1, %mm3 224 pfsub %mm1, %mm3
217 pfsub %mm5, %mm7 225 pfsub %mm5, %mm7
218 pfmul 96(%ebx), %mm3 226 pfmul %mm2, %mm3
219 pfmul 104(%ebx), %mm7 227 pfmul %mm6, %mm7
220 pswapd %mm3, %mm3 228 pswapd %mm3, %mm3
221 pswapd %mm7, %mm7 229 pswapd %mm7, %mm7
222 movq %mm3, 24(%edx) 230 movq %mm3, 24(%edx)
223 movq %mm7, 16(%edx) 231 movq %mm7, 16(%edx)
224 232
234 pfadd %mm5, %mm4 242 pfadd %mm5, %mm4
235 movq %mm0, 32(%edx) 243 movq %mm0, 32(%edx)
236 movq %mm4, 40(%edx) 244 movq %mm4, 40(%edx)
237 pfsubr %mm1, %mm3 245 pfsubr %mm1, %mm3
238 pfsubr %mm5, %mm7 246 pfsubr %mm5, %mm7
239 pfmul 96(%ebx), %mm3 247 pfmul %mm2, %mm3
240 pfmul 104(%ebx), %mm7 248 pfmul %mm6, %mm7
241 pswapd %mm3, %mm3 249 pswapd %mm3, %mm3
242 pswapd %mm7, %mm7 250 pswapd %mm7, %mm7
243 movq %mm3, 56(%edx) 251 movq %mm3, 56(%edx)
244 movq %mm7, 48(%edx) 252 movq %mm7, 48(%edx)
245 253
255 pfadd %mm5, %mm4 263 pfadd %mm5, %mm4
256 movq %mm0, 64(%edx) 264 movq %mm0, 64(%edx)
257 movq %mm4, 72(%edx) 265 movq %mm4, 72(%edx)
258 pfsub %mm1, %mm3 266 pfsub %mm1, %mm3
259 pfsub %mm5, %mm7 267 pfsub %mm5, %mm7
260 pfmul 96(%ebx), %mm3 268 pfmul %mm2, %mm3
261 pfmul 104(%ebx), %mm7 269 pfmul %mm6, %mm7
262 pswapd %mm3, %mm3 270 pswapd %mm3, %mm3
263 pswapd %mm7, %mm7 271 pswapd %mm7, %mm7
264 movq %mm3, 88(%edx) 272 movq %mm3, 88(%edx)
265 movq %mm7, 80(%edx) 273 movq %mm7, 80(%edx)
266 274
276 pfadd %mm5, %mm4 284 pfadd %mm5, %mm4
277 movq %mm0, 96(%edx) 285 movq %mm0, 96(%edx)
278 movq %mm4, 104(%edx) 286 movq %mm4, 104(%edx)
279 pfsubr %mm1, %mm3 287 pfsubr %mm1, %mm3
280 pfsubr %mm5, %mm7 288 pfsubr %mm5, %mm7
281 pfmul 96(%ebx), %mm3 289 pfmul %mm2, %mm3
282 pfmul 104(%ebx), %mm7 290 pfmul %mm6, %mm7
283 pswapd %mm3, %mm3 291 pswapd %mm3, %mm3
284 pswapd %mm7, %mm7 292 pswapd %mm7, %mm7
285 movq %mm3, 120(%edx) 293 movq %mm3, 120(%edx)
286 movq %mm7, 112(%edx) 294 movq %mm7, 112(%edx)
287 295
288 /* Phase 5 */ 296 /* Phase 5 */
289 297
298 movq 112(%ebx), %mm2
299
290 movq (%edx), %mm0 300 movq (%edx), %mm0
291 movq 16(%edx), %mm4 301 movq 16(%edx), %mm4
292 movq %mm0, %mm3 302 movq %mm0, %mm3
293 movq %mm4, %mm7 303 movq %mm4, %mm7
294 movq 8(%edx), %mm1 304 movq 8(%edx), %mm1
299 pfadd %mm5, %mm4 309 pfadd %mm5, %mm4
300 movq %mm0, (%ecx) 310 movq %mm0, (%ecx)
301 movq %mm4, 16(%ecx) 311 movq %mm4, 16(%ecx)
302 pfsub %mm1, %mm3 312 pfsub %mm1, %mm3
303 pfsubr %mm5, %mm7 313 pfsubr %mm5, %mm7
304 pfmul 112(%ebx), %mm3 314 pfmul %mm2, %mm3
305 pfmul 112(%ebx), %mm7 315 pfmul %mm2, %mm7
306 pswapd %mm3, %mm3 316 pswapd %mm3, %mm3
307 pswapd %mm7, %mm7 317 pswapd %mm7, %mm7
308 movq %mm3, 8(%ecx) 318 movq %mm3, 8(%ecx)
309 movq %mm7, 24(%ecx) 319 movq %mm7, 24(%ecx)
310 320
320 pfadd %mm5, %mm4 330 pfadd %mm5, %mm4
321 movq %mm0, 32(%ecx) 331 movq %mm0, 32(%ecx)
322 movq %mm4, 48(%ecx) 332 movq %mm4, 48(%ecx)
323 pfsub %mm1, %mm3 333 pfsub %mm1, %mm3
324 pfsubr %mm5, %mm7 334 pfsubr %mm5, %mm7
325 pfmul 112(%ebx), %mm3 335 pfmul %mm2, %mm3
326 pfmul 112(%ebx), %mm7 336 pfmul %mm2, %mm7
327 pswapd %mm3, %mm3 337 pswapd %mm3, %mm3
328 pswapd %mm7, %mm7 338 pswapd %mm7, %mm7
329 movq %mm3, 40(%ecx) 339 movq %mm3, 40(%ecx)
330 movq %mm7, 56(%ecx) 340 movq %mm7, 56(%ecx)
331 341
341 pfadd %mm5, %mm4 351 pfadd %mm5, %mm4
342 movq %mm0, 64(%ecx) 352 movq %mm0, 64(%ecx)
343 movq %mm4, 80(%ecx) 353 movq %mm4, 80(%ecx)
344 pfsub %mm1, %mm3 354 pfsub %mm1, %mm3
345 pfsubr %mm5, %mm7 355 pfsubr %mm5, %mm7
346 pfmul 112(%ebx), %mm3 356 pfmul %mm2, %mm3
347 pfmul 112(%ebx), %mm7 357 pfmul %mm2, %mm7
348 pswapd %mm3, %mm3 358 pswapd %mm3, %mm3
349 pswapd %mm7, %mm7 359 pswapd %mm7, %mm7
350 movq %mm3, 72(%ecx) 360 movq %mm3, 72(%ecx)
351 movq %mm7, 88(%ecx) 361 movq %mm7, 88(%ecx)
352 362
362 pfadd %mm5, %mm4 372 pfadd %mm5, %mm4
363 movq %mm0, 96(%ecx) 373 movq %mm0, 96(%ecx)
364 movq %mm4, 112(%ecx) 374 movq %mm4, 112(%ecx)
365 pfsub %mm1, %mm3 375 pfsub %mm1, %mm3
366 pfsubr %mm5, %mm7 376 pfsubr %mm5, %mm7
367 pfmul 112(%ebx), %mm3 377 pfmul %mm2, %mm3
368 pfmul 112(%ebx), %mm7 378 pfmul %mm2, %mm7
369 pswapd %mm3, %mm3 379 pswapd %mm3, %mm3
370 pswapd %mm7, %mm7 380 pswapd %mm7, %mm7
371 movq %mm3, 104(%ecx) 381 movq %mm3, 104(%ecx)
372 movq %mm7, 120(%ecx) 382 movq %mm7, 120(%ecx)
373 383
384
374 /* Phase 6. This is the end of easy road. */ 385 /* Phase 6. This is the end of easy road. */
375 /* Code below is coded in scalar mode. Should be optimized */ 386 /* Code below is coded in scalar mode. Should be optimized */
376 387
377 movd 32(%ecx), %mm0 388 movd plus_1f, %mm6
378 pfadd 36(%ecx), %mm0 389 punpckldq 120(%ebx), %mm6 /* mm6 = 1.0 | 120(%ebx)*/
379 movd %mm0, 32(%edx) 390 movq x_plus_minus_3dnow, %mm7 /* mm7 = +1 | -1 */
380 391
381 movd 32(%ecx), %mm0 392 movq 32(%ecx), %mm0
382 pfsub 36(%ecx), %mm0 393 movq 64(%ecx), %mm2
383 pfmul 120(%ebx),%mm0 394 movq %mm0, %mm1
384 movd %mm0, 36(%edx) 395 movq %mm2, %mm3
385 396 pxor %mm7, %mm1
386 movd 44(%ecx), %mm0 397 pxor %mm7, %mm3
387 pfsub 40(%ecx), %mm0 398 pfacc %mm1, %mm0
388 pfmul 120(%ebx),%mm0 399 pfacc %mm3, %mm2
389 400 pfmul %mm6, %mm0
390 movd %mm0, 44(%edx) 401 pfmul %mm6, %mm2
391 pfadd 40(%ecx), %mm0 402 movq %mm0, 32(%edx)
392 pfadd 44(%ecx), %mm0 403 movq %mm2, 64(%edx)
393 movd %mm0, 40(%edx) 404
405 movd 44(%ecx), %mm0
406 movd 40(%ecx), %mm2
407 movd 120(%ebx), %mm3
408 punpckldq 76(%ecx), %mm0
409 punpckldq 72(%ecx), %mm2
410 punpckldq %mm3, %mm3
411 movq %mm0, %mm4
412 movq %mm2, %mm5
413 pfsub %mm2, %mm0
414 pfmul %mm3, %mm0
415 movq %mm0, %mm1
416 pfadd %mm5, %mm0
417 pfadd %mm4, %mm0
418 movq %mm0, %mm2
419 punpckldq %mm1, %mm0
420 punpckhdq %mm1, %mm2
421 movq %mm0, 40(%edx)
422 movq %mm2, 72(%edx)
394 423
395 movd 48(%ecx), %mm3 424 movd 48(%ecx), %mm3
396 pfsub 52(%ecx), %mm3 425 pfsub 52(%ecx), %mm3
397 pfmul 120(%ebx), %mm3 426 pfmul 120(%ebx), %mm3
398 427
405 pfadd 60(%ecx), %mm1 434 pfadd 60(%ecx), %mm1
406 movq %mm1, %mm0 435 movq %mm1, %mm0
407 436
408 pfadd 48(%ecx), %mm0 437 pfadd 48(%ecx), %mm0
409 pfadd 52(%ecx), %mm0 438 pfadd 52(%ecx), %mm0
410 movd %mm0, 48(%edx) 439 pfadd %mm3, %mm1
411 pfadd %mm3, %mm1 440 punpckldq %mm2, %mm1
412 movd %mm1, 56(%edx) 441 pfadd %mm3, %mm2
413 movd %mm2, 60(%edx) 442 punpckldq %mm2, %mm0
414 pfadd %mm3, %mm2 443 movq %mm1, 56(%edx)
415 movd %mm2, 52(%edx) 444 movq %mm0, 48(%edx)
416 445
417 /*---*/ 446 /*---*/
418 movd 64(%ecx), %mm0 447
419 pfadd 68(%ecx), %mm0 448 movd 92(%ecx), %mm1
420 movd %mm0, 64(%edx) 449 pfsub 88(%ecx), %mm1
421 450 pfmul 120(%ebx), %mm1
422 movd 64(%ecx), %mm0 451 movd %mm1, 92(%edx)
423 pfsub 68(%ecx), %mm0 452 pfadd 92(%ecx), %mm1
424 pfmul 120(%ebx), %mm0 453 pfadd 88(%ecx), %mm1
425 movd %mm0, 68(%edx) 454 movq %mm1, %mm0
426
427 movd 76(%ecx), %mm0
428 pfsub 72(%ecx), %mm0
429 pfmul 120(%ebx), %mm0
430 movd %mm0, 76(%edx)
431 pfadd 72(%ecx), %mm0
432 pfadd 76(%ecx), %mm0
433 movd %mm0, 72(%edx)
434
435 movd 92(%ecx), %mm0
436 pfsub 88(%ecx), %mm0
437 pfmul 120(%ebx), %mm0
438 movd %mm0, 92(%edx)
439 pfadd 92(%ecx), %mm0
440 pfadd 88(%ecx), %mm0
441 movq %mm0, %mm1
442 455
443 pfadd 80(%ecx), %mm0 456 pfadd 80(%ecx), %mm0
444 pfadd 84(%ecx), %mm0 457 pfadd 84(%ecx), %mm0
445 movd %mm0, 80(%edx) 458 movd %mm0, 80(%edx)
446 459
450 pfadd %mm0, %mm1 463 pfadd %mm0, %mm1
451 pfadd 92(%edx), %mm0 464 pfadd 92(%edx), %mm0
452 movd %mm0, 84(%edx) 465 movd %mm0, 84(%edx)
453 movd %mm1, 88(%edx) 466 movd %mm1, 88(%edx)
454 467
455 movd 96(%ecx), %mm0 468 movq 96(%ecx), %mm0
456 pfadd 100(%ecx), %mm0 469 movq %mm0, %mm1
457 movd %mm0, 96(%edx) 470 pxor %mm7, %mm1
458 471 pfacc %mm1, %mm0
459 movd 96(%ecx), %mm0 472 pfmul %mm6, %mm0
460 pfsub 100(%ecx), %mm0 473 movq %mm0, 96(%edx)
461 pfmul 120(%ebx), %mm0
462 movd %mm0, 100(%edx)
463 474
464 movd 108(%ecx), %mm0 475 movd 108(%ecx), %mm0
465 pfsub 104(%ecx), %mm0 476 pfsub 104(%ecx), %mm0
466 pfmul 120(%ebx), %mm0 477 pfmul 120(%ebx), %mm0
467 movd %mm0, 108(%edx) 478 movd %mm0, 108(%edx)
468 pfadd 104(%ecx), %mm0 479 pfadd 104(%ecx), %mm0
469 pfadd 108(%ecx), %mm0 480 pfadd 108(%ecx), %mm0
470 movd %mm0, 104(%edx) 481 movd %mm0, 104(%edx)
471 482
472 movd 124(%ecx), %mm0 483 movd 124(%ecx), %mm1
473 pfsub 120(%ecx), %mm0 484 pfsub 120(%ecx), %mm1
474 pfmul 120(%ebx), %mm0 485 pfmul 120(%ebx), %mm1
475 movd %mm0, 124(%edx) 486 movd %mm1, 124(%edx)
476 pfadd 120(%ecx), %mm0 487 pfadd 120(%ecx), %mm1
477 pfadd 124(%ecx), %mm0 488 pfadd 124(%ecx), %mm1
478 movq %mm0, %mm1 489 movq %mm1, %mm0
479 490
480 pfadd 112(%ecx), %mm0 491 pfadd 112(%ecx), %mm0
481 pfadd 116(%ecx), %mm0 492 pfadd 116(%ecx), %mm0
482 movd %mm0, 112(%edx) 493 movd %mm0, 112(%edx)
483 494
609 movd %mm0, 832(%edi) 620 movd %mm0, 832(%edi)
610 621
611 jmp .L_bye 622 jmp .L_bye
612 .L01: 623 .L01:
613 /* Phase 9*/ 624 /* Phase 9*/
614 movd (%ecx), %mm0 625
615 pfadd 4(%ecx), %mm0 626 movq (%ecx), %mm0
616 pf2id %mm0, %mm0 627 movq %mm0, %mm1
617 movd %mm0, %eax 628 pxor %mm7, %mm1
618 movw %ax, 512(%esi) 629 pfacc %mm1, %mm0
619 630 pfmul %mm6, %mm0
620 movd (%ecx), %mm0 631 pf2id %mm0, %mm0
621 pfsub 4(%ecx), %mm0 632 movd %mm0, %eax
622 pfmul 120(%ebx), %mm0 633 movw %ax, 512(%esi)
623 pf2id %mm0, %mm0 634 psrlq $32, %mm0
624 movd %mm0, %eax 635 movd %mm0, %eax
625 movw %ax, (%esi) 636 movw %ax, (%esi)
626 637
627 movd 12(%ecx), %mm0 638 movd 12(%ecx), %mm0
628 pfsub 8(%ecx), %mm0 639 pfsub 8(%ecx), %mm0
629 pfmul 120(%ebx), %mm0 640 pfmul 120(%ebx), %mm0
630 pf2id %mm0, %mm7 641 pf2id %mm0, %mm7
634 pfadd 8(%ecx), %mm0 645 pfadd 8(%ecx), %mm0
635 pf2id %mm0, %mm0 646 pf2id %mm0, %mm0
636 movd %mm0, %eax 647 movd %mm0, %eax
637 movw %ax, 256(%esi) 648 movw %ax, 256(%esi)
638 649
639 movd 16(%ecx), %mm0 650 movd 16(%ecx), %mm3
640 pfsub 20(%ecx), %mm0 651 pfsub 20(%ecx), %mm3
641 pfmul 120(%ebx), %mm0 652 pfmul 120(%ebx), %mm3
642 movq %mm0, %mm3 653 movq %mm3, %mm2
643 654
644 movd 28(%ecx), %mm0 655 movd 28(%ecx), %mm2
645 pfsub 24(%ecx), %mm0 656 pfsub 24(%ecx), %mm2
646 pfmul 120(%ebx), %mm0 657 pfmul 120(%ebx), %mm2
647 pf2id %mm0, %mm7 658 movq %mm2, %mm1
659
660 pf2id %mm2, %mm7
648 movd %mm7, %eax 661 movd %mm7, %eax
649 movw %ax, 384(%edi) 662 movw %ax, 384(%edi)
650 movq %mm0, %mm2 663
651 664 pfadd 24(%ecx), %mm1
652 pfadd 24(%ecx), %mm0 665 pfadd 28(%ecx), %mm1
653 pfadd 28(%ecx), %mm0 666 movq %mm1, %mm0
654 movq %mm0, %mm1 667
655 pfadd 16(%ecx), %mm0 668 pfadd 16(%ecx), %mm0
656 pfadd 20(%ecx), %mm0 669 pfadd 20(%ecx), %mm0
657 pf2id %mm0, %mm0 670 pf2id %mm0, %mm0
658 movd %mm0, %eax 671 movd %mm0, %eax
659 movw %ax, 384(%esi) 672 movw %ax, 384(%esi)
663 movw %ax, 128(%esi) 676 movw %ax, 128(%esi)
664 pfadd %mm3, %mm2 677 pfadd %mm3, %mm2
665 pf2id %mm2, %mm2 678 pf2id %mm2, %mm2
666 movd %mm2, %eax 679 movd %mm2, %eax
667 movw %ax, 128(%edi) 680 movw %ax, 128(%edi)
668
669 681
670 /* Phase 10*/ 682 /* Phase 10*/
671 683
672 movq 32(%edx), %mm0 684 movq 32(%edx), %mm0
673 movq 48(%edx), %mm1 685 movq 48(%edx), %mm1
684 movd %mm0, %eax 696 movd %mm0, %eax
685 movd %mm1, %ecx 697 movd %mm1, %ecx
686 movw %ax, 64(%edi) 698 movw %ax, 64(%edi)
687 movw %cx, 192(%edi) 699 movw %cx, 192(%edi)
688 700
689 movd 40(%edx), %mm0 701 movd 40(%edx), %mm3
690 pfadd 56(%edx), %mm0 702 movd 56(%edx), %mm4
703 movd 60(%edx), %mm0
704 movd 44(%edx), %mm2
705 movd 120(%edx), %mm5
706 punpckldq %mm4, %mm3
707 punpckldq 124(%edx), %mm0
708 pfadd 100(%edx), %mm5
709 punpckldq 36(%edx), %mm4
710 punpckldq 92(%edx), %mm2
711 movq %mm5, %mm6
712 pfadd %mm4, %mm3
713 pf2id %mm0, %mm1
714 pf2id %mm3, %mm3
715 pfadd 88(%edx), %mm5
716 movd %mm1, %eax
717 movd %mm3, %ecx
718 movw %ax, 448(%edi)
719 movw %cx, 192(%esi)
720 pf2id %mm5, %mm5
721 psrlq $32, %mm1
722 psrlq $32, %mm3
723 movd %mm5, %ebx
724 movd %mm1, %eax
725 movd %mm3, %ecx
726 movw %bx, 96(%esi)
727 movw %ax, 480(%edi)
728 movw %cx, 64(%esi)
729 pfadd %mm2, %mm0
691 pf2id %mm0, %mm0 730 pf2id %mm0, %mm0
692 movd %mm0, %eax 731 movd %mm0, %eax
693 movw %ax, 192(%esi) 732 pfadd 68(%edx), %mm6
694 733 movw %ax, 320(%edi)
695 movd 56(%edx), %mm0 734 psrlq $32, %mm0
696 pfadd 36(%edx), %mm0 735 pf2id %mm6, %mm6
697 pf2id %mm0, %mm0
698 movd %mm0, %eax 736 movd %mm0, %eax
699 movw %ax, 64(%esi) 737 movd %mm6, %ebx
700 738 movw %ax, 416(%edi)
701 movd 60(%edx), %mm0 739 movw %bx, 32(%esi)
702 pf2id %mm0, %mm7
703 movd %mm7, %eax
704 movw %ax, 448(%edi)
705 pfadd 44(%edx), %mm0
706 pf2id %mm0, %mm0
707 movd %mm0, %eax
708 movw %ax, 320(%edi)
709 740
710 movq 96(%edx), %mm0 741 movq 96(%edx), %mm0
711 movq 112(%edx), %mm2 742 movq 112(%edx), %mm2
712 movq 104(%edx), %mm4 743 movq 104(%edx), %mm4
713 pfadd 112(%edx), %mm0 744 pfadd %mm2, %mm0
714 pfadd 104(%edx), %mm2 745 pfadd %mm4, %mm2
715 pfadd 120(%edx), %mm4 746 pfadd 120(%edx), %mm4
716 movq %mm0, %mm1 747 movq %mm0, %mm1
717 movq %mm2, %mm3 748 movq %mm2, %mm3
718 movq %mm4, %mm5 749 movq %mm4, %mm5
719 pfadd 64(%edx), %mm0 750 pfadd 64(%edx), %mm0
720 pfadd 80(%edx), %mm2 751 pfadd 80(%edx), %mm2
721 pfadd 72(%edx), %mm4 752 pfadd 72(%edx), %mm4
722 pf2id %mm0, %mm7 753 pf2id %mm0, %mm0
723 pf2id %mm2, %mm6 754 pf2id %mm2, %mm2
724 pf2id %mm4, %mm4 755 pf2id %mm4, %mm4
725 movd %mm7, %eax 756 movd %mm0, %eax
726 movd %mm6, %ecx 757 movd %mm2, %ecx
727 movd %mm4, %ebx 758 movd %mm4, %ebx
728 movw %ax, 480(%esi) 759 movw %ax, 480(%esi)
729 movw %cx, 352(%esi) 760 movw %cx, 352(%esi)
730 movw %bx, 224(%esi) 761 movw %bx, 224(%esi)
731 psrlq $32, %mm7 762 psrlq $32, %mm0
732 psrlq $32, %mm6 763 psrlq $32, %mm2
733 psrlq $32, %mm4 764 psrlq $32, %mm4
734 movd %mm7, %eax 765 movd %mm0, %eax
735 movd %mm6, %ecx 766 movd %mm2, %ecx
736 movd %mm4, %ebx 767 movd %mm4, %ebx
737 movw %ax, 32(%edi) 768 movw %ax, 32(%edi)
738 movw %cx, 160(%edi) 769 movw %cx, 160(%edi)
739 movw %bx, 288(%edi) 770 movw %bx, 288(%edi)
740 pfadd 80(%edx), %mm1 771 pfadd 80(%edx), %mm1
757 movd %mm5, %ebx 788 movd %mm5, %ebx
758 movw %ax, 96(%edi) 789 movw %ax, 96(%edi)
759 movw %cx, 224(%edi) 790 movw %cx, 224(%edi)
760 movw %bx, 352(%edi) 791 movw %bx, 352(%edi)
761 792
762 movd 120(%edx), %mm0
763 pfadd 100(%edx), %mm0
764 movq %mm0, %mm1
765 pfadd 88(%edx), %mm0
766 pf2id %mm0, %mm0
767 movd %mm0, %eax
768 movw %ax, 96(%esi)
769 pfadd 68(%edx), %mm1
770 pf2id %mm1, %mm1
771 movd %mm1, %eax
772 movw %ax, 32(%esi)
773
774 movq 124(%edx), %mm0
775 pf2id %mm0, %mm1
776 movd %mm1, %eax
777 movw %ax, 480(%edi)
778 pfadd 92(%edx), %mm0
779 pf2id %mm0, %mm0
780 movd %mm0, %eax
781 movw %ax, 416(%edi)
782
783 movsw 793 movsw
784 794
785 .L_bye: 795 .L_bye:
786 addl $256,%esp 796 addl $256,%esp
787 femms 797 femms
788 popl %edi 798 popl %edi
789 popl %esi 799 popl %esi
790 popl %ebx 800 popl %ebx
791 ret 801 ret $12
792
793