]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: call sigtrampgo on solaris
authorElias Naur <elias.naur@gmail.com>
Tue, 29 Aug 2017 09:03:30 +0000 (11:03 +0200)
committerElias Naur <elias.naur@gmail.com>
Tue, 29 Aug 2017 19:57:32 +0000 (19:57 +0000)
CL 57291 broke on solaris because it depends on signal forwarding
working for signals raised by dieFromSignal.
Call sigtrampgo instead of sighandler directly, like the other
unix platforms.

Fixes the solaris builders.

Change-Id: I6bf314c436d1edeaecc4b03f15a9155270919524
Reviewed-on: https://go-review.googlesource.com/59811
Run-TryBot: Elias Naur <elias.naur@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/runtime/sys_solaris_amd64.s

index aeb2e2c897cc9d49425417d76de200ea522e3023..2b6dabab99e903289f87139d8140e80d375b8982 100644 (file)
@@ -183,9 +183,6 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$0
        JMP     exit
 
 allgood:
-       // save g
-       MOVQ    R10, 80(SP)
-
        // Save m->libcall and m->scratch. We need to do this because we
        // might get interrupted by a signal in runtime·asmcgocall.
 
@@ -223,19 +220,11 @@ allgood:
        MOVL    0(R10), R10
        MOVQ    R10, 160(SP)
 
-       MOVQ    g(BX), R10
-       // g = m->gsignal
-       MOVQ    m_gsignal(BP), BP
-       MOVQ    BP, g(BX)
-
-       // TODO: If current SP is not in gsignal.stack, then adjust.
-
        // prepare call
        MOVQ    DI, 0(SP)
        MOVQ    SI, 8(SP)
        MOVQ    DX, 16(SP)
-       MOVQ    R10, 24(SP)
-       CALL    runtime·sighandler(SB)
+       CALL    runtime·sigtrampgo(SB)
 
        get_tls(BX)
        MOVQ    g(BX), BP
@@ -273,10 +262,6 @@ allgood:
        MOVQ    160(SP), R10
        MOVL    R10, 0(R11)
 
-       // restore g
-       MOVQ    80(SP), R10
-       MOVQ    R10, g(BX)
-
 exit:
        // restore registers
        MOVQ    32(SP), BX