diff options
author | David Edelsohn <dje.gcc@gmail.com> | 1996-11-20 09:47:57 +0000 |
---|---|---|
committer | David Edelsohn <dje.gcc@gmail.com> | 1996-11-20 09:47:57 +0000 |
commit | 899232aba0644aa6cd0298bf06b06279eac6da76 (patch) | |
tree | f4dfb02848e0c17cf083afeefe1cf65727ef1336 /sim/h8300 | |
parent | d70e3e2b7b737dc55e48b7846097316e1d5e74f3 (diff) | |
download | gdb-899232aba0644aa6cd0298bf06b06279eac6da76.zip gdb-899232aba0644aa6cd0298bf06b06279eac6da76.tar.gz gdb-899232aba0644aa6cd0298bf06b06279eac6da76.tar.bz2 |
* Makefile.in: Delete stuff moved to ../common/Make-common.in.
(SIM_OBJS): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
* configure: Regenerated.
* inst.h (enum sim_state): Define.
(cpu_state_type): New member `state'. Set it whenever `exception'
is set.
* compile.c (sim_callback): New global.
(sim_set_simcache_size): Renamed from sim_csize.
(sim_resume, case O_SLEEP): Add right way to decode r0 but #if 0 out
'cus it can't work. Change main loop exit test to use cpu.state.
(sim_trace): New function.
(sim_stop_reason): Add right way to set results, but #if 0 out.
(sim_size): New function.
(sim_info): Redirect calls to printf_filtered through callback.
(sim_set_callbacks): Record callback.
* run.c: Deleted, using one in ../common now.
* tconfig.in: New file.
Diffstat (limited to 'sim/h8300')
-rw-r--r-- | sim/h8300/.Sanitize | 4 | ||||
-rw-r--r-- | sim/h8300/configure.in | 19 | ||||
-rw-r--r-- | sim/h8300/run.c | 143 | ||||
-rw-r--r-- | sim/h8300/tconfig.in | 27 |
4 files changed, 31 insertions, 162 deletions
diff --git a/sim/h8300/.Sanitize b/sim/h8300/.Sanitize index 9e8ed06..8f316fe 100644 --- a/sim/h8300/.Sanitize +++ b/sim/h8300/.Sanitize @@ -31,9 +31,9 @@ config.in configure configure.in compile.c -writecode.c -run.c inst.h +tconfig.in +writecode.c Things-to-lose: diff --git a/sim/h8300/configure.in b/sim/h8300/configure.in index 4969df3..87ead3b 100644 --- a/sim/h8300/configure.in +++ b/sim/h8300/configure.in @@ -2,23 +2,8 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.5)dnl AC_INIT(Makefile.in) -AC_CONFIG_HEADER(config.h:config.in) - -AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../..) -AC_CANONICAL_SYSTEM -AC_ARG_PROGRAM - -. ${srcdir}/../../bfd/configure.host - -AC_PROG_CC -AC_PROG_INSTALL -AC_SUBST(CFLAGS) -AC_SUBST(HDEFINES) -AR=${AR-ar} -AC_SUBST(AR) -AC_PROG_RANLIB +SIM_AC_COMMON AC_CHECK_HEADERS(stdlib.h time.h) -AC_OUTPUT(Makefile, -[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac]) +SIM_AC_OUTPUT diff --git a/sim/h8300/run.c b/sim/h8300/run.c deleted file mode 100644 index 7dc57b7..0000000 --- a/sim/h8300/run.c +++ /dev/null @@ -1,143 +0,0 @@ -/* front end to the simulator. - - Written by Steve Chamberlain of Cygnus Support. - sac@cygnus.com - - This file is part of H8/300 sim - - - THIS SOFTWARE IS NOT COPYRIGHTED - - Cygnus offers the following for use in the public domain. Cygnus - makes no warranty with regard to the software or it's performance - and the user accepts the software "AS IS" with all faults. - - CYGNUS DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD TO - THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -*/ - -#include "config.h" - -#include <varargs.h> -#include <stdio.h> -#include <signal.h> -#ifdef HAVE_STDLIB_H -#include <stdlib.h> -#endif -#include "getopt.h" -#include "bfd.h" -#include "remote-sim.h" - -void usage(); -extern int optind; -extern char *optarg; - -int -main (ac, av) - int ac; - char **av; -{ - bfd *abfd; - bfd_vma start_address; - asection *s; - int i; - int verbose = 0; - int trace = 0; - char *name = ""; - int sigrc; - enum sim_stop reason; - - while ((i = getopt (ac, av, "c:htv")) != EOF) - switch (i) - { - case 'c': - sim_csize (atoi (optarg)); - break; - case 'h': - set_h8300h (1); - break; - case 't': - trace = 1; - break; - case 'v': - verbose = 1; - break; - default: - usage(); - } - - if (ac - optind != 1) - usage(); - - name = av[ac - 1]; - - if (verbose) - printf ("run %s\n", name); - - abfd = bfd_openr (name, "coff-h8300"); - if (! abfd) - { - fprintf (stderr, "%s: unable to open %s\n", av[0], name); - exit (1); - } - - if (! bfd_check_format(abfd, bfd_object)) - { - fprintf (stderr, "%s: %s is not a valid executable\n", av[0], name); - exit (1); - } - - if (abfd->arch_info->mach == bfd_mach_h8300h - || abfd->arch_info->mach == bfd_mach_h8300s) - set_h8300h (1); - - for (s = abfd->sections; s; s=s->next) - { - char *buffer; - - if (s->flags & SEC_LOAD) - { - - buffer = malloc(bfd_section_size(abfd,s)); - bfd_get_section_contents(abfd, s, buffer, 0, - bfd_section_size (abfd, s)); - sim_write(s->vma, buffer, bfd_section_size (abfd, s)); - } - } - - start_address = bfd_get_start_address(abfd); - sim_create_inferior (start_address, NULL, NULL); - sim_resume(0,0); - if (verbose) - sim_info (verbose - 1); - sim_stop_reason (&reason, &sigrc); - /* FIXME: this test is insufficient but we can't do much - about it until sim_stop_reason is cleaned up. */ - if (sigrc == SIGILL) - abort (); - return 0; -} - -/* gdb callback used by simulator */ - -void -printf_filtered (va_alist) - va_dcl -{ - char *msg; - va_list args; - - va_start (args); - msg = va_arg (args, char *); - vfprintf (stdout, msg, args); - va_end (args); -} - -void -usage() -{ - fprintf (stderr, "usage: run [-h] [-t] [-v] [-c csize] program\n"); - exit (1); -} diff --git a/sim/h8300/tconfig.in b/sim/h8300/tconfig.in new file mode 100644 index 0000000..d3cef82 --- /dev/null +++ b/sim/h8300/tconfig.in @@ -0,0 +1,27 @@ +/* h8300 target configuration file. */ + +/* Define this if the simulator supports profiling. + See the mips simulator for an example. + This enables the `-p foo' and `-s bar' options. + The target is required to provide sim_set_profile{,_size}. */ +/* #define SIM_HAVE_PROFILE */ + +/* Define this if the simulator uses an instruction cache. + See the h8/300 simulator for an example. + This enables the `-c size' option to set the size of the cache. + The target is required to provide sim_set_simcache_size. */ +#define SIM_HAVE_SIMCACHE + +/* C statement to call after argument parsing is done and executable file + has been opened (with bfd_openr). + See h8300/tconfig.in for an example. */ +#define SIM_PRE_LOAD(EXEC_BFD) \ +do { \ + if ((EXEC_BFD)->arch_info->mach == bfd_mach_h8300h \ + || (EXEC_BFD)->arch_info->mach == bfd_mach_h8300s) \ + set_h8300h (1); \ +} while (0) + +/* FIXME: This is a quick hack for run.c so it can support the `-h' option. + It will eventually be replaced by a more general facility. */ +#define SIM_H8300 |