我在使用Cortex-A8处理器,我不知道如何使用 -mfpu 旗帜。
-mfpu
在皮层-A8上 vfpv3型 和 霓虹灯 联合处理器。以前我不知道如何使用霓虹灯,所以我只使用
gcc -marm -mfloat-abi=softfp -mfpu=vfpv3
现在我已经了解了SIMD处理器是如何运行的,并且我已经使用NEON内部函数编写了某些代码。要使用neon协处理器,现在我的-mfpu标志必须更改为 -mfpu=neon ,所以我的编译器命令行如下所示
-mfpu=neon
gcc -marm -mfloat-abi=softfp -mfpu=neon
现在,这是否意味着我 vfpv3 不再使用了吗?我有很多不使用霓虹灯的代码,是不是这些部分没有使用 vfpv3型 .
vfpv3
vfpv3型
如果霓虹灯和vfpv3仍然使用,那么我没有问题,但是如果只使用其中一个,我如何才能利用两者呢?
NEON也意味着有传统的VFP支持。VFP可用于“正常”(非矢量)浮点计算。此外,NEON不支持双精度FP,因此只能使用VFP指令。 您可以做的是将-S添加到gcc的命令行并检查程序集。以V开头的指令(例如vld1.32、vmla.f32)是NEON指令,以F开头的指令(fldd、fmacd)是VFP。(尽管ARM文档现在更喜欢使用V前缀,即使是VFP指令,GCC也不会这样做。)