根据这个关于aarch64指令编码的link,某些指令中有未使用的位,例如x
指令的下面列出的LDR
。但我在armv8手册中有关未使用位的任何文档。根据armv8手册,这些未使用的位是否有效?
xxx1 1101 x1ii iiii iiii iinn nnnt tttt - ldr Ft ADDR_UIMM12
答案 0 :(得分:4)
该链接是从2012年开始的,也就是ARMv8架构发布的时候,因此没有太多关于它的信息。 ' x'在这种情况下,与指令的解码有关,不确定它们是如何做的,对我来说看起来不正确。 您可以在ARM Architecture Reference Manual中找到编码的所有值,查看LDR指令使用立即值(例如,LDR(立即)页面693,特别是下一页中的无符号偏移)。 您将看到两个最高有效位用于寄存器的大小(大小== 10用于W寄存器(32位),大小== 11用于X寄存器(64位))。
在“ARM体系结构参考手册”中,通常,当存在未使用的编码时,它会显示“未分配编码”或“预留编码”或类似内容。
此外,还有大量免费编码可供使用,可能用于将来使用,例如可扩展矢量扩展模块。您可以在2016年8月22日的Hot Chips 28会议上看到Nigel Stephens在以下幻灯片中使用和免费的所有编码,请看第8页,灰色正方形是免费的未使用编码。