armv8 NEON如果条件

时间:2016-07-01 12:34:29

标签: if-statement arm overflow conditional-statements neon

我想在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中的溢出位,或者我无法像这样检查它。是否有可能或者是否有更好的方法来跳过长篇代码?

谢谢

1 个答案:

答案 0 :(得分:1)

Aarch64中提供了相同的信息。你只需要替换:

VMSR r4, FPSCR VMRS FPSCR, r4

由:

MRS w4, FPSR MSR FPSR, w4