Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/hppa/hppa Made the signal trampoline PLABEL-aware.



details:   https://anonhg.NetBSD.org/src/rev/c73b483d610b
branches:  trunk
changeset: 533473:c73b483d610b
user:      fredette <fredette%NetBSD.org@localhost>
date:      Mon Jul 01 16:10:02 2002 +0000

description:
Made the signal trampoline PLABEL-aware.

Added a missing comma to the pmap_redzone() call.

diffstat:

 sys/arch/hppa/hppa/sigcode.S    |  11 ++++++++++-
 sys/arch/hppa/hppa/vm_machdep.c |   4 ++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diffs (43 lines):

diff -r faa86f0f2fc6 -r c73b483d610b sys/arch/hppa/hppa/sigcode.S
--- a/sys/arch/hppa/hppa/sigcode.S      Mon Jul 01 16:00:50 2002 +0000
+++ b/sys/arch/hppa/hppa/sigcode.S      Mon Jul 01 16:10:02 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: sigcode.S,v 1.1 2002/06/05 01:04:20 fredette Exp $     */
+/*     $NetBSD: sigcode.S,v 1.2 2002/07/01 16:10:02 fredette Exp $     */
 
 /*     $OpenBSD: locore.S,v 1.46 2001/09/20 18:33:03 mickey Exp $      */
 
@@ -76,6 +76,15 @@
 ENTRY(sigcode,0)
        .call
        /*
+        * Our sendsig() places the address of the signal handler 
+        * in %arg3.  It may actually be a PLABEL.
+        */
+       bb,>=,n %arg3, 30, L$sigcode_bounce     ; branch if not a PLABEL
+       depi    0, 31, 2, %arg3                 ; zero L bit in PLABEL pointer
+       ldw     4(%arg3), %r19                  ; load shared library linkage
+       ldw     0(%arg3), %arg3                 ; load real catcher address
+L$sigcode_bounce
+       /*
         * This blr puts the address of the following nop in rp.
         * It also schedules the nop for execution, which is why
         * that instruction has to be a nop, or, rather, not any
diff -r faa86f0f2fc6 -r c73b483d610b sys/arch/hppa/hppa/vm_machdep.c
--- a/sys/arch/hppa/hppa/vm_machdep.c   Mon Jul 01 16:00:50 2002 +0000
+++ b/sys/arch/hppa/hppa/vm_machdep.c   Mon Jul 01 16:10:02 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: vm_machdep.c,v 1.1 2002/06/05 01:04:21 fredette Exp $  */
+/*     $NetBSD: vm_machdep.c,v 1.2 2002/07/01 16:10:03 fredette Exp $  */
 
 /*     $OpenBSD: vm_machdep.c,v 1.25 2001/09/19 20:50:56 mickey Exp $  */
 
@@ -139,7 +139,7 @@
 
 #ifdef HPPA_REDZONE
        /* Create the kernel stack red zone. */
-       pmap_redzone((vaddr_t)p->p_addr + HPPA_REDZONE
+       pmap_redzone((vaddr_t)p->p_addr + HPPA_REDZONE,
                (vaddr_t)p->p_addr + USPACE, 1);
 #endif
 }



Home | Main Index | Thread Index | Old Index