diff options
Diffstat (limited to 'sim/mn10300')
-rw-r--r-- | sim/mn10300/ChangeLog | 17 | ||||
-rw-r--r-- | sim/mn10300/interp.c | 12 |
2 files changed, 26 insertions, 3 deletions
diff --git a/sim/mn10300/ChangeLog b/sim/mn10300/ChangeLog index 8fb9861..eb0a337 100644 --- a/sim/mn10300/ChangeLog +++ b/sim/mn10300/ChangeLog @@ -1,3 +1,20 @@ +Mon Aug 25 17:50:22 1997 Andrew Cagney <cagney@b1.cygnus.com> + + * configure: Regenerated to track ../common/aclocal.m4 changes. + * config.in: Ditto. + +Mon Aug 25 16:14:44 1997 Andrew Cagney <cagney@b1.cygnus.com> + + * interp.c (sim_open): Add ABFD argument. + +Tue Jun 24 13:46:20 1997 Jeffrey A Law (law@cygnus.com) + + * interp.c (sim_resume): Clear State.exited. + (sim_stop_reason): If State.exited is nonzero, then indicate that + the simulator exited instead of stopped. + * mn10300_sim.h (struct _state): Add exited field. + * simops.c (syscall): Set State.exited for SYS_exit. + Wed Jun 11 22:07:56 1997 Jeffrey A Law (law@cygnus.com) * simops.c: Fix thinko in last change. diff --git a/sim/mn10300/interp.c b/sim/mn10300/interp.c index 997b032..2246d75 100644 --- a/sim/mn10300/interp.c +++ b/sim/mn10300/interp.c @@ -284,9 +284,10 @@ compare_simops (arg1, arg2) } SIM_DESC -sim_open (kind,cb,argv) +sim_open (kind, cb, abfd, argv) SIM_OPEN_KIND kind; host_callback *cb; + struct _bfd *abfd; char **argv; { struct simops *s; @@ -331,7 +332,7 @@ sim_open (kind,cb,argv) if (h->opcode == s->opcode && h->mask == s->mask && h->ops == s) - continue; + break; else h = h->next; } @@ -404,6 +405,8 @@ sim_resume (sd, step, siggnal) else State.exception = 0; + State.exited = 0; + do { unsigned long insn, extension; @@ -854,7 +857,10 @@ sim_stop_reason (sd, reason, sigrc) enum sim_stop *reason; int *sigrc; { - *reason = sim_stopped; + if (State.exited) + *reason = sim_exited; + else + *reason = sim_stopped; if (State.exception == SIGQUIT) *sigrc = 0; else |