如何验证ARM工具链中的VFPv4功能

时间:2012-10-09 06:18:07

标签: arm cortex-a

我有一个用于Cortex A15的预编译ARM工具链。我想检查它是否生成正确的VFPv4指令。任何机构都有任何想法吗?

1 个答案:

答案 0 :(得分:3)

我们可以在gcc release log中查找

...
GCC now supports VFPv4-based FPUs and FPUs with single-precision-only VFP.
...

我们也可以手动验证它。根据ARM体系结构手册VFPv4至少添加了Vector Fused Multiply Accumulate / Subtract

void test_vfp4() {
    asm("VFMA.F32 q1, q2, q3");
}

使用-mfpu=neon-vfpv4开关进行编译(否则我的工具链会说Error: selected processor does not support ARM mode 'vfma.f32 q1,q2,q3'

gcc -mfpu=neon-vfpv4 -O2 -marm -c vfpv4.c

并使用

转储二进制文件
arm-linux-gnueabihf-objdump -S vfpv4.o 

应列在下面

00000000 <test_vfp4>:
   0:   f2042c56    vfma.f32    q1, q2, q3
   4:   e12fff1e    bx  lr

但是我不知道如何在C级使用它,因为我找不到这些融合指令的任何intrinsic listed或者想到任何其他方式。