summaryrefslogtreecommitdiff
path: root/src/libffmpeg/libavcodec/dsputil_mmx.c
diff options
context:
space:
mode:
authorJuergen Keil <jkeil@users.sourceforge.net>2001-09-01 17:57:20 +0000
committerJuergen Keil <jkeil@users.sourceforge.net>2001-09-01 17:57:20 +0000
commit4fff623cae914340d0968855630d21ca69826b9a (patch)
tree959e65b8116c2ea2e363a4ebe59d89cebbae4e11 /src/libffmpeg/libavcodec/dsputil_mmx.c
parent1e2f00c5f029673e77f4cbb02a01b1063873d5be (diff)
downloadxine-lib-4fff623cae914340d0968855630d21ca69826b9a.tar.gz
xine-lib-4fff623cae914340d0968855630d21ca69826b9a.tar.bz2
Enable MMX accelerated code on x86
Workaround a gcc-2.95.2 compiler bug in put_pixels_clamped_mmx, add_pixels_clamped_mmx Fix "debug" build for libffmpeg CVS patchset: 541 CVS date: 2001/09/01 17:57:20
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)