diff options
Diffstat (limited to 'src/pkg/runtime/darwin/386')
-rw-r--r-- | src/pkg/runtime/darwin/386/signal.c | 1 | ||||
-rw-r--r-- | src/pkg/runtime/darwin/386/sys.s | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/pkg/runtime/darwin/386/signal.c b/src/pkg/runtime/darwin/386/signal.c index 53a4e2f17..33f47d44f 100644 --- a/src/pkg/runtime/darwin/386/signal.c +++ b/src/pkg/runtime/darwin/386/signal.c @@ -66,6 +66,7 @@ runtime·sighandler(int32 sig, Siginfo *info, void *context) gp->sig = sig; gp->sigcode0 = info->si_code; gp->sigcode1 = (uintptr)info->si_addr; + gp->sigpc = r->eip; // Only push runtime·sigpanic if r->eip != 0. // If r->eip == 0, probably panicked because of a diff --git a/src/pkg/runtime/darwin/386/sys.s b/src/pkg/runtime/darwin/386/sys.s index 79bbfb68b..7961e369c 100644 --- a/src/pkg/runtime/darwin/386/sys.s +++ b/src/pkg/runtime/darwin/386/sys.s @@ -138,7 +138,7 @@ TEXT runtime·bsdthread_create(SB),7,$32 MOVL $0x1000000, 20(SP) // flags = PTHREAD_START_CUSTOM INT $0x80 JAE 3(PC) - MOVL $-1, AX + NEGL AX RET MOVL $0, AX RET |