From 52413f7f6973121ef22a5e262c2395ed9da7defc Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Sun, 13 Aug 2006 18:36:51 +0000 Subject: patch to fix compilation with gcc 4.0 and -fPIC CVS patchset: 8179 CVS date: 2006/08/13 18:36:51 --- src/libffmpeg/libavcodec/i386/dsputil_mmx.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/libffmpeg/libavcodec/i386/dsputil_mmx.c b/src/libffmpeg/libavcodec/i386/dsputil_mmx.c index ec6b2ad1a..810d0792d 100644 --- a/src/libffmpeg/libavcodec/i386/dsputil_mmx.c +++ b/src/libffmpeg/libavcodec/i386/dsputil_mmx.c @@ -2489,33 +2489,38 @@ static void gmc_mmx(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int o "pmullw %%mm5, %%mm2 \n\t" // (s-dx)*dy "pmullw %%mm4, %%mm1 \n\t" // dx*(s-dy) - "movd %4, %%mm5 \n\t" - "movd %3, %%mm4 \n\t" + "movd %3, %%mm5 \n\t" + "movd %2, %%mm4 \n\t" "punpcklbw %%mm7, %%mm5 \n\t" "punpcklbw %%mm7, %%mm4 \n\t" "pmullw %%mm5, %%mm3 \n\t" // src[1,1] * dx*dy "pmullw %%mm4, %%mm2 \n\t" // src[0,1] * (s-dx)*dy - "movd %2, %%mm5 \n\t" - "movd %1, %%mm4 \n\t" + "movd %1, %%mm5 \n\t" + "movd %0, %%mm4 \n\t" "punpcklbw %%mm7, %%mm5 \n\t" "punpcklbw %%mm7, %%mm4 \n\t" "pmullw %%mm5, %%mm1 \n\t" // src[1,0] * dx*(s-dy) "pmullw %%mm4, %%mm0 \n\t" // src[0,0] * (s-dx)*(s-dy) - "paddw %5, %%mm1 \n\t" + "paddw %4, %%mm1 \n\t" "paddw %%mm3, %%mm2 \n\t" "paddw %%mm1, %%mm0 \n\t" "paddw %%mm2, %%mm0 \n\t" - "psrlw %6, %%mm0 \n\t" + "psrlw %5, %%mm0 \n\t" "packuswb %%mm0, %%mm0 \n\t" - "movd %%mm0, %0 \n\t" - : "=m"(dst[x+y*stride]) + : : "m"(src[0]), "m"(src[1]), "m"(src[stride]), "m"(src[stride+1]), "m"(*r4), "m"(shift2) ); + + asm volatile( + "movd %%mm0, %0 \n\t" + : "=m"(dst[x+y*stride]) + : + ); src += stride; } src += 4-h*stride; -- cgit v1.2.3