summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/hppa/hppa/locore.S13
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/arch/hppa/hppa/locore.S b/sys/arch/hppa/hppa/locore.S
index 19e13dbb7ef..43ebe98972d 100644
--- a/sys/arch/hppa/hppa/locore.S
+++ b/sys/arch/hppa/hppa/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.116 2003/10/15 18:54:55 mickey Exp $ */
+/* $OpenBSD: locore.S,v 1.117 2003/10/15 19:54:13 mickey Exp $ */
/*
* Copyright (c) 1998-2003 Michael Shalayeff
@@ -1510,6 +1510,8 @@ $trap_from_kernel
stw t2, TF_CR19(t3)
stw r1, TF_FLAGS(t3)
+ mfctl rctr, t1 /* gotta get it before R is up */
+
copy sp, t3
ldo HPPA_FRAME_SIZE+TRAPFRAME_SIZEOF(sp), sp
rfir
@@ -1520,6 +1522,10 @@ $trapnowvirt
* sp is loaded w/ the right VA (we did not need it being physical)
*/
+ mfctl ccr, t2
+ stw t1, TF_CR0(t3)
+ stw t2, TF_CR10(t3)
+
mfsp sr0, t1
mfsp sr1, t2
stw t1, TF_SR0(sr3, t3)
@@ -1618,11 +1624,6 @@ $trapnowvirt
* Save the necessary control registers that have not already saved.
*/
- mfctl rctr, t1
- mfctl ccr, t2
- stw t1, TF_CR0(t3)
- stw t2, TF_CR10(t3)
-
#ifdef DDB
/*
* Save hpt mask and v2p translation table pointer