aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>1997-11-22 12:52:44 +0000
committerAndrew Cagney <cagney@redhat.com>1997-11-22 12:52:44 +0000
commitaaa11abe428e6433b3e41fb88431886f4445a462 (patch)
treec179020dfe5d8670cfd51dc4669f643bd7474e42
parent38639b1294135f3fcc4339d0081777d755c065d9 (diff)
downloadgdb-aaa11abe428e6433b3e41fb88431886f4445a462.zip
gdb-aaa11abe428e6433b3e41fb88431886f4445a462.tar.gz
gdb-aaa11abe428e6433b3e41fb88431886f4445a462.tar.bz2
Clarify meaning of sim_signalled's SIGRC argument. Document that this
isn't possible in sim-reason.c and just return the target SIGRC instead. For simulators that rely on sim-reason.c, replace SIG* with SIM_SIG*. Hack nrun.c so that when it is executed (ARGV[0]) as `step' instead of `run' it single steps the simulator. Allows testing of single step without full GDB.
-rw-r--r--include/remote-sim.h7
-rw-r--r--sim/common/ChangeLog12
-rw-r--r--sim/common/Make-common.in1
-rw-r--r--sim/tic80/ChangeLog14
-rw-r--r--sim/tic80/insns6
-rw-r--r--sim/tic80/interp.c7
-rw-r--r--sim/tic80/sim-calls.c1
-rw-r--r--sim/tic80/sim-main.h8
8 files changed, 40 insertions, 16 deletions
diff --git a/include/remote-sim.h b/include/remote-sim.h
index c4fecc0..a785437 100644
--- a/include/remote-sim.h
+++ b/include/remote-sim.h
@@ -223,8 +223,11 @@ int sim_stop PARAMS ((SIM_DESC sd));
undefined memory region (SIGSEGV); Mis-aligned memory access
(SIGBUS).
- SIM_SIGNALLED: The simulator encountered target code that requires
- the signal SIGRC to be delivered to the simulated program.
+ SIM_SIGNALLED: The program has stopped. The simulator has
+ encountered target code that requires the (HOST) signal SIGRC to be
+ delivered to the simulated program. Ex: `kill (getpid (),
+ TARGET_SIGxxx)'. Where TARGET_SIGxxx has been translated into a
+ host signal. FIXME: This is not always possible..
SIM_RUNNING, SIM_POLLING: The return of one of these values
indicates a problem internal to the simulator. */
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 966b0ea..7e69084 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,3 +1,15 @@
+Sat Nov 22 19:16:54 1997 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * sim-reason.c (sim_stop_reason): For sim_signalled, terurn the
+ signal untranslated, document problem with this.
+
+ * nrun.c (main): Check for a prog name of `*step'. If present,
+ step the simulator instead of allowing it to run free.
+
+ * sim-signal.c (SIGQUIT): Define on _MSC_VER hosts.
+
+ * Make-common.in (sim_main_headers): Add sim-signal.h.
+
Fri Nov 21 09:32:32 1997 Andrew Cagney <cagney@b1.cygnus.com>
* sim-signal.c (sim_signal_to_host): Return 0 for SIM_SIGNONE.
diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
index 344edad..c359bac 100644
--- a/sim/common/Make-common.in
+++ b/sim/common/Make-common.in
@@ -254,6 +254,7 @@ sim_main_headers = \
$(srccom)/sim-config.h \
$(srccom)/sim-base.h \
$(srccom)/sim-basics.h \
+ $(srccom)/sim-signal.h \
$(srccom)/sim-memopt.h \
$(srccom)/sim-model.h \
$(srccom)/sim-module.h \
diff --git a/sim/tic80/ChangeLog b/sim/tic80/ChangeLog
index 3eae822..e7c56d6 100644
--- a/sim/tic80/ChangeLog
+++ b/sim/tic80/ChangeLog
@@ -1,3 +1,17 @@
+Sat Nov 22 21:42:09 1997 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * interp.c (engine_step): Replace SIGTRAP with SIM_SIGTRAP.
+ (engine_run_until_stop): Replace SIGINT with SIM_SIGINT.
+
+ * sim-main.h: Include sim-signal.h.
+ (SIGTRAP): Delete definition.
+
+ * interp.c, sim-calls.c: Do not include signal.h.
+
+ * insns (illegal): SIGILL -> SIM_SIGILL.
+ (fp_unavailable): SIGFPE -> SIM_SIGFPE.
+ (do_trap): SIGTRAP -> SIM_SIGTRAP.
+
Tue Nov 18 15:33:48 1997 Doug Evans <devans@canuck.cygnus.com>
* sim-main.h (CIA_ADDR): Define.
diff --git a/sim/tic80/insns b/sim/tic80/insns
index 894902a..dfe9c87 100644
--- a/sim/tic80/insns
+++ b/sim/tic80/insns
@@ -22,12 +22,12 @@
// The following is called when ever an illegal instruction is encountered.
:internal::::illegal:
sim_io_eprintf (SD, "0x%lx: illegal instruction\n", (unsigned long) cia.ip);
- sim_engine_halt (SD, CPU, NULL, cia, sim_signalled, SIGILL);
+ sim_engine_halt (SD, CPU, NULL, cia, sim_signalled, SIM_SIGILL);
// The following is called when ever an FP op is attempted with FPU disabled.
:internal::::fp_unavailable:
sim_io_eprintf (SD, "0x%lx: floating-point unavailable\n", (unsigned long) cia.ip);
- sim_engine_halt (SD, CPU, NULL, cia, sim_signalled, SIGFPE);
+ sim_engine_halt (SD, CPU, NULL, cia, sim_signalled, SIM_SIGFPE);
// Handle a branch instruction
:function:::instruction_address:do_branch:int annul, address_word target, int rLink_p, unsigned32 *rLink
@@ -1229,7 +1229,7 @@ void::function::do_trap:unsigned32 trap_number
}
break;
case 73:
- sim_engine_halt (SD, CPU, NULL, cia, sim_stopped, SIGTRAP);
+ sim_engine_halt (SD, CPU, NULL, cia, sim_stopped, SIM_SIGTRAP);
/* Add a few traps for now to print the register state */
case 74:
diff --git a/sim/tic80/interp.c b/sim/tic80/interp.c
index 24c86f6..17f06d4 100644
--- a/sim/tic80/interp.c
+++ b/sim/tic80/interp.c
@@ -26,8 +26,6 @@
#include "idecode.h"
#include "itable.h"
-#include <signal.h>
-
#ifdef HAVE_STRING_H
#include <string.h>
#else
@@ -103,7 +101,7 @@ engine_run_until_stop (SIM_DESC sd,
cia = idecode_issue (sd, insn, cia);
}
while (*keep_running);
- engine_halt (sd, cpu, cia, sim_stopped, SIGINT);
+ engine_halt (sd, cpu, cia, sim_stopped, SIM_SIGINT);
}
}
@@ -122,9 +120,8 @@ engine_step (SIM_DESC sd)
cia = cpu->cia;
insn = IMEM (cia);
cia = idecode_issue (sd, insn, cia);
- engine_halt (sd, cpu, cia, sim_stopped, SIGTRAP);
+ engine_halt (sd, cpu, cia, sim_stopped, SIM_SIGTRAP);
}
}
#endif
-
diff --git a/sim/tic80/sim-calls.c b/sim/tic80/sim-calls.c
index 55f0496..310dc70 100644
--- a/sim/tic80/sim-calls.c
+++ b/sim/tic80/sim-calls.c
@@ -20,7 +20,6 @@
*/
-#include <signal.h> /* FIXME - should be machine dependant version */
#include <stdarg.h>
#include <ctype.h>
diff --git a/sim/tic80/sim-main.h b/sim/tic80/sim-main.h
index 228ad9a..67db353 100644
--- a/sim/tic80/sim-main.h
+++ b/sim/tic80/sim-main.h
@@ -25,8 +25,10 @@
#include "sim-basics.h"
+#include "sim-signal.h"
+
+#include <signal.h> /* For kill() in insns:do_trap */
-#include <signal.h>
#include <errno.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
@@ -77,7 +79,3 @@ extern void engine_init
#define kill(sig, pid) (errno = EINVAL, -1)
#endif
#endif
-
-#ifndef SIGTRAP
-# define SIGTRAP 5
-#endif