Tue May 23 21:39:23 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Thu Sep  2 18:15:53 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

1999-05-08  Felix Lee  <flee@cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	
Wed Nov 25 18:22:10 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* support.c: Include <errno.h>

Tue Apr 28 18:33:31 1998  Geoffrey Noer  <noer@cygnus.com>

        * configure: Regenerated to track ../common/aclocal.m4 changes.

Sun Apr 26 15:31:55 1998  Tom Tromey  <tromey@creche>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Sun Apr 26 15:18:45 1998  Tom Tromey  <tromey@cygnus.com>

	* acconfig.h: New file.
	* configure.in: Reverted change of Apr 24; use sinclude again.

Fri Apr 24 14:16:40 1998  Tom Tromey  <tromey@creche>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Fri Apr 24 11:17:28 1998  Tom Tromey  <tromey@cygnus.com>

	* configure.in: Don't use sinclude.

Sat Apr  4 20:36:25 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Fri Mar 27 16:15:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Mar 25 12:35:29 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Mar 18 12:38:12 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Tue Feb 17 12:54:05 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* iface.c (sim_store_register, sim_fetch_register): Pass in length
 	parameter.  Return -1.

Sun Feb  1 16:47:51 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Sat Jan 31 18:15:41 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Mon Jan 19 22:26:29 1998  Doug Evans  <devans@seba>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Mon Dec 15 23:17:11 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Thu Dec  4 09:21:05 1997  Doug Evans  <devans@canuck.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Oct 22 14:43:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* iface.c (sim_load): Pass lma_p and sim_write args to
 	sim_load_file.

Fri Oct  3 09:28:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Sep 24 17:38:57 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Tue Sep 23 11:04:38 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Mon Sep 22 11:46:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Sep 17 13:23:45 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (CONFIG_H): Use config.h from local directory.

Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Thu Sep  4 17:21:23 1997  Doug Evans  <dje@seba>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Aug 27 18:13:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Tue Aug 26 10:43:33 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* iface.c (sim_kill): Delete.
	(sim_create_inferior): Add ABFD argument.
	(sim_load): Move setting of PC from here.
	(sim_create_inferior): To here.
	(sim_open, sim_load): Add FIXME about need to move arch test to
 	sim_open.

Mon Aug 25 17:50:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Mon Aug 25 16:36:10 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* iface.c (sim_open): Add ABFD argument. Change ARGV to PARGV.

Tue May 20 10:28:07 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* iface.c (sim_set_callbacs): Delete SIM_DESC argument.
	(sim_open): Add callback argument.

Wed Apr 30 10:28:34 1997  Doug Evans  <dje@canuck.cygnus.com>

	* iface.c (sim_load): Set sim_z8001_mode if bfd_mach_z8001.
	* tconfig.in (SIM_PRE_LOAD): Delete, no longer used.

Thu Apr 24 00:39:51 1997  Doug Evans  <dje@canuck.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Fri Apr 18 14:18:06 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* mem.h (Z8k_PAGE_SIZE): Rename from PAGE_SIZE.  Is it used?

	* iface.c (sim_stop): New function.
	(NULL): Define if not already.

Thu Apr 17 03:54:23 1997  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (SIM_OBJS): Add sim-load.o.
	* iface.c: #include bfd.h.
	(z8k_callback): New global.
	(sim_kind, myname): New static locals.
	(sim_open): Set sim_kind, myname.
	(sim_load): Return SIM_RC.  New arg abfd.  Call sim_load_file to
	load file into simulator.  Set start address from bfd.
	(sim_create_inferior): Return SIM_RC.  Delete arg start_address.
	(sim_set_callbacks): Set z8k_callback.

Thu Apr 17 11:36:04 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* tm.h (sim_trace) : Remove prototype - now in remote-sim.h
	* support.c (sim_trace): Update.

Mon Apr  7 15:45:02 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	* config.in: Ditto.

