为什么1的补码仍然用于编码向量指令?

时间:2017-07-21 18:14:11

标签: intel twos-complement ones-complement

在一个答案中,jww指出1的补码仍然用于编码智能体系结构上的向量指令,Ruslan澄清说这些指令的使用更多,因为自动矢量化变得很常见。

1的补码是否有优势导致它继续用于这些指令,还是仅仅因为历史原因而被使用?

引用jww:

Intel® 64 and IA-32 Architectures Software Developer’s Manual 2A,第3-8页:

  

3.1.1.8说明部分

     

然后通过多个信息部分描述每个指令。 “描述”部分更详细地描述了指令和所需操作数的用途。

     

说明部分中可能使用的术语摘要:
  *传统SSE:指SSE,SSE2,SSE3,SSSE3,SSE4,AESNI,PCLMULQDQ以及任何引用XMM寄存器且未使用VEX前缀编码的未来指令集。
  * VEX.vvvv。指定源或目标寄存器的VEX位域(以1的补码形式)   * rm_field:ModR / M r / m字段和任何REX.B的简写   * reg_field:ModR / M reg字段和任何REX.R

的简写

1 个答案:

答案 0 :(得分:3)

那篇文章并不是说1用于整数存储的补码。甚至VEX编码的整数指令也会对2的恭维整数起作用。

所有这一点都表示,VEX指令中的编码寄存器ID需要具有用于ID寄存器ID的正常位。该问题中的一些人推测这是为了防止与现有说明冲突,这对我来说很有意义。