diff libmpcodecs/vf_noise.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 7d6a854a5fe5
children 6ff3379a0862
line wrap: on
line diff
--- a/libmpcodecs/vf_noise.c	Thu Oct 21 11:36:20 2004 +0000
+++ b/libmpcodecs/vf_noise.c	Thu Oct 21 11:55:20 2004 +0000
@@ -143,26 +143,26 @@
 
 #ifdef HAVE_MMX
 static inline void lineNoise_MMX(uint8_t *dst, uint8_t *src, int8_t *noise, int len, int shift){
-	int mmx_len= len&(~7);
+	long mmx_len= len&(~7);
 	noise+=shift;
 
 	asm volatile(
-		"movl %3, %%eax			\n\t"
+		"mov %3, %%"REG_a"		\n\t"
 		"pcmpeqb %%mm7, %%mm7		\n\t"
 		"psllw $15, %%mm7		\n\t"
 		"packsswb %%mm7, %%mm7		\n\t"
 		".balign 16			\n\t"
 		"1:				\n\t"
-		"movq (%0, %%eax), %%mm0	\n\t"
-		"movq (%1, %%eax), %%mm1	\n\t"
+		"movq (%0, %%"REG_a"), %%mm0	\n\t"
+		"movq (%1, %%"REG_a"), %%mm1	\n\t"
 		"pxor %%mm7, %%mm0		\n\t"
 		"paddsb %%mm1, %%mm0		\n\t"
 		"pxor %%mm7, %%mm0		\n\t"
-		"movq %%mm0, (%2, %%eax)	\n\t"
-		"addl $8, %%eax			\n\t"
+		"movq %%mm0, (%2, %%"REG_a")	\n\t"
+		"add $8, %%"REG_a"		\n\t"
 		" js 1b				\n\t"
 		:: "r" (src+mmx_len), "r" (noise+mmx_len), "r" (dst+mmx_len), "g" (-mmx_len)
-		: "%eax"
+		: "%"REG_a
 	);
 	if(mmx_len!=len)
 		lineNoise_C(dst+mmx_len, src+mmx_len, noise+mmx_len, len-mmx_len, 0);
@@ -172,26 +172,26 @@
 //duplicate of previous except movntq
 #ifdef HAVE_MMX2
 static inline void lineNoise_MMX2(uint8_t *dst, uint8_t *src, int8_t *noise, int len, int shift){
-	int mmx_len= len&(~7);
+	long mmx_len= len&(~7);
 	noise+=shift;
 
 	asm volatile(
-		"movl %3, %%eax			\n\t"
+		"mov %3, %%"REG_a"		\n\t"
 		"pcmpeqb %%mm7, %%mm7		\n\t"
 		"psllw $15, %%mm7		\n\t"
 		"packsswb %%mm7, %%mm7		\n\t"
 		".balign 16			\n\t"
 		"1:				\n\t"
-		"movq (%0, %%eax), %%mm0	\n\t"
-		"movq (%1, %%eax), %%mm1	\n\t"
+		"movq (%0, %%"REG_a"), %%mm0	\n\t"
+		"movq (%1, %%"REG_a"), %%mm1	\n\t"
 		"pxor %%mm7, %%mm0		\n\t"
 		"paddsb %%mm1, %%mm0		\n\t"
 		"pxor %%mm7, %%mm0		\n\t"
-		"movntq %%mm0, (%2, %%eax)	\n\t"
-		"addl $8, %%eax			\n\t"
+		"movntq %%mm0, (%2, %%"REG_a")	\n\t"
+		"add $8, %%"REG_a"		\n\t"
 		" js 1b				\n\t"
 		:: "r" (src+mmx_len), "r" (noise+mmx_len), "r" (dst+mmx_len), "g" (-mmx_len)
-		: "%eax"
+		: "%"REG_a
 	);
 	if(mmx_len!=len)
 		lineNoise_C(dst+mmx_len, src+mmx_len, noise+mmx_len, len-mmx_len, 0);
@@ -214,16 +214,16 @@
 
 #ifdef HAVE_MMX
 static inline void lineNoiseAvg_MMX(uint8_t *dst, uint8_t *src, int len, int8_t **shift){
-	int mmx_len= len&(~7);
+	long mmx_len= len&(~7);
 
 	asm volatile(
-		"movl %5, %%eax			\n\t"
+		"mov %5, %%"REG_a"		\n\t"
 		".balign 16			\n\t"
 		"1:				\n\t"
-		"movq (%1, %%eax), %%mm1	\n\t"
-		"movq (%0, %%eax), %%mm0	\n\t"
-		"paddb (%2, %%eax), %%mm1	\n\t"
-		"paddb (%3, %%eax), %%mm1	\n\t"
+		"movq (%1, %%"REG_a"), %%mm1	\n\t"
+		"movq (%0, %%"REG_a"), %%mm0	\n\t"
+		"paddb (%2, %%"REG_a"), %%mm1	\n\t"
+		"paddb (%3, %%"REG_a"), %%mm1	\n\t"
 		"movq %%mm0, %%mm2		\n\t"
 		"movq %%mm1, %%mm3		\n\t"
 		"punpcklbw %%mm0, %%mm0		\n\t"
@@ -239,12 +239,12 @@
 		"psrlw $8, %%mm1		\n\t"
 		"psrlw $8, %%mm3		\n\t"
                 "packuswb %%mm3, %%mm1		\n\t"
-		"movq %%mm1, (%4, %%eax)	\n\t"
-		"addl $8, %%eax			\n\t"
+		"movq %%mm1, (%4, %%"REG_a")	\n\t"
+		"add $8, %%"REG_a"		\n\t"
 		" js 1b				\n\t"
 		:: "r" (src+mmx_len), "r" (shift[0]+mmx_len), "r" (shift[1]+mmx_len), "r" (shift[2]+mmx_len), 
                    "r" (dst+mmx_len), "g" (-mmx_len)
-		: "%eax"
+		: "%"REG_a
 	);
 
 	if(mmx_len!=len){