]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix time on windows/arm under WINE
authorRuss Cox <rsc@golang.org>
Wed, 27 Jan 2021 16:22:02 +0000 (11:22 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 19 Feb 2021 00:03:59 +0000 (00:03 +0000)
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>
src/runtime/sys_windows_arm.s

index a30d63513ac7a336e2f1ec2bbfbe20bc5c728264..42278dcbe705250b740bf6b9009e660cfa6ffdec 100644 (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