libav inline assembly

Michael Hope michael.hope at
Wed Mar 21 20:17:09 UTC 2012

On 22 March 2012 00:28, Mans Rullgard <mans.rullgard at> wrote:
> On 20 March 2012 22:59, Michael Hope <michael.hope at> wrote:
>> I've create a blueprint covering the basic functions in libav that are
>> implemented as inline assembly:
>> These are a mix of multiplies, clipping, byte swap, and unaligned
>> access.  We do OK on half of them but at least byte swap and 32x32 ->
>> top half of 64 aren't as good as they could be.
> Some of those are OK in recent gcc versions but horrible in older ones.
> For example, the byte swap inline asm is only enabled for gcc older
> than 4.5.  If you find any others where gcc has improved recently, let
> us know so we can make them conditional.

Yip, I saw AV_GCC_VERSION_AT_LEAST() in a few places.  We'll check
each of the inline routines and report back.

-- Michael

More information about the linaro-toolchain mailing list