summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/m88k/m88k/m88100_machdep.c10
-rw-r--r--sys/arch/m88k/m88k/subr.S28
2 files changed, 22 insertions, 16 deletions
diff --git a/sys/arch/m88k/m88k/m88100_machdep.c b/sys/arch/m88k/m88k/m88100_machdep.c
index 9abb9426686..55ed78ad7a4 100644
--- a/sys/arch/m88k/m88k/m88100_machdep.c
+++ b/sys/arch/m88k/m88k/m88100_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: m88100_machdep.c,v 1.10 2013/08/18 22:17:26 miod Exp $ */
+/* $OpenBSD: m88100_machdep.c,v 1.11 2013/08/24 20:54:29 miod Exp $ */
/*
* Mach Operating System
* Copyright (c) 1993-1991 Carnegie Mellon University
@@ -283,6 +283,12 @@ dae_process(struct trapframe *eframe, u_int x,
} else {
v = do_xmem_byte(dmax, dmdx, dmtx & DMT_DAS);
}
+ DAE_DEBUG(
+ if (reg == 0)
+ printf("[no write to r0 done]\n");
+ else
+ printf("[r%d <- %08x]\n", reg, v);
+ );
if (reg != 0)
eframe->tf_r[reg] = v;
} else {
@@ -325,8 +331,6 @@ m88100_apply_patches()
((u_int32_t *)(do_store_word))[1] = 0xf400c401;
((u_int32_t *)(do_store_half))[1] = 0xf400c401;
((u_int32_t *)(do_store_byte))[1] = 0xf400c401;
- ((u_int32_t *)(do_xmem_word))[1] = 0xf400c401;
- ((u_int32_t *)(do_xmem_byte))[1] = 0xf400c401;
}
#endif
}
diff --git a/sys/arch/m88k/m88k/subr.S b/sys/arch/m88k/m88k/subr.S
index 5f38494651f..f87dcdaa035 100644
--- a/sys/arch/m88k/m88k/subr.S
+++ b/sys/arch/m88k/m88k/subr.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: subr.S,v 1.22 2013/01/11 22:34:43 miod Exp $ */
+/* $OpenBSD: subr.S,v 1.23 2013/08/24 20:54:29 miod Exp $ */
/*
* Mach Operating System
* Copyright (c) 1993-1992 Carnegie Mellon University
@@ -151,33 +151,35 @@ ENTRY(do_xmem_word) /* do_xmem_word(address, data, supervisor) */
bcnd ne0,%r4,1f
#ifdef ERRATA__XXX_USR
NOP
+#endif
xmem.usr %r3,%r2,%r0
+#ifdef ERRATA__XXX_USR
NOP
NOP
NOP
- jmp %r1
-#else
- jmp.n %r1
- xmem.usr %r3,%r2,%r0
#endif
-1: jmp.n %r1
- xmem %r3,%r2,%r0
+ jmp.n %r1
+ or %r2, %r3, %r0
+1: xmem %r3,%r2,%r0
+ jmp.n %r1
+ or %r2, %r3, %r0
ENTRY(do_xmem_byte) /* do_xmem_byte(address, data, supervisor) */
bcnd ne0,%r4,1f
#ifdef ERRATA__XXX_USR
NOP
+#endif
xmem.bu.usr %r3,%r2,%r0
+#ifdef ERRATA__XXX_USR
NOP
NOP
NOP
- jmp %r1
-#else
- jmp.n %r1
- xmem.bu.usr %r3,%r2,%r0
#endif
-1: jmp.n %r1
- xmem.bu %r3,%r2,%r0
+ jmp.n %r1
+ or %r2,%r3,%r0
+1: xmem.bu %r3,%r2,%r0
+ jmp.n %r1
+ or %r2,%r3,%r0
#endif /* M88100 */