[FFmpeg-cvslog] avutil/x86/float_dsp: Remove obsolete 3dnowext function

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


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Sun Jun 12 00:40:09 2022 +0200| [2718a3be1f8867fd4f6cb3f452d6917838b1ed88] | committer: Andreas Rheinhardt

avutil/x86/float_dsp: Remove obsolete 3dnowext function

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

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

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

 libavutil/x86/float_dsp.asm    | 25 +------------------------
 libavutil/x86/float_dsp_init.c |  5 -----
 2 files changed, 1 insertion(+), 29 deletions(-)

diff --git a/libavutil/x86/float_dsp.asm b/libavutil/x86/float_dsp.asm
index b773e61a64..cca4d019c7 100644
--- a/libavutil/x86/float_dsp.asm
+++ b/libavutil/x86/float_dsp.asm
@@ -294,7 +294,7 @@ VECTOR_DMUL_SCALAR
 ; vector_fmul_window(float *dst, const float *src0,
 ;                    const float *src1, const float *win, int len);
 ;-----------------------------------------------------------------------------
-%macro VECTOR_FMUL_WINDOW 0
+INIT_XMM sse
 cglobal vector_fmul_window, 5, 6, 6, dst, src0, src1, win, len, len1
     shl     lend, 2
     lea    len1q, [lenq - mmsize]
@@ -305,7 +305,6 @@ cglobal vector_fmul_window, 5, 6, 6, dst, src0, src1, win, len, len1
 .loop:
     mova      m0, [winq  + lenq]
     mova      m4, [src0q + lenq]
-%if cpuflag(sse)
     mova      m1, [winq  + len1q]
     mova      m5, [src1q + len1q]
     shufps    m1, m1, 0x1b
@@ -319,34 +318,12 @@ cglobal vector_fmul_window, 5, 6, 6, dst, src0, src1, win, len, len1
     addps     m2, m3
     subps     m1, m0
     shufps    m2, m2, 0x1b
-%else
-    pswapd    m1, [winq  + len1q]
-    pswapd    m5, [src1q + len1q]
-    mova      m2, m0
-    mova      m3, m1
-    pfmul     m2, m4
-    pfmul     m3, m5
-    pfmul     m1, m4
-    pfmul     m0, m5
-    pfadd     m2, m3
-    pfsub     m1, m0
-    pswapd    m2, m2
-%endif
     mova      [dstq + lenq], m1
     mova      [dstq + len1q], m2
     sub       len1q, mmsize
     add       lenq,  mmsize
     jl .loop
-%if mmsize == 8
-    femms
-%endif
     REP_RET
-%endmacro
-
-INIT_MMX 3dnowext
-VECTOR_FMUL_WINDOW
-INIT_XMM sse
-VECTOR_FMUL_WINDOW
 
 ;-----------------------------------------------------------------------------
 ; vector_fmul_add(float *dst, const float *src0, const float *src1,
diff --git a/libavutil/x86/float_dsp_init.c b/libavutil/x86/float_dsp_init.c
index 8826e4e2c9..ad17bc2044 100644
--- a/libavutil/x86/float_dsp_init.c
+++ b/libavutil/x86/float_dsp_init.c
@@ -56,8 +56,6 @@ void ff_vector_dmul_scalar_sse2(double *dst, const double *src,
 void ff_vector_dmul_scalar_avx(double *dst, const double *src,
                                double mul, int len);
 
-void ff_vector_fmul_window_3dnowext(float *dst, const float *src0,
-                                    const float *src1, const float *win, int len);
 void ff_vector_fmul_window_sse(float *dst, const float *src0,
                                const float *src1, const float *win, int len);
 
@@ -83,9 +81,6 @@ av_cold void ff_float_dsp_init_x86(AVFloatDSPContext *fdsp)
 {
     int cpu_flags = av_get_cpu_flags();
 
-    if (EXTERNAL_AMD3DNOWEXT(cpu_flags)) {
-        fdsp->vector_fmul_window = ff_vector_fmul_window_3dnowext;
-    }
     if (EXTERNAL_SSE(cpu_flags)) {
         fdsp->vector_fmul = ff_vector_fmul_sse;
         fdsp->vector_fmac_scalar = ff_vector_fmac_scalar_sse;



More information about the ffmpeg-cvslog mailing list