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