寄存器指南

RISC-V t5 / x30 临时变量寄存器

临时寄存器5(x30)。在标准 RISC-V psABI 调用约定中,t5 是临时寄存器,调用后不保持。

ABI 名称:t5;物理寄存器:x30。
保存责任:调用后不保持。
先按 psABI 角色理解它,再看具体指令如何读写。
物理编号 x30ABI 名 t5保存责任 调用后不保持
角色
临时变量
调用约定
调用后不保持
先记一句
t5 是标准 psABI 的临时寄存器,调用后不保持。
psABI 规范依据

临时寄存器

psABI 将 t0-t6 标记为临时寄存器。它们不是 callee-saved;调用者如果需要跨调用保留其中的值,必须自己保存。

调用后保持:否
RISC-V psABI integer register convention
快速理解与检索要点

psABI 的 Integer register convention 将 x30 命名为 t5,并将其列为调用后不保持的临时寄存器。

x28-x31 / t3-t6 是临时寄存器,调用后不保持。

适合什么时候用

  • - 按标准 psABI 将 t5 识别为调用后不保持的临时寄存器。
  • - 过程退出时,未指定为返回值或调用后保持寄存器的内容未指定。
  • - 临时寄存器分类不规定具体的调用序列或保存位置。

什么时候不要这样用

  • - 不要假定 t5 的调用前值在调用后仍可用。
  • - 不要把 temporary 这一 psABI 分类说成硬件特殊行为。

调用前后会发生什么

1

t5 是标准 psABI 的临时寄存器,调用后不保持。

2

未指定为返回值或调用后保持寄存器的内容在过程退出时未指定。

3

该规则适用于标准调用约定。

t5 的标准 psABI 规则

示例用于理解规则,不替代完整程序
# t5:调用后不保持的临时寄存器
# 适用范围:标准 psABI 调用约定

常见问题

t5 / x30 调用后会保持吗?

不会。t0-t6 是临时寄存器,调用后不保持。