Hello Linaro toolchain guys,
I have a few questions regarding GCC fully supporting the ARM Cortex M4, I'm especially thinking of the additional DSP instructions and if these are supported and how optimal the code being produced is?
Thanks for your support, Best Regards Christian (ST-Ericsson)
On Thu, Feb 24, 2011 at 2:34 AM, Christian ANDERSSON2 christian.c.andersson@stericsson.com wrote:
Hello Linaro toolchain guys,
I have a few questions regarding GCC fully supporting the ARM Cortex M4,
I’m especially thinking of the additional DSP instructions and if these are supported and how optimal the code being produced is?
Hi Christian. Sorry for the delay in replying. The Cortex-M4 has quite a few DSP instructions and I'm afraid we don't have a coverage report on them. Here's what we do have: * A Cortex-M4 pipeline description, and FPU description * Good support for Thumb-2 * The cast instructions including UXTH, UXTB, UXTAH, and signed versions * 16x16 -> 32 multiply-and-accumulate instructions SMLABB * 16x16 -> 64 multiply-and-accumulate SMLALBB * 16x16 -> 32 multiply SMULBB, SMULTBB
There's no support for the ARMv5 saturation instructions or the ARMv6 core register based vector instructions such as UQADD8, but we're looking into them: https://blueprints.launchpad.net/gcc-linaro/+spec/armv5-saturated-ops https://blueprints.launchpad.net/gcc-linaro/+spec/armv6-simd
Note that we're working on Cortex-A focused performance. We're not working on the Cortex-M, but many of the generic Thumb-2 improvements should also improve things on the M4.
Hope that helps,
-- Michael
linaro-toolchain@lists.linaro.org