From: David Edelsohn Date: Wed, 20 Nov 1996 09:47:57 +0000 (+0000) Subject: * Makefile.in: Delete stuff moved to ../common/Make-common.in. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=899232aba0644aa6cd0298bf06b06279eac6da76;p=binutils-gdb.git * 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. --- diff --git a/sim/h8300/.Sanitize b/sim/h8300/.Sanitize index 9e8ed06a083..8f316fe9320 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 4969df37f9b..87ead3b4df1 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 7dc57b7db9b..00000000000 --- 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 -#include -#include -#ifdef HAVE_STDLIB_H -#include -#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 00000000000..d3cef82d92a --- /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