From cd8e5f9637b42f0caafbb0ab470e3f133cb5f200 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Wed, 24 Apr 2002 12:18:59 +0000 Subject: [PATCH] * fixes problem with -funroll-loops and buggy gcc compiler Originally committed as revision 421 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/i386/dsputil_mmx.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/libavcodec/i386/dsputil_mmx.c b/libavcodec/i386/dsputil_mmx.c index da86eba480..8ec0cae412 100644 --- a/libavcodec/i386/dsputil_mmx.c +++ b/libavcodec/i386/dsputil_mmx.c @@ -229,12 +229,12 @@ static void add_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line pix = pixels; MOVQ_ZERO(mm7); i = 4; - while (i) { + do { __asm __volatile( - "movq %2, %%mm0\n\t" - "movq 8%2, %%mm1\n\t" - "movq 16%2, %%mm2\n\t" - "movq 24%2, %%mm3\n\t" + "movq (%2), %%mm0\n\t" + "movq 8(%2), %%mm1\n\t" + "movq 16(%2), %%mm2\n\t" + "movq 24(%2), %%mm3\n\t" "movq %0, %%mm4\n\t" "movq %1, %%mm6\n\t" "movq %%mm4, %%mm5\n\t" @@ -252,12 +252,11 @@ static void add_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line "movq %%mm0, %0\n\t" "movq %%mm2, %1\n\t" :"+m"(*pix), "+m"(*(pix+line_size)) - :"m"(*p) + :"r"(p) :"memory"); pix += line_size*2; p += 16; - i--; - }; + } while (--i); } static void put_pixels_mmx(UINT8 *block, const UINT8 *pixels, int line_size, int h)