1999-11-22  Nick Clifton  <nickc@cygnus.com>

	* armos.c (SWIread): Generate an error message if a huge read is
	performed.
	(SWIwrite): Generate an error message if a huge write is
	performed.

1999-10-27  Nick Clifton  <nickc@cygnus.com>

	* thumbemu.c (ARMul_ThumbDecode): Accept 0xbebe as a thumb
	breakpoint. 

1999-10-08  Ulrich Drepper  <drepper@cygnus.com>

	* armos.c (SWIopen): Always pass third parameter with 0666 since
	otherwise uninitialized memory gets access if the O_CREAT bit is
	set and so we possibly cannot access the file afterwards.

1999-09-29  Doug Evans  <devans@casey.cygnus.com>

	* armos.c (SWIWrite0): Send output to stdout instead of stderr.
	(ARMul_OSHandleSWI, case SWI_WriteC,AngelSWI_Reason_WriteC): Ditto.

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.
	
1999-04-06  Keith Seitz  <keiths@cygnus.com>

	* wrapper.c (stop_simulator): New global.
	(sim_stop): Set sim state to STOP and set
	stop_simulator.
	(sim_resume): Reset stop_simulator.
	(sim_stop_reason): If stop_simulator is set, tell gdb
	that the we took SIGINT.
	* armemu.c (ARMul_Emulate26): Don't loop forever. Stop if
	stop_simulator is set.

1999-04-02  Keith Seitz  <keiths@cygnus.com>

	* armemu.c (ARMul_Emulate26): If NEED_UI_LOOP_HOOK, call ui_loop_hook
	whenever the counter expires.
	* Makefile.in (SIM_EXTRA_CFLAGS): Include define NEED_UI_LOOP_HOOK.

1999-03-24  Nick Clifton  <nickc@cygnus.com>

	* armemu.c (ARMul_Emulate26): Handle new breakpoint value.
	* thumbemu.c (ARMul_ThumbDecode): Handle new breakpoint value.

Mon Sep 14 09:00:05 1998  Nick Clifton  <nickc@cygnus.com>

	* wrapper.c (sim_open): Set endianness according to BFD or command
	line switch.

	* tconfig.in: Define SIM_HAVE_BIENDIAN.

Thu Aug 27 11:00:05 1998  Nick Clifton  <nickc@cygnus.com>

	* armemu.c (Multiply64): Test for Rm (rather than Rs) not being
	the same as either RdHi or RdLo.

Thu Jul  2 10:24:35 1998  Nick Clifton  <nickc@cygnus.com>

	* armos.c (ARMul_OSHandleSWI: AngelSWI_Reason_ReportException):
	Set Reg[0] based on reason for for the exception.

Thu Jun  4 15:22:03 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* armos.c (SWIwrite0): New function.
	(WriteCommandLineTo): New function.
	(SWIopen): New function.
	(SWIread): New function.
	(SWIwrite): New function.
	(SWIflen): New function.
	(ARMul_OSHandleSWI): Call new functions instead of handling	
	these here.
	(ARMul_OSHandleSWI): Handle Angel SWIs correctly.
	(*): Reformat spacing to be a bit more GNUly.
	Most code taken from a patch by Anthony Thompson 
	(athompso@cambridge.arm.com)

Tue Jun  2 15:22:22 1998  Nick Clifton  <nickc@cygnus.com>

	* armos.h: Add Angel SWI and its reason codes.
	* armos.c (ARMul_OSHandleSWI): Ignore Angel SWIs (for now).

Mon Jun  1 17:14:19 1998  Anthony Thompson (athompso@cambridge.arm.com)

	* armos.c (ARMul_OSHandleSWI::SWI_Open): Handle special case
	of ":tt" to catch stdin in addition to stdout.
	(ARMul_OSHandleSWI::SWI_Seek): Return 0 or 1 to indicate failure
	or success of lseek().

Wed May 20 17:36:25 1998  Nick Clifton  <nickc@cygnus.com>

	* armos.c (ARMul_OSHandleSWI): Special case code to catch attempts
	to open stdout.

