* i960-tdep.c (i960_fault_to_signal): Return TARGET_SIGNAL_ILL
authorJim Kingdon <jkingdon@engr.sgi.com>
Mon, 17 Jan 1994 16:18:17 +0000 (16:18 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Mon, 17 Jan 1994 16:18:17 +0000 (16:18 +0000)
for operation fault, constraint fault, and type fault.

gdb/ChangeLog
gdb/i960-tdep.c

index 4d4af6f..0b38a65 100644 (file)
@@ -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.
index d3676b6..2df0f57 100644 (file)
@@ -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 */