summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/m88k/m88k/trap.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/arch/m88k/m88k/trap.c b/sys/arch/m88k/m88k/trap.c
index ee0f5d36eff..473ee1a1a95 100644
--- a/sys/arch/m88k/m88k/trap.c
+++ b/sys/arch/m88k/m88k/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.49 2007/11/22 05:53:56 miod Exp $ */
+/* $OpenBSD: trap.c,v 1.50 2007/11/22 06:11:51 miod Exp $ */
/*
* Copyright (c) 2004, Miodrag Vallat.
* Copyright (c) 1998 Steve Murphree, Jr.
@@ -1758,6 +1758,16 @@ double_reg_fixup(struct trapframe *frame)
frame->tf_r[regno + 1] = value;
}
+#ifdef M88110
+ if (CPU_IS88110) {
+ /* skip the offending instruction */
+ if (frame->tf_exip & 1)
+ frame->tf_exip = frame->tf_enip;
+ else
+ frame->tf_exip += 4;
+ }
+#endif
+
return 0;
}