[MPlayer-dev-eng] Patch against gcc4.0, and incorrect encoding of help_mp-zh_CN.h

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Mon Jun 20 21:27:19 CEST 2005


Hi,
On Fri, Jun 17, 2005 at 04:31:36PM +0800, Funda Wang wrote:
>  #define        mmx_r2r(op, regs, regd) \
> @@ -367,8 +367,8 @@
>         __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
>                               #op " %1, %%mm0\n\t" \
>                               "movq %%mm0, %0" \
> -                             : "=X" (memd) \
> -                             : "X" (mems))
> +                             : "=m" (memd) \
> +                             : "m" (mems))

At least with some instructions this is not correct, since constants
are possible, too. It would have to be at least "mi", I think.
But why is this neccessary? latest CVS compiled fine for me with any
combination of 32 and 64 bit, gcc 3.4 and gcc 4.0.
At least with the attached patch (needed for gcc4 + 64 bit), which I
am too lazy to send to the ffmpeg list (at the moment?).

Greetings,
Reimar Döffinger
-------------- next part --------------
Index: libpostproc/postprocess_template.c
===================================================================
RCS file: /cvsroot/ffmpeg/ffmpeg/libavcodec/libpostproc/postprocess_template.c,v
retrieving revision 1.95
diff -u -r1.95 postprocess_template.c
--- libpostproc/postprocess_template.c	13 May 2005 21:04:16 -0000	1.95
+++ libpostproc/postprocess_template.c	20 Jun 2005 19:26:27 -0000
@@ -3495,7 +3495,7 @@
 				"prefetchnta 32(%%"REG_a", %0)	\n\t"
 				"prefetcht0 32(%%"REG_d", %2)	\n\t"
 			:: "r" (srcBlock), "r" ((long)srcStride), "r" (dstBlock), "r" ((long)dstStride),
-			"m" ((long)x), "m" ((long)copyAhead)
+			"g" ((long)x), "g" ((long)copyAhead)
 			: "%"REG_a, "%"REG_d
 			);
 
@@ -3641,7 +3641,7 @@
 				"prefetchnta 32(%%"REG_a", %0)	\n\t"
 				"prefetcht0 32(%%"REG_d", %2)	\n\t"
 			:: "r" (srcBlock), "r" ((long)srcStride), "r" (dstBlock), "r" ((long)dstStride),
-			"m" ((long)x), "m" ((long)copyAhead)
+			"g" ((long)x), "g" ((long)copyAhead)
 			: "%"REG_a, "%"REG_d
 			);
 


More information about the MPlayer-dev-eng mailing list