Wed Apr 29 15:29:55 1998  Jeff Johnston  <jjohnstn@cygnus.com>

	* armos.c (ARMul_OSHandleSWI): Added code for SWI_Clock,
	SWI_Flen, and SWI_Time.  Also fixed SWI_Seek code to only
	seek from offset 0 and not to use R2 for whence since it is
	not passed as part of the SWI call.

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:20:26 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:20:19 1998  Tom Tromey  <tromey@cygnus.com>

	* configure.in: Don't call 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 Mar 10 09:26:38 1998  Nick Clifton  <nickc@cygnus.com>

	* armopts.h: Remove definition of LITTLEND - it is not used.

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

	* wrapper.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.

Tue Dec  9 11:30:48 1997  Nick Clifton  <nickc@cygnus.com>

	* Makefile.in: Updated with changes from branch.
	* armdefs.h:   ditto
	* armemu.c:    ditto   these changes
	* armemu.h:    ditto   add support for
	* armos.c:     ditto   the Thumb instruction
	* armsupp.c:   ditto   set and the new v4
	* armvirt.c:   ditto   architecture.
	* wrapper.c:   ditto
	* thumbemu.c:  New file from branch.


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

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

Thu Oct 30 13:54:06 1997  Nick Clifton  <nickc@cygnus.com>

	* armos.c (ARMul_OSHandleSWI): Add support for GetEnv SWI.  Patch
	from Tony Thompson at ARM: athompso@arm.com 

	* wrapper.c (sim_create_inferior): Add code to create an execution
	environment.  Patch from Tony Thompson at ARM: athompso@arm.com

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

	* wrapper.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.

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:37:27 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* wrapper.c (sim_kill): Delete.
	(sim_create_inferior): Add ABFD argument.
	(sim_load): Move setting of PC from here.
	(sim_create_inferior): To here.

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 15:35:45 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* wrapper.c (sim_open): Add ABFD argument.

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

	* wrapper.c (sim_open): Add callback argument.
	(sim_set_callbacks): Drop SIM_DESC argument.

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

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

Fri Apr 18 13:32:23 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* wrapper.c (sim_stop): Stub sim_stop function.

Thu Apr 17 18:33:01 1997  Fred Fish  <fnf@cygnus.com>

	* arminit.c (ARMul_NewState): Preinitialize the state to
	all zero/NULL.

Thu Apr 17 02:39:02 1997  Doug Evans  <dje@canuck.cygnus.com>

	* Makefile.in (SIM_OBJS): Add sim-load.o.
	* wrapper.c (sim_kind,myname): New static locals.
	(sim_open): Set sim_kind, myname.
	(sim_load): Call sim_load_file to do work.  Set start address from bfd.
	(sim_create_inferior): Return SIM_RC.  Delete start_address arg.

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

	* wrapper.c (sim_trace): Update so that it matches prototype.

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

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

Mon Apr  7 12:01:17 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* Makefile.in (armemu32.o): Replace $< with autoconf recommended
 	$(srcdir)/....
	(armemu26.o): Ditto.

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

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

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

Wed Apr  2 14:50:44 1997  Ian Lance Taylor  <ian@cygnus.com>

	* COPYING: Update FSF address.

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 12:38:56 1997  Doug Evans  <dje@canuck.cygnus.com>

	* wrapper.c (sim_open): Has result now.
	(sim_*): New SIM_DESC argument.

Tue Feb  4 13:22:21 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 01:05:10 1996  Doug Evans  <dje@canuck.cygnus.com>

	* run.c: Deleted, use one in ../common now.
	* Makefile.in: Delete everything that's been moved to
	../common/Make-common.in.
	(SIM_OBJS): Define.
	* configure.in: Simplify using macros in ../common/aclocal.m4.
	* configure: Regenerated.
	* config.in: New file.
	* armos.c: #include config.h.
	* wrapper.c (mem_size): Value is in bytes now.
	(sim_callback): New global.
	(arm_sim_set_profile{,_size}): Delete.
	(arm_sim_set_mem_size): Rename to sim_size.
	(sim_do_command): Call printf_filtered via callback.
	(sim_set_callbacks): Record callback.

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

	* Makefile.in (mostlyclean): Remove config.log.

