diff options
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/hppa/hppa/locore.S | 13 |
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 |