From 0b8b2ae5e93d616c2ece59f7175f483154cff918 Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Mon, 16 Sep 2013 13:47:35 +0200 Subject: [PATCH] x86: xviddct: Employ more specific ifdefs This avoids building mmxext and sse2 code when disabled by configure. --- libavcodec/dct-test.c | 8 ++++++++ libavcodec/x86/idct_mmx_xvid.c | 32 ++++++++++++++++++-------------- libavcodec/x86/idct_sse2_xvid.c | 4 ++-- 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 */