aboutsummaryrefslogtreecommitdiff
path: root/sim/mn10300/interp.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>1997-08-25 23:14:25 +0000
committerAndrew Cagney <cagney@redhat.com>1997-08-25 23:14:25 +0000
commit247fccdeb54a09a14287b2e829511803ad9d7cc1 (patch)
treec992df7132ca0c315cbcfd5ad81bbc4f16675936 /sim/mn10300/interp.c
parent04f295b64859a6c6b01739fc4dd7fddce42db8d9 (diff)
downloadfsf-binutils-gdb-247fccdeb54a09a14287b2e829511803ad9d7cc1.zip
fsf-binutils-gdb-247fccdeb54a09a14287b2e829511803ad9d7cc1.tar.gz
fsf-binutils-gdb-247fccdeb54a09a14287b2e829511803ad9d7cc1.tar.bz2
Add ABFD argument to sim_open call. Pass through to sim_config so
that image properties such as endianness can be checked. More strongly document the expected behavour of each of the sim_* interfaces. Add default endian argument to simulator config macro SIM_AC_OPTION_ENDIAN. Use in sim_config.
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