Mercurial > mplayer.hg
diff mp3lib/decode_MMX.c @ 23360:57a99b0631b2
Remove hardcoded registers
author | zuxy |
---|---|
date | Wed, 23 May 2007 15:31:37 +0000 |
parents | ccb70d86d797 |
children | 84eaacdc380d |
line wrap: on
line diff
--- a/mp3lib/decode_MMX.c Tue May 22 20:08:13 2007 +0000 +++ b/mp3lib/decode_MMX.c Wed May 23 15:31:37 2007 +0000 @@ -84,22 +84,22 @@ __asm __volatile( ASMALIGN(4) ".L03:\n\t" - "movq (%%edx),%%mm0\n\t" - "movq 64(%%edx),%%mm4\n\t" - "pmaddwd (%%esi),%%mm0\n\t" - "pmaddwd 32(%%esi),%%mm4\n\t" - "movq 8(%%edx),%%mm1\n\t" - "movq 72(%%edx),%%mm5\n\t" - "pmaddwd 8(%%esi),%%mm1\n\t" - "pmaddwd 40(%%esi),%%mm5\n\t" - "movq 16(%%edx),%%mm2\n\t" - "movq 80(%%edx),%%mm6\n\t" - "pmaddwd 16(%%esi),%%mm2\n\t" - "pmaddwd 48(%%esi),%%mm6\n\t" - "movq 24(%%edx),%%mm3\n\t" - "movq 88(%%edx),%%mm7\n\t" - "pmaddwd 24(%%esi),%%mm3\n\t" - "pmaddwd 56(%%esi),%%mm7\n\t" + "movq (%1),%%mm0\n\t" + "movq 64(%1),%%mm4\n\t" + "pmaddwd (%2),%%mm0\n\t" + "pmaddwd 32(%2),%%mm4\n\t" + "movq 8(%1),%%mm1\n\t" + "movq 72(%1),%%mm5\n\t" + "pmaddwd 8(%2),%%mm1\n\t" + "pmaddwd 40(%2),%%mm5\n\t" + "movq 16(%1),%%mm2\n\t" + "movq 80(%1),%%mm6\n\t" + "pmaddwd 16(%2),%%mm2\n\t" + "pmaddwd 48(%2),%%mm6\n\t" + "movq 24(%1),%%mm3\n\t" + "movq 88(%1),%%mm7\n\t" + "pmaddwd 24(%2),%%mm3\n\t" + "pmaddwd 56(%2),%%mm7\n\t" "paddd %%mm1,%%mm0\n\t" "paddd %%mm5,%%mm4\n\t" "paddd %%mm2,%%mm0\n\t" @@ -117,28 +117,28 @@ "packssdw %%mm0,%%mm0\n\t" "packssdw %%mm4,%%mm4\n\t" - "movq (%%edi), %%mm1\n\t" + "movq (%3), %%mm1\n\t" "punpckldq %%mm4, %%mm0\n\t" "pand "MANGLE(one_null)", %%mm1\n\t" "pand "MANGLE(null_one)", %%mm0\n\t" "por %%mm0, %%mm1\n\t" - "movq %%mm1,(%%edi)\n\t" + "movq %%mm1,(%3)\n\t" - "add $64,%%esi\n\t" - "add $128,%%edx\n\t" - "add $8,%%edi\n\t" + "add $64,%2\n\t" + "add $128,%1\n\t" + "add $8,%3\n\t" - "decl %%ecx\n\t" + "decl %0\n\t" "jnz .L03\n\t" - "movq (%%edx),%%mm0\n\t" - "pmaddwd (%%esi),%%mm0\n\t" - "movq 8(%%edx),%%mm1\n\t" - "pmaddwd 8(%%esi),%%mm1\n\t" - "movq 16(%%edx),%%mm2\n\t" - "pmaddwd 16(%%esi),%%mm2\n\t" - "movq 24(%%edx),%%mm3\n\t" - "pmaddwd 24(%%esi),%%mm3\n\t" + "movq (%1),%%mm0\n\t" + "pmaddwd (%2),%%mm0\n\t" + "movq 8(%1),%%mm1\n\t" + "pmaddwd 8(%2),%%mm1\n\t" + "movq 16(%1),%%mm2\n\t" + "pmaddwd 16(%2),%%mm2\n\t" + "movq 24(%1),%%mm3\n\t" + "pmaddwd 24(%2),%%mm3\n\t" "paddd %%mm1,%%mm0\n\t" "paddd %%mm2,%%mm0\n\t" "paddd %%mm3,%%mm0\n\t" @@ -148,30 +148,30 @@ "psrad $13,%%mm0\n\t" "packssdw %%mm0,%%mm0\n\t" "movd %%mm0,%%eax\n\t" - "movw %%ax, (%%edi)\n\t" - "sub $32,%%esi\n\t" - "add $64,%%edx\n\t" - "add $4,%%edi\n\t" + "movw %%ax, (%3)\n\t" + "sub $32,%2\n\t" + "add $64,%1\n\t" + "add $4,%3\n\t" - "movl $7,%%ecx\n\t" + "movl $7,%0\n\t" ASMALIGN(4) ".L04:\n\t" - "movq (%%edx),%%mm0\n\t" - "movq 64(%%edx),%%mm4\n\t" - "pmaddwd (%%esi),%%mm0\n\t" - "pmaddwd -32(%%esi),%%mm4\n\t" - "movq 8(%%edx),%%mm1\n\t" - "movq 72(%%edx),%%mm5\n\t" - "pmaddwd 8(%%esi),%%mm1\n\t" - "pmaddwd -24(%%esi),%%mm5\n\t" - "movq 16(%%edx),%%mm2\n\t" - "movq 80(%%edx),%%mm6\n\t" - "pmaddwd 16(%%esi),%%mm2\n\t" - "pmaddwd -16(%%esi),%%mm6\n\t" - "movq 24(%%edx),%%mm3\n\t" - "movq 88(%%edx),%%mm7\n\t" - "pmaddwd 24(%%esi),%%mm3\n\t" - "pmaddwd -8(%%esi),%%mm7\n\t" + "movq (%1),%%mm0\n\t" + "movq 64(%1),%%mm4\n\t" + "pmaddwd (%2),%%mm0\n\t" + "pmaddwd -32(%2),%%mm4\n\t" + "movq 8(%1),%%mm1\n\t" + "movq 72(%1),%%mm5\n\t" + "pmaddwd 8(%2),%%mm1\n\t" + "pmaddwd -24(%2),%%mm5\n\t" + "movq 16(%1),%%mm2\n\t" + "movq 80(%1),%%mm6\n\t" + "pmaddwd 16(%2),%%mm2\n\t" + "pmaddwd -16(%2),%%mm6\n\t" + "movq 24(%1),%%mm3\n\t" + "movq 88(%1),%%mm7\n\t" + "pmaddwd 24(%2),%%mm3\n\t" + "pmaddwd -8(%2),%%mm7\n\t" "paddd %%mm1,%%mm0\n\t" "paddd %%mm5,%%mm4\n\t" "paddd %%mm2,%%mm0\n\t" @@ -193,27 +193,27 @@ "psubsw %%mm1,%%mm0\n\t" "psubsw %%mm5,%%mm4\n\t" - "movq (%%edi), %%mm1\n\t" + "movq (%3), %%mm1\n\t" "punpckldq %%mm4, %%mm0\n\t" "pand "MANGLE(one_null)", %%mm1\n\t" "pand "MANGLE(null_one)", %%mm0\n\t" "por %%mm0, %%mm1\n\t" - "movq %%mm1,(%%edi)\n\t" + "movq %%mm1,(%3)\n\t" - "sub $64,%%esi\n\t" - "add $128,%%edx\n\t" - "add $8,%%edi\n\t" - "decl %%ecx\n\t" + "sub $64,%2\n\t" + "add $128,%1\n\t" + "add $8,%3\n\t" + "decl %0\n\t" "jnz .L04\n\t" - "movq (%%edx),%%mm0\n\t" - "pmaddwd (%%esi),%%mm0\n\t" - "movq 8(%%edx),%%mm1\n\t" - "pmaddwd 8(%%esi),%%mm1\n\t" - "movq 16(%%edx),%%mm2\n\t" - "pmaddwd 16(%%esi),%%mm2\n\t" - "movq 24(%%edx),%%mm3\n\t" - "pmaddwd 24(%%esi),%%mm3\n\t" + "movq (%1),%%mm0\n\t" + "pmaddwd (%2),%%mm0\n\t" + "movq 8(%1),%%mm1\n\t" + "pmaddwd 8(%2),%%mm1\n\t" + "movq 16(%1),%%mm2\n\t" + "pmaddwd 16(%2),%%mm2\n\t" + "movq 24(%1),%%mm3\n\t" + "pmaddwd 24(%2),%%mm3\n\t" "paddd %%mm1,%%mm0\n\t" "paddd %%mm2,%%mm0\n\t" "paddd %%mm3,%%mm0\n\t" @@ -225,9 +225,9 @@ "psubd %%mm0,%%mm0\n\t" "psubsw %%mm1,%%mm0\n\t" "movd %%mm0,%%eax\n\t" - "movw %%ax,(%%edi)\n\t" + "movw %%ax,(%3)\n\t" "emms\n\t" - :"+c"(i), "+d"(window), "+S"(b0), "+D"(samples) + :"+r"(i), "+r"(window), "+r"(b0), "+r"(samples) : :"memory", "%eax"); return 0;