--- mplayer/mp3lib/dct64_3dnow.c 2006-06-07 12:53:34.000000000 +0800 +++ mplayer.new/mp3lib/dct64_3dnow.c 2006-06-21 21:18:24.000000000 +0800 @@ -746,21 +746,23 @@ " pfacc %%mm1, %%mm0\n\t" " pfmul %%mm6, %%mm0\n\t" " pf2id %%mm0, %%mm0\n\t" +" packssdw %%mm0, %%mm0\n\t" " movd %%mm0, %%eax\n\t" " movw %%ax, 512(%%esi)\n\t" -" psrlq $32, %%mm0\n\t" -" movd %%mm0, %%eax\n\t" +" shrl $16, %%eax\n\t" " movw %%ax, (%%esi)\n\t" " movd 12(%%ecx), %%mm0\n\t" " pfsub 8(%%ecx), %%mm0\n\t" " pfmul 120(%%ebx), %%mm0\n\t" " pf2id %%mm0, %%mm7\n\t" +" packssdw %%mm7, %%mm7\n\t" " movd %%mm7, %%eax\n\t" " movw %%ax, 256(%%edi)\n\t" " pfadd 12(%%ecx), %%mm0\n\t" " pfadd 8(%%ecx), %%mm0\n\t" " pf2id %%mm0, %%mm0\n\t" +" packssdw %%mm0, %%mm0\n\t" " movd %%mm0, %%eax\n\t" " movw %%ax, 256(%%esi)\n\t" @@ -775,6 +777,7 @@ " movq %%mm2, %%mm1\n\t" " pf2id %%mm2, %%mm7\n\t" +" packssdw %%mm7, %%mm7\n\t" " movd %%mm7, %%eax\n\t" " movw %%ax, 384(%%edi)\n\t" @@ -785,14 +788,17 @@ " pfadd 16(%%ecx), %%mm0\n\t" " pfadd 20(%%ecx), %%mm0\n\t" " pf2id %%mm0, %%mm0\n\t" +" packssdw %%mm0, %%mm0\n\t" " movd %%mm0, %%eax\n\t" " movw %%ax, 384(%%esi)\n\t" " pfadd %%mm3, %%mm1\n\t" " pf2id %%mm1, %%mm1\n\t" +" packssdw %%mm1, %%mm1\n\t" " movd %%mm1, %%eax\n\t" " movw %%ax, 128(%%esi)\n\t" " pfadd %%mm3, %%mm2\n\t" " pf2id %%mm2, %%mm2\n\t" +" packssdw %%mm2, %%mm2\n\t" " movd %%mm2, %%eax\n\t" " movw %%ax, 128(%%edi)\n\t" @@ -804,14 +810,14 @@ " pfadd 40(%%edx), %%mm1\n\t" " pf2id %%mm0, %%mm0\n\t" " pf2id %%mm1, %%mm1\n\t" +" packssdw %%mm0, %%mm0\n\t" +" packssdw %%mm1, %%mm1\n\t" " movd %%mm0, %%eax\n\t" " movd %%mm1, %%ecx\n\t" " movw %%ax, 448(%%esi)\n\t" " movw %%cx, 320(%%esi)\n\t" -" psrlq $32, %%mm0\n\t" -" psrlq $32, %%mm1\n\t" -" movd %%mm0, %%eax\n\t" -" movd %%mm1, %%ecx\n\t" +" shrl $16, %%eax\n\t" +" shrl $16, %%ecx\n\t" " movw %%ax, 64(%%edi)\n\t" " movw %%cx, 192(%%edi)\n\t" @@ -829,28 +835,30 @@ " pfadd %%mm4, %%mm3\n\t" " pf2id %%mm0, %%mm1\n\t" " pf2id %%mm3, %%mm3\n\t" +" packssdw %%mm0, %%mm0\n\t" +" packssdw %%mm3, %%mm3\n\t" " pfadd 88(%%edx), %%mm5\n\t" " movd %%mm1, %%eax\n\t" " movd %%mm3, %%ecx\n\t" " movw %%ax, 448(%%edi)\n\t" " movw %%cx, 192(%%esi)\n\t" " pf2id %%mm5, %%mm5\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm3\n\t" +" packssdw %%mm5, %%mm5\n\t" +" shrl $16, %%eax\n\t" +" shrl $16, %%ecx\n\t" " movd %%mm5, %%ebx\n\t" -" movd %%mm1, %%eax\n\t" -" movd %%mm3, %%ecx\n\t" " movw %%bx, 96(%%esi)\n\t" " movw %%ax, 480(%%edi)\n\t" " movw %%cx, 64(%%esi)\n\t" " pfadd %%mm2, %%mm0\n\t" " pf2id %%mm0, %%mm0\n\t" +" packssdw %%mm0, %%mm0\n\t" " movd %%mm0, %%eax\n\t" " pfadd 68(%%edx), %%mm6\n\t" " movw %%ax, 320(%%edi)\n\t" -" psrlq $32, %%mm0\n\t" +" shr $16, %%eax\n\t" " pf2id %%mm6, %%mm6\n\t" -" movd %%mm0, %%eax\n\t" +" packssdw %%mm6, %%mm6\n\t" " movd %%mm6, %%ebx\n\t" " movw %%ax, 416(%%edi)\n\t" " movw %%bx, 32(%%esi)\n\t" @@ -870,18 +878,18 @@ " pf2id %%mm0, %%mm0\n\t" " pf2id %%mm2, %%mm2\n\t" " pf2id %%mm4, %%mm4\n\t" +" packssdw %%mm0, %%mm0\n\t" +" packssdw %%mm2, %%mm2\n\t" +" packssdw %%mm4, %%mm4\n\t" " movd %%mm0, %%eax\n\t" " movd %%mm2, %%ecx\n\t" " movd %%mm4, %%ebx\n\t" " movw %%ax, 480(%%esi)\n\t" " movw %%cx, 352(%%esi)\n\t" " movw %%bx, 224(%%esi)\n\t" -" psrlq $32, %%mm0\n\t" -" psrlq $32, %%mm2\n\t" -" psrlq $32, %%mm4\n\t" -" movd %%mm0, %%eax\n\t" -" movd %%mm2, %%ecx\n\t" -" movd %%mm4, %%ebx\n\t" +" shrl $16, %%eax\n\t" +" shrl $16, %%ecx\n\t" +" shrl $16, %%ebx\n\t" " movw %%ax, 32(%%edi)\n\t" " movw %%cx, 160(%%edi)\n\t" " movw %%bx, 288(%%edi)\n\t" @@ -891,15 +899,18 @@ " pf2id %%mm1, %%mm1\n\t" " pf2id %%mm3, %%mm3\n\t" " pf2id %%mm5, %%mm5\n\t" +" packssdw %%mm1, %%mm1\n\t" +" packssdw %%mm3, %%mm3\n\t" +" packssdw %%mm5, %%mm5\n\t" " movd %%mm1, %%eax\n\t" " movd %%mm3, %%ecx\n\t" " movd %%mm5, %%ebx\n\t" " movw %%ax, 416(%%esi)\n\t" " movw %%cx, 288(%%esi)\n\t" " movw %%bx, 160(%%esi)\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm5\n\t" +" shrl $16, %%eax\n\t" +" shrl $16, %%ecx\n\t" +" shrl $16, %%ebx\n\t" " movd %%mm1, %%eax\n\t" " movd %%mm3, %%ecx\n\t" " movd %%mm5, %%ebx\n\t" --- mplayer/mp3lib/dct64_k7.c 2006-06-07 12:53:34.000000000 +0800 +++ mplayer.new/mp3lib/dct64_k7.c 2006-06-21 20:39:34.000000000 +0800 @@ -32,8 +32,8 @@ " movq 8(%%eax), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 120(%%eax), %%mm1\n\t" -" pshufw $78, 112(%%eax), %%mm5\n\t" +" pswapd 120(%%eax), %%mm1\n\t" +" pswapd 112(%%eax), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, (%%edx)\n\t" @@ -51,8 +51,8 @@ " movq 24(%%eax), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 104(%%eax), %%mm1\n\t" -" pshufw $78, 96(%%eax), %%mm5\n\t" +" pswapd 104(%%eax), %%mm1\n\t" +" pswapd 96(%%eax), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 16(%%edx)\n\t" @@ -70,8 +70,8 @@ " movq 40(%%eax), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 88(%%eax), %%mm1\n\t" -" pshufw $78, 80(%%eax), %%mm5\n\t" +" pswapd 88(%%eax), %%mm1\n\t" +" pswapd 80(%%eax), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 32(%%edx)\n\t" @@ -89,8 +89,8 @@ " movq 56(%%eax), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 72(%%eax), %%mm1\n\t" -" pshufw $78, 64(%%eax), %%mm5\n\t" +" pswapd 72(%%eax), %%mm1\n\t" +" pswapd 64(%%eax), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 48(%%edx)\n\t" @@ -110,8 +110,8 @@ " movq 8(%%edx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 56(%%edx), %%mm1\n\t" -" pshufw $78, 48(%%edx), %%mm5\n\t" +" pswapd 56(%%edx), %%mm1\n\t" +" pswapd 48(%%edx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, (%%ecx)\n\t" @@ -129,8 +129,8 @@ " movq 24(%%edx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 40(%%edx), %%mm1\n\t" -" pshufw $78, 32(%%edx), %%mm5\n\t" +" pswapd 40(%%edx), %%mm1\n\t" +" pswapd 32(%%edx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 16(%%ecx)\n\t" @@ -150,8 +150,8 @@ " movq 72(%%edx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 120(%%edx), %%mm1\n\t" -" pshufw $78, 112(%%edx), %%mm5\n\t" +" pswapd 120(%%edx), %%mm1\n\t" +" pswapd 112(%%edx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 64(%%ecx)\n\t" @@ -169,8 +169,8 @@ " movq 88(%%edx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 104(%%edx), %%mm1\n\t" -" pshufw $78, 96(%%edx), %%mm5\n\t" +" pswapd 104(%%edx), %%mm1\n\t" +" pswapd 96(%%edx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 80(%%ecx)\n\t" @@ -193,8 +193,8 @@ " movq 8(%%ecx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 24(%%ecx), %%mm1\n\t" -" pshufw $78, 16(%%ecx), %%mm5\n\t" +" pswapd 24(%%ecx), %%mm1\n\t" +" pswapd 16(%%ecx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, (%%edx)\n\t" @@ -212,8 +212,8 @@ " movq 40(%%ecx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 56(%%ecx), %%mm1\n\t" -" pshufw $78, 48(%%ecx), %%mm5\n\t" +" pswapd 56(%%ecx), %%mm1\n\t" +" pswapd 48(%%ecx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 32(%%edx)\n\t" @@ -231,8 +231,8 @@ " movq 72(%%ecx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 88(%%ecx), %%mm1\n\t" -" pshufw $78, 80(%%ecx), %%mm5\n\t" +" pswapd 88(%%ecx), %%mm1\n\t" +" pswapd 80(%%ecx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 64(%%edx)\n\t" @@ -250,8 +250,8 @@ " movq 104(%%ecx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 120(%%ecx), %%mm1\n\t" -" pshufw $78, 112(%%ecx), %%mm5\n\t" +" pswapd 120(%%ecx), %%mm1\n\t" +" pswapd 112(%%ecx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 96(%%edx)\n\t" @@ -273,8 +273,8 @@ " movq 16(%%edx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 8(%%edx), %%mm1\n\t" -" pshufw $78, 24(%%edx), %%mm5\n\t" +" pswapd 8(%%edx), %%mm1\n\t" +" pswapd 24(%%edx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, (%%ecx)\n\t" @@ -292,8 +292,8 @@ " movq 48(%%edx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 40(%%edx), %%mm1\n\t" -" pshufw $78, 56(%%edx), %%mm5\n\t" +" pswapd 40(%%edx), %%mm1\n\t" +" pswapd 56(%%edx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 32(%%ecx)\n\t" @@ -311,8 +311,8 @@ " movq 80(%%edx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 72(%%edx), %%mm1\n\t" -" pshufw $78, 88(%%edx), %%mm5\n\t" +" pswapd 72(%%edx), %%mm1\n\t" +" pswapd 88(%%edx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 64(%%ecx)\n\t" @@ -330,8 +330,8 @@ " movq 112(%%edx), %%mm4\n\t" " movq %%mm0, %%mm3\n\t" " movq %%mm4, %%mm7\n\t" -" pshufw $78, 104(%%edx), %%mm1\n\t" -" pshufw $78, 120(%%edx), %%mm5\n\t" +" pswapd 104(%%edx), %%mm1\n\t" +" pswapd 120(%%edx), %%mm5\n\t" " pfadd %%mm1, %%mm0\n\t" " pfadd %%mm5, %%mm4\n\t" " movq %%mm0, 96(%%ecx)\n\t" @@ -591,7 +591,7 @@ " pxor %%mm7, %%mm1\n\t" " pfacc %%mm1, %%mm0\n\t" " pfmul %%mm6, %%mm0\n\t" -" pf2id %%mm0, %%mm0\n\t" +" pf2iw %%mm0, %%mm0\n\t" " movd %%mm0, %%eax\n\t" " movw %%ax, 512(%%esi)\n\t" " psrlq $32, %%mm0\n\t" @@ -601,12 +601,12 @@ " movd 12(%%ecx), %%mm0\n\t" " pfsub 8(%%ecx), %%mm0\n\t" " pfmul 120(%%ebx), %%mm0\n\t" -" pf2id %%mm0, %%mm7\n\t" +" pf2iw %%mm0, %%mm7\n\t" " movd %%mm7, %%eax\n\t" " movw %%ax, 256(%%edi)\n\t" " pfadd 12(%%ecx), %%mm0\n\t" " pfadd 8(%%ecx), %%mm0\n\t" -" pf2id %%mm0, %%mm0\n\t" +" pf2iw %%mm0, %%mm0\n\t" " movd %%mm0, %%eax\n\t" " movw %%ax, 256(%%esi)\n\t" @@ -620,7 +620,7 @@ " pfmul 120(%%ebx), %%mm2\n\t" " movq %%mm2, %%mm1\n\t" -" pf2id %%mm2, %%mm7\n\t" +" pf2iw %%mm2, %%mm7\n\t" " movd %%mm7, %%eax\n\t" " movw %%ax, 384(%%edi)\n\t" @@ -630,15 +630,15 @@ " pfadd 16(%%ecx), %%mm0\n\t" " pfadd 20(%%ecx), %%mm0\n\t" -" pf2id %%mm0, %%mm0\n\t" +" pf2iw %%mm0, %%mm0\n\t" " movd %%mm0, %%eax\n\t" " movw %%ax, 384(%%esi)\n\t" " pfadd %%mm3, %%mm1\n\t" -" pf2id %%mm1, %%mm1\n\t" +" pf2iw %%mm1, %%mm1\n\t" " movd %%mm1, %%eax\n\t" " movw %%ax, 128(%%esi)\n\t" " pfadd %%mm3, %%mm2\n\t" -" pf2id %%mm2, %%mm2\n\t" +" pf2iw %%mm2, %%mm2\n\t" " movd %%mm2, %%eax\n\t" " movw %%ax, 128(%%edi)\n\t" @@ -648,8 +648,8 @@ " movq 48(%%edx), %%mm1\n\t" " pfadd 48(%%edx), %%mm0\n\t" " pfadd 40(%%edx), %%mm1\n\t" -" pf2id %%mm0, %%mm0\n\t" -" pf2id %%mm1, %%mm1\n\t" +" pf2iw %%mm0, %%mm0\n\t" +" pf2iw %%mm1, %%mm1\n\t" " movd %%mm0, %%eax\n\t" " movd %%mm1, %%ecx\n\t" " movw %%ax, 448(%%esi)\n\t" @@ -673,14 +673,14 @@ " punpckldq 92(%%edx), %%mm2\n\t" " movq %%mm5, %%mm6\n\t" " pfadd %%mm4, %%mm3\n\t" -" pf2id %%mm0, %%mm1\n\t" -" pf2id %%mm3, %%mm3\n\t" +" pf2iw %%mm0, %%mm1\n\t" +" pf2iw %%mm3, %%mm3\n\t" " pfadd 88(%%edx), %%mm5\n\t" " movd %%mm1, %%eax\n\t" " movd %%mm3, %%ecx\n\t" " movw %%ax, 448(%%edi)\n\t" " movw %%cx, 192(%%esi)\n\t" -" pf2id %%mm5, %%mm5\n\t" +" pf2iw %%mm5, %%mm5\n\t" " psrlq $32, %%mm1\n\t" " psrlq $32, %%mm3\n\t" " movd %%mm5, %%ebx\n\t" @@ -690,12 +690,12 @@ " movw %%ax, 480(%%edi)\n\t" " movw %%cx, 64(%%esi)\n\t" " pfadd %%mm2, %%mm0\n\t" -" pf2id %%mm0, %%mm0\n\t" +" pf2iw %%mm0, %%mm0\n\t" " movd %%mm0, %%eax\n\t" " pfadd 68(%%edx), %%mm6\n\t" " movw %%ax, 320(%%edi)\n\t" " psrlq $32, %%mm0\n\t" -" pf2id %%mm6, %%mm6\n\t" +" pf2iw %%mm6, %%mm6\n\t" " movd %%mm0, %%eax\n\t" " movd %%mm6, %%ebx\n\t" " movw %%ax, 416(%%edi)\n\t" @@ -713,9 +713,9 @@ " pfadd 64(%%edx), %%mm0\n\t" " pfadd 80(%%edx), %%mm2\n\t" " pfadd 72(%%edx), %%mm4\n\t" -" pf2id %%mm0, %%mm0\n\t" -" pf2id %%mm2, %%mm2\n\t" -" pf2id %%mm4, %%mm4\n\t" +" pf2iw %%mm0, %%mm0\n\t" +" pf2iw %%mm2, %%mm2\n\t" +" pf2iw %%mm4, %%mm4\n\t" " movd %%mm0, %%eax\n\t" " movd %%mm2, %%ecx\n\t" " movd %%mm4, %%ebx\n\t" @@ -734,9 +734,9 @@ " pfadd 80(%%edx), %%mm1\n\t" " pfadd 72(%%edx), %%mm3\n\t" " pfadd 88(%%edx), %%mm5\n\t" -" pf2id %%mm1, %%mm1\n\t" -" pf2id %%mm3, %%mm3\n\t" -" pf2id %%mm5, %%mm5\n\t" +" pf2iw %%mm1, %%mm1\n\t" +" pf2iw %%mm3, %%mm3\n\t" +" pf2iw %%mm5, %%mm5\n\t" " movd %%mm1, %%eax\n\t" " movd %%mm3, %%ecx\n\t" " movd %%mm5, %%ebx\n\t"