From eaa1ddee84cfdfbd47183b03962744fea52624f0 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Mon, 15 Mar 2021 16:48:54 -0400 Subject: all: explode GOEXPERIMENT=regabi into 5 sub-experiments This separates GOEXPERIMENT=regabi into five sub-experiments: regabiwrappers, regabig, regabireflect, regabidefer, and regabiargs. Setting GOEXPERIMENT=regabi now implies the working subset of these (currently, regabiwrappers, regabig, and regabireflect). This simplifies testing, helps derisk the register ABI project, and will also help with performance comparisons. This replaces the -abiwrap flag to the compiler and linker with the regabiwrappers experiment. As part of this, regabiargs now enables registers for all calls in the compiler. Previously, this was statically disabled in regabiEnabledForAllCompilation, but now that we can control it independently, this isn't necessary. For #40724. Change-Id: I5171e60cda6789031f2ef034cc2e7c5d62459122 Reviewed-on: https://go-review.googlesource.com/c/go/+/302070 Trust: Austin Clements Run-TryBot: Austin Clements TryBot-Result: Go Bot Reviewed-by: Cherry Zhang Reviewed-by: David Chase --- src/runtime/sys_linux_amd64.s | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/runtime/sys_linux_amd64.s') diff --git a/src/runtime/sys_linux_amd64.s b/src/runtime/sys_linux_amd64.s index d48573c2c5..584f2c5b1e 100644 --- a/src/runtime/sys_linux_amd64.s +++ b/src/runtime/sys_linux_amd64.s @@ -215,7 +215,7 @@ TEXT runtime·walltime1(SB),NOSPLIT,$16-12 MOVQ SP, R12 // Save old SP; R12 unchanged by C code. -#ifdef GOEXPERIMENT_REGABI +#ifdef GOEXPERIMENT_REGABI_G MOVQ g_m(R14), BX // BX unchanged by C code. #else get_tls(CX) @@ -236,7 +236,7 @@ TEXT runtime·walltime1(SB),NOSPLIT,$16-12 MOVQ CX, m_vdsoPC(BX) MOVQ DX, m_vdsoSP(BX) -#ifdef GOEXPERIMENT_REGABI +#ifdef GOEXPERIMENT_REGABI_G CMPQ R14, m_curg(BX) // Only switch if on curg. #else CMPQ AX, m_curg(BX) // Only switch if on curg. @@ -283,7 +283,7 @@ TEXT runtime·nanotime1(SB),NOSPLIT,$16-8 MOVQ SP, R12 // Save old SP; R12 unchanged by C code. -#ifdef GOEXPERIMENT_REGABI +#ifdef GOEXPERIMENT_REGABI_G MOVQ g_m(R14), BX // BX unchanged by C code. #else get_tls(CX) @@ -304,7 +304,7 @@ TEXT runtime·nanotime1(SB),NOSPLIT,$16-8 MOVQ CX, m_vdsoPC(BX) MOVQ DX, m_vdsoSP(BX) -#ifdef GOEXPERIMENT_REGABI +#ifdef GOEXPERIMENT_REGABI_G CMPQ R14, m_curg(BX) // Only switch if on curg. #else CMPQ AX, m_curg(BX) // Only switch if on curg. -- cgit v1.3