summaryrefslogtreecommitdiff
path: root/sys/arch/mvme88k
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2004-06-22 05:02:36 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2004-06-22 05:02:36 +0000
commit8604291e10a59739f1632613615ccd05820e4869 (patch)
tree9cbb3dbf281f2de4394f7926b5f6f46f665e4116 /sys/arch/mvme88k
parentca1eff565277850b0231424d808feb6336d85a51 (diff)
After 88110 exception processing, do not reset the in-frame [di][lp]ar
values, they won't be put back to registers anyways...
Diffstat (limited to 'sys/arch/mvme88k')
-rw-r--r--sys/arch/mvme88k/mvme88k/eh.S14
1 files changed, 5 insertions, 9 deletions
diff --git a/sys/arch/mvme88k/mvme88k/eh.S b/sys/arch/mvme88k/mvme88k/eh.S
index 88a8990fcac..0784e15f34b 100644
--- a/sys/arch/mvme88k/mvme88k/eh.S
+++ b/sys/arch/mvme88k/mvme88k/eh.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: eh.S,v 1.51 2004/06/22 05:01:08 miod Exp $ */
+/* $OpenBSD: eh.S,v 1.52 2004/06/22 05:02:35 miod Exp $ */
/*
* Mach Operating System
* Copyright (c) 1993-1991 Carnegie Mellon University
@@ -943,8 +943,6 @@ ASLOCAL(m88110_badaddr__return_nonzero)
* DSR before the rte instruction clears the EFRZ bit in the PSR.
*/
stcr r0, DSR
- stcr r0, DLAR
- stcr r0, DPAR
/* FALLTHROUGH */
#endif
ASLOCAL(badaddr__return_nonzero)
@@ -2576,14 +2574,12 @@ ASLOCAL(m88110_setup_phase_two)
ASLOCAL(m88110_fpu_enable)
FLUSH_PIPELINE
+
/* Now we can handle another exception!!! */
/* Now that EFRZ is cleared, we can clear these */
- stcr r0, ISR /* Clear ISR */
- stcr r0, ILAR /* Clear ILAR */
- stcr r0, IPAR /* Clear IPAR */
- stcr r0, DSR /* Clear DSR */
- stcr r0, DLAR /* Clear DLAR */
- stcr r0, DPAR /* Clear DPAR */
+ stcr r0, ISR
+ stcr r0, DSR
+
xcr TMP, TMP, SR3 /* get E.F. pointer */
st r30, TMP, GENREG_OFF(30) /* save previous r30, r31 */
st r31, TMP, GENREG_OFF(31) /* save previous r30, r31 */