arm llvm汇编q和v寄存器

时间:2018-01-24 10:01:01

标签: assembly optimization arm

在xcode生成的以下代码中,您会在前两行中看到值已加载到q0q1寄存器,但使用的是v0和{{1寄存器,为什么不使用v1q0代替q1v0

v1v0的{​​{1}}和v1别名(来源:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0024a/ch04s06s02.html)?

q0

1 个答案:

答案 0 :(得分:1)

名称v0q0指的是同一个寄存器。不同之处在于如何解释寄存器内容:名称q0表示寄存器被解释为单个128位数量,而名称v0表示寄存器被解释为某个向量的向量。向量元素的类型由指令助记符的后缀表示。在您的情况下,.4s表示四个32字(32位量)的向量,而.16b表示16个八位字节(八位量)的向量。此表示法的具体细节将在您已链接到的文档中进行说明。