aboutsummaryrefslogtreecommitdiff
path: root/sim/m32r
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>1997-08-27 04:44:41 +0000
committerAndrew Cagney <cagney@redhat.com>1997-08-27 04:44:41 +0000
commitfafce69ab16b45fb1ac6bd2ec5afc8e8dbed0374 (patch)
treeeaab2b03e17f79cd61e73a0b510942da3f20dcc3 /sim/m32r
parent9f64f00adaa7fb89b13ed291a778a262260dc409 (diff)
downloadgdb-fafce69ab16b45fb1ac6bd2ec5afc8e8dbed0374.zip
gdb-fafce69ab16b45fb1ac6bd2ec5afc8e8dbed0374.tar.gz
gdb-fafce69ab16b45fb1ac6bd2ec5afc8e8dbed0374.tar.bz2
Add ABFD argument to sim_create_inferior. Document.
Add file sim-hload.c - generic load for hardware only simulators. Review each simulators sim_open, sim_load, sim_create_inferior so that they more closely match required behavour.
Diffstat (limited to 'sim/m32r')
-rw-r--r--sim/m32r/ChangeLog6
-rw-r--r--sim/m32r/Makefile.in86
-rw-r--r--sim/m32r/sim-if.c30
3 files changed, 98 insertions, 24 deletions
diff --git a/sim/m32r/ChangeLog b/sim/m32r/ChangeLog
index 7d17acb..242fdd1 100644
--- a/sim/m32r/ChangeLog
+++ b/sim/m32r/ChangeLog
@@ -1,6 +1,12 @@
Tue Aug 26 10:39:42 1997 Andrew Cagney <cagney@b1.cygnus.com>
* sim-if.c (sim_kill): Delete.
+ (sim_create_inferior): Add ABFD argument.
+ (sim_load): Move setting of PC from here.
+ (sim_create_inferior): To here.
+ (sim_load): Delete, use sim-hload.c instead.
+
+ * Makefile.in (SIM_OBJS): Add sim-hload.o module.
Mon Aug 25 17:50:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
diff --git a/sim/m32r/Makefile.in b/sim/m32r/Makefile.in
new file mode 100644
index 0000000..3870f19
--- /dev/null
+++ b/sim/m32r/Makefile.in
@@ -0,0 +1,86 @@
+# Makefile template for Configure for the m32r simulator
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+# Contributed by Cygnus Support.
+#
+# This file is part of GDB, the GNU debugger.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+## COMMON_PRE_CONFIG_FRAG
+
+SIM_OBJS = sim-if.o m32r.o mainloop.o \
+ decode.o extract.o semantics.o seman-cache.o model.o \
+ sim-io.o sim-utils.o sim-load.o sim-abort.o sim-watch.o \
+ sim-module.o sim-options.o sim-trace.o sim-profile.o sim-model.o \
+ sim-core.o sim-events.o sim-endian.o sim-bits.o sim-config.o \
+ sim-hload.o \
+ cgen-utils.o cgen-trace.o cgen-scache.o
+
+# Extra headers included by sim-main.h.
+SIM_EXTRA_DEPS = \
+ $(srcdir)/../common/cgen-types.h \
+ $(srcdir)/../common/cgen-sim.h \
+ $(srcdir)/../common/cgen-trace.h \
+ arch-defs.h
+
+SIM_ENDIAN = @sim_endian@
+SIM_HOSTENDIAN = @sim_hostendian@
+SIM_SCACHE = @sim_scache@
+SIM_DEFAULT_MODEL = @sim_default_model@
+SIM_EXTRA_CFLAGS = \
+ $(SIM_ENDIAN) $(SIM_HOSTENDIAN) \
+ $(SIM_SCACHE) $(SIM_DEFAULT_MODEL)
+
+SIM_RUN_OBJS = nrun.o
+SIM_EXTRA_CLEAN = m32r-clean
+
+## COMMON_POST_CONFIG_FRAG
+
+CPU = m32r
+MAIN_INCLUDE_DEPS = \
+ sim-main.h \
+ $(srcdir)/../common/sim-config.h \
+ $(srcdir)/../common/sim-base.h \
+ $(srcdir)/../common/sim-basics.h \
+ $(srcdir)/../common/sim-module.h \
+ $(srcdir)/../common/sim-trace.h \
+ $(srcdir)/../common/sim-profile.h \
+ tconfig.h
+INCLUDE_DEPS = $(MAIN_INCLUDE_DEPS) $(SIM_EXTRA_DEPS) cpu-sim.h
+OPS_INCLUDE_DEPS = mem-ops.h sem-ops.h
+
+sim-if.o: sim-if.c $(INCLUDE_DEPS) $(srcdir)/../common/sim-core.h
+m32r.o: m32r.c $(INCLUDE_DEPS) $(OPS_INCLUDE_DEPS)
+
+# FIXME: Use of `mono' is wip.
+mainloop.c: $(srcdir)/../common/genmloop.sh mainloop.in
+ rm -f mainloop.c
+ $(SHELL) $(srcdir)/../common/genmloop.sh mono $(CPU) $(srcdir)/mainloop.in >mainloop.c
+mainloop.o: mainloop.c sem-switch.c $(INCLUDE_DEPS) $(OPS_INCLUDE_DEPS) \
+ $(srcdir)/../common/cgen-scache.h
+
+decode.o: decode.c decode.h $(INCLUDE_DEPS) $(OPS_INCLUDE_DEPS) cpu-opc.h
+extract.o: extract.c decode.h $(INCLUDE_DEPS) $(OPS_INCLUDE_DEPS)
+semantics.o: semantics.c decode.h $(INCLUDE_DEPS) $(OPS_INCLUDE_DEPS)
+model.o: model.c $(INCLUDE_DEPS) cpu-opc.h
+
+# wip
+#extr-cache.o: extract.c $(INCLUDE_DEPS) $(OPS_INCLUDE_DEPS)
+# $(CC) -c $(srcdir)/extract.c -o extr-cache.o -DSCACHE_P $(ALL_CFLAGS)
+seman-cache.o: semantics.c decode.h $(INCLUDE_DEPS) $(OPS_INCLUDE_DEPS)
+ $(CC) -c $(srcdir)/semantics.c -o seman-cache.o -DSCACHE_P $(ALL_CFLAGS)
+
+m32r-clean:
+ rm -f mainloop.c
diff --git a/sim/m32r/sim-if.c b/sim/m32r/sim-if.c
index 7f4e102..a273347 100644
--- a/sim/m32r/sim-if.c
+++ b/sim/m32r/sim-if.c
@@ -100,31 +100,9 @@ sim_close (sd, quitting)
}
SIM_RC
-sim_load (sd, prog, abfd, from_tty)
- SIM_DESC sd;
- char *prog;
- bfd *abfd;
- int from_tty;
-{
- extern bfd *sim_load_file (); /* ??? Don't know where this should live. */
- bfd *prog_bfd;
-
- prog_bfd = sim_load_file (sd, STATE_MY_NAME (sd),
- STATE_CALLBACK (sd),
- prog,
- /* pass NULL for abfd, we always open our own */
- NULL,
- STATE_OPEN_KIND (sd) == SIM_OPEN_DEBUG);
- if (prog_bfd == NULL)
- return SIM_RC_FAIL;
- sim_analyze_program (sd, prog_bfd);
- STATE_CPU_CPU (sd, 0)->pc = STATE_START_ADDR (sd);
- return SIM_RC_OK;
-}
-
-SIM_RC
-sim_create_inferior (sd, argv, envp)
+sim_create_inferior (sd, abfd, argv, envp)
SIM_DESC sd;
+ struct _bfd *abfd;
char **argv;
char **envp;
{
@@ -132,6 +110,10 @@ sim_create_inferior (sd, argv, envp)
STATE_ARGV (sd) = sim_copy_argv (argv);
STATE_ENVP (sd) = sim_copy_argv (envp);
#endif
+ if (abfd != NULL)
+ STATE_CPU_CPU (sd, 0)->pc = bfd_get_start_address (abfd);
+ else
+ STATE_CPU_CPU (sd, 0)->pc = 0;
return SIM_RC_OK;
}