1
0
mirror of https://github.com/golang/go synced 2024-11-26 04:07:59 -07:00

runtime: fix time on windows/arm under WINE

This code has clearly never run successfully,
since one of the “tail calls" calls the wrong function,
and both of them appear in functions with stack frames
that are never going to be properly unwound.
Probably there is no windows/arm under WINE at all.
But might as well fix the code.

Change-Id: I5fa62274b3661bc6bce098657b5bcf11d59655eb
Reviewed-on: https://go-review.googlesource.com/c/go/+/288811
Trust: Russ Cox <rsc@golang.org>
Trust: Jason A. Donenfeld <Jason@zx2c4.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Russ Cox 2021-01-27 11:22:02 -05:00
parent 38672d3dcf
commit 91cc484ea9

View File

@ -419,7 +419,7 @@ TEXT runtime·read_tls_fallback(SB),NOSPLIT|NOFRAME,$0
#define time_hi1 4
#define time_hi2 8
TEXT runtime·nanotime1(SB),NOSPLIT,$0-8
TEXT runtime·nanotime1(SB),NOSPLIT|NOFRAME,$0-8
MOVW $0, R0
MOVB runtime·useQPCTime(SB), R0
CMP $0, R0
@ -443,9 +443,8 @@ loop:
RET
useQPC:
B runtime·nanotimeQPC(SB) // tail call
RET
TEXT time·now(SB),NOSPLIT,$0-20
TEXT time·now(SB),NOSPLIT|NOFRAME,$0-20
MOVW $0, R0
MOVB runtime·useQPCTime(SB), R0
CMP $0, R0
@ -519,8 +518,7 @@ wall:
MOVW R1,nsec+8(FP)
RET
useQPC:
B runtime·nanotimeQPC(SB) // tail call
RET
B runtime·nowQPC(SB) // tail call
// save_g saves the g register (R10) into thread local memory
// so that we can call externally compiled