On Mon, Jun 25, 2012 at 1:38 PM, Justin Ruggles <[email protected]> wrote: > --- > libavresample/x86/audio_convert.asm | 28 ++++++++++++++++++++++++++++ > libavresample/x86/audio_convert_init.c | 9 +++++++++ > 2 files changed, 37 insertions(+), 0 deletions(-) > > diff --git a/libavresample/x86/audio_convert.asm > b/libavresample/x86/audio_convert.asm > index 7b3cc22..c14f4ef 100644 > --- a/libavresample/x86/audio_convert.asm > +++ b/libavresample/x86/audio_convert.asm > @@ -233,6 +233,34 @@ INIT_YMM avx > CONV_FLT_TO_S32 > %endif > > +;------------------------------------------------------------------------------ > +; void ff_conv_s16p_to_s16_2ch(int16_t *dst, int16_t *const *src, int len, > +; int channels); > +;------------------------------------------------------------------------------ > + > +INIT_XMM sse2 > +cglobal conv_s16p_to_s16_2ch, 3,4,5, dst, src, len, src1 > + mov src1q, [srcq+gprsize] > + mov srcq, [srcq ] > + sub src1q, srcq > + ALIGN 16 > +.loop > + mova m0, [srcq ] > + mova m1, [srcq+src1q ] > + mova m2, [srcq +mmsize] > + mova m3, [srcq+src1q+mmsize] > + SBUTTERFLY2 wd, 0, 1, 4 > + SBUTTERFLY2 wd, 2, 3, 4 > + mova [dstq ], m0 > + mova [dstq+1*mmsize], m1 > + mova [dstq+2*mmsize], m2 > + mova [dstq+3*mmsize], m3 > + add srcq, mmsize*2 > + add dstq, mmsize*4 > + sub lend, mmsize > + jg .loop > + REP_RET
Looks okay to me. Jason _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
