summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2006-08-13 18:36:51 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2006-08-13 18:36:51 +0000
commit52413f7f6973121ef22a5e262c2395ed9da7defc (patch)
treec495ead2637af2b6dbfa8675f30cf4e3fb704316 /src
parenta001dcbaed1398598a5271ae869f2adacc1ab146 (diff)
downloadxine-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.c21
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;