Skip to content

Commit

Permalink
runtime: fix time on windows/arm under WINE
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
rsc committed Feb 19, 2021
1 parent 38672d3 commit 91cc484
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions src/runtime/sys_windows_arm.s
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 91cc484

Please sign in to comment.