mirror of
https://github.com/golang/go
synced 2024-11-26 16:57:14 -07:00
cmd/compile: guard partially live arg spilling with number of registers
The code that does partially live in-register arg spilling is currently guarded with GOEXPERIMENT=regabiargs. But on platforms where GOEXPERIMENT=regabiargs is not enabled there are still tests that use register args. Guard it with actual number of registers used, so it covers both. Should fix the freeBSD builder. Change-Id: I0d3c49d7a2389096cb6b17ca35b9b4ce567bc91e Reviewed-on: https://go-review.googlesource.com/c/go/+/311830 Trust: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
parent
109d7580a5
commit
77860ad280
@ -6898,7 +6898,7 @@ func defframe(s *State, e *ssafn, f *ssa.Func) {
|
|||||||
// and not address-taken (for non-SSA-able or address-taken arguments we always
|
// and not address-taken (for non-SSA-able or address-taken arguments we always
|
||||||
// spill upfront).
|
// spill upfront).
|
||||||
// TODO(register args) Make liveness more fine-grained to that partial spilling is okay.
|
// TODO(register args) Make liveness more fine-grained to that partial spilling is okay.
|
||||||
if buildcfg.Experiment.RegabiArgs {
|
if f.OwnAux.ABIInfo().InRegistersUsed() != 0 {
|
||||||
// First, see if it is already spilled before it may be live. Look for a spill
|
// First, see if it is already spilled before it may be live. Look for a spill
|
||||||
// in the entry block up to the first safepoint.
|
// in the entry block up to the first safepoint.
|
||||||
type nameOff struct {
|
type nameOff struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user