aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElias Naur <elias.naur@gmail.com>2017-08-29 11:03:30 +0200
committerElias Naur <elias.naur@gmail.com>2017-08-29 19:57:32 +0000
commitae84aaee44f0d978ea6906812ee73fc2bc6297c8 (patch)
tree593cd2ddbfb1ec04e74be43ce01c010b6fdedea6
parentec04f107adb14b2095b827deae160a5f36e362a2 (diff)
downloadgo-ae84aaee44f0d978ea6906812ee73fc2bc6297c8.tar.xz
runtime: call sigtrampgo on solaris
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>
-rw-r--r--src/runtime/sys_solaris_amd64.s17
1 files changed, 1 insertions, 16 deletions
diff --git a/src/runtime/sys_solaris_amd64.s b/src/runtime/sys_solaris_amd64.s
index aeb2e2c897..2b6dabab99 100644
--- a/src/runtime/sys_solaris_amd64.s
+++ b/src/runtime/sys_solaris_amd64.s
@@ -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