Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-1-4]: src/sys/arch/x68k/x68k pullup 1.31->1.32 (minoura)
details: https://anonhg.NetBSD.org/src/rev/723bf9eb4a5b
branches: netbsd-1-4
changeset: 468744:723bf9eb4a5b
user: perry <perry%NetBSD.org@localhost>
date: Sun Jun 20 19:36:29 1999 +0000
description:
pullup 1.31->1.32 (minoura)
diffstat:
sys/arch/x68k/x68k/trap.c | 26 ++++++++++++++++++++++++--
1 files changed, 24 insertions(+), 2 deletions(-)
diffs (54 lines):
diff -r 2ae4e1756dd5 -r 723bf9eb4a5b sys/arch/x68k/x68k/trap.c
--- a/sys/arch/x68k/x68k/trap.c Sun Jun 20 19:34:17 1999 +0000
+++ b/sys/arch/x68k/x68k/trap.c Sun Jun 20 19:36:29 1999 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: trap.c,v 1.31 1999/03/26 23:41:39 mycroft Exp $ */
+/* $NetBSD: trap.c,v 1.31.2.1 1999/06/20 19:36:29 perry Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -49,6 +49,7 @@
#include "opt_compat_sunos.h"
#include "opt_compat_hpux.h"
#include "opt_compat_linux.h"
+#include "opt_fpuemulate.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -404,6 +405,26 @@
i = SIGFPE;
break;
+ /*
+ * FPU faults in supervisor mode.
+ */
+ case T_ILLINST: /* fnop generates this, apparently. */
+ case T_FPEMULI:
+ case T_FPEMULD: {
+ extern label_t *nofault;
+
+ if (nofault) /* If we're probing. */
+ longjmp(nofault);
+ if (type == T_ILLINST)
+ printf("Kernel Illegal Instruction trap.\n");
+ else
+ printf("Kernel FPU trap.\n");
+ goto dopanic;
+ }
+
+ /*
+ * Unimplemented FPU instructions/datatypes.
+ */
case T_FPEMULI|T_USER: /* unimplemented FP instuction */
case T_FPEMULD|T_USER: /* unimplemented FP data type */
#ifdef FPU_EMULATE
@@ -705,7 +726,8 @@
break;
}
}
- trapsignal(p, i, ucode);
+ if (i)
+ trapsignal(p, i, ucode);
if ((type & T_USER) == 0)
return;
out:
Home |
Main Index |
Thread Index |
Old Index