[FFmpeg-devel] [PATCH] x86/dct32: don't build ff_dct32_float_sse on x86_64
James Almer
jamrial at gmail.com
Mon Jun 9 00:39:21 CEST 2014
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 at gmail.com>
---
libavcodec/x86/dct32.asm | 2 ++
libavcodec/x86/dct_init.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/libavcodec/x86/dct32.asm b/libavcodec/x86/dct32.asm
index 6fd5ba3..c70f6c9 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 85e2d0c..fd6ef45 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;
--
1.8.5.5
More information about the ffmpeg-devel
mailing list