When SIM_HAVE_ENVIRONMENT: use sim_set_trace() to enable tracing
instead of sim_trace() to run the program; include support for ``-o'' option (operating environment); when a signal occurs, only continue execution when operating environment mode. Update d10v.
This commit is contained in:
parent
1287d1cc37
commit
baa7ae6f10
@ -1,3 +1,8 @@
|
||||
Tue Feb 22 15:19:54 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* remote-sim.h (sim_trace): Document return values.
|
||||
(sim_set_trace): Declare. Deprecate.
|
||||
|
||||
2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au>
|
||||
|
||||
* dis-asm.h (struct disassemble_info): Change `length' param of
|
||||
|
@ -308,15 +308,27 @@ void sim_set_callbacks PARAMS ((struct host_callback_struct *));
|
||||
void sim_size PARAMS ((int i));
|
||||
|
||||
|
||||
/* Run a simulation with tracing enabled.
|
||||
/* Single-step simulator with tracing enabled.
|
||||
THIS PROCEDURE IS DEPRECIATED.
|
||||
THIS PROCEDURE IS EVEN MORE DEPRECATED THAN SIM_SET_TRACE
|
||||
GDB and NRUN do not use this interface.
|
||||
This procedure does not take a SIM_DESC argument as it is
|
||||
used before sim_open. */
|
||||
This procedure returns: ``0'' indicating that the simulator should
|
||||
be continued using sim_trace() calls; ``1'' indicating that the
|
||||
simulation has finished. */
|
||||
|
||||
int sim_trace PARAMS ((SIM_DESC sd));
|
||||
|
||||
|
||||
/* Enable tracing.
|
||||
THIS PROCEDURE IS DEPRECIATED.
|
||||
GDB and NRUN do not use this interface.
|
||||
This procedure returns: ``0'' indicating that the simulator should
|
||||
be continued using sim_trace() calls; ``1'' indicating that the
|
||||
simulation has finished. */
|
||||
|
||||
void sim_set_trace PARAMS ((void));
|
||||
|
||||
|
||||
/* Configure the size of the profile buffer.
|
||||
THIS PROCEDURE IS DEPRECIATED.
|
||||
GDB and NRUN do not use this interface.
|
||||
|
@ -1,3 +1,12 @@
|
||||
Tue Feb 22 16:45:09 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* run.c (main): When SIM_HAVE_ENVIRONMENT enable tracing with
|
||||
sim_set_trace and run simulator using sim_resume.
|
||||
(main): Add option ``-o'' - operating environment. Only continue
|
||||
after a signal when operating environment.
|
||||
(main): Always set REASON and SIGRC using sim_stop_reason.
|
||||
(sim_trace): Delete extern declaration.
|
||||
|
||||
2000-02-08 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* callback.c: Fix compile time warning messages.
|
||||
|
@ -57,9 +57,6 @@ extern host_callback default_callback;
|
||||
|
||||
static char *myname;
|
||||
|
||||
/* NOTE: sim_size() and sim_trace() are going away */
|
||||
extern int sim_trace PARAMS ((SIM_DESC sd));
|
||||
|
||||
extern int getopt ();
|
||||
|
||||
#ifdef NEED_UI_LOOP_HOOK
|
||||
@ -89,6 +86,9 @@ main (ac, av)
|
||||
int i;
|
||||
int verbose = 0;
|
||||
int trace = 0;
|
||||
#ifdef SIM_HAVE_ENVIRONMENT
|
||||
int operating_p = 0;
|
||||
#endif
|
||||
char *name;
|
||||
static char *no_args[4];
|
||||
char **sim_argv = &no_args[0];
|
||||
@ -117,9 +117,9 @@ main (ac, av)
|
||||
do all argv processing. */
|
||||
|
||||
#ifdef SIM_H8300 /* FIXME: quick hack */
|
||||
while ((i = getopt (ac, av, "a:c:m:p:s:htv")) != EOF)
|
||||
while ((i = getopt (ac, av, "a:c:m:op:s:htv")) != EOF)
|
||||
#else
|
||||
while ((i = getopt (ac, av, "a:c:m:p:s:tv")) != EOF)
|
||||
while ((i = getopt (ac, av, "a:c:m:op:s:tv")) != EOF)
|
||||
#endif
|
||||
switch (i)
|
||||
{
|
||||
@ -147,6 +147,13 @@ main (ac, av)
|
||||
/* FIXME: Rename to sim_set_mem_size. */
|
||||
sim_size (atoi (optarg));
|
||||
break;
|
||||
#ifdef SIM_HAVE_ENVIRONMENT
|
||||
case 'o':
|
||||
/* Operating enironment where any signals are delivered to the
|
||||
target. */
|
||||
operating_p = 1;
|
||||
break;
|
||||
#endif SIM_HAVE_ENVIRONMENT
|
||||
#ifdef SIM_HAVE_PROFILE
|
||||
case 'p':
|
||||
sim_set_profile (atoi (optarg));
|
||||
@ -157,8 +164,6 @@ main (ac, av)
|
||||
#endif
|
||||
case 't':
|
||||
trace = 1;
|
||||
/* FIXME: need to allow specification of what to trace. */
|
||||
/* sim_set_trace (1); */
|
||||
break;
|
||||
case 'v':
|
||||
/* Things that are printed with -v are the kinds of things that
|
||||
@ -231,6 +236,21 @@ main (ac, av)
|
||||
if (sim_create_inferior (sd, abfd, prog_args, NULL) == SIM_RC_FAIL)
|
||||
exit (1);
|
||||
|
||||
#ifdef SIM_HAVE_ENVIRONMENT
|
||||
/* NOTE: An old simulator supporting the operating environment MUST
|
||||
provide sim_set_trace() and not sim_trace(). That way
|
||||
sim_stop_reason() can be used to determine any stop reason. */
|
||||
if (trace)
|
||||
sim_set_trace ();
|
||||
do
|
||||
{
|
||||
prev_sigint = signal (SIGINT, cntrl_c);
|
||||
sim_resume (sd, 0, sigrc);
|
||||
signal (SIGINT, prev_sigint);
|
||||
sim_stop_reason (sd, &reason, &sigrc);
|
||||
}
|
||||
while (operating_p && reason == sim_stopped && sigrc != SIGINT);
|
||||
#else
|
||||
if (trace)
|
||||
{
|
||||
int done = 0;
|
||||
@ -240,18 +260,16 @@ main (ac, av)
|
||||
done = sim_trace (sd);
|
||||
}
|
||||
signal (SIGINT, prev_sigint);
|
||||
sim_stop_reason (sd, &reason, &sigrc);
|
||||
}
|
||||
else
|
||||
{
|
||||
do
|
||||
{
|
||||
prev_sigint = signal (SIGINT, cntrl_c);
|
||||
sim_resume (sd, 0, sigrc);
|
||||
signal (SIGINT, prev_sigint);
|
||||
sim_stop_reason (sd, &reason, &sigrc);
|
||||
}
|
||||
while (reason == sim_stopped && sigrc != SIGINT);
|
||||
prev_sigint = signal (SIGINT, cntrl_c);
|
||||
sim_resume (sd, 0, sigrc);
|
||||
signal (SIGINT, prev_sigint);
|
||||
sim_stop_reason (sd, &reason, &sigrc);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (verbose)
|
||||
sim_info (sd, 0);
|
||||
@ -303,6 +321,9 @@ usage ()
|
||||
fprintf (stderr, "-h Executable is for h8/300h or h8/300s.\n");
|
||||
#endif
|
||||
fprintf (stderr, "-m size Set memory size of simulator, in bytes.\n");
|
||||
#ifdef SIM_HAVE_ENVIRONMENT
|
||||
fprintf (stderr, "-o Select operating (kernel) environment.\n");
|
||||
#endif
|
||||
#ifdef SIM_HAVE_PROFILE
|
||||
fprintf (stderr, "-p freq Set profiling frequency.\n");
|
||||
fprintf (stderr, "-s size Set profiling size.\n");
|
||||
|
@ -1,3 +1,8 @@
|
||||
Tue Feb 22 18:24:56 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* Makefile.in (SIM_EXTRA_CFLAGS): Define SIM_HAVE_ENVIRONMENT.
|
||||
* interp.c (sim_set_trace): Replace sim_trace. Enable tracing.
|
||||
|
||||
Mon Jan 3 02:06:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* interp.c (lookup_hash): Stop the update of the PC when there was
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
SIM_OBJS = interp.o table.o simops.o endian.o sim-load.o
|
||||
SIM_EXTRA_CLEAN = clean-extra
|
||||
SIM_EXTRA_CFLAGS = -DNEED_UI_LOOP_HOOK
|
||||
SIM_EXTRA_CFLAGS = -DNEED_UI_LOOP_HOOK -DSIM_HAVE_ENVIRONMENT
|
||||
|
||||
INCLUDE = d10v_sim.h $(srcroot)/include/callback.h targ-vals.h endian.c
|
||||
|
||||
|
@ -1072,20 +1072,12 @@ sim_resume (sd, step, siggnal)
|
||||
State.exception = SIGTRAP;
|
||||
}
|
||||
|
||||
int
|
||||
sim_trace (sd)
|
||||
SIM_DESC sd;
|
||||
void
|
||||
sim_set_trace (void)
|
||||
{
|
||||
enum sim_stop reason;
|
||||
static int sigrc = 0;
|
||||
#ifdef DEBUG
|
||||
d10v_debug = DEBUG;
|
||||
#endif
|
||||
/* NOTE: SIGRC starts with zero and is then, always the value
|
||||
returned by the last sim_stop_reason() call. */
|
||||
sim_resume (sd, 0, sigrc);
|
||||
sim_stop_reason (sd, &reason, &sigrc);
|
||||
return (reason != sim_stopped || sigrc != SIGINT);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1,3 +1,7 @@
|
||||
Tue Feb 22 17:36:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* Makefile.in: Force d10v into operating mode.
|
||||
|
||||
Mon Jan 3 00:17:28 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* t-ae-ld-d.s, t-ae-ld-i.s, t-ae-ld-id.s, t-ae-ld-im.s ,
|
||||
|
@ -106,6 +106,9 @@ RUN_FOR_TARGET = `\
|
||||
echo $(target_alias)-run ; \
|
||||
fi`
|
||||
|
||||
# Force d10v into operating mode.
|
||||
RUNFLAGS_FOR_TARGET=-o
|
||||
|
||||
|
||||
check: sanity $(TESTS)
|
||||
sanity:
|
||||
|
Loading…
Reference in New Issue
Block a user