aarch64指令编码中是否有未使用的位?

时间:2018-01-04 08:50:20

标签: armv8

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

  

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

1 个答案:

答案 0 :(得分:4)

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

在“ARM体系结构参考手册”中,通常,当存在未使用的编码时,它会显示“未分配编码”或“预留编码”或类似内容。

Encoding for LDR (immediate) Unsigned offset

此外,还有大量免费编码可供使用,可能用于将来使用,例如可扩展矢量扩展模块。您可以在2016年8月22日的Hot Chips 28会议上看到Nigel Stephens在以下幻灯片中使用和免费的所有编码,请看第8页,灰色正方形是免费的未使用编码。