a5 / x15 调用后还能保持原参数吗?
不能假设。标准 psABI 将 a0-a7 标记为调用后不保持。
标准 psABI 将 a0-a7 用作参数寄存器,其中仅 a0-a1 也用于返回值;它们调用后不保持。
a5 / x15 属于 a0-a7 参数寄存器组。psABI 规定 a0-a7 用于传参,a0-a1 也用于返回值;这些寄存器调用后不保持。
a0-a7 在 psABI 中标记为调用后不保持。
调用返回后,不能假设旧 a5 参数值仍然存在。
对于不超过 XLEN 位的标量,若没有可用参数寄存器,psABI 按值通过栈传递。
addi a5, zero, 3 # 写入 a5
# a5 是参数寄存器,不属于 a0-a1 返回值寄存器不能假设。标准 psABI 将 a0-a7 标记为调用后不保持。
psABI 规定 a0-a1 也用于返回值。