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