]> Cypherpunks repositories - gostls13.git/commit
reflect,runtime: use internal ABI for selected ASM routines
authorThan McIntosh <thanm@google.com>
Wed, 14 Oct 2020 12:36:11 +0000 (08:36 -0400)
committerThan McIntosh <thanm@google.com>
Thu, 29 Oct 2020 15:13:09 +0000 (15:13 +0000)
commit50af50d136551e2009b2b52e829570536271cdaa
treeea00744bee71fee9f096928404082e6748e57b95
parentecb79e8afa7811fd23b2e550a2bc5b22ea0aa82d
reflect,runtime: use internal ABI for selected ASM routines

Change the definitions of selected runtime assembly routines
from ABI0 (the default) to ABIInternal. The ABIInternal def is
intended to indicate that these functions don't follow the existing Go
runtime ABI. In addition, convert the assembly reference to
runtime.main (from runtime.mainPC) to ABIInternal. Finally, for
functions such as "runtime.duffzero" that are called directly from
generated code, make sure that the compiler looks up the correct
ABI version.

This is intended to support the register abi work, however these
changes should not have any issues even when GOEXPERIMENT=regabi is
not in effect.

Updates #27539, #40724.

Change-Id: I9846f8dcaccc95718cf2e61a18b7e924a0677e4c
Reviewed-on: https://go-review.googlesource.com/c/go/+/262319
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Than McIntosh <thanm@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
19 files changed:
src/cmd/compile/internal/gc/ssa.go
src/cmd/internal/obj/wasm/wasmobj.go
src/reflect/asm_amd64.s
src/runtime/asm_amd64.s
src/runtime/asm_wasm.s
src/runtime/duff_amd64.s
src/runtime/mkpreempt.go
src/runtime/preempt_386.s
src/runtime/preempt_amd64.s
src/runtime/preempt_arm.s
src/runtime/preempt_arm64.s
src/runtime/preempt_mips64x.s
src/runtime/preempt_mipsx.s
src/runtime/preempt_ppc64x.s
src/runtime/preempt_riscv64.s
src/runtime/preempt_s390x.s
src/runtime/preempt_wasm.s
src/runtime/race_amd64.s
src/runtime/sys_linux_amd64.s