On 20 March 2012 22:59, Michael Hope michael.hope@linaro.org wrote:
I've create a blueprint covering the basic functions in libav that are implemented as inline assembly: https://blueprints.launchpad.net/gcc-linaro/+spec/investigate-libav-inline-a...
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.