summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2006-06-26 22:18:07 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2006-06-26 22:18:07 +0000
commitc1a42a452468db9ee06e84d2749bf5423a922518 (patch)
treef963abb2b912581ed0377e40e639e16aa62b44f0
parentc20bc39ab40cead8c3af0eda351ff586252421f3 (diff)
Always skip the offending instruction for fpu faults, even if it is
theoretically recoverable, as there is no way we can rely on the signal handler to do this properly; consistent with other platforms, and lets a few autoconf tests in ports pass again. spotted by sturm@; reluctantly ok kettenis@
-rw-r--r--sys/arch/sparc64/sparc64/trap.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/arch/sparc64/sparc64/trap.c b/sys/arch/sparc64/sparc64/trap.c
index 15a00ab5ff1..676695a8c3e 100644
--- a/sys/arch/sparc64/sparc64/trap.c
+++ b/sys/arch/sparc64/sparc64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.41 2006/05/15 21:56:54 kettenis Exp $ */
+/* $OpenBSD: trap.c,v 1.42 2006/06/26 22:18:06 miod Exp $ */
/* $NetBSD: trap.c,v 1.73 2001/08/09 01:03:01 eeh Exp $ */
/*
@@ -693,13 +693,10 @@ badtrap:
copyin((caddr_t)pc, &p->p_md.md_fpstate->fs_queue[0].fq_instr, sizeof(int));
p->p_md.md_fpstate->fs_queue[0].fq_addr = (int *)pc;
p->p_md.md_fpstate->fs_qsize = 1;
- ADVANCE;
}
+ ADVANCE;
fpu_cleanup(p, p->p_md.md_fpstate);
/* fpu_cleanup posts signals if needed */
-#if 0 /* ??? really never??? */
- ADVANCE;
-#endif
break;
case T_TAGOF: