Mercurial > mplayer.hg
changeset 14556:31cb219364a4
fix few x86_64 registers handling
author | aurel |
---|---|
date | Fri, 21 Jan 2005 16:48:18 +0000 |
parents | 6fb9eca97d41 |
children | e5f42c1754b2 |
files | postproc/swscale.c postproc/swscale_template.c |
diffstat | 2 files changed, 34 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/postproc/swscale.c Fri Jan 21 13:22:59 2005 +0000 +++ b/postproc/swscale.c Fri Jan 21 16:48:18 2005 +0000 @@ -1175,7 +1175,7 @@ "pshufw $0xFF, %%mm0, %%mm0 \n\t" "2: \n\t" "psubw %%mm1, %%mm0 \n\t" - "mov 8(%%"REG_b", %%"REG_a"), %%"REG_S"\n\t" + "movl 8(%%"REG_b", %%"REG_a"), %%esi\n\t" "pmullw %%mm3, %%mm0 \n\t" "psllw $7, %%mm1 \n\t" "paddw %%mm1, %%mm0 \n\t" @@ -1213,7 +1213,7 @@ "pshufw $0xFF, %%mm0, %%mm0 \n\t" "2: \n\t" "psubw %%mm1, %%mm0 \n\t" - "mov 8(%%"REG_b", %%"REG_a"), %%"REG_S"\n\t" + "movl 8(%%"REG_b", %%"REG_a"), %%esi\n\t" "pmullw %%mm3, %%mm0 \n\t" "psllw $7, %%mm1 \n\t" "paddw %%mm1, %%mm0 \n\t"
--- a/postproc/swscale_template.c Fri Jan 21 13:22:59 2005 +0000 +++ b/postproc/swscale_template.c Fri Jan 21 16:48:18 2005 +0000 @@ -2271,13 +2271,27 @@ PREFETCH" 32(%%"REG_c") \n\t" PREFETCH" 64(%%"REG_c") \n\t" +#ifdef ARCH_X86_64 + #define FUNNY_Y_CODE \ - "mov (%%"REG_b"), %%"REG_S" \n\t"\ + "movl (%%"REG_b"), %%esi \n\t"\ "call *%4 \n\t"\ - "addl (%%"REG_b", %%"REG_a"), %%ecx\n\t"\ + "movl (%%"REG_b", %%"REG_a"), %%esi\n\t"\ + "add %%"REG_S", %%"REG_c" \n\t"\ "add %%"REG_a", %%"REG_D" \n\t"\ "xor %%"REG_a", %%"REG_a" \n\t"\ +#else + +#define FUNNY_Y_CODE \ + "movl (%%"REG_b"), %%esi \n\t"\ + "call *%4 \n\t"\ + "addl (%%"REG_b", %%"REG_a"), %%"REG_c"\n\t"\ + "add %%"REG_a", %%"REG_D" \n\t"\ + "xor %%"REG_a", %%"REG_a" \n\t"\ + +#endif + FUNNY_Y_CODE FUNNY_Y_CODE FUNNY_Y_CODE @@ -2440,13 +2454,27 @@ PREFETCH" 32(%%"REG_c") \n\t" PREFETCH" 64(%%"REG_c") \n\t" +#ifdef ARCH_X86_64 + #define FUNNY_UV_CODE \ "movl (%%"REG_b"), %%esi \n\t"\ "call *%4 \n\t"\ - "addl (%%"REG_b", %%"REG_a"), %%ecx\n\t"\ + "movl (%%"REG_b", %%"REG_a"), %%esi\n\t"\ + "add %%"REG_S", %%"REG_c" \n\t"\ "add %%"REG_a", %%"REG_D" \n\t"\ "xor %%"REG_a", %%"REG_a" \n\t"\ +#else + +#define FUNNY_UV_CODE \ + "movl (%%"REG_b"), %%esi \n\t"\ + "call *%4 \n\t"\ + "addl (%%"REG_b", %%"REG_a"), %%"REG_c"\n\t"\ + "add %%"REG_a", %%"REG_D" \n\t"\ + "xor %%"REG_a", %%"REG_a" \n\t"\ + +#endif + FUNNY_UV_CODE FUNNY_UV_CODE FUNNY_UV_CODE @@ -2466,7 +2494,7 @@ :: "m" (src1), "m" (dst), "m" (mmx2Filter), "m" (mmx2FilterPos), "m" (funnyUVCode), "m" (src2) - : "%"REG_a, "%"REG_b, "%"REG_c, "%"REG_d, "%esi", "%"REG_D + : "%"REG_a, "%"REG_b, "%"REG_c, "%"REG_d, "%"REG_S, "%"REG_D ); for(i=dstWidth-1; (i*xInc)>>16 >=srcW-1; i--) {