Wed Apr  2 15:06:28 1997  Doug Evans  <dje@canuck.cygnus.com>

	* iface.c (sim_open): New arg `kind'.

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Apr  2 14:34:19 1997 Andrew Cagney <cagney@kremvax.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Wed Mar 19 01:14:00 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* configure: Regenerated to track ../common/aclocal.m4 changes.

Mon Mar 17 15:10:07 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* configure: Re-generate.

Fri Mar 14 10:34:11 1997  Michael Meissner  <meissner@cygnus.com>

	* configure: Regenerate to track ../common/aclocal.m4 changes.

Thu Mar 13 13:02:08 1997  Doug Evans  <dje@canuck.cygnus.com>

	* iface.c (sim_open): New SIM_DESC result.  Argument is now
	in argv form.
	(other sim_*): New SIM_DESC argument.

Tue Feb  4 13:33:30 1997  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (@COMMON_MAKEFILE_FRAG): Use
	COMMON_{PRE,POST}_CONFIG_FRAG instead.
	* configure.in: sinclude ../common/aclocal.m4.
	* configure: Regenerated.

Thu Jan 23 11:46:23 1997  Stu Grossman  (grossman@critters.cygnus.com)

	* configure configure.in Makefile.in:  Update to new configure
	scheme which is more compatible with WinGDB builds.
	* configure.in:  Improve comment on how to run autoconf.
	* configure:  Re-run autoconf to get new ../common/aclocal.m4.
	* Makefile.in:  Use autoconf substitution to install common
	makefile fragment.

Wed Nov 20 02:28:21 1996  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in: Delete stuff moved to ../common/Make-common.in.
	(SIM_OBJS,SIM_EXTRA_CFLAGS,SIM_EXTRA_CLEAN): Define.
	* configure.in: Simplify using macros in ../common/aclocal.m4.
	* configure: Regenerated.
	* iface.c (sim_size): New function.
	(sim_stop_reason): Properly set sim_exited return code.
	* support.c: #include "callback.h".
	* run.c: Deleted, using one in ../common now.
	* tconfig.in: New file.

Thu Oct  3 16:19:07 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

	* Makefile.in (mostlyclean): Don't remove config.log here.

Wed Jun 26 12:32:29 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)

        * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
        INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
        (docdir): Removed.
        * configure.in (AC_PREREQ): autoconf 2.5 or higher.
        (AC_PROG_INSTALL): Added.
        * configure: Rebuilt.

Wed Feb 21 12:17:27 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Regenerate with autoconf 2.7.

Thu Jan 11 16:59:07 1996  Jim Wilson  <wilson@chestnut.cygnus.com>

	* writecode.c (info_args, case CLASS_DISP8): Sign extend using
	shifts instead of char cast.
	(shift): Likewise.

Fri Jan  5 15:36:26 1996  Jim Wilson  <wilson@chestnut.cygnus.com>

	* mem.c (get_page_and_offset): Allocate 16MB not 8MB.

Fri Oct 13 15:02:45 1995  steve chamberlain  <sac@slash.cygnus.com>

	* iface.c (sim_set_callbacks): New.

Tue Oct 10 11:13:55 1995  Fred Fish  <fnf@cygnus.com>

	* Makefile.in (BISON): Remove macro.

Wed Sep 20 13:35:35 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (maintainer-clean): New synonym for realclean.

Fri Sep  8 13:16:10 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (install): Don't install in $(tooldir).

	* configure.in: Call AC_CONFIG_HEADER.  Don't try to use
	bfd/hosts/*.h file or bfd/config/*.mh file.  Call AC_PROG_CC and
	AC_PROG_RANLIB.  Substitute in values for CFLAGS, HDEFINES, AR,
	and CC_FOR_BUILD.  Call AC_CHECK_HEADERS for various header files.
	Touch stamp.h if creating config.h.
	* configure: Rebuild.
	* config.in: New file, created by autoheader.
	* Makefile.in (AR): Define as @AR@.
	(CC): New variable, defined as @CC@.
	(CFLAGS): Define as @CFLAGS@.
	(CC_FOR_BUILD): New variable, defined as @CC_FOR_BUILD@.
	(RANLIB): Define as @RANLIB@.
	(HDEFINES, TDEFINES): New variables.
	(@host_makefile_frag@): Remove.
	(support.o, comped1.o, comped3.o): Depend upon config.h.
	(compedb3.o, comped2.o): Likewise.
	(mem.o): New target.
	(tc-gen2.h): Depend upon writecode, not quick.c.
	(writecode): Build using $(CC_FOR_BUILD).
	(writecode.o, list.o, quick.o): New targets.
	(mostlyclean): Make the same as clean, not distclean.
	(clean): Remove config.log.
	(distclean): Remove config.h and stamp-h.
	(Makefile): Don't depend upon @frags@.  Just rebuild Makefile when
	invoking config.status.
	(config.h, stamp-h): New targets.
	* comped1.c: Don't include "sysdep.h".
	(INLINE): Define as inline, not static inline.
	* comped3.c, compedb3.c, run.c: Don't include "sysdep.h".
	* mem.c: Include "config.h".  Don't include "sysdep.h".  Include
	<stdlib.h> if it exists.
	* support.c: Include "config.h".  Don't include "sysdep.h".
	Include <stdio.h>.  Include <time.h> and <sys/times.h> if they
	exists.  Include <sys/types.h> and <sys/stat.h>.
	(get_now): Only use times if <sys/times.h> exists; otherwise use
	time.
	* writecode.c: Include "config.h".  Include <stdio.h>.  Include
	<stdlib.h> and <string.h> if they exist.  Include <strings.h> if
	it exists and <string.h> does not.

Thu Aug  3 10:45:37 1995  Fred Fish  <fnf@cygnus.com>

	* Update all FSF addresses except those in COPYING* files.

Mon Jul 31 10:18:06 1995  steve chamberlain  <sac@slash.cygnus.com>

	* support.c (normal_flags_16): Calculate carry correctly.
	(support_call): Return values in std regs too.

Fri Jul 28 12:10:06 1995  steve chamberlain  <sac@slash.cygnus.com>

	* inlines.h (put_byte_mem_da): Moved.
	* run.c (main): Return program result.
	* support.c (support_call): Return exit argument.
	* writecode.c (rotate): Fix a load of bugs.
	(info_decode): Insert missing break after OPC_rrc.

Wed Jul  5 16:13:43 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

  	* Makefile.in, configure.in: converted to autoconf.
	* configure: New file, generated with autconf 2.4.

	* z8k.mt: Removed.

Fri Jun 30 16:53:09 1995  Stan Shebs  <shebs@andros.cygnus.com>

	* iface.c (sim_do_command): New function.

Wed May 24 16:31:38 1995  Jim Wilson  <wilson@chestnut.cygnus.com>

	* configure.in: Fix typo in last change.

Mon Mar 27 10:32:34 1995  J.T. Conklin  <jtc@rtl.cygnus.com>

	* run.c: parse arguments with getopt().

Tue Feb 28 17:31:00 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Use ../../bfd/hosts/std-host.h if specific
	host unavailable.

Sun Feb 12 16:03:29 1995  Steve Chamberlain  <sac@splat>

	* iface.c (sim_stop_reason): (Make a bad syscall give a SIGILL.
	* writecode.c (adiv):  Divides are always signed.

Wed Dec 28 21:30:09 1994  Steve Chamberlain  (sac@jonny.cygnus.com)

	* inlines.h: Make INLINES static.
	* mem.c (sitoptr): New instance.
	* support.c (normal_flags_[32|16|8]): New functions.
	(optimize_normal_flags): Use new functions.
	* writecode.c (info_special): Handle sbc. (optimize_normal_flags):
	Always recalc flags.

Wed May 18 14:38:49 1994  Doug Evans  (dje@canuck.cygnus.com)

	* support.c (sim_open): Delete from here.
	(sim_set_args): Delete from here.
	(sim_kill): Delete from here.
	* iface.c (sim_*): Make result void where there isn't one.
	(sim_clear_breakpoints): Delete.
	(sim_set_pc): Delete.
	(sim_info): Delete printf_fn arg, all callers changed.
	(sim_open): Define here.
	(sim_close): New function.
	(sim_load): New function.
	(sim_create_inferior): Renamed from sim_set_args.
	(sim_kill): Define here.
	* run.c (printf): Delete declaration.
	(main): Call sim_create_inferior instead of sim_set_pc.
	* sim.h (sim_clear_breakpoints): Delete.

Wed May 18 13:22:02 1994  Steve Chamberlain  (sac@jonny.cygnus.com)

	* writecode.c (main): Disable the chopping of large initializers.
	GCC can now cope.

Sat May  7 17:24:46 1994  Steve Chamberlain  (sac@cygnus.com)

	* writecode.c (info_args): Add resflg and setflg.
	* list.c : Regenerated.
	* Makefile.in: First rule is now called 'all'

Sat Dec 11 16:39:30 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* iface.c (sim_store_register): Get regval the right way up.
	* writecode.c (info_args): Add lda.

Tue Oct 26 13:01:46 1993  Doug Evans  (dje@canuck.cygnus.com)

	* Makefile.in (INCDIR): Fix definition.
	(CSEARCH): Add -I$(srcdir)/../../gdb
	(comped1.o, comped3.o, compedb3.o, comped2.o): Use CSEARCH, not INCDIR.
	* iface.c: Replace #include "../include/wait.h" with "remote-sim.h".
	(sim_set_pc): int result, use SIM_ADDR for type of arg `addr'.
	(sim_store_register): int result, pass value by reference.
	(sim_fetch_register): Use unsigned char * for arg `buf'.
	(sim_write): int result, use SIM_ADDR for `where' arg,
	use unsigned char * for `what' arg.
	(sim_read): Ditto.
	(sim_resume): int result.
	(sim_stop_reason): Renamed from sim_stop_signal, int result,
	new arg `reason'.
	(sim_info): int result, merge sim_info_print into here.
	(sim_info_print): Deleted.
	* run.c: #include <stdio.h>
	(main): Update call to sim_info.
	* sim.h: Remove various prototypes defined in remote-sim.h.

