This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ARM 和NEON 汇编条件执行问题

技术支持好:

在文档中说过

The instructions that can be conditional have an optional condition code, shown in syntax

descriptions as {cond}. Table 3-2shows the condition codes that you can use.

当我使用ARM 指令

subs r3, r3, #1

strpl r3, [r0]!

汇编编译正常,可以条件执行,但是我现在想用neon汇编,vld和vst 使用条件执行时,比如vst1pl.64,编译失败,编译器输出错误说是该指令不可条件执行 Error: instruction cannot be conditional -- `vst1pl.64 {d0},[r0]!';

查看的neon编程手册中说的是可以的,以下是手册中的语法:

Syntax

Vopn{cond}.datatype list, [Rn{@align}]{!}

Vopn{cond}.datatype list, [Rn{@align}], Rm

语法中有 cond,说明是可以条件执行的。 我现在不清楚到底neon的 vstn 和vldn 到底可不可以条件执行?

Parents
  • 在 ARM 状态下,除 VFP 和 NEON 公用的指令之外,不能使用条件代码来控制

    NEON 指令的执行。

    在 Thumb-2 处理器上的 Thumb 状态下,你可以借助IT指令实现NEON指令的条件执行 (在NEON 指令上设置条件代码)。

    。 有关详细信息,请参考IT指令的用法。

Reply
  • 在 ARM 状态下,除 VFP 和 NEON 公用的指令之外,不能使用条件代码来控制

    NEON 指令的执行。

    在 Thumb-2 处理器上的 Thumb 状态下,你可以借助IT指令实现NEON指令的条件执行 (在NEON 指令上设置条件代码)。

    。 有关详细信息,请参考IT指令的用法。

Children