H8/300 simulator

This commit is contained in:
Steve Chamberlain 1992-12-22 21:59:06 +00:00
parent a9b37611e7
commit a154eea78c
6 changed files with 1744 additions and 0 deletions

41
sim/h8300/.Sanitize Normal file
View File

@ -0,0 +1,41 @@
# Sanitize.in for devo.
# $Id$
#
# Each directory to survive it's way into a release will need a file
# like this one called "./.Sanitize". All keyword lines must exist,
# and must exist in the order specified by this file. Each directory
# in the tree will be processed, top down, in the following order.
# Hash started lines like this one are comments and will be deleted
# before anything else is done. Blank lines will also be squashed
# out.
# The lines between the "Do-first:" line and the "Things-to-keep:"
# line are executed as a /bin/sh shell script before anything else is
# done in this
Do-first:
echo Sanitizing `pwd`...
# All files listed between the "Things-to-keep:" line and the
# "Files-to-sed:" line will be kept. All other files will be removed.
# Directories listed in this section will have their own Sanitize
# called. Directories not listed will be removed in their entirety
# with rm -rf.
Things-to-keep:
ChangeLog
Makefile.in
configure.in
writecode.c
run.c
Do-last:
echo Done in `pwd`.
# End of file.

4
sim/h8300/ChangeLog Normal file
View File

@ -0,0 +1,4 @@
Tue Dec 22 13:56:48 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* new

191
sim/h8300/Makefile.in Normal file
View File

@ -0,0 +1,191 @@
# Makefile template for Configure for the h8300sim library.
# Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
# Written by Cygnus Support.
#
# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
srcdir = .
prefix = /usr/local
exec_prefix = $(prefix)
bindir = $(exec_prefix)/bin
libdir = $(exec_prefix)/lib
datadir = $(prefix)/lib
mandir = $(prefix)/man
man1dir = $(mandir)/man1
man2dir = $(mandir)/man2
man3dir = $(mandir)/man3
man4dir = $(mandir)/man4
man5dir = $(mandir)/man5
man6dir = $(mandir)/man6
man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
man9dir = $(mandir)/man9
infodir = $(prefix)/info
includedir = $(prefix)/include
oldincludedir =
docdir = $(srcdir)/doc
SHELL = /bin/sh
INSTALL = install -c
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL)
AR = ar
AR_FLAGS = qc
CFLAGS = -g
BISON = bison
MAKEINFO = makeinfo
RANLIB = ranlib
INCDIR = $(srcdir)/../include
CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
DEP = mkdep
TARGETLIB = libsim.a
run: code.o run.o
$(CC) -o run code.o run.o ../bfd/libbfd.a ../libiberty/libiberty.a
code.c:p1.c p2.c p3.c
cat p1.c p2.c p3.c | cb >code.c
indent code.c
p2.c:writecode
./writecode >p2.c
writecode:writecode.o
writecode.o:writecode.c
$(CC) -g -I$(INCDIR) -c writecode.c
#### host and target dependent Makefile fragments come in here.
###
FLAGS_TO_PASS = \
"against=$(against)" \
"AR=$(AR)" \
"AR_FLAGS=$(AR_FLAGS)" \
"CC=$(CC)" \
"CFLAGS=$(CFLAGS)" \
"RANLIB=$(RANLIB)" \
"MAKEINFO=$(MAKEINFO)" \
"INSTALL=$(INSTALL)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
"BISON=$(BISON)"
.c.o:
$(CC) -c $(CFLAGS) $(HDEFINES) $(TDEFINES) $(CSEARCH) $(CSWITCHES) $<
# C source files that correspond to .o's.
CFILES = z8k-dis.c
STAGESTUFF = $(TARGETLIB) $(OFILES)
all: $(TARGETLIB)
.NOEXPORT:
check:
info:
clean-info:
install-info:
# HDEPFILES comes from the host config; TDEPFILES from the target config.
$(TARGETLIB): $(OFILES)
rm -f $(TARGETLIB)
$(AR) $(AR_FLAGS) $(TARGETLIB) $(OFILES)
$(RANLIB) $(TARGETLIB)
# Circumvent Sun Make bug with VPATH.
sparc-opc.o: sparc-opc.c
tags etags: TAGS
TAGS: force
etags $(INCDIR)/*.h $(srcdir)/*.h $(srcdir)/*.c
clean:
rm -f *.[oa] *~ core *.E *.p *.ip aout-params.h gen-aout
clobber realclean: clean
rm -f libbfd.a TAGS
# Mark everything as depending on config.status, since the timestamp on
# sysdep.h might actually move backwards if we reconfig and relink it
# to a different hosts/h-xxx.h file. This will force a recompile anyway.
RECONFIG = config.status
# This target should be invoked before building a new release.
# 'VERSION' file must be present and contain a string of the form "x.y"
#
roll:
@V=`cat VERSION` ; \
MAJ=`sed 's/\..*//' VERSION` ; \
MIN=`sed 's/.*\.//' VERSION` ; \
V=$$MAJ.`expr $$MIN + 1` ; \
rm -f VERSION ; \
echo $$V >VERSION ; \
echo Version $$V
# Dummy target to force execution of dependent targets.
#
force:
install:
-parent=`echo $(bindir)|sed -e 's@/[^/]*$$@@'`; \
if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi
-if [ -d $(bindir) ] ; then true ; else mkdir $(bindir) ; fi
-parent=`echo $(man1dir)|sed -e 's@/[^/]*$$@@'`; \
if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi
-if [ -d $(man1dir) ] ; then true ; else mkdir $(man1dir) ; fi
-n=`t='$(program_transform_name)'; echo run | sed -e "" $$t`; \
$(INSTALL_PROGRAM) run $(bindir)/$$n; \
$(M_INSTALL)
Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)
$(SHELL) ./config.status
dep: $(CFILES)
mkdep $(CFLAGS) $?
# What appears below is generated by a hacked mkdep using gcc -MM.
# DO NOT DELETE THIS LINE -- mkdep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY

