我正在使用Cortex-A8处理器而我不了解如何使用-mfpu
标志。
在Cortex-A8上,有 vfpv3 和 neon 协处理器。以前我不知道如何使用霓虹灯,所以我只使用
gcc -marm -mfloat-abi=softfp -mfpu=vfpv3
现在我已经了解了SIMD处理器的运行方式以及我使用NEON内在函数编写了某些代码。要使用霓虹灯协处理器,我的-mfpu标志必须更改为-mfpu=neon
,所以我的编译器命令行看起来像这样
gcc -marm -mfloat-abi=softfp -mfpu=neon
现在,这是否意味着我的vfpv3
不再使用了?我有很多代码没有使用NEON,这些部分没有使用vfpv3
。
如果仍然使用neon和vfpv3,那么我没有问题,但如果只使用其中一个,我怎样才能使用它们?
答案 0 :(得分:10)
NEON意味着拥有传统的VFP支持。 VFP可用于“正常”(非向量)浮点计算。此外,NEON不支持双精度FP,因此只能使用VFP指令 你可以做的是添加-S到gcc的命令行并检查程序集。以V开头的指令(例如vld1.32,vmla.f32)是NEON指令,而以F(fldd,fmacd)开头的指令是VFP。 (尽管ARM文档现在更喜欢使用V前缀,即使对于VFP指令,GCC也不会这样做。)