【发布时间】:2017-11-17 06:56:53
【问题描述】:
RISC-V 规范 v2.2(JAL 指令,第 15 页)提到了“标准调用约定”:
标准软件调用约定使用 x1 作为返回地址寄存器,使用 x5 作为备用链接寄存器。
带有以下设计评论:
备用链接寄存器支持调用毫代码例程(例如,用于保存和恢复的例程) 压缩代码中的寄存器),同时保留常规返回地址寄存器。
什么是备用链接寄存器?
我知道“链接寄存器”是一个寄存器,用于存储返回时要跳转到的 pc,并且毫码/微码是低于 ISA 级别的较低级别的指令格式。是否使用x5 而不是x1 用于围绕“正常调用”的某些(微码/毫秒)指令以避免寄存器洗牌或溢出?你有一个典型的使用例子吗?
在link registers 上的 Wikipedia 文章中添加对备用链接寄存器的解释可能会有所帮助,这是我寻找额外信息的地方。
【问题讨论】:
-
如果近期没人能回答这个问题,你也可以在 sw-dev 邮件列表中提问。
-
@gasche 我想知道您是否对答案有任何更新?如果有,可以分享一下吗?
标签: riscv