gp / x3 可以当普通临时寄存器吗?
不应该。psABI 将它标记为不可分配,普通过程不应修改。
gp 是 psABI 中的 global pointer,并被标记为不可分配寄存器。普通过程不应修改 gp;标准 ABI 这样规定,是因为信号处理器等运行环境可能依赖它的值。
gp 在 psABI 中标记为不可分配寄存器。普通过程不应修改它,因为信号处理器、运行时或平台约定可能依赖该值。
gp / x3 是 psABI 标记的不可分配寄存器。普通过程不应修改它;它不是普通 caller-saved 或 callee-saved 寄存器选择。
psABI 将 gp 标记为不可分配寄存器。
psABI 明确普通过程不应修改 gp,因为信号处理器可能依赖它。
它不是 caller-saved 或 callee-saved 的普通选择题,而是不要分配给普通代码使用。
# 不要在普通函数中借用 gp
# 如果平台 ABI 指定了 gp 用途,按平台 ABI 处理
# 临时计算请使用 t0-t6 或按调用约定保存其他寄存器不应该。psABI 将它标记为不可分配,普通过程不应修改。
都不是普通意义上的 caller/callee 选择;它是不可分配寄存器,普通代码不应借用。