On 6 February 2012 08:11, Johannes Pfau <nos...@example.com> wrote: > Am Mon, 6 Feb 2012 01:48:32 -0600 > schrieb Andrew Wiley <wiley.andre...@gmail.com>: > >> >> Actually, if the Android default is to build against softfloat ABI, >> you may be stuck with it. If Android doesn't require hardfloat to run >> and doesn't let developers provide multiple binaries for different >> platforms (which it might - I don't know), things get very hard. >> >> Also, with NEON, one of the things you don't really hear until you >> start working with these is that NEON isn't actually required in most >> if not all of the ARM CPU specs. I've specifically dealt with the >> Tegra 2, which is used in a lot of phones and has no NEON support even >> though it's ARM Cortex-A9. > > There's a official armv7-a ABI for android, it doesn't use 'hard', but > at least 'softfp' instead of 'soft'. > > Just found the relevant documentation: See > android-ndk-r7/docs/STANDALONE-TOOLCHAIN.html 4/ ABI Compatibility: > ------------------------ > If you want to target the 'armeabi-v7a' ABI, you will need ensure that > the following two flags are being used: > > CFLAGS='-march=armv7-a -mfloat-abi=softfp' > > If you want to use Neon instructions, you will need one more compiler > flag: > > CFLAGS='-march=armv7-a -mfloat-abi=softfp -mfpu=neon' > > Also, is is *required* to use the following linker flags that routes > around a CPU bug in some Cortex-A8 implementations: > > LDFLAGS='-Wl,--fix-cortex-a8' > ------------------------ > so according to those docs, you simply pass those flags to the > compiler, no need to recompile the compiler.
>From the ARM Neon Intrinisics page: "These built-in intrinsics for the ARM Advanced SIMD extension are available when the -mfpu=neon switch is used." -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';