4

是否有任何资源可以涵盖将 NEON Assembly 与 GNU 汇编器一起使用的语法?我读过该语法与使用 RVCT 汇编器的语法不同,但这是我唯一能找到的文档。有什么好的资源可以让我开始吗?

4

3 回答 3

4

除了一个小细节之外,NEON 语法是相同的:对齐的加载/存储在 ARM 中使用 @ ,在 GAS 中使用 ,:。这是因为@是 GAS 中的注释符号。

手臂:

 vld1.32         {d0-d3},   [r1@128]!
 vld1.32         {d16-d19}, [r1@128]

气体:

 vld1.32         {d0-d3},   [r1,:128]!
 vld1.32         {d16-d19}, [r1,:128]
于 2011-06-21T10:32:12.313 回答
2

我在http://www.shervinemami.info/armAssembly.html上写了一些关于 GCC 的 ARM + NEON 汇编代码的信息(包括一个示例 NEON 函数实现)

于 2011-07-14T09:33:14.663 回答
1

从 GAS 开始时,不能自我解释的一件事是定义符号的方式。它在 ARM 汇编器中的工作方式不适用于 GAS。

但在 GAS 中,您可以只使用 #define 为某些寄存器制作符号。如...

#define MyLoopCounter r0

#define MyLoopInc #32

那样...

add MyLoopCounter,MyLoopCounter,MyLoopInc

是相同的

add r0,r0,#32

否则我发现几乎所有其他东西都是一样的,当然还有已经回答的对齐差异。

于 2011-06-21T20:22:17.927 回答