From 24a11a7998b0787271af2b2dc7215b3af7bc2cff Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Mon, 17 Jan 1994 16:18:17 +0000 Subject: [PATCH] * i960-tdep.c (i960_fault_to_signal): Return TARGET_SIGNAL_ILL for operation fault, constraint fault, and type fault. --- gdb/ChangeLog | 5 +++++ gdb/i960-tdep.c | 17 +++++++++++++---- 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 */ -- 2.7.4