【发布时间】:2020-12-21 15:54:49
【问题描述】:
我读到herejmpl 指令必须后跟 nop。
SPARC V8 手册告诉我,rett 指令必须始终前面有jmpl 指令。
但是,我无法找到 jmpl 和 restore 指令之间的关系。我目前正在研究 SPARC V8 体系结构,我遇到的 ELF 文件之一在jmpl 之后有一个restore,而我预计是nop。我不知道这是正确的还是 ELF(以及扩展的 SPARC 代码)是错误的。
restore 紧跟在jmpl 之后是否正确?
【问题讨论】:
-
这称为分支延迟槽。 跳转后的指令总是在跳转动作之前执行。在现代 SPARC 实施中,出于 CPU 设计原因,将这些插槽留空通常更快。我想他们已经硬编码了一些常见的特殊情况,比如
jmpl; rett。