1

根据关于 aarch64 指令编码的链接,某些指令中有未使用的位,如x下面的指令列表所示LDR。但是我有任何关于 armv8 手册中未使用位的文档。根据 armv8 手册,这些未使用的位是否有效?

xxx1 1101 x1ii iiii iiii iinn nnnt tttt - ldr Ft ADDR_UIMM12

4

1 回答 1

4

那个链接是 2012 年的,也就是 ARMv8 架构发布的时候,所以没有太多关于它的信息。在那种情况下,“x”与指令的解码有关,不确定他们是如何做到的,对我来说它看起来不正确。您可以在ARM Architecture Reference Manual中找到所有编码值,查看 LDR 指令使用立即值(例如 LDR(立即数)第 693 页,特别是下一页中的无符号偏移量)。您将在那里看到两个最高有效位用于寄存器的大小(大小 == 10 用于 W 寄存器(32 位),大小 == 11 用于 X 寄存器(64 位))。

通常在 ARM 架构参考手册中,当有未使用的编码时,它会显示未分配编码或保留编码或类似的东西。

LDR 编码(立即数)无符号偏移

此外,还有很多免费的编码可供使用,可能是为了将来使用,或者例如用于 Scalable Vector Extensions 模块。您可以在 Nigel Stephens 在 2016 年 8 月 22 日的Hot Chips 28会议上的以下幻灯片中看到所有使用和免费的编码,请看第 8 片,灰色方块是免费未使用的编码。

于 2018-01-15T15:50:44.043 回答