* 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.
This commit is contained in:
David Edelsohn 1996-11-20 09:47:57 +00:00
parent d70e3e2b7b
commit 899232aba0
4 changed files with 31 additions and 162 deletions

View File

@ -31,9 +31,9 @@ config.in
configure
configure.in
compile.c
writecode.c
run.c
inst.h
tconfig.in
writecode.c
Things-to-lose:

View File

@ -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

View File

@ -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);
}

27
sim/h8300/tconfig.in Normal file
View File

@ -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