From fbf98375e481980d7c19fdb9ccf6f9134b9050bb Mon Sep 17 00:00:00 2001 From: James Almer Date: Thu, 27 Feb 2014 02:07:58 -0300 Subject: [PATCH] x86/imdct36: don't build imdct36_float_sse on x86_64 targets There's an SSE2 version as well, and x86_64 guarantees that instruction set is present. Signed-off-by: James Almer Reviewed-by: "Ronald S. Bultje" Signed-off-by: Michael Niedermayer --- libavcodec/x86/imdct36.asm | 2 ++ libavcodec/x86/mpegaudiodsp.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/libavcodec/x86/imdct36.asm b/libavcodec/x86/imdct36.asm index d311fbe1a0..1d58d6bcb9 100644 --- a/libavcodec/x86/imdct36.asm +++ b/libavcodec/x86/imdct36.asm @@ -358,8 +358,10 @@ cglobal imdct36_float, 4,4,9, out, buf, in, win RET %endmacro +%if ARCH_X86_32 INIT_XMM sse DEFINE_IMDCT +%endif INIT_XMM sse2 DEFINE_IMDCT diff --git a/libavcodec/x86/mpegaudiodsp.c b/libavcodec/x86/mpegaudiodsp.c index 2ec4c5dc6c..3654c81248 100644 --- a/libavcodec/x86/mpegaudiodsp.c +++ b/libavcodec/x86/mpegaudiodsp.c @@ -30,7 +30,9 @@ static void imdct36_blocks_ ## CPU(float *out, float *buf, float *in, int count, int switch_point, int block_type);\ void ff_imdct36_float_ ## CPU(float *out, float *buf, float *in, float *win); +#if ARCH_X86_32 DECL(sse) +#endif DECL(sse2) DECL(sse3) DECL(ssse3) @@ -223,7 +225,9 @@ static void imdct36_blocks_ ## CPU1(float *out, float *buf, float *in, \ } #if HAVE_SSE +#if ARCH_X86_32 DECL_IMDCT_BLOCKS(sse,sse) +#endif DECL_IMDCT_BLOCKS(sse2,sse) DECL_IMDCT_BLOCKS(sse3,sse) DECL_IMDCT_BLOCKS(ssse3,sse) @@ -258,9 +262,11 @@ av_cold void ff_mpadsp_init_x86(MPADSPContext *s) #endif /* HAVE_SSE2_INLINE */ #if HAVE_YASM +#if ARCH_X86_32 if (EXTERNAL_SSE(cpu_flags)) { s->imdct36_blocks_float = imdct36_blocks_sse; } +#endif if (EXTERNAL_SSE2(cpu_flags)) { s->imdct36_blocks_float = imdct36_blocks_sse2; }