summaryrefslogtreecommitdiff
path: root/sys/arch/macppc
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2002-07-24 02:19:29 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2002-07-24 02:19:29 +0000
commitc7e7f672d73e4b0521e4932a18643e549b55316c (patch)
treeca0f87399b88b1ce0a18a98cf0a95c0ecdfe443e /sys/arch/macppc
parent71762e55310fdb5bd048869aad2685129ba33e81 (diff)
- change pte_spill_X() to take an extra parameter to determine if
the fault is a EXE fault or R/W fault. - mask/or the SR_NOEXEC bit into the segment register value when the number of executable pages becomes 0/non-zero. - create segments with SR_NOEXEC set, will be cleared when first exec mapping in the segment is created. - allow pte_spill_X() to deal with a new type of fault, page mapped but non executable, when execute was requested. Adds up to - non-exec stack support for powerpc.
Diffstat (limited to 'sys/arch/macppc')
-rw-r--r--sys/arch/macppc/macppc/locore.S4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/arch/macppc/macppc/locore.S b/sys/arch/macppc/macppc/locore.S
index 83e92875bae..50433e85933 100644
--- a/sys/arch/macppc/macppc/locore.S
+++ b/sys/arch/macppc/macppc/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.3 2002/03/21 03:02:32 drahn Exp $ */
+/* $OpenBSD: locore.S,v 1.4 2002/07/24 02:19:28 drahn Exp $ */
/* $NetBSD: locore.S,v 1.2 1996/10/16 19:33:09 ws Exp $ */
/*
@@ -981,6 +981,7 @@ s_dsitrap:
mfdar 3
mfsrr1 4
mfdsisr 5
+ li 6, 0
s_pte_spill:
bl _C_LABEL(pte_spill_r) /* try a spill */
cmpwi 0,3,0
@@ -1035,6 +1036,7 @@ s_isitrap:
mfsrr0 3
mfsrr1 4
li 5, 0
+ li 6, 1
b s_pte_spill /* above */
/*