aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1994-01-17 16:18:17 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1994-01-17 16:18:17 +0000
commit24a11a7998b0787271af2b2dc7215b3af7bc2cff (patch)
tree6928fffbd0106dc767437894037e572ceaf91aa4
parent51517966bc5bd9f7f3b4d283f1ebdc735cef4db6 (diff)
downloadgdb-24a11a7998b0787271af2b2dc7215b3af7bc2cff.zip
gdb-24a11a7998b0787271af2b2dc7215b3af7bc2cff.tar.gz
gdb-24a11a7998b0787271af2b2dc7215b3af7bc2cff.tar.bz2
* i960-tdep.c (i960_fault_to_signal): Return TARGET_SIGNAL_ILL
for operation fault, constraint fault, and type fault.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/i960-tdep.c17
2 files changed, 18 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4d4af6f..0b38a65 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jan 17 11:15:57 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
+
+ * i960-tdep.c (i960_fault_to_signal): Return TARGET_SIGNAL_ILL
+ for operation fault, constraint fault, and type fault.
+
Sun Jan 16 12:46:01 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* Makefile.in (init.c): Add comment explaining formatting conventions.
diff --git a/gdb/i960-tdep.c b/gdb/i960-tdep.c
index d3676b6..2df0f57 100644
--- a/gdb/i960-tdep.c
+++ b/gdb/i960-tdep.c
@@ -590,15 +590,24 @@ i960_fault_to_signal (fault)
{
case 0: return TARGET_SIGNAL_BUS; /* parallel fault */
case 1: return TARGET_SIGNAL_UNKNOWN;
- case 2: return TARGET_SIGNAL_BUS; /* operation fault */
+ case 2: return TARGET_SIGNAL_ILL; /* operation fault */
case 3: return TARGET_SIGNAL_FPE; /* arithmetic fault */
case 4: return TARGET_SIGNAL_FPE; /* floating point fault */
- case 5: return TARGET_SIGNAL_BUS; /* constraint fault */
+
+ /* constraint fault. This appears not to distinguish between
+ a range constraint fault (which should be SIGFPE) and a privileged
+ fault (which should be SIGILL). */
+ case 5: return TARGET_SIGNAL_ILL;
+
case 6: return TARGET_SIGNAL_SEGV; /* virtual memory fault */
- case 7: return TARGET_SIGNAL_SEGV; /* protection fault */
+
+ /* protection fault. This is for an out-of-range argument to
+ "calls". I guess it also could be SIGILL. */
+ case 7: return TARGET_SIGNAL_SEGV;
+
case 8: return TARGET_SIGNAL_BUS; /* machine fault */
case 9: return TARGET_SIGNAL_BUS; /* structural fault */
- case 0xa: return TARGET_SIGNAL_BUS; /* type fault */
+ case 0xa: return TARGET_SIGNAL_ILL; /* type fault */
case 0xb: return TARGET_SIGNAL_UNKNOWN; /* reserved fault */
case 0xc: return TARGET_SIGNAL_BUS; /* process fault */
case 0xd: return TARGET_SIGNAL_SEGV; /* descriptor fault */