Sat Oct 23 15:16:45 1993  Doug Evans  (dje@canuck.cygnus.com)

	* iface.c (sim_stop_signal): Result is now enum sim_stop.

Thu Oct  7 19:01:07 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)

	* writecode.c (doset, info_docode): Understand set and res insns.

Thu Sep 30 11:30:42 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)

	* support.c (tm_info_print):  If no timetaken, don't divide by zero.

Fri Jul 30 15:51:54 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)

	* writecode.c (div): rename to divide, to resolve conflict with
	ANSI function div from <stdlib.h>

Mon Mar 15 15:48:50 1993  Ian Lance Taylor  (ian@cygnus.com)

	* z8k.mt (DO_INSTALL): Renamed from INSTALL.

Tue Mar  9 12:32:29 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* writecode.c (main): Make the vector 'big' static, so that it
	will compile on the apollo.
	* support.c: Use the ANSI compilant __inline__.

Fri Mar  5 07:54:18 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* writecode.c (main): When using gcc, split the tables into
	sections so that it will compile.
	* Makefile.in: Get ar args right.
	* tm.h: Fix gcc prototypes.

Wed Mar  3 15:04:48 1993  Steve Chamberlain  (sac@poseidon.cygnus.com)

	* support.c (fail): Get the argument count right.
	* tm.h: Lint.
	* writecode.c (main): Pass all the arguments emit needs.

Tue Feb  2 07:49:42 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* lint, prototypes

Fri Jan 15 12:43:08 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* New


