reflect, runtime: drop RegabiArgs conditions

With the previous CL, internal/abi.IntArgRegs and FloatArgRegs
is controlled by RegabiArgs (or always enabled), so there is no
need to check for that goexperiment.

There are a few places we guard register-ABI specific code and
tests with the RegabiArgs flag. Switch to checking for the number
of argument registers instead.

Change-Id: I79fff9fd1e919684ffaf73aba9e7e85d5a9e1629
Reviewed-on: https://go-review.googlesource.com/c/go/+/393363
Trust: Cherry Mui <cherryyz@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
Cherry Mui 2022-03-16 12:12:50 -04:00
parent 3684abbf6c
commit d8bee94be2
4 changed files with 8 additions and 11 deletions

View File

@ -7,7 +7,6 @@ package reflect
import (
"internal/abi"
"internal/goarch"
"internal/goexperiment"
"unsafe"
)
@ -30,9 +29,9 @@ import (
// commented out there should be the actual values once
// we're ready to use the register ABI everywhere.
var (
intArgRegs = abi.IntArgRegs * goexperiment.RegabiArgsInt
floatArgRegs = abi.FloatArgRegs * goexperiment.RegabiArgsInt
floatRegSize = uintptr(abi.EffectiveFloatRegSize * goexperiment.RegabiArgsInt)
intArgRegs = abi.IntArgRegs
floatArgRegs = abi.FloatArgRegs
floatRegSize = uintptr(abi.EffectiveFloatRegSize)
)
// abiStep represents an ABI "instruction." Each instruction

View File

@ -16,7 +16,6 @@ package runtime_test
import (
"fmt"
"internal/abi"
"internal/goexperiment"
"math"
"os"
"regexp"
@ -144,7 +143,7 @@ func TestDebugCall(t *testing.T) {
intRegs := regs.Ints[:]
floatRegs := regs.Floats[:]
fval := float64(42.0)
if goexperiment.RegabiArgs {
if len(intRegs) > 0 {
intRegs[0] = 42
floatRegs[0] = math.Float64bits(fval)
} else {
@ -159,7 +158,7 @@ func TestDebugCall(t *testing.T) {
}
var result0 int
var result1 float64
if goexperiment.RegabiArgs {
if len(intRegs) > 0 {
result0 = int(intRegs[0])
result1 = math.Float64frombits(floatRegs[0])
} else {

View File

@ -7,7 +7,6 @@ package runtime
import (
"internal/abi"
"internal/goarch"
"internal/goexperiment"
"runtime/internal/math"
"unsafe"
)
@ -434,4 +433,4 @@ func sigpanic0()
// registers the system supports.
//
// Protected by finlock.
var intArgRegs = abi.IntArgRegs * (goexperiment.RegabiArgsInt | goarch.IsAmd64)
var intArgRegs = abi.IntArgRegs

View File

@ -6,7 +6,7 @@ package runtime_test
import (
"bytes"
"internal/goexperiment"
"internal/abi"
"internal/testenv"
"runtime"
"strings"
@ -23,7 +23,7 @@ func TestTracebackArgs(t *testing.T) {
abiSel := func(x, y string) string {
// select expected output based on ABI
// In noopt build we always spill arguments so the output is the same as stack ABI.
if optimized && goexperiment.RegabiArgs {
if optimized && abi.IntArgRegs > 0 {
return x
}
return y