31
sim/h8300/configure.in Normal file
View File

@ -0,0 +1,31 @@
# This file is a shell script that supplies the information necessary
# to tailor a template configure script into the configure script
# appropriate for this directory. For more information, check any
# existing configure script.
srctrigger=writecode.c
srcname="sim"
# per-host:
. ${srcdir}/../bfd/configure.host
# Set up to make a link between the host's include file and "sysdep.h".
files="../bfd/hosts/${my_host}.h"
links="sysdep.h"
if [ ! -f ${srcdir}/${files} ] ; then
if [ -n "${my_host}" ] ; then
echo '***' No file ${srcdir}/${files} 1>&2
fi
echo '***' ${srcname} does not support host ${host} 1>&2
exit 1
fi
host_makefile_frag=
if [ -f ${srcdir}/../bfd/config/${my_host}.mh ] ; then
host_makefile_frag=../bfd/config/${my_host}.mh
fi
# per-target:

81
sim/h8300/run.c Normal file
View File

@ -0,0 +1,81 @@
/* run front end support for H8/300
Copyright (C) 1987, 1992 Free Software Foundation, Inc.
This file is part of H8300 SIM
GNU CC 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, or (at your option)
any later version.
GNU CC 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 GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Steve Chamberlain
sac@cygnus.com */
#include "bfd.h"
#include "sysdep.h"
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 = "";
for (i = 1; i < ac; i++)
{
if (strcmp(av[i],"-v") == 0)
{
verbose = 1;
}
else if (strcmp(av[i],"-t") == 0)
{
trace = 1;
}
else
{
name = av[i];
}
}
if (verbose)
{
printf("run %s\n", name);
}
abfd = bfd_openr(name,"coff-h8300");
if (abfd) {
if (bfd_check_format(abfd, bfd_object))
{
for (s = abfd->sections; s; s=s->next)
{
char *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_store_register(start_address);
sim_resume(0,0);
return 0;
}
}
return 1;
}

1396
sim/h8300/writecode.c Normal file

File diff suppressed because it is too large Load Diff