aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/sys_linux_amd64.s
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2021-04-28 13:06:55 -0700
committerIan Lance Taylor <iant@golang.org>2021-04-29 14:16:19 +0000
commitb15372f39bb555196053ddac5e86931a1502c86c (patch)
treee19b1e56fa4cdc2c6dd2628eaab9430702a8d33e /src/runtime/sys_linux_amd64.s
parent862ddb37b4e24bcb89f060d50325c8f863ee99bc (diff)
downloadgo-b15372f39bb555196053ddac5e86931a1502c86c.tar.gz
go-b15372f39bb555196053ddac5e86931a1502c86c.zip
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>
Diffstat (limited to 'src/runtime/sys_linux_amd64.s')
-rw-r--r--src/runtime/sys_linux_amd64.s73
1 files changed, 2 insertions, 71 deletions
diff --git a/src/runtime/sys_linux_amd64.s b/src/runtime/sys_linux_amd64.s
index ee587de805..33cc670b64 100644
--- a/src/runtime/sys_linux_amd64.s
+++ b/src/runtime/sys_linux_amd64.s
@@ -204,9 +204,8 @@ TEXT runtime·mincore(SB),NOSPLIT,$0-28
MOVL AX, ret+24(FP)
RET
-// func walltime() (sec int64, nsec int32)
-// non-zero frame-size means bp is saved and restored
-TEXT runtime·walltime(SB),NOSPLIT,$16-12
+// func nanotime1() int64
+TEXT runtime·nanotime1(SB),NOSPLIT,$16-8
// We don't know how much stack space the VDSO code will need,
// so switch to g0.
// In particular, a kernel configured with CONFIG_OPTIMIZE_INLINING=n
@@ -232,74 +231,6 @@ TEXT runtime·walltime(SB),NOSPLIT,$16-12
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
- 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 ret+0(FP), DX
MOVQ -8(DX), CX
MOVQ CX, m_vdsoPC(BX)