On 9/5/2016 8:02 AM, Anton Khirnov wrote: > --- > libavcodec/x86/Makefile | 1 - > libavcodec/x86/audiodsp.asm | 42 +++++++++++++++++++++++++++++++ > libavcodec/x86/audiodsp_mmx.c | 58 > ------------------------------------------- > 3 files changed, 42 insertions(+), 59 deletions(-) > delete mode 100644 libavcodec/x86/audiodsp_mmx.c
Missing the changes to audiodsp_init.c to make the function depend on EXTERNAL_SSE instead of INLINE_SSE. > > diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile > index 906bd0ea..98c27fa 100644 > --- a/libavcodec/x86/Makefile > +++ b/libavcodec/x86/Makefile > @@ -58,7 +58,6 @@ OBJS-$(CONFIG_VP9_DECODER) += x86/vp9dsp_init.o > > # GCC inline assembly optimizations > # subsystems > -MMX-OBJS-$(CONFIG_AUDIODSP) += x86/audiodsp_mmx.o > MMX-OBJS-$(CONFIG_FDCTDSP) += x86/fdct.o > MMX-OBJS-$(CONFIG_HPELDSP) += x86/fpel_mmx.o \ > x86/hpeldsp_mmx.o > diff --git a/libavcodec/x86/audiodsp.asm b/libavcodec/x86/audiodsp.asm > index 0e3019c..3169249 100644 > --- a/libavcodec/x86/audiodsp.asm > +++ b/libavcodec/x86/audiodsp.asm > @@ -136,3 +136,45 @@ VECTOR_CLIP_INT32 11, 1, 1, 0 > %else > VECTOR_CLIP_INT32 6, 1, 0, 0 > %endif > + > +; void ff_vector_clipf_sse(float *dst, const float *src, > +; int len, float min, float max) > +INIT_XMM sse > +cglobal vector_clipf, 3, 3, 6, dst, src, len, min, max > +%if ARCH_X86_32 > + VBROADCASTSS m0, minm > + VBROADCASTSS m1, maxm > +%else You should SWAP the regs here for Win64 as i mentioned in another email. > + VBROADCASTSS m0, m0 > + VBROADCASTSS m1, m1 > +%endif > + > + movsxdifnidn lenq, lend > + shl lenq, 2 shl lend, 2 Saves you one instruction by zeroing the high 32 bits implicitly, so you don't need the movsxd anymore. _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel