H8/300 simulator
This commit is contained in:
parent
a9b37611e7
commit
a154eea78c
|
@ -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.
|
|
@ -0,0 +1,4 @@
|
||||||
|
Tue Dec 22 13:56:48 1992 Steve Chamberlain (sac@thepub.cygnus.com)
|
||||||
|
|
||||||
|
* new
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
|
@ -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;
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue