diff options
author | Andrew Cagney <cagney@redhat.com> | 1997-08-27 04:44:41 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1997-08-27 04:44:41 +0000 |
commit | fafce69ab16b45fb1ac6bd2ec5afc8e8dbed0374 (patch) | |
tree | eaab2b03e17f79cd61e73a0b510942da3f20dcc3 /sim/m32r | |
parent | 9f64f00adaa7fb89b13ed291a778a262260dc409 (diff) | |
download | gdb-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/ChangeLog | 6 | ||||
-rw-r--r-- | sim/m32r/Makefile.in | 86 | ||||
-rw-r--r-- | sim/m32r/sim-if.c | 30 |
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; } |