changeset 2233:5d8a0bc932c4

fixed out of regs "bug"
author michael
date Wed, 17 Oct 2001 03:40:03 +0000
parents 65996b3467d7
children 36fa77e785d4
files postproc/swscale.c postproc/swscale_template.c
diffstat 2 files changed, 18 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/postproc/swscale.c	Wed Oct 17 02:30:39 2001 +0000
+++ b/postproc/swscale.c	Wed Oct 17 03:40:03 2001 +0000
@@ -288,8 +288,9 @@
 		"imull %%ecx, %%esi		\n\t" //(src[xx+1] - src[xx])*2*xalpha
 		"shll $8, %%edi			\n\t"
 		"addl %%edi, %%esi		\n\t" //src[xx+1]*2*xalpha + src[xx]*(1-2*xalpha)
+		"movl %1, %%edi			\n\t"
 		"shrl $1, %%esi			\n\t"
-		"movw %%si, (%1, %%eax, 2)	\n\t"
+		"movw %%si, (%%edi, %%eax, 2)	\n\t"
 		"addb %4, %%cl			\n\t" //2*xalpha += s_xinc&0xFF
 		"adcl %3, %%ebx			\n\t" //xx+= s_xinc>>8 + carry
 
@@ -299,8 +300,9 @@
 		"imull %%ecx, %%esi		\n\t" //(src[xx+1] - src[xx])*2*xalpha
 		"shll $8, %%edi			\n\t"
 		"addl %%edi, %%esi		\n\t" //src[xx+1]*2*xalpha + src[xx]*(1-2*xalpha)
+		"movl %1, %%edi			\n\t"
 		"shrl $1, %%esi			\n\t"
-		"movw %%si, 2(%1, %%eax, 2)	\n\t"
+		"movw %%si, 2(%%edi, %%eax, 2)	\n\t"
 		"addb %4, %%cl			\n\t" //2*xalpha += s_xinc&0xFF
 		"adcl %3, %%ebx			\n\t" //xx+= s_xinc>>8 + carry
 
@@ -310,7 +312,7 @@
 		" jb 1b				\n\t"
 
 
-		:: "r" (src), "r" (buf1), "m" (dstw), "m" (s_xinc>>8), "m" (s_xinc&0xFF)
+		:: "r" (src), "m" (buf1), "m" (dstw), "m" (s_xinc>>8), "m" (s_xinc&0xFF)
 		: "%eax", "%ebx", "%ecx", "%edi", "%esi"
 		);
 #else
@@ -416,8 +418,9 @@
 		"xorl %%ebx, %%ebx		\n\t" // xx
 		"xorl %%ecx, %%ecx		\n\t" // 2*xalpha
 		"1:				\n\t"
-		"movzbl  (%0, %%ebx), %%edi	\n\t" //src[xx]
-		"movzbl 1(%0, %%ebx), %%esi	\n\t" //src[xx+1]
+		"movl %0, %%esi			\n\t"
+		"movzbl  (%%esi, %%ebx), %%edi	\n\t" //src[xx]
+		"movzbl 1(%%esi, %%ebx), %%esi	\n\t" //src[xx+1]
 		"subl %%edi, %%esi		\n\t" //src[xx+1] - src[xx]
 		"imull %%ecx, %%esi		\n\t" //(src[xx+1] - src[xx])*2*xalpha
 		"shll $8, %%edi			\n\t"
@@ -443,7 +446,7 @@
 		" jb 1b				\n\t"
 
 
-		:: "r" (src1), "m" (uvbuf1), "m" (dstw), "m" (s_xinc2>>8), "m" (s_xinc2&0xFF),
+		:: "m" (src1), "m" (uvbuf1), "m" (dstw), "m" (s_xinc2>>8), "m" (s_xinc2&0xFF),
 		"r" (src2)
 		: "%eax", "%ebx", "%ecx", "%edi", "%esi"
 		);
--- a/postproc/swscale_template.c	Wed Oct 17 02:30:39 2001 +0000
+++ b/postproc/swscale_template.c	Wed Oct 17 03:40:03 2001 +0000
@@ -288,8 +288,9 @@
 		"imull %%ecx, %%esi		\n\t" //(src[xx+1] - src[xx])*2*xalpha
 		"shll $8, %%edi			\n\t"
 		"addl %%edi, %%esi		\n\t" //src[xx+1]*2*xalpha + src[xx]*(1-2*xalpha)
+		"movl %1, %%edi			\n\t"
 		"shrl $1, %%esi			\n\t"
-		"movw %%si, (%1, %%eax, 2)	\n\t"
+		"movw %%si, (%%edi, %%eax, 2)	\n\t"
 		"addb %4, %%cl			\n\t" //2*xalpha += s_xinc&0xFF
 		"adcl %3, %%ebx			\n\t" //xx+= s_xinc>>8 + carry
 
@@ -299,8 +300,9 @@
 		"imull %%ecx, %%esi		\n\t" //(src[xx+1] - src[xx])*2*xalpha
 		"shll $8, %%edi			\n\t"
 		"addl %%edi, %%esi		\n\t" //src[xx+1]*2*xalpha + src[xx]*(1-2*xalpha)
+		"movl %1, %%edi			\n\t"
 		"shrl $1, %%esi			\n\t"
-		"movw %%si, 2(%1, %%eax, 2)	\n\t"
+		"movw %%si, 2(%%edi, %%eax, 2)	\n\t"
 		"addb %4, %%cl			\n\t" //2*xalpha += s_xinc&0xFF
 		"adcl %3, %%ebx			\n\t" //xx+= s_xinc>>8 + carry
 
@@ -310,7 +312,7 @@
 		" jb 1b				\n\t"
 
 
-		:: "r" (src), "r" (buf1), "m" (dstw), "m" (s_xinc>>8), "m" (s_xinc&0xFF)
+		:: "r" (src), "m" (buf1), "m" (dstw), "m" (s_xinc>>8), "m" (s_xinc&0xFF)
 		: "%eax", "%ebx", "%ecx", "%edi", "%esi"
 		);
 #else
@@ -416,8 +418,9 @@
 		"xorl %%ebx, %%ebx		\n\t" // xx
 		"xorl %%ecx, %%ecx		\n\t" // 2*xalpha
 		"1:				\n\t"
-		"movzbl  (%0, %%ebx), %%edi	\n\t" //src[xx]
-		"movzbl 1(%0, %%ebx), %%esi	\n\t" //src[xx+1]
+		"movl %0, %%esi			\n\t"
+		"movzbl  (%%esi, %%ebx), %%edi	\n\t" //src[xx]
+		"movzbl 1(%%esi, %%ebx), %%esi	\n\t" //src[xx+1]
 		"subl %%edi, %%esi		\n\t" //src[xx+1] - src[xx]
 		"imull %%ecx, %%esi		\n\t" //(src[xx+1] - src[xx])*2*xalpha
 		"shll $8, %%edi			\n\t"
@@ -443,7 +446,7 @@
 		" jb 1b				\n\t"
 
 
-		:: "r" (src1), "m" (uvbuf1), "m" (dstw), "m" (s_xinc2>>8), "m" (s_xinc2&0xFF),
+		:: "m" (src1), "m" (uvbuf1), "m" (dstw), "m" (s_xinc2>>8), "m" (s_xinc2&0xFF),
 		"r" (src2)
 		: "%eax", "%ebx", "%ecx", "%edi", "%esi"
 		);