ARM Cortex-A8:如何同时使用霓虹灯和vfpv3

ARM Cortex-A8:如何同时使用霓虹灯和vfpv3,arm,neon,compiler-flags,cortex-a8,Arm,Neon,Compiler Flags,Cortex A8,我正在使用Cortex-A8处理器,我不知道如何使用-mfpu标志 在Cortex-A8上有vfpv3和neon协同处理器。以前我不知道如何使用霓虹灯,所以我只使用 gcc-marm-mfloat abi=softfp-mfpu=vfpv3 现在我已经了解了SIMD处理器是如何运行的,并且已经使用NEON Intrinsic编写了某些代码。现在要使用neon协处理器,我的-mfpu标志必须更改为-mfpu=neon,因此我的编译器命令行如下所示 gcc-marm-mfloat abi=softf

我正在使用Cortex-A8处理器,我不知道如何使用
-mfpu
标志

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

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

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

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

现在,这是否意味着不再使用我的
vfpv3
?我有很多代码没有使用霓虹灯,这些部分没有使用
vfpv3


如果neon和vfpv3仍然使用,那么我没有问题,但是如果只使用了其中一个,我如何同时使用这两个呢?

neon意味着也有传统的VFP支持。VFP可用于“普通”(非矢量)浮点计算。此外,NEON不支持双精度FP,因此只能使用VFP指令进行此操作。

您可以做的是将-S添加到gcc的命令行并检查程序集。以V开头的指令(例如vld1.32、vmla.f32)是氖指令,以F开头的指令(fldd、fmacd)是VFP指令。(尽管ARM文档现在更喜欢在VFP指令中使用V前缀,但GCC不这样做。)

Igor I只有单精度浮点值。事实上,我看到很多f指令(fadds、fsitos),所以我认为vfp指令仍然是由编译器发出的。一个不相关的问题,你知道双问题处理器是什么意思吗?Cortex-A8是双问题处理器这意味着什么?你能给我指一些链接吗?我的搜索效率不高。Vikram,Coretex A8是一个双问题无序处理器。这意味着(不同地)它可以执行以下部分或全部操作:1)解码并排队以执行无序执行:每个时钟两条指令;2)每个时钟执行两条这样的排队指令;和/或3)每个时钟可以退出两条这样的结果。换言之,在最佳条件下,它可以在每个时钟上执行两条指令。只有在没有缓存未命中、分支预测失误等情况下才会出现最佳状态。谢谢你,简。我得到了一些指向TI网站()的wiki链接。这是一个很好的链接。我们打算用Cortex A9板来购买sabre lite。我想-mfpu=neon是一个不错的选择,因为它同时使用两个协处理器。非常感谢。