ARM7 Cortex A8上的浮点状态传输

时间:2011-12-29 08:05:48

标签: performance floating-point llvm arm7 assembly

有一个比较:

if( val0 > val1 )

其中val0和val1是双变量。

Apple LLVM编译器生成的代码是

+0x184  vcmpe.f64                      d17, d16
+0x188  vmrs                           APSR_nzcv, fpscr <-- FP status transfer (30 cycles stall of ALU)
+0x18c  ble.w                          .....

有没有办法避免这种转移?

[更新]代码在Cortex-A8处理器上运行。

1 个答案:

答案 0 :(得分:0)

因为似乎不可能避免标志转换,因为代码流管理处理处理器的ARM部分,而不是Neon协处理器。 问题已经结束。