Hi, On Thu, May 26, 2011 at 4:01 PM, Justin Ruggles <[email protected]> wrote: > > This does all the actual bit counting as a final step. > --- > libavcodec/ac3dsp.c | 42 ++++++++++------ > libavcodec/ac3dsp.h | 20 +++++++- > libavcodec/ac3enc.c | 92 ++++++++++++++++++---------------- > libavcodec/arm/ac3dsp_arm.S | 52 -------------------- > libavcodec/arm/ac3dsp_init_arm.c | 2 - > libavcodec/x86/ac3dsp.asm | 100 > ++++++++++++++++++++++++++++++++++++++ > libavcodec/x86/ac3dsp_mmx.c | 7 +++ > 7 files changed, 201 insertions(+), 114 deletions(-) > delete mode 100644 libavcodec/arm/ac3dsp_arm.S [..] > + movzx tmp2d, word [mant_cntq+4] > + imul tmp2d, 43691 > + shr tmp2d, 17 > + add tmp2d, tmp1d > + lea tmp1d, [tmp2q*8] > + sub tmp1d, tmp2d > + movzx tmp2d, word [mant_cntq+2] > + imul tmp2d, 43691 > + shr tmp2d, 17
Looks like you can use pmulhuw here, load 8 words at once, pmulhuw with 8x43691 register loaded from memory, then right-shift by one. Ronald _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
