Mercurial > mplayer.hg
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 |