Wed Jun 26 12:17:24 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:14:31 1996  Ian Lance Taylor  <ian@cygnus.com>

	* configure: Regenerate with autoconf 2.7.

Fri Dec 15 16:27:30 1995  Ian Lance Taylor  <ian@cygnus.com>

	* run.c (main): Use new bfd_big_endian macro.

Mon Nov 20 17:40:38 1995  Doug Evans  <dje@canuck.cygnus.com>

	* run.c: Include "getopt.h".
	(verbose): Delete.
	(usage): Make static.
	(main): Call arm_sim_set_verbosity.
	Only load sections marked SEC_LOAD.
	* wrapper.c (mem_size, verbosity): New static global.
	(arm_sim_set_mem_size): Renamed from sim_size.	Callers updated.
	(arm_sim_set_profile{,_size}): Renamed from sim_foo.  Callers updated.
	
Fri Nov 17 19:35:11 1995  Doug Evans  <dje@canuck.cygnus.com>

	* armdefs.h (ARMul_State): New member `verbose'.
	* armrdi.c (ARMul_ConsolePrint): Add missing va_end.
	* run.c (verbose): Make global.
	* wrapper.c (init): Set state->verbose.
	(ARMul_ConsolePrint): Don't print anything if !verbose.

Fri Oct 13 15:30:30 1995  Doug Evans  <dje@canuck.cygnus.com>

	* armos.c: #include dbg_rdi.h.
	(ARMul_OSHandleSWI): Handle SWI_Breakpoint.
	* armos.h (SWI_Breakpoint): Define.
	* wrapper.c: #include armemu.h, dbg_rdi.h.
	(rc): Delete.
	(sim_resume): Use state->EndCondition to record stop state.
	Call FLUSHPIPE before returning.
	(sim_stop_reason): Determine reason from state->EndCondition.

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

	* wrapper.c (sim_set_callbacks): New.

Thu Sep 28 19:45:56 1995  Doug Evans  <dje@deneb.cygnus.com>

	* armos.c (ARMul_OSHandleSWI): Result of read/write calls is
	number of bytes not read/written (or -1).

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

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

Fri Sep  8 14:27:20 1995  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Remove AC_PROG_INSTALL.
	* configure: Rebuild.
	* Makefile.in (INSTALL): Revert to using install.sh.
	(INSTALL_PROGRAM, INSTALL_DATA): Set to $(INSTALL).
	(INSTALL_XFORM, INSTALL_XFORM1): Restore.
	(mostlyclean): Make the same as clean, not distclean.
	(clean): Remove config.log.
	(install): Don't install in $(tooldir).

Thu Sep  7 12:00:17 1995  Doug Evans  <dje@canuck.cygnus.com>

	(Try to) Update to new bfd autoconf scheme.
	* run.c: Don't include sysdep.h.
	* Makefile.in (INSTALL{,_PROGRAM,_DATA}): Use autoconf computed value.
	(CC, CFLAGS, AR, RANLIB): Likewise.
	(HDEFINES, TDEFINES): Define.
	(CC_FOR_BUILD): Delete.
	(host_makefile_frag): Delete.
	(Makefile): Don't depend on frags.
	* configure.in (sysdep.h): Don't create symlink.
	(host_makefile_frag, frags): Deleted.
	(CC, CFLAGS, AR, RANLIB, INSTALL): Compute values.
	* configure: Regenerated.

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

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

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

	* Makefile.in (clean): Remove run, libsim.a.

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

	* arm.mt: Removed.

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

	* wrapper.c (sim_do_command): New function.

Tue Jun 13 10:57:32 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* armos.c (ARMul_OSHandleSWI): New version to work with
	newlib simply.

Thu Jun  8 14:37:14 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* run.c (main): Grab return value from right register.

Wed May 24 14:37:31 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* New.


