From: James Almer <[email protected]> pavgb is an sse integer instruction, so the mmxext flag is enough
Signed-off-by: James Almer <[email protected]> Reviewed-by: "Ronald S. Bultje" <[email protected]> Signed-off-by: Anton Khirnov <[email protected]> --- libavcodec/x86/vp9dsp_init.c | 11 +++++++---- libavcodec/x86/vp9mc.asm | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/libavcodec/x86/vp9dsp_init.c b/libavcodec/x86/vp9dsp_init.c index dc08e60..2b94af3 100644 --- a/libavcodec/x86/vp9dsp_init.c +++ b/libavcodec/x86/vp9dsp_init.c @@ -40,8 +40,8 @@ fpel_func(put, 8, mmx); fpel_func(put, 16, sse); fpel_func(put, 32, sse); fpel_func(put, 64, sse); -fpel_func(avg, 4, sse); -fpel_func(avg, 8, sse); +fpel_func(avg, 4, mmxext); +fpel_func(avg, 8, mmxext); fpel_func(avg, 16, sse2); fpel_func(avg, 32, sse2); fpel_func(avg, 64, sse2); @@ -222,12 +222,15 @@ av_cold void ff_vp9dsp_init_x86(VP9DSPContext *dsp) init_fpel(3, 0, 8, put, mmx); } + if (EXTERNAL_MMXEXT(cpu_flags)) { + init_fpel(4, 1, 4, avg, mmxext); + init_fpel(3, 1, 8, avg, mmxext); + } + if (EXTERNAL_SSE(cpu_flags)) { init_fpel(2, 0, 16, put, sse); init_fpel(1, 0, 32, put, sse); init_fpel(0, 0, 64, put, sse); - init_fpel(4, 1, 4, avg, sse); - init_fpel(3, 1, 8, avg, sse); } if (EXTERNAL_SSE2(cpu_flags)) { diff --git a/libavcodec/x86/vp9mc.asm b/libavcodec/x86/vp9mc.asm index a89870f..de82cdf 100644 --- a/libavcodec/x86/vp9mc.asm +++ b/libavcodec/x86/vp9mc.asm @@ -379,7 +379,7 @@ cglobal %1%2, 5, 5, 4, dst, src, dstride, sstride, h INIT_MMX mmx fpel_fn put, 4, strideq, strideq*2, stride3q, 4 fpel_fn put, 8, strideq, strideq*2, stride3q, 4 -INIT_MMX sse +INIT_MMX mmxext fpel_fn avg, 4, strideq, strideq*2, stride3q, 4 fpel_fn avg, 8, strideq, strideq*2, stride3q, 4 INIT_XMM sse -- 2.0.0 _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
