diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 2002-02-07 20:25:00 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 2002-02-07 20:25:00 +0000 |
commit | f6a7683bda313ec55e162d5654a7e05aa1fa3db2 (patch) | |
tree | 0bfbd387e3fe4a534f59de99f7cff21fda99a07c /lib/libc/arch/hppa | |
parent | f7818aaab3bf1a64cf6514ea8023869541bd3acc (diff) |
reverse condition in the sp botchness check, we need to nullify
if we are ok not if we are bad. fix a pasto in branch w/in longjmps.
Diffstat (limited to 'lib/libc/arch/hppa')
-rw-r--r-- | lib/libc/arch/hppa/gen/setjmp.S | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/lib/libc/arch/hppa/gen/setjmp.S b/lib/libc/arch/hppa/gen/setjmp.S index 39b4358fa36..d420ea3f1b2 100644 --- a/lib/libc/arch/hppa/gen/setjmp.S +++ b/lib/libc/arch/hppa/gen/setjmp.S @@ -1,4 +1,4 @@ -/* $OpenBSD: setjmp.S,v 1.1 2002/02/06 18:50:26 mickey Exp $ */ +/* $OpenBSD: setjmp.S,v 1.2 2002/02/07 20:24:59 mickey Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -44,7 +44,7 @@ #if defined(LIBC_SCCS) && !defined(lint) .text - .asciz "$OpenBSD: setjmp.S,v 1.1 2002/02/06 18:50:26 mickey Exp $" + .asciz "$OpenBSD: setjmp.S,v 1.2 2002/02/07 20:24:59 mickey Exp $" .align 4 #endif /* LIBC_SCCS and not lint */ @@ -76,7 +76,6 @@ ALTENTRY(setjmp) bl sigblock, %rp copy %r0, %arg0 - ldo HPPA_FRAME_SIZE(%r3),%sp ldwm -HPPA_FRAME_SIZE(%sp),%r3 ldw HPPA_FRAME_CRP(%sp), %rp ldw HPPA_FRAME_ARG(0)(%sp), %arg0 @@ -90,8 +89,8 @@ ALTENTRY(_setjmp) stw %r0, 0(%arg0) ; no onstack stw %r0, 4(%arg0) ; mask _setjmp$dosaves - stw %sp, 8(%arg0) ; sc.sc_sp = %sp - stw %r0, 12(%arg0) ; set sc.sc_ps + stw %r0, 8(%arg0) ; set sc.sc_ps + stw %sp, 12(%arg0) ; sc.sc_sp = %sp stw %r0, 16(%arg0) ; sc.sc_fp ldo 4(%rp), %r1 stw %rp, 20(%arg0) ; sc.sc_pcoqh = %rp @@ -123,7 +122,7 @@ EXIT(_setjmp) ENTRY(siglongjmp,64) /* XXX have to dup this from below */ - sub,<<= %sp, %arg0, %r0 /* botch if jbuf was on stack */ + sub,>> %sp, %arg0, %r0 /* botch if jbuf was on stack */ bl,n longjmperror, %rp nop ldw 16(%arg0), %r1 /* botch if it's a real signal frame */ @@ -133,11 +132,12 @@ ENTRY(siglongjmp,64) ldw 44(%arg0), %arg2 sub,= %r0, %arg2, %r0 - b _setjmp + b _longjmp + nop ALTENTRY(longjmp) /* XXX have to dup this from below */ - sub,<<= %sp, %arg0, %r0 /* botch if jbuf was on stack */ + sub,>> %sp, %arg0, %r0 /* botch if jbuf was on stack */ bl,n longjmperror, %rp nop ldw 16(%arg0), %r1 /* botch if it's a real signal frame */ @@ -156,7 +156,6 @@ ALTENTRY(longjmp) bl sigsetmask, %rp ldw 4(%arg0), %arg0 - ldo HPPA_FRAME_SIZE(%r3),%sp ldwm -HPPA_FRAME_SIZE(%sp),%r3 ldw HPPA_FRAME_CRP(%sp), %rp ldw HPPA_FRAME_ARG(0)(%sp), %arg0 @@ -164,7 +163,7 @@ ALTENTRY(longjmp) ldw HPPA_FRAME_ARG(1)(%sp), %arg1 ALTENTRY(_longjmp) - sub,<<= %sp, %arg0, %r0 /* botch if jbuf was on stack */ + sub,>> %sp, %arg0, %r0 /* botch if jbuf was on stack */ bl,n longjmperror, %rp nop ldw 16(%arg0), %r1 /* botch if it's a real signal frame */ |