aboutsummaryrefslogtreecommitdiff
path: root/sim/mn10300
diff options
context:
space:
mode:
Diffstat (limited to 'sim/mn10300')
-rw-r--r--sim/mn10300/ChangeLog17
-rw-r--r--sim/mn10300/interp.c12
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