avcodec/x86/svq1enc: Remove obsolete MMXEXT function

x64 always has MMX, MMXEXT, SSE and SSE2 and this means
that some functions for MMX, MMXEXT and 3dnow are always
overridden by other functions (unless one e.g. explicitly
disables SSE2) for x64. So given that the only systems that
benefit from ff_ssd_int8_vs_int16_mmx are truely ancient
32bit x86s it is removed.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
release/5.1
Andreas Rheinhardt 3 years ago
parent 6feea076e9
commit 9426a2f8ff
  1. 22
      libavcodec/x86/svq1enc.asm
  2. 5
      libavcodec/x86/svq1enc_init.c

@ -23,39 +23,19 @@
SECTION .text SECTION .text
%macro SSD_INT8_VS_INT16 0 INIT_XMM sse2
cglobal ssd_int8_vs_int16, 3, 3, 3, pix1, pix2, size cglobal ssd_int8_vs_int16, 3, 3, 3, pix1, pix2, size
pxor m0, m0 pxor m0, m0
.loop: .loop:
sub sizeq, 8 sub sizeq, 8
movq m1, [pix1q + sizeq] movq m1, [pix1q + sizeq]
mova m2, [pix2q + sizeq*2] mova m2, [pix2q + sizeq*2]
%if mmsize == 8
movq m3, [pix2q + sizeq*2 + mmsize]
punpckhbw m4, m1
punpcklbw m1, m1
psraw m4, 8
psraw m1, 8
psubw m3, m4
psubw m2, m1
pmaddwd m3, m3
pmaddwd m2, m2
paddd m0, m3
paddd m0, m2
%else
punpcklbw m1, m1 punpcklbw m1, m1
psraw m1, 8 psraw m1, 8
psubw m2, m1 psubw m2, m1
pmaddwd m2, m2 pmaddwd m2, m2
paddd m0, m2 paddd m0, m2
%endif
jg .loop jg .loop
HADDD m0, m1 HADDD m0, m1
movd eax, m0 movd eax, m0
RET RET
%endmacro
INIT_MMX mmx
SSD_INT8_VS_INT16
INIT_XMM sse2
SSD_INT8_VS_INT16

@ -24,8 +24,6 @@
#include "libavutil/x86/cpu.h" #include "libavutil/x86/cpu.h"
#include "libavcodec/svq1enc.h" #include "libavcodec/svq1enc.h"
int ff_ssd_int8_vs_int16_mmx(const int8_t *pix1, const int16_t *pix2,
intptr_t size);
int ff_ssd_int8_vs_int16_sse2(const int8_t *pix1, const int16_t *pix2, int ff_ssd_int8_vs_int16_sse2(const int8_t *pix1, const int16_t *pix2,
intptr_t size); intptr_t size);
@ -33,9 +31,6 @@ av_cold void ff_svq1enc_init_x86(SVQ1EncContext *c)
{ {
int cpu_flags = av_get_cpu_flags(); int cpu_flags = av_get_cpu_flags();
if (EXTERNAL_MMX(cpu_flags)) {
c->ssd_int8_vs_int16 = ff_ssd_int8_vs_int16_mmx;
}
if (EXTERNAL_SSE2(cpu_flags)) { if (EXTERNAL_SSE2(cpu_flags)) {
c->ssd_int8_vs_int16 = ff_ssd_int8_vs_int16_sse2; c->ssd_int8_vs_int16 = ff_ssd_int8_vs_int16_sse2;
} }

Loading…
Cancel
Save