summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1997-02-04 02:49:25 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1997-02-04 02:49:25 +0000
commit4789e3311302a52c320d63e013d5d2d9d1c15617 (patch)
treea8644003cbc53cbd8bd05a3024fcad6653ee41a9 /sys
parentfa14e2b915d9c006c17e945c8a75680fa7716e95 (diff)
fix a few more SIGxxx/xxx_* and fault addr issues
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/mvme68k/mvme68k/trap.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/arch/mvme68k/mvme68k/trap.c b/sys/arch/mvme68k/mvme68k/trap.c
index ea2ddbd2c43..c12e45587c6 100644
--- a/sys/arch/mvme68k/mvme68k/trap.c
+++ b/sys/arch/mvme68k/mvme68k/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.10 1997/02/02 00:43:21 deraadt Exp $ */
+/* $OpenBSD: trap.c,v 1.11 1997/02/04 02:49:24 deraadt Exp $ */
/*
* Copyright (c) 1995 Theo de Raadt
@@ -339,6 +339,7 @@ copyfault:
i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
typ = ILL_COPROC;
+ v = frame.f_pc;
break;
#ifdef FPCOPROC
@@ -362,6 +363,7 @@ copyfault:
typ = FPE_FLTRES;
ucode = code;
i = SIGFPE;
+ v = frame.f_pc;
break;
#endif
@@ -376,6 +378,7 @@ copyfault:
/* XXX need to FRESTORE */
typ = FPE_FLTINV;
i = SIGFPE;
+ v = frame.f_pc;
break;
#endif
@@ -391,7 +394,9 @@ copyfault:
ucode = frame.f_format; /* XXX was ILL_PRIVIN_FAULT */
typ = ILL_ILLOPC;
i = SIGILL;
+ v = frame.f_pc;
break;
+
case T_PRIVINST|T_USER: /* privileged instruction fault */
#ifdef COMPAT_HPUX
if (p->p_emul == &emul_hpux)
@@ -401,6 +406,7 @@ copyfault:
ucode = frame.f_format; /* XXX was ILL_PRIVIN_FAULT */
typ = ILL_PRVOPC;
i = SIGILL;
+ v = frame.f_pc;
break;
case T_ZERODIV|T_USER: /* Divide by zero */
@@ -412,6 +418,7 @@ copyfault:
ucode = frame.f_format; /* XXX was FPE_INTDIV_TRAP */
typ = FPE_INTDIV;
i = SIGFPE;
+ v = frame.f_pc;
break;
case T_CHKINST|T_USER: /* CHK instruction trap */
@@ -426,6 +433,7 @@ copyfault:
ucode = frame.f_format; /* XXX was FPE_SUBRNG_TRAP */
typ = FPE_FLTSUB;
i = SIGFPE;
+ v = frame.f_pc;
break;
case T_TRAPVINST|T_USER: /* TRAPV instruction trap */
@@ -438,8 +446,9 @@ copyfault:
}
#endif
ucode = frame.f_format; /* XXX was FPE_INTOVF_TRAP */
- typ = FPE_FLTOVF;
- i = SIGFPE;
+ typ = ILL_ILLTRP;
+ i = SIGILL;
+ v = frame.f_pc;
break;
/*