summaryrefslogtreecommitdiff
path: root/src/libffmpeg/libavcodec/dsputil_mmx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libffmpeg/libavcodec/dsputil_mmx.c')
-rw-r--r--src/libffmpeg/libavcodec/dsputil_mmx.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/libffmpeg/libavcodec/dsputil_mmx.c b/src/libffmpeg/libavcodec/dsputil_mmx.c
index 29a069566..44b0b23d2 100644
--- a/src/libffmpeg/libavcodec/dsputil_mmx.c
+++ b/src/libffmpeg/libavcodec/dsputil_mmx.c
@@ -105,6 +105,7 @@ static void put_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line
const DCTELEM *p;
UINT8 *pix;
int i;
+ static int p_inc = 32; /* hack to avoid gcc-2.95.2 loop unrolling bug */
/* read the pixels */
p = block;
@@ -132,7 +133,7 @@ static void put_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line
:"m"(*p)
:"memory");
pix += line_size*4;
- p += 32;
+ p += p_inc;
}
}
@@ -141,6 +142,7 @@ static void add_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line
const DCTELEM *p;
UINT8 *pix;
int i;
+ static int p_inc = 16; /* hack to avoid gcc-2.95.2 loop unrolling bug */
/* read the pixels */
p = block;
@@ -172,7 +174,7 @@ static void add_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line
:"m"(*p)
:"memory");
pix += line_size*2;
- p += 16;
+ p += p_inc;
}
}
@@ -965,7 +967,7 @@ static void sub_pixels_xy2_mmx( DCTELEM *block, const UINT8 *pixels, int line
void dsputil_init_mmx(void)
{
- mm_flags = mm_support();
+ mm_flags = mm_accel();
#if 0
printf("CPU flags:");
if (mm_flags & MM_MMX)