8

我正在使用 Cortex-A8 处理器,但我不明白如何使用该-mfpu标志。

在 Cortex-A8 上,有vfpv3neon协处理器。以前我不知道如何使用霓虹灯,所以我只使用

gcc -marm -mfloat-abi=softfp -mfpu=vfpv3

现在我已经了解了 SIMD 处理器是如何运行的,并且我已经使用 NEON 内部函数编写了某些代码。现在要使用 neon 协处理器,我的 -mfpu 标志必须更改为-mfpu=neon,所以我的编译器命令行如下所示

gcc -marm -mfloat-abi=softfp -mfpu=neon

现在,这是否意味着vfpv3不再使用 my 了?我有很多没有使用 NEON 的代码,这些部分没有使用vfpv3.

如果仍然使用 neon 和 vfpv3,那么我没有问题,但如果只使用其中一个,我该如何同时使用它们?

4

1 回答 1

11

NEON 也意味着拥有传统的 VFP 支持。VFP 可用于“正常”(非向量)浮点计算。此外,NEON 不支持双精度 FP,因此只能使用 VFP 指令。
您可以做的是将 -S 添加到 gcc 的命令行并检查程序集。以V开头的指令(例如vld1.32、vmla.f32)是NEON指令,以F开头的(fldd、fmacd)是VFP。(虽然 ARM 文档现在更喜欢对 VFP 指令使用 V 前缀,但 GCC 不这样做。)

于 2010-11-18T10:48:15.480 回答