On Mon, 6 Aug 2012, Justin Ruggles wrote: > --- > libavresample/x86/audio_convert.asm | 39 > ++++++++++++++++++++++++++++++++ > libavresample/x86/audio_convert_init.c | 13 ++++++++++ > 2 files changed, 52 insertions(+), 0 deletions(-) > > diff --git a/libavresample/x86/audio_convert.asm > b/libavresample/x86/audio_convert.asm > index 09c4e7f..ea0debf 100644 > --- a/libavresample/x86/audio_convert.asm > +++ b/libavresample/x86/audio_convert.asm > @@ -923,3 +923,42 @@ CONV_S16_TO_S16P_6CH > INIT_XMM avx > CONV_S16_TO_S16P_6CH > %endif > + > +;------------------------------------------------------------------------------ > +; void ff_conv_s16_to_fltp_2ch(float *const *dst, int16_t *src, int len, > +; int channels); > +;------------------------------------------------------------------------------ > + > +%macro CONV_S16_TO_FLTP_2CH 0 > +cglobal conv_s16_to_fltp_2ch, 3,4,4, dst0, src, len, dst1 > + lea lenq, [4*lend] > + mov dst1q, [dst0q+gprsize] > + mov dst0q, [dst0q ] > + add srcq, lenq > + add dst0q, lenq > + add dst1q, lenq > + neg lenq > + mova m3, [pf_s16_inv_scale] > +.loop: > + mova m0, [srcq+lenq] > + S16_TO_S32_SX 0, 1 > + cvtdq2ps m0, m0 > + cvtdq2ps m1, m1 > + mulps m0, m0, m3 > + mulps m1, m1, m3 > + DEINT2_PS 0, 1, 2
pslld m1, m0, 16 psrad m0, m0, 16 psrad m1, m1, 16 cvtdq2ps m0, m0 cvtdq2ps m1, m1 mulps m0, m0, m3 mulps m1, m1, m3 > + mova [dst0q+lenq], m0 > + mova [dst1q+lenq], m1 > + add lenq, mmsize > + jl .loop > + REP_RET > +%endmacro --Loren Merritt _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel