【发布时间】:2020-07-26 20:42:12
【问题描述】:
我正在使用带有 linux/riscv64 目标的 Go 1.14,我正在编译一个 hello world,我在程序集中看到了这个:
1b078: 04813183 ld gp,72(sp)
1b07c: 00018003 lb zero,0(gp)
1b080: 00313423 sd gp,8(sp)
如您所见,从 [GP+0] 开始的负载为零,根据规范,这应该是“异常或其他”:
目标为 x0 的加载仍然必须引发任何异常并导致任何其他副作用,即使加载值被丢弃。
这里到底发生了什么?编译器是否产生错误输出?
【问题讨论】: