aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDiego Biurrun <diego@biurrun.de>2013-09-16 13:47:35 +0200
committerDiego Biurrun <diego@biurrun.de>2013-10-05 18:14:58 +0200
commit0b8b2ae5e93d616c2ece59f7175f483154cff918 (patch)
tree4d0b7c0e8fcc0a8bdda79e9e44ad51986258d2ca
parent4272bb6ef1533846a788c259cc498562d0704444 (diff)
downloadffmpeg-0b8b2ae5e93d616c2ece59f7175f483154cff918.tar.gz
x86: xviddct: Employ more specific ifdefs
This avoids building mmxext and sse2 code when disabled by configure.
-rw-r--r--libavcodec/dct-test.c8
-rw-r--r--libavcodec/x86/idct_mmx_xvid.c32
-rw-r--r--libavcodec/x86/idct_sse2_xvid.c4
3 files changed, 28 insertions, 16 deletions
diff --git a/libavcodec/dct-test.c b/libavcodec/dct-test.c
index 0f7f5c3fe3..730a368257 100644
--- a/libavcodec/dct-test.c
+++ b/libavcodec/dct-test.c
@@ -84,7 +84,11 @@ static const struct algo fdct_tab[] = {
#if HAVE_MMX_INLINE
{ "MMX", ff_fdct_mmx, NO_PERM, AV_CPU_FLAG_MMX },
+#endif
+#if HAVE_MMXEXT_INLINE
{ "MMXEXT", ff_fdct_mmxext, NO_PERM, AV_CPU_FLAG_MMXEXT },
+#endif
+#if HAVE_SSE2_INLINE
{ "SSE2", ff_fdct_sse2, NO_PERM, AV_CPU_FLAG_SSE2 },
#endif
@@ -108,7 +112,11 @@ static const struct algo idct_tab[] = {
#if HAVE_MMX_INLINE
{ "SIMPLE-MMX", ff_simple_idct_mmx, MMX_SIMPLE_PERM, AV_CPU_FLAG_MMX },
{ "XVID-MMX", ff_idct_xvid_mmx, NO_PERM, AV_CPU_FLAG_MMX, 1 },
+#endif
+#if HAVE_MMXEXT_INLINE
{ "XVID-MMXEXT", ff_idct_xvid_mmxext, NO_PERM, AV_CPU_FLAG_MMXEXT, 1 },
+#endif
+#if HAVE_SSE2_INLINE
{ "XVID-SSE2", ff_idct_xvid_sse2, SSE2_PERM, AV_CPU_FLAG_SSE2, 1 },
#endif
diff --git a/libavcodec/x86/idct_mmx_xvid.c b/libavcodec/x86/idct_mmx_xvid.c
index 7c97b9541b..27723393bf 100644
--- a/libavcodec/x86/idct_mmx_xvid.c
+++ b/libavcodec/x86/idct_mmx_xvid.c
@@ -47,7 +47,7 @@
#include "dsputil_x86.h"
#include "idct_xvid.h"
-#if HAVE_INLINE_ASM
+#if HAVE_MMX_INLINE
//=============================================================================
// Macros and other preprocessor constants
@@ -507,6 +507,22 @@ __asm__ volatile(
:: "r"(block), "r"(rounder_0), "r"(tab_i_04_mmx), "r"(tg_1_16));
}
+void ff_idct_xvid_mmx_put(uint8_t *dest, int line_size, int16_t *block)
+{
+ ff_idct_xvid_mmx(block);
+ ff_put_pixels_clamped_mmx(block, dest, line_size);
+}
+
+void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, int16_t *block)
+{
+ ff_idct_xvid_mmx(block);
+ ff_add_pixels_clamped_mmx(block, dest, line_size);
+}
+
+#endif /* HAVE_MMX_INLINE */
+
+#if HAVE_MMXEXT_INLINE
+
//-----------------------------------------------------------------------------
// void idct_xmm(uint16_t block[64]);
//-----------------------------------------------------------------------------
@@ -531,18 +547,6 @@ __asm__ volatile(
:: "r"(block), "r"(rounder_0), "r"(tab_i_04_xmm), "r"(tg_1_16));
}
-void ff_idct_xvid_mmx_put(uint8_t *dest, int line_size, int16_t *block)
-{
- ff_idct_xvid_mmx(block);
- ff_put_pixels_clamped_mmx(block, dest, line_size);
-}
-
-void ff_idct_xvid_mmx_add(uint8_t *dest, int line_size, int16_t *block)
-{
- ff_idct_xvid_mmx(block);
- ff_add_pixels_clamped_mmx(block, dest, line_size);
-}
-
void ff_idct_xvid_mmxext_put(uint8_t *dest, int line_size, int16_t *block)
{
ff_idct_xvid_mmxext(block);
@@ -555,4 +559,4 @@ void ff_idct_xvid_mmxext_add(uint8_t *dest, int line_size, int16_t *block)
ff_add_pixels_clamped_mmx(block, dest, line_size);
}
-#endif /* HAVE_INLINE_ASM */
+#endif /* HAVE_MMXEXT_INLINE */
diff --git a/libavcodec/x86/idct_sse2_xvid.c b/libavcodec/x86/idct_sse2_xvid.c
index da2c772ad1..50655d6bc0 100644
--- a/libavcodec/x86/idct_sse2_xvid.c
+++ b/libavcodec/x86/idct_sse2_xvid.c
@@ -44,7 +44,7 @@
#include "idct_xvid.h"
#include "dsputil_x86.h"
-#if HAVE_INLINE_ASM
+#if HAVE_SSE2_INLINE
/**
* @file
@@ -405,4 +405,4 @@ void ff_idct_xvid_sse2_add(uint8_t *dest, int line_size, short *block)
ff_add_pixels_clamped_mmx(block, dest, line_size);
}
-#endif /* HAVE_INLINE_ASM */
+#endif /* HAVE_SSE2_INLINE */