]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: make arm signal handler call runtime.badsignal
authorShenghou Ma <minux.ma@gmail.com>
Mon, 27 May 2013 12:46:53 +0000 (20:46 +0800)
committerShenghou Ma <minux.ma@gmail.com>
Mon, 27 May 2013 12:46:53 +0000 (20:46 +0800)
In preparation for CL 9249043 (already submitted).

Fixes #5553.

R=golang-dev, iant, capnm9, dave
CC=golang-dev
https://golang.org/cl/9251043

src/pkg/runtime/sys_freebsd_arm.s
src/pkg/runtime/sys_linux_arm.s
src/pkg/runtime/sys_netbsd_arm.s

index 5531936ffdf3cc88a4a1dcb8c7546a2f062a8c49..e59fb72d08e0cf2f7c823be58ad47b9824992fad 100644 (file)
@@ -154,12 +154,17 @@ TEXT runtime·sigtramp(SB),7,$24
        // this might be called in external code context,
        // where g and m are not set.
        // first save R0, because _cgo_load_gm will clobber it
-       // TODO(adonovan): call runtime·badsignal if m=0, like other platforms?
        MOVW    R0, 4(R13) // signum
        MOVW    _cgo_load_gm(SB), R0
        CMP     $0, R0
        BL.NE   (R0)
 
+       CMP $0, m
+       BNE 3(PC)
+       // signal number is already prepared in 4(R13)
+       BL runtime·badsignal(SB)
+       RET
+
        // save g
        MOVW R10, R4
        MOVW R10, 20(R13)
index 7f813482d159f7c75025a1b4de53dfb6790fff88..ffcb1ec69ad2600d51179181229da08ecd2af1e4 100644 (file)
@@ -286,12 +286,17 @@ TEXT runtime·sigtramp(SB),7,$24
        // this might be called in external code context,
        // where g and m are not set.
        // first save R0, because _cgo_load_gm will clobber it
-       // TODO(adonovan): call runtime·badsignal if m=0, like other platforms?
        MOVW    R0, 4(R13)
        MOVW    _cgo_load_gm(SB), R0
        CMP     $0, R0
        BL.NE   (R0)
 
+       CMP     $0, m
+       BNE     3(PC)
+       // signal number is already prepared in 4(R13)
+       BL      runtime·badsignal(SB)
+       RET
+
        // save g
        MOVW    g, R3
        MOVW    g, 20(R13)
index 3ff335f4df7042d292a17ebfcdea8d1421dea2c8..2f2052bd37a98c7de6299f1b7fb2d01c408d9e7a 100644 (file)
@@ -201,12 +201,17 @@ TEXT runtime·sigtramp(SB),7,$24
        // this might be called in external code context,
        // where g and m are not set.
        // first save R0, because _cgo_load_gm will clobber it
-       // TODO(adonovan): call runtime·badsignal if m=0, like other platforms?
        MOVW    R0, 4(R13) // signum
        MOVW    _cgo_load_gm(SB), R0
        CMP     $0, R0
        BL.NE   (R0)
 
+       CMP $0, m
+       BNE 3(PC)
+       // signal number is already prepared in 4(R13)
+       BL runtime·badsignal(SB)
+       RET
+
        // save g
        MOVW R10, R4
        MOVW R10, 20(R13)