在xcode生成的以下代码中,您会在前两行中看到值已加载到q0
和q1
寄存器,但使用的是v0
和{{1寄存器,为什么不使用v1
和q0
代替q1
和v0
。
v1
和v0
的{{1}}和v1
别名(来源:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0024a/ch04s06s02.html)?
q0
答案 0 :(得分:1)
名称v0
和q0
指的是同一个寄存器。不同之处在于如何解释寄存器内容:名称q0
表示寄存器被解释为单个128位数量,而名称v0
表示寄存器被解释为某个向量的向量。向量元素的类型由指令助记符的后缀表示。在您的情况下,.4s
表示四个32字(32位量)的向量,而.16b
表示16个八位字节(八位量)的向量。此表示法的具体细节将在您已链接到的文档中进行说明。