[FFmpeg-cvslog] avfilter/x86/vf_idet: Remove obsolete MMX(EXT) functions

Andreas Rheinhardt git at videolan.org
Wed Jun 22 15:29:27 EEST 2022


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Mon Jun 13 08:39:57 2022 +0200| [7c3c1d938f2e01bd607deb814706f67438e85b7a] | committer: Andreas Rheinhardt

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 at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7c3c1d938f2e01bd607deb814706f67438e85b7a
---

 libavfilter/x86/vf_idet.asm    | 58 ------------------------------------------
 libavfilter/x86/vf_idet_init.c | 16 +-----------
 2 files changed, 1 insertion(+), 73 deletions(-)

diff --git a/libavfilter/x86/vf_idet.asm b/libavfilter/x86/vf_idet.asm
index 9596abd7e2..7bc8e7d2c4 100644
--- a/libavfilter/x86/vf_idet.asm
+++ b/libavfilter/x86/vf_idet.asm
@@ -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:
diff --git a/libavfilter/x86/vf_idet_init.c b/libavfilter/x86/vf_idet_init.c
index d4d9bd0893..acb4e2a778 100644
--- a/libavfilter/x86/vf_idet_init.c
+++ b/libavfilter/x86/vf_idet_init.c
@@ -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;
     }



More information about the ffmpeg-cvslog mailing list