On 05/15/2011 04:49 AM, Måns Rullgård wrote: > Justin Ruggles <[email protected]> writes: > >> On 05/14/2011 10:50 AM, Måns Rullgård wrote: >> >>> Diego Biurrun <[email protected]> writes: >>> >>>> On Sat, May 14, 2011 at 09:41:01AM +0100, Måns Rullgård wrote: >>>>> Justin Ruggles <[email protected]> writes: >>>>> >>>>>> This does all the actual bit counting as a final step. >>>>>> x86 benchmarks: >>>>>> 50% faster in function count_mantissa_bits() >>>>>> 16% faster in function bit_alloc() >>>>>> --- >>>>>> libavcodec/ac3dsp.c | 33 ++++++++-------- >>>>>> libavcodec/ac3dsp.h | 4 +- >>>>>> libavcodec/ac3enc.c | 78 >>>>>> +++++++++++++++++++++----------------- >>>>>> libavcodec/arm/Makefile | 1 - >>>>>> libavcodec/arm/ac3dsp_arm.S | 52 ------------------------- >>>>>> libavcodec/arm/ac3dsp_init_arm.c | 2 - >>>>>> 6 files changed, 63 insertions(+), 107 deletions(-) >>>>>> delete mode 100644 libavcodec/arm/ac3dsp_arm.S >>>>>> +static void count_mantissa_bits_update_ch(AC3EncodeContext *s, int ch, >>>>>> + uint16_t >>>>>> mant_cnt[AC3_MAX_BLOCKS][16], >>>>>> + int start, int end) >>>>>> +{ >>>>>> + int blk, i; >>>>>> + >>>>>> + for (blk = 0; blk < AC3_MAX_BLOCKS; blk++) { >>>>>> + uint8_t *bap = s->blocks[blk].exp_ref_block[ch]->bap[ch]; >>>>>> + for (i = start; i < end; i++) >>>>>> + mant_cnt[blk][bap[i]]++; >>>>> >>>>> This loop will suck with gcc on ARM. >>>> >>>> I'm curious as to why, could you elaborate? >>> >>> Because gcc sucks, what else? This particular suckage was the main >>> reason for writing that function assembler at all. >> >> Could this be written in asm for ARM then? > > If the code is reorganised to allow this, yes.
Would it help to just have the inner loop in asm? -Justin _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
