[FFmpeg-cvslog] avcodec/x86/rv40dsp_init: Remove obsolete MMX(EXT), 3dnow functions

Andreas Rheinhardt git at videolan.org
Wed Jun 22 15:28:25 EEST 2022


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Fri Jun 10 16:28:37 2022 +0200| [9abf906800155a3828e869f1820605872c2de6b4] | committer: Andreas Rheinhardt

avcodec/x86/rv40dsp_init: Remove obsolete MMX(EXT), 3dnow functions

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 these functions are truely ancient 32bit x86s
they are removed.

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

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

 libavcodec/x86/h264_chromamc.asm |  2 --
 libavcodec/x86/rv40dsp.asm       | 20 -----------------
 libavcodec/x86/rv40dsp_init.c    | 47 ----------------------------------------
 3 files changed, 69 deletions(-)

diff --git a/libavcodec/x86/h264_chromamc.asm b/libavcodec/x86/h264_chromamc.asm
index c7c4a2d4aa..ba6f4af3b0 100644
--- a/libavcodec/x86/h264_chromamc.asm
+++ b/libavcodec/x86/h264_chromamc.asm
@@ -448,9 +448,7 @@ chroma_mc2_mmx_func avg, h264
 
 INIT_MMX 3dnow
 chroma_mc8_mmx_func avg, h264, _rnd
-chroma_mc8_mmx_func avg, rv40
 chroma_mc4_mmx_func avg, h264
-chroma_mc4_mmx_func avg, rv40
 
 %macro chroma_mc8_ssse3_func 2-3
 cglobal %1_%2_chroma_mc8%3, 6, 7, 8
diff --git a/libavcodec/x86/rv40dsp.asm b/libavcodec/x86/rv40dsp.asm
index bcad1aee80..f2ce236d44 100644
--- a/libavcodec/x86/rv40dsp.asm
+++ b/libavcodec/x86/rv40dsp.asm
@@ -230,20 +230,6 @@ cglobal %1_rv40_qpel_h, 6, 6+npicregs, 12, dst, dststride, src, srcstride, heigh
     REP_RET
 %endmacro
 
-%if ARCH_X86_32
-INIT_MMX  mmx
-FILTER_V  put
-FILTER_H  put
-
-INIT_MMX  mmxext
-FILTER_V  avg
-FILTER_H  avg
-
-INIT_MMX  3dnow
-FILTER_V  avg
-FILTER_H  avg
-%endif
-
 INIT_XMM  sse2
 FILTER_H  put
 FILTER_H  avg
@@ -481,12 +467,6 @@ cglobal rv40_weight_func_%1_%2, 6, 7, 8
     REP_RET
 %endmacro
 
-INIT_MMX mmxext
-RV40_WEIGHT   rnd,    8, 3
-RV40_WEIGHT   rnd,   16, 4
-RV40_WEIGHT   nornd,  8, 3
-RV40_WEIGHT   nornd, 16, 4
-
 INIT_XMM sse2
 RV40_WEIGHT   rnd,    8, 3
 RV40_WEIGHT   rnd,   16, 4
diff --git a/libavcodec/x86/rv40dsp_init.c b/libavcodec/x86/rv40dsp_init.c
index 7a05ab14ad..a04c5a5449 100644
--- a/libavcodec/x86/rv40dsp_init.c
+++ b/libavcodec/x86/rv40dsp_init.c
@@ -44,15 +44,11 @@ void ff_put_rv40_chroma_mc8_mmx  (uint8_t *dst, uint8_t *src,
                                   ptrdiff_t stride, int h, int x, int y);
 void ff_avg_rv40_chroma_mc8_mmxext(uint8_t *dst, uint8_t *src,
                                    ptrdiff_t stride, int h, int x, int y);
-void ff_avg_rv40_chroma_mc8_3dnow(uint8_t *dst, uint8_t *src,
-                                  ptrdiff_t stride, int h, int x, int y);
 
 void ff_put_rv40_chroma_mc4_mmx  (uint8_t *dst, uint8_t *src,
                                   ptrdiff_t stride, int h, int x, int y);
 void ff_avg_rv40_chroma_mc4_mmxext(uint8_t *dst, uint8_t *src,
                                    ptrdiff_t stride, int h, int x, int y);
-void ff_avg_rv40_chroma_mc4_3dnow(uint8_t *dst, uint8_t *src,
-                                  ptrdiff_t stride, int h, int x, int y);
 
 #define DECLARE_WEIGHT(opt) \
 void ff_rv40_weight_func_rnd_16_##opt(uint8_t *dst, uint8_t *src1, uint8_t *src2, \
@@ -63,7 +59,6 @@ void ff_rv40_weight_func_nornd_16_##opt(uint8_t *dst, uint8_t *src1, uint8_t *sr
                                         int w1, int w2, ptrdiff_t stride); \
 void ff_rv40_weight_func_nornd_8_##opt (uint8_t *dst, uint8_t *src1, uint8_t *src2, \
                                         int w1, int w2, ptrdiff_t stride);
