我想了解armv8 NEON内联汇编代码中的条件。
在armv7中,可以通过如下检查溢出位来实现:

  VMRS r4, FPSCR
  BIC r4, r4, #(1<<27)
  VMSR FPSCR, r4

  vtst.16  d30, d30, d30
  vqadd.u16  d30, d30, d30

  vmrs r4, FPSCR
  tst  r4, #(1<<27)
  bne label1

但我无法在armv8等效代码中实现这一点。似乎SQADD不会影响FPSR中的溢出位,或者我无法像这样检查它。有可能还是有更好的方法来跳过大部分代码?

谢谢

最佳答案

Aarch64中提供了相同的信息。您只需要替换:
VMSR r4, FPSCRVMRS FPSCR, r4
经过:
MRS w4, FPSRMSR FPSR, w4

关于if-statement - armv8 NEON如果条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38145583/

10-10 18:22