aboutsummaryrefslogtreecommitdiff
path: root/sim/mn10300/interp.c
diff options
context:
space:
mode:
Diffstat (limited to 'sim/mn10300/interp.c')
-rw-r--r--sim/mn10300/interp.c12
1 files changed, 9 insertions, 3 deletions
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