diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2006-08-13 18:36:51 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2006-08-13 18:36:51 +0000 |
commit | 52413f7f6973121ef22a5e262c2395ed9da7defc (patch) | |
tree | c495ead2637af2b6dbfa8675f30cf4e3fb704316 /src | |
parent | a001dcbaed1398598a5271ae869f2adacc1ab146 (diff) | |
download | xine-lib-52413f7f6973121ef22a5e262c2395ed9da7defc.tar.gz xine-lib-52413f7f6973121ef22a5e262c2395ed9da7defc.tar.bz2 |
patch to fix compilation with gcc 4.0 and -fPIC
CVS patchset: 8179
CVS date: 2006/08/13 18:36:51
Diffstat (limited to 'src')
-rw-r--r-- | src/libffmpeg/libavcodec/i386/dsputil_mmx.c | 21 |
1 files changed, 13 insertions, 8 deletions
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; |