summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2014-06-08 19:39:21 -0300
committerMichael Niedermayer <michaelni@gmx.at>2014-06-09 00:51:43 +0200
commit6d408495b59547c6c07830d2095144586dc13a5b (patch)
treef066038e2c6d5c3dbc27b649d94baefeabcae1ed
parent7d8a60a442989606b25335bbdc2d55e8bdac5345 (diff)
x86/dct32: don't build ff_dct32_float_sse on x86_64
There's an SSE2 version already, and technically the SSE version on x86_64 was wrong (using pshufd and pshuflw, SSE2 instructions). Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/x86/dct32.asm2
-rw-r--r--libavcodec/x86/dct_init.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/libavcodec/x86/dct32.asm b/libavcodec/x86/dct32.asm
index 6fd5ba350d..c70f6c9c49 100644
--- a/libavcodec/x86/dct32.asm
+++ b/libavcodec/x86/dct32.asm
@@ -484,7 +484,9 @@ cglobal dct32_float, 2, 3, 16, out, in, tmp
%endif
%endmacro
+%if ARCH_X86_32
INIT_XMM sse
DCT32_FUNC
+%endif
INIT_XMM sse2
DCT32_FUNC
diff --git a/libavcodec/x86/dct_init.c b/libavcodec/x86/dct_init.c
index 85e2d0c3e6..fd6ef4553f 100644
--- a/libavcodec/x86/dct_init.c
+++ b/libavcodec/x86/dct_init.c
@@ -30,7 +30,7 @@ av_cold void ff_dct_init_x86(DCTContext *s)
{
int cpu_flags = av_get_cpu_flags();
- if (EXTERNAL_SSE(cpu_flags))
+ if (EXTERNAL_SSE(cpu_flags) && ARCH_X86_32)
s->dct32 = ff_dct32_float_sse;
if (EXTERNAL_SSE2(cpu_flags))
s->dct32 = ff_dct32_float_sse2;