s1 / x9 为什么适合保存跨调用值?
s0-s11 调用后保持;callee 修改它们时必须恢复,所以 caller 可以依赖其返回后不变。
psABI 将 s0-s11 标记为调用后保持。被调用函数如果修改这些寄存器,必须在返回前恢复入口值。s1 没有帧指针别名;可选帧指针规则只适用于 x8/s0。
s1 / x9 属于 s0-s11 保存寄存器组。psABI 规定它调用后保持;被调用函数如果修改它,返回前必须恢复。
标准 psABI 将 s0-s11 标记为调用后保持。
被调用函数修改 s* 时,必须在返回前恢复入口值。
s1 没有帧指针别名。
# s1 是调用后保持的保存寄存器
# 修改 s1 的过程必须在返回前恢复入口值s0-s11 调用后保持;callee 修改它们时必须恢复,所以 caller 可以依赖其返回后不变。
被调用函数负责恢复。