[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