runtime: remove linux-amd64 walltime function

It's never called.

Change-Id: I8956743b21301816b5f37a9b34e3f50ef7b2e70a
Reviewed-on: https://go-review.googlesource.com/c/go/+/314771
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
Ian Lance Taylor 2021-04-28 13:06:55 -07:00
parent 862ddb37b4
commit b15372f39b
2 changed files with 10 additions and 73 deletions

View file

@ -204,9 +204,8 @@ TEXT runtime·mincore(SB),NOSPLIT,$0-28
MOVL AX, ret+24(FP) MOVL AX, ret+24(FP)
RET RET
// func walltime() (sec int64, nsec int32) // func nanotime1() int64
// non-zero frame-size means bp is saved and restored TEXT runtime·nanotime1(SB),NOSPLIT,$16-8
TEXT runtime·walltime(SB),NOSPLIT,$16-12
// We don't know how much stack space the VDSO code will need, // We don't know how much stack space the VDSO code will need,
// so switch to g0. // so switch to g0.
// In particular, a kernel configured with CONFIG_OPTIMIZE_INLINING=n // In particular, a kernel configured with CONFIG_OPTIMIZE_INLINING=n
@ -216,74 +215,6 @@ TEXT runtime·walltime(SB),NOSPLIT,$16-12
MOVQ SP, R12 // Save old SP; R12 unchanged by C code. MOVQ SP, R12 // Save old SP; R12 unchanged by C code.
#ifdef GOEXPERIMENT_regabig
MOVQ g_m(R14), BX // BX unchanged by C code.
#else
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), BX // BX unchanged by C code.
#endif
// Set vdsoPC and vdsoSP for SIGPROF traceback.
// Save the old values on stack and restore them on exit,
// so this function is reentrant.
MOVQ m_vdsoPC(BX), CX
MOVQ m_vdsoSP(BX), DX
MOVQ CX, 0(SP)
MOVQ DX, 8(SP)
LEAQ sec+0(FP), DX
MOVQ -8(DX), CX
MOVQ CX, m_vdsoPC(BX)
MOVQ DX, m_vdsoSP(BX)
#ifdef GOEXPERIMENT_regabig
CMPQ R14, m_curg(BX) // Only switch if on curg.
#else
CMPQ AX, m_curg(BX) // Only switch if on curg.
#endif
JNE noswitch
MOVQ m_g0(BX), DX
MOVQ (g_sched+gobuf_sp)(DX), SP // Set SP to g0 stack
noswitch:
SUBQ $16, SP // Space for results
ANDQ $~15, SP // Align for C code
MOVL $0, DI // CLOCK_REALTIME
LEAQ 0(SP), SI
MOVQ runtime·vdsoClockgettimeSym(SB), AX
CMPQ AX, $0
JEQ fallback
CALL AX
ret:
MOVQ 0(SP), AX // sec
MOVQ 8(SP), DX // nsec
MOVQ R12, SP // Restore real SP
// Restore vdsoPC, vdsoSP
// We don't worry about being signaled between the two stores.
// If we are not in a signal handler, we'll restore vdsoSP to 0,
// and no one will care about vdsoPC. If we are in a signal handler,
// we cannot receive another signal.
MOVQ 8(SP), CX
MOVQ CX, m_vdsoSP(BX)
MOVQ 0(SP), CX
MOVQ CX, m_vdsoPC(BX)
MOVQ AX, sec+0(FP)
MOVL DX, nsec+8(FP)
RET
fallback:
MOVQ $SYS_clock_gettime, AX
SYSCALL
JMP ret
// func nanotime1() int64
TEXT runtime·nanotime1(SB),NOSPLIT,$16-8
// Switch to g0 stack. See comment above in runtime·walltime.
MOVQ SP, R12 // Save old SP; R12 unchanged by C code.
#ifdef GOEXPERIMENT_regabig #ifdef GOEXPERIMENT_regabig
MOVQ g_m(R14), BX // BX unchanged by C code. MOVQ g_m(R14), BX // BX unchanged by C code.
#else #else

View file

@ -2,8 +2,14 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
//go:build !aix && !darwin && !freebsd && !openbsd && !solaris && !windows //go:build !aix && !darwin && !freebsd && !openbsd && !solaris && !windows && !(linux && amd64)
// +build !aix,!darwin,!freebsd,!openbsd,!solaris,!windows // +build !aix
// +build !darwin
// +build !freebsd
// +build !openbsd
// +build !solaris
// +build !windows
// +build !linux !amd64
package runtime package runtime