diff libmpcodecs/vf_divtc.c @ 13720:821f464b4d90

adapting existing mmx/mmx2/sse/3dnow optimizations so they work on x86_64
author aurel
date Thu, 21 Oct 2004 11:55:20 +0000
parents eb79a6192b2b
children acd19cdc1b46
line wrap: on
line diff
--- a/libmpcodecs/vf_divtc.c	Thu Oct 21 11:36:20 2004 +0000
+++ b/libmpcodecs/vf_divtc.c	Thu Oct 21 11:55:20 2004 +0000
@@ -44,11 +44,11 @@
 	".balign 16 \n\t"
 	"1: \n\t"
 
-	"movq (%%esi), %%mm0 \n\t"
-	"movq (%%esi), %%mm2 \n\t"
-	"addl %%eax, %%esi \n\t"
-	"movq (%%edi), %%mm1 \n\t"
-	"addl %%ebx, %%edi \n\t"
+	"movq (%%"REG_S"), %%mm0 \n\t"
+	"movq (%%"REG_S"), %%mm2 \n\t"
+	"add %%"REG_a", %%"REG_S" \n\t"
+	"movq (%%"REG_D"), %%mm1 \n\t"
+	"add %%"REG_b", %%"REG_D" \n\t"
 	"psubusb %%mm1, %%mm2 \n\t"
 	"psubusb %%mm0, %%mm1 \n\t"
 	"movq %%mm2, %%mm0 \n\t"
@@ -64,10 +64,10 @@
 
 	"decl %%ecx \n\t"
 	"jnz 1b \n\t"
-	"movq %%mm4, (%%edx) \n\t"
+	"movq %%mm4, (%%"REG_d") \n\t"
 	"emms \n\t"
 	:
-	: "S" (old), "D" (new), "a" (os), "b" (ns), "d" (out)
+	: "S" (old), "D" (new), "a" ((long)os), "b" ((long)ns), "d" (out)
 	: "memory"
 	);
    return out[0]+out[1]+out[2]+out[3];