mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-18 13:35:13 +00:00
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@outlook.com>
This commit is contained in:
parent
338f8fd232
commit
9abf906800
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user