3

在回答中,jww指出 1 的补码仍用于编码英特尔架构上的向量指令,Ruslan 澄清说,随着自动向量化变得普遍,这些指令被更多地使用。

1 的补码是否有一个优势导致它继续在这些指令中使用,或者它只是出于历史原因而使用?

引用 jww:

来自英特尔® 64 和 IA-32 架构软件开发人员手册2A,第 3-8 页:

3.1.1.8 描述部分

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

描述部分可能使用的术语摘要:
* Legacy 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 的简写

4

1 回答 1

4

那篇文章不是在谈论将 1 的补码用于整数存储。即使是 VEX 编码的整数指令也会作用于 2 的补码整数。

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

于 2017-07-21T18:20:48.607 回答