-DECLARE_WEIGHT(mmxext)
 DECLARE_WEIGHT(sse2)
 DECLARE_WEIGHT(ssse3)
 
@@ -148,25 +143,6 @@ QPEL_MC_DECL(avg_, _ssse3)
 QPEL_MC_DECL(put_, _sse2)
 QPEL_MC_DECL(avg_, _sse2)
 
-#if ARCH_X86_32
-#undef LOOPSIZE
-#undef HCOFF
-#undef VCOFF
-#define LOOPSIZE  4
-#define HCOFF(x)  (64 * ((x) - 1))
-#define VCOFF(x)  (64 * ((x) - 1))
-
-QPEL_MC_DECL(put_, _mmx)
-
-#define ff_put_rv40_qpel_h_mmxext  ff_put_rv40_qpel_h_mmx
-#define ff_put_rv40_qpel_v_mmxext  ff_put_rv40_qpel_v_mmx
-QPEL_MC_DECL(avg_, _mmxext)
-
-#define ff_put_rv40_qpel_h_3dnow  ff_put_rv40_qpel_h_mmx
-#define ff_put_rv40_qpel_v_3dnow  ff_put_rv40_qpel_v_mmx
-QPEL_MC_DECL(avg_, _3dnow)
-#endif
-
 /** @{ */
 /** Set one function */
 #define QPEL_FUNC_SET(OP, SIZE, PH, PV, OPT)                            \
@@ -207,9 +183,6 @@ DEFINE_FN(avg, 16, ssse3)
 
 #if HAVE_MMX_INLINE
 DEFINE_FN(put, 8, mmx)
-DEFINE_FN(avg, 8, mmx)
-DEFINE_FN(put, 16, mmx)
-DEFINE_FN(avg, 16, mmx)
 #endif
 
 av_cold void ff_rv40dsp_init_x86(RV34DSPContext *c)
@@ -218,10 +191,7 @@ av_cold void ff_rv40dsp_init_x86(RV34DSPContext *c)
 
 #if HAVE_MMX_INLINE
     if (INLINE_MMX(cpu_flags)) {
-        c->put_pixels_tab[0][15] = put_rv40_qpel16_mc33_mmx;
         c->put_pixels_tab[1][15] = put_rv40_qpel8_mc33_mmx;
-        c->avg_pixels_tab[0][15] = avg_rv40_qpel16_mc33_mmx;
-        c->avg_pixels_tab[1][15] = avg_rv40_qpel8_mc33_mmx;
     }
 #endif /* HAVE_MMX_INLINE */
 
@@ -229,28 +199,11 @@ av_cold void ff_rv40dsp_init_x86(RV34DSPContext *c)
     if (EXTERNAL_MMX(cpu_flags)) {
         c->put_chroma_pixels_tab[0] = ff_put_rv40_chroma_mc8_mmx;
         c->put_chroma_pixels_tab[1] = ff_put_rv40_chroma_mc4_mmx;
-#if ARCH_X86_32
-        QPEL_MC_SET(put_, _mmx)
-#endif
-    }
-    if (EXTERNAL_AMD3DNOW(cpu_flags)) {
-        c->avg_chroma_pixels_tab[0] = ff_avg_rv40_chroma_mc8_3dnow;
-        c->avg_chroma_pixels_tab[1] = ff_avg_rv40_chroma_mc4_3dnow;
-#if ARCH_X86_32
-        QPEL_MC_SET(avg_, _3dnow)
-#endif
     }
     if (EXTERNAL_MMXEXT(cpu_flags)) {
         c->avg_pixels_tab[1][15]        = avg_rv40_qpel8_mc33_mmxext;
         c->avg_chroma_pixels_tab[0]     = ff_avg_rv40_chroma_mc8_mmxext;
         c->avg_chroma_pixels_tab[1]     = ff_avg_rv40_chroma_mc4_mmxext;
-        c->rv40_weight_pixels_tab[0][0] = ff_rv40_weight_func_rnd_16_mmxext;
-        c->rv40_weight_pixels_tab[0][1] = ff_rv40_weight_func_rnd_8_mmxext;
-        c->rv40_weight_pixels_tab[1][0] = ff_rv40_weight_func_nornd_16_mmxext;
-        c->rv40_weight_pixels_tab[1][1] = ff_rv40_weight_func_nornd_8_mmxext;
-#if ARCH_X86_32
-        QPEL_MC_SET(avg_, _mmxext)
-#endif
     }
     if (EXTERNAL_SSE2(cpu_flags)) {
         c->put_pixels_tab[0][15]        = put_rv40_qpel16_mc33_sse2;



More information about the ffmpeg-cvslog mailing list