diff options
author | Ondřej Surý <ondrej@sury.org> | 2012-03-26 16:50:58 +0200 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2012-03-26 16:50:58 +0200 |
commit | 519725bb3c075ee2462c929f5997cb068e18466a (patch) | |
tree | 5b162e8488ad147a645048c073577821b4a2bee9 /src/pkg/runtime/sys_darwin_386.s | |
parent | 842623c5dd2819d980ca9c58048d6bc6ed82475f (diff) | |
download | golang-upstream-weekly/2012.03.22.tar.gz |
Imported Upstream version 2012.03.22upstream-weekly/2012.03.22
Diffstat (limited to 'src/pkg/runtime/sys_darwin_386.s')
-rw-r--r-- | src/pkg/runtime/sys_darwin_386.s | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/pkg/runtime/sys_darwin_386.s b/src/pkg/runtime/sys_darwin_386.s index c2dab8931..3cf3506ad 100644 --- a/src/pkg/runtime/sys_darwin_386.s +++ b/src/pkg/runtime/sys_darwin_386.s @@ -8,15 +8,11 @@ #include "zasm_GOOS_GOARCH.h" -TEXT runtime·notok(SB),7,$0 - MOVL $0xf1, 0xf1 - RET - // Exit the entire program (like C exit) TEXT runtime·exit(SB),7,$0 MOVL $1, AX INT $0x80 - CALL runtime·notok(SB) + MOVL $0xf1, 0xf1 // crash RET // Exit this OS thread (like pthread_exit, which eventually @@ -25,7 +21,7 @@ TEXT runtime·exit1(SB),7,$0 MOVL $361, AX INT $0x80 JAE 2(PC) - CALL runtime·notok(SB) + MOVL $0xf1, 0xf1 // crash RET TEXT runtime·write(SB),7,$0 @@ -52,14 +48,14 @@ TEXT runtime·madvise(SB),7,$0 MOVL $75, AX INT $0x80 JAE 2(PC) - CALL runtime·notok(SB) + MOVL $0xf1, 0xf1 // crash RET TEXT runtime·munmap(SB),7,$0 MOVL $73, AX INT $0x80 JAE 2(PC) - CALL runtime·notok(SB) + MOVL $0xf1, 0xf1 // crash RET TEXT runtime·setitimer(SB),7,$0 @@ -110,14 +106,14 @@ TEXT runtime·sigprocmask(SB),7,$0 MOVL $329, AX // pthread_sigmask (on OS X, sigprocmask==entire process) INT $0x80 JAE 2(PC) - CALL runtime·notok(SB) + MOVL $0xf1, 0xf1 // crash RET TEXT runtime·sigaction(SB),7,$0 MOVL $46, AX INT $0x80 JAE 2(PC) - CALL runtime·notok(SB) + MOVL $0xf1, 0xf1 // crash RET // Sigtramp's job is to call the actual signal handler. @@ -130,13 +126,18 @@ TEXT runtime·sigaction(SB),7,$0 // 20(FP) context TEXT runtime·sigtramp(SB),7,$40 get_tls(CX) + + // check that m exists + MOVL m(CX), BP + CMPL BP, $0 + JNE 2(PC) + CALL runtime·badsignal(SB) // save g MOVL g(CX), DI MOVL DI, 20(SP) // g = m->gsignal - MOVL m(CX), BP MOVL m_gsignal(BP), BP MOVL BP, g(CX) @@ -165,14 +166,14 @@ TEXT runtime·sigtramp(SB),7,$40 MOVL BX, 8(SP) MOVL $184, AX // sigreturn(ucontext, infostyle) INT $0x80 - CALL runtime·notok(SB) + MOVL $0xf1, 0xf1 // crash RET TEXT runtime·sigaltstack(SB),7,$0 MOVL $53, AX INT $0x80 JAE 2(PC) - CALL runtime·notok(SB) + MOVL $0xf1, 0xf1 // crash RET TEXT runtime·usleep(SB),7,$32 @@ -268,7 +269,7 @@ TEXT runtime·bsdthread_register(SB),7,$40 MOVL $0, 24(SP) // dispatchqueue_offset INT $0x80 JAE 2(PC) - CALL runtime·notok(SB) + MOVL $0xf1, 0xf1 // crash RET // Invoke Mach system call. |