avfilter/x86/vf_idet: Remove obsolete MMX(EXT) functions

The only system which benefit from these are truely ancient
32bit x86s as all other systems use at least the SSE2 versions
(this includes all x64 cpus (which is why this code is restricted
to x86-32)).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
release/5.1
Andreas Rheinhardt 3 years ago
parent 4d7128be9a
commit 7c3c1d938f
  1. 58
      libavfilter/x86/vf_idet.asm
  2. 16
      libavfilter/x86/vf_idet_init.c

@ -25,60 +25,6 @@
SECTION .text
; Implementation that does 8-bytes at a time using single-word operations.
%macro IDET_FILTER_LINE 1
INIT_MMX %1
cglobal idet_filter_line, 4, 5, 0, a, b, c, width, index
xor indexq, indexq
%define m_zero m2
%define m_sum m5
pxor m_sum, m_sum
pxor m_zero, m_zero
.loop:
movu m0, [aq + indexq*1]
punpckhbw m1, m0, m_zero
punpcklbw m0, m_zero
movu m3, [cq + indexq*1]
punpckhbw m4, m3, m_zero
punpcklbw m3, m_zero
paddsw m1, m4
paddsw m0, m3
movu m3, [bq + indexq*1]
punpckhbw m4, m3, m_zero
punpcklbw m3, m_zero
paddw m4, m4
paddw m3, m3
psubsw m1, m4
psubsw m0, m3
ABS2 m1, m0, m4, m3
paddw m0, m1
punpckhwd m1, m0, m_zero
punpcklwd m0, m_zero
paddd m0, m1
paddd m_sum, m0
add indexq, 0x8
CMP widthd, indexd
jg .loop
HADDD m_sum, m0
movd eax, m_sum
RET
%endmacro
%if ARCH_X86_32
IDET_FILTER_LINE mmxext
IDET_FILTER_LINE mmx
%endif
;******************************************************************************
; 16bit implementation that does 4/8-pixels at a time
@ -128,10 +74,6 @@ cglobal idet_filter_line_16bit, 4, 5, 8, a, b, c, width, index
INIT_XMM sse2
IDET_FILTER_LINE_16BIT 8
%if ARCH_X86_32
INIT_MMX mmx
IDET_FILTER_LINE_16BIT 4
%endif
;******************************************************************************
; SSE2 8-bit implementation that does 16-bytes at a time:

@ -24,7 +24,7 @@
#if HAVE_X86ASM
/* declares main callable idet_filter_line_{mmx,mmxext,sse2}() */
/* declares main callable idet_filter_line_sse2() */
#define FUNC_MAIN_DECL(KIND, SPAN) \
int ff_idet_filter_line_##KIND(const uint8_t *a, const uint8_t *b, \
const uint8_t *c, int w); \
@ -58,11 +58,6 @@ static int idet_filter_line_16bit_##KIND(const uint16_t *a, const uint16_t *b, \
FUNC_MAIN_DECL(sse2, 16)
FUNC_MAIN_DECL_16bit(sse2, 8)
#if ARCH_X86_32
FUNC_MAIN_DECL(mmx, 8)
FUNC_MAIN_DECL(mmxext, 8)
FUNC_MAIN_DECL_16bit(mmx, 4)
#endif
#endif
av_cold void ff_idet_init_x86(IDETContext *idet, int for_16b)
@ -70,15 +65,6 @@ av_cold void ff_idet_init_x86(IDETContext *idet, int for_16b)
#if HAVE_X86ASM
const int cpu_flags = av_get_cpu_flags();
#if ARCH_X86_32
if (EXTERNAL_MMX(cpu_flags)) {
idet->filter_line = for_16b ? (ff_idet_filter_func)idet_filter_line_16bit_mmx : idet_filter_line_mmx;
}
if (EXTERNAL_MMXEXT(cpu_flags)) {
idet->filter_line = for_16b ? (ff_idet_filter_func)idet_filter_line_16bit_mmx : idet_filter_line_mmxext;
}
#endif // ARCH_x86_32
if (EXTERNAL_SSE2(cpu_flags)) {
idet->filter_line = for_16b ? (ff_idet_filter_func)idet_filter_line_16bit_sse2 : idet_filter_line_sse2;
}

Loading…
Cancel
Save