Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly arm llvm组件q和v寄存器_Assembly_Optimization_Arm - Fatal编程技术网

Assembly arm llvm组件q和v寄存器

Assembly arm llvm组件q和v寄存器,assembly,optimization,arm,Assembly,Optimization,Arm,在以下由xcode生成的代码中,您可以在前两行中看到,值被加载到q0和q1寄存器,但从v0和v1寄存器使用,为什么不同时使用q0和q1而不是v0和v1 是q0和q1的v0和v1别名(来源:) 0x100005db0:ldrq0[x9,x12] 0x100005db4:ldr q1[x10,x12] 0x100005db8:cmeq.4s v2、v0、v4 0x100005dbc:bsl.16b v2、v1、v0 名称v0和q0指的是同一寄存器。区别在于寄存器内容的解释方式:名称q0表示寄存器被解

在以下由xcode生成的代码中,您可以在前两行中看到,值被加载到
q0
q1
寄存器,但从
v0
v1
寄存器使用,为什么不同时使用
q0
q1
而不是
v0
v1

q0
q1
v0
v1
别名(来源:)

0x100005db0:ldrq0[x9,x12]
0x100005db4:ldr q1[x10,x12]
0x100005db8:cmeq.4s v2、v0、v4
0x100005dbc:bsl.16b v2、v1、v0

名称
v0
q0
指的是同一寄存器。区别在于寄存器内容的解释方式:名称
q0
表示寄存器被解释为单个128位量,而名称
v0
表示寄存器被解释为某个向量。向量元素的类型由指令助记符的后缀表示。在您的例子中,
.4s
表示四个32字(32位量)的向量,而
.16b
表示16个八位字节(8位量)的向量。您已经链接到的文档中解释了此符号的具体细节。

名称
v0
q0
指的是同一寄存器。区别在于寄存器内容的解释方式:名称
q0
表示寄存器被解释为单个128位量,而名称
v0
表示寄存器被解释为某个向量。向量元素的类型由指令助记符的后缀表示。在您的例子中,
.4s
表示四个32字(32位量)的向量,而
.16b
表示16个八位字节(8位量)的向量。您已经链接到的文档中解释了此符号的具体细节

0x100005db0 <+548>:  ldr    q0, [x9, x12]
0x100005db4 <+552>:  ldr    q1, [x10, x12]
0x100005db8 <+556>:  cmeq.4s v2, v0, v4
0x100005dbc <+560>:  bsl.16b v2, v1, v0