From: Andrew Cagney Date: Sat, 22 Nov 1997 12:52:44 +0000 (+0000) Subject: Clarify meaning of sim_signalled's SIGRC argument. Document that this X-Git-Tag: gdb-4_18~4221 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=aaa11abe428e6433b3e41fb88431886f4445a462;p=external%2Fbinutils.git 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. --- 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 + + * 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 * 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 + + * 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 * 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 - #ifdef HAVE_STRING_H #include #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 /* FIXME - should be machine dependant version */ #include #include 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 /* For kill() in insns:do_trap */ -#include #include #ifdef HAVE_UNISTD_H #include @@ -77,7 +79,3 @@ extern void engine_init #define kill(sig, pid) (errno = EINVAL, -1) #endif #endif - -#ifndef SIGTRAP -# define SIGTRAP 5 -#endif