]> Cypherpunks.ru repositories - gostls13.git/commit
[dev.regabi] reflect: support for register ABI on amd64 for reflect.(Value).Call
authorMichael Anthony Knyszek <mknyszek@google.com>
Thu, 22 Oct 2020 16:29:04 +0000 (16:29 +0000)
committerMichael Knyszek <mknyszek@google.com>
Tue, 16 Feb 2021 15:51:50 +0000 (15:51 +0000)
commite0215315f51c62f6d2c5ea5ed7008b7e7963dd5d
tree1ea397eaca06f15c08b4fd79a6a95af6f215ed26
parentb81efb7ec4348951211058cf4fdfc045c75255d6
[dev.regabi] reflect: support for register ABI on amd64 for reflect.(Value).Call

This change adds support for the new register ABI on amd64 to
reflect.(Value).Call. If internal/abi's register counts are non-zero,
reflect will try to set up arguments in registers on the Call path.

Note that because the register ABI becomes ABI0 with zero registers
available, this should keep working as it did before.

This change does not add any tests for the register ABI case because
there's no way to do so at the moment.

For #40724.

Change-Id: I8aa089a5aa5a31b72e56b3d9388dd3f82203985b
Reviewed-on: https://go-review.googlesource.com/c/go/+/272568
Trust: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
22 files changed:
src/go/build/deps_test.go
src/internal/abi/abi.go
src/reflect/abi.go [new file with mode: 0644]
src/reflect/export_test.go
src/reflect/makefunc.go
src/reflect/type.go
src/reflect/value.go
src/runtime/asm_386.s
src/runtime/asm_amd64.s
src/runtime/asm_arm.s
src/runtime/asm_arm64.s
src/runtime/asm_mips64x.s
src/runtime/asm_mipsx.s
src/runtime/asm_ppc64x.s
src/runtime/asm_riscv64.s
src/runtime/asm_s390x.s
src/runtime/asm_wasm.s
src/runtime/mbarrier.go
src/runtime/mfinal.go
src/runtime/panic.go
src/runtime/stubs.go
src/runtime/syscall_windows.go