Use __sigprocmask14, fix a few more bugs
This commit is contained in:
parent
e3fb94a7b4
commit
592306e323
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
#if defined(LIBC_SCCS) && !defined(lint)
|
||||||
/* .asciz "@(#)setjmp.s 8.1 (Berkeley) 6/4/93" */
|
/* .asciz "@(#)setjmp.s 8.1 (Berkeley) 6/4/93" */
|
||||||
.asciz "$NetBSD: __setjmp14.S,v 1.2 1998/10/10 00:08:51 matt Exp $"
|
.asciz "$NetBSD: __setjmp14.S,v 1.3 1998/10/10 01:50:23 matt Exp $"
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -56,12 +56,11 @@ ENTRY(__setjmp14, R6)
|
||||||
pushl $0 # no new values
|
pushl $0 # no new values
|
||||||
calls $4,___sigaltstack14 # pop args plus signal stack value
|
calls $4,___sigaltstack14 # pop args plus signal stack value
|
||||||
movl (sp)+,(r6)+ # save onsigstack status of caller
|
movl (sp)+,(r6)+ # save onsigstack status of caller
|
||||||
|
pushal 24(r6)
|
||||||
pushl $0
|
pushl $0
|
||||||
pushl $0
|
pushl $0
|
||||||
addl3 r6,28,r6
|
calls $3,___sigprocmask14 # get signal mask
|
||||||
pushl r6
|
addl2 $4,r6 # skip old mask
|
||||||
calls $3,__sigblock14 # get signal mask
|
|
||||||
subl3 r6,24,r6
|
|
||||||
movl (ap),r0
|
movl (ap),r0
|
||||||
moval 4(ap)[r0],(r6)+ # save sp of caller
|
moval 4(ap)[r0],(r6)+ # save sp of caller
|
||||||
movl 12(fp),(r6)+ # save frame pointer of caller
|
movl 12(fp),(r6)+ # save frame pointer of caller
|
||||||
|
@ -93,7 +92,7 @@ loop:
|
||||||
|
|
||||||
done:
|
done:
|
||||||
pushl r1 # pointer to sigcontext
|
pushl r1 # pointer to sigcontext
|
||||||
calls $1,__sigreturn14 # restore previous context
|
calls $1,___sigreturn14 # restore previous context
|
||||||
# we should never return
|
# we should never return
|
||||||
botch:
|
botch:
|
||||||
calls $0,_longjmperror
|
calls $0,_longjmperror
|
||||||
|
|
Loading…
Reference in New Issue