]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix solaris build
authorRuss Cox <rsc@golang.org>
Wed, 27 Aug 2014 18:52:25 +0000 (14:52 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 27 Aug 2014 18:52:25 +0000 (14:52 -0400)
nanotime1 is not a Go function and must not store its result at 0(FP).
That overwrites some data owned by the caller.

TBR=aram
CC=golang-codereviews
https://golang.org/cl/138730043

src/pkg/runtime/sys_solaris_amd64.s

index 60447d3499eb6a267be9054d8c1322102cbee8cb..8506e9939a1ca4b165988d2c1b2f8ad98e01d391 100644 (file)
@@ -18,6 +18,7 @@ TEXT runtime·settls(SB),NOSPLIT,$8
 // Set the TLS errno pointer in M.
 //
 // Called using runtime·asmcgocall from os_solaris.c:/minit.
+// NOT USING GO CALLING CONVENTION.
 TEXT runtime·miniterrno(SB),NOSPLIT,$0
        // asmcgocall will put first argument into DI.
        CALL    DI      // SysV ABI so returns in AX
@@ -33,6 +34,7 @@ TEXT runtime·miniterrno(SB),NOSPLIT,$0
 // runtime·nanotime stack.
 //
 // Called using runtime·sysvicall6 from os_solaris.c:/nanotime.
+// NOT USING GO CALLING CONVENTION.
 TEXT runtime·nanotime1(SB),NOSPLIT,$0
        // need space for the timespec argument.
        SUBQ    $64, SP // 16 bytes will do, but who knows in the future?
@@ -44,10 +46,10 @@ TEXT runtime·nanotime1(SB),NOSPLIT,$0
        IMULQ   $1000000000, AX // multiply into nanoseconds
        ADDQ    8(SP), AX       // tv_nsec, offset should be stable.
        ADDQ    $64, SP
-       MOVQ    AX, ret+0(FP)
        RET
 
 // pipe(3c) wrapper that returns fds in AX, DX.
+// NOT USING GO CALLING CONVENTION.
 TEXT runtime·pipe1(SB),NOSPLIT,$0
        SUBQ    $16, SP // 8 bytes will do, but stack has to be 16-byte alligned
        MOVQ    SP, DI
@@ -67,6 +69,7 @@ TEXT runtime·pipe1(SB),NOSPLIT,$0
 // section 3.2.3.
 //
 // Called by runtime·asmcgocall or runtime·cgocall.
+// NOT USING GO CALLING CONVENTION.
 TEXT runtime·asmsysvicall6(SB),NOSPLIT,$0
        // asmcgocall will put first argument into DI.
        PUSHQ   DI                      // save for later