]> Cypherpunks repositories - gostls13.git/commit
[dev.typeparams] cmd/compile: make softfloat mode work with register ABI
authorCherry Mui <cherryyz@google.com>
Thu, 10 Jun 2021 00:14:15 +0000 (20:14 -0400)
committerCherry Mui <cherryyz@google.com>
Tue, 3 Aug 2021 16:14:24 +0000 (16:14 +0000)
commit656f0888b7de3b96792c1444bc15fe2e586ab5ef
treef66c00ad712779af9fe91bec830fdecf428fada0
parent1b193598b3a4ad3138626ca97bca752e9e63b21c
[dev.typeparams] cmd/compile: make softfloat mode work with register ABI

Previously, softfloat mode does not work with register ABI, mainly
because the compiler doesn't know how to pass floating point
arguments and results. According to the ABI it should be passed in
FP registers, but there isn't any in softfloat mode.

This CL makes it work. When softfloat is used, we define the ABI
as having 0 floating point registers (because there aren't any).
The integer registers are unchanged. So floating point arguments
and results are passed in memory.

Another option is to pass (the bit representation of) floating
point values in integer registers. But this complicates things
because it'd need to reorder integer argument registers.

Change-Id: Ibecbeccb658c10a868fa7f2dcf75138f719cc809
Reviewed-on: https://go-review.googlesource.com/c/go/+/327274
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
src/cmd/compile/internal/gc/main.go
src/cmd/compile/internal/ssa/config.go
src/cmd/compile/internal/ssa/expand_calls.go
src/cmd/compile/internal/ssa/export_test.go
src/cmd/compile/internal/ssa/softfloat.go
src/cmd/compile/internal/ssagen/ssa.go
test/fixedbugs/issue26163.go
test/fixedbugs/issue28688.go