2021-06-22  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Removed.
	* aclocal.m4: Removed.
	* configure: Removed.

2021-06-21  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2021-06-21  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-06-20  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (SIM_AC_COMMON): Delete.
	* aclocal.m4, configure: Regenerate.

2021-06-20  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2021-06-19  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2021-06-19  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-06-18  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4, configure: Regenerate.

2021-06-18  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-06-18  Mike Frysinger  <vapier@gentoo.org>

	* compile.c: Include sim-signal.h.

2021-06-17  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_open): Set current_target_byte_order.
	* configure.ac: Delete SIM_AC_OPTION_ENDIAN call.
	* aclocal.m4, configure: Regenerate.

2021-06-17  Mike Frysinger  <vapier@gentoo.org>

	* compile.c: Include sim/callback.h.

2021-06-16  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-06-16  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.
	* config.in: Removed.

2021-06-15  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2021-06-12  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Delete call to SIM_AC_OPTION_ALIGNMENT.

2021-06-12  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4, config.in, configure: Regenerate.

2021-06-12  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Delete call to AC_CHECK_HEADERS_ONCE.
	* config.in, configure: Regenerate.

2021-05-28  Yoshinori Sato  <ysato@users.sourceforge.jp>

	* sim-main.h (h8_typecodes): Add operand type OP_REG_DEC, OP_REG_INC.
	* compile.c (decode): Rewrite oprand type for specific case.
	(fetch_1): Add handling OP_REG_DEC and OP_REG_INC.
	(step_once): Fix operand fetch order.

2021-05-17  Mike Frysinger  <vapier@gentoo.org>

	* sim-main.h (SIM_HAVE_COMMON_SIM_STATE): Delete.

2021-05-17  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (h8_get_state): Change sd to H8300_SIM_STATE.
	(h8_set_state): Likewise.
	(h8_get_stats): Likewise.
	(h8_increment_stats): Likewise.
	(init_pointers): Likewise.
	(step_once): Likewise.
	(sim_info): Likewise.
	(sim_open): Likewise.
	(sim_load): Likewise.
	* sim-main.h (SIM_HAVE_COMMON_SIM_STATE): Define.
	(struct sim_state): Delete.
	(struct h8300_sim_state): New struct.
	(H8300_SIM_STATE): Define.

2021-05-16  Mike Frysinger  <vapier@gentoo.org>

	* compile.c: Replace config.h include with defs.h.
	* sim-main.h: Delete config.h include.

2021-05-16  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2021-05-08  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (h8_set_macS): Disable with #if 0.
	(step_once): Set trace & intMask to 0.
	(set_h8300h): Mark static.
	* configure.ac: Delete SIM_AC_OPTION_WARNINGS call.
	* configure: Regenerate.

2021-05-04  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-05-01  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2021-04-26  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4, config.in, configure: Regenerate.

2021-04-22  Tom Tromey  <tom@tromey.com>

	* configure, config.in: Rebuild.

2021-04-22  Tom Tromey  <tom@tromey.com>

	* configure: Rebuild.

2021-04-21  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4: Regenerate.

2021-04-21  Simon Marchi  <simon.marchi@polymtl.ca>

	* configure: Regenerate.

2021-04-18  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Change AC_CHECK_HEADERS to AC_CHECK_HEADERS_ONCE.
	* configure: Regenerate.

2021-04-18  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-04-12  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_open): Delete 3rd arg to sim_cpu_alloc_all.

2021-04-08  Tom Tromey  <tom@tromey.com>

	* compile.c (init_pointers): Fix sequence point warning.

2021-04-08  Tom Tromey  <tom@tromey.com>

	* compile.c (cmdline_location): Use new-style declaration.

2021-04-02  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4, configure: Regenerate.

2021-02-28  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-02-21  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (AC_CONFIG_MACRO_DIRS): Replace common with m4.
	* aclocal.m4, configure: Regenerate.

2021-02-13  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Replace sinclude with AC_CONFIG_MACRO_DIRS.
	* aclocal.m4, configure: Regenerate.

2021-02-06  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-01-13  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (memory_size): Move definition to top of file.
	(h8_get_memory, h8_set_memory): Assert access is within memory_size.
	(h8_get_eightbit_buf): Delete.
	h8_set_eightbit_buf, h8_get_eightbit, h8_set_eightbit): Likewise.
	(GET_MEMORY_L): Delete eightbit references.
	(GET_MEMORY_W, GET_MEMORY_B, SET_MEMORY_L, SET_MEMORY_W,
	SET_MEMORY_B, init_pointers, step_once, sim_load): Likewise.
	(sim_write): Likewise.  Return i instead of size.
	(sim_read): Check addr is within memory_size.
	* sim-main.h (struct h8300_cpu_state): Delete eightbit.

2021-01-11  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Call SIM_AC_OPTION_WARNINGS.
	* configure: Regenerate.

2021-01-11  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.
	* compile.c: Delete HAVE_TIME_H & HAVE_STDLIB_H.

2021-01-09  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-01-08  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2021-01-07  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (set_simcache_size, h8_get_cache_top, h8_set_cache_top,
	h8_get_compiles, h8_increment_compiles, h8_get_cache_idx_buf,
	h8_set_cache_idx_buf, h8_get_cache_idx, h8_set_cache_idx, compile,
	set_simcache_size): Delete.
	(init_pointers): Delete calls to h8_get_cache_idx_buf,
	h8_set_cache_idx_buf, and set_simcache_size.
	(step_once): Replace call to h8_get_cache_idx with decode.  Delete
	case 0 handling and call to compile.
	(sim_write): Delete call to h8_set_cache_idx.
	(sim_info): Delete call to h8_get_compiles & sim_cache_size.
	(sim_load): Delete calls to h8_get_cache_idx_buf & h8_set_cache_idx_buf.
	* sim-main.h (sim_state): Delete sim_cache_size, sim_cache, cache_idx,
	cache_top, and compiles.

2021-01-04  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2017-09-06  John Baldwin  <jhb@FreeBSD.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-10  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-09  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2016-01-06  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_open): Mark argv const.
	(sim_create_inferior): Mark argv and env const.

2016-01-04  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2016-01-03  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_open): Update sim_parse_args comment.

2016-01-03  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2016-01-02  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (SIM_AC_OPTION_ENDIAN): Change BIG_ENDIAN to BIG.
	* configure: Regenerate.

2015-12-30  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_state_initialize): Delete.
	(sim_open): Replace sim_state_initialize call with SBR_REGNUM
	assignment.

2015-12-30  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (h8300_reg_store): Delete sd.  Change init_pointers to
	use CPU_STATE (cpu).  Change h8_set_pc to cpu->pc.  Return -1 and
	drop the printf if the default case.  Change all the set func calls
	to use cpu->regs[rn] instead.
	(h8300_reg_store): Delete sd.  Change init_pointers to
	use CPU_STATE (cpu).  Change h8_get_pc to cpu->pc.  Return -1 and
	drop the printf if the default case.  Change all the get func calls
	to use cpu->regs[rn] instead.  Add ZERO_REGNUM case.  Return 2 and
	4 instead of -1 at the end.

2015-12-30  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (lvalue): Change sim_engine_set_run_state calls to
	sim_engine_halt.  Declare local cpu.
	(fetch_1): Likewise.
	(store_1): Likewise.
	(sim_resume): Rename to ...
	(step_once): ... this.  Declare init1, poll_count, reason, and
	sigrc variables.  Delete step checking.  Change
	sim_engine_set_run_state calls to sim_engine_halt.  Delete poll
	logic.  Change while(1) loop to while(0).
	(sim_engine_run): New function.
	* Makefile.in (SIM_OBJS): Add sim-resume.o.

2015-12-30  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_open): Delete current_alignment and
	current_target_byte_order assignments.
	* configure.ac: Call SIM_AC_OPTION_ENDIAN and
	SIM_AC_OPTION_ALIGNMENT.
	* configure: Regenerate.

2015-12-30  Mike Frysinger  <vapier@gentoo.org>

	* wrapper.c (sim_store_register): Rename to ...
	(h8300_reg_store): ... this.  Declare sd.
	(sim_fetch_register): Rename to ...
	(h8300_reg_fetch): ... this.  Declare sd.
	(sim_open): Call CPU_REG_FETCH/CPU_REG_STORE.

2015-12-30  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (lreg): Delete.
	(init_pointers): Delete lreg assignments.

2015-12-30  Mike Frysinger  <vapier@gentoo.org>

	* inst.h: Delete file.
	* Makefile.in (compile.o): Delete rule.

2015-12-26  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2015-12-24  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (H8300_OPTIONS): New enum from common/sim-options.c.
	(h8300_option_handler): New func from common/sim-options.c.
	(h8300_options): New options from common/sim-options.c.
	(sim_open): Call sim_add_option_table.
	* tconfig.h: Delete file.

2015-12-24  Mike Frysinger  <vapier@gentoo.org>

	* tconfig.h (SIM_HAVE_SIMCACHE): Delete.

2015-11-21  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_callback, sim_kind, myname): Delete.
	(init_pointers, sim_store_register, sim_fetch_register, sim_info):
	Change sim_callback->printf_filtered calls to sim_io_printf.
	(sim_resume): Likewise.  Declare sim_callback.
	(sim_open): Delete sim_callback, sim_kind, and myname assignment.
	(sim_load); Use sd to look up myname, sim_callback, and sim_kind.

2015-11-15  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete sim-reason.o and sim-stop.o.

2015-11-15  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Add sim-reason.o and sim-stop.o.
	* compile.c (sim_stop, sim_stop_reason): Delete.

2015-11-14  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete sim-load.o.

2015-11-14  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_close): Delete.

2015-11-09  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (littleendian): Delete.
	(init_pointers): Delete littleendian usage.

2015-06-23  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2015-06-12  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2015-06-12  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2015-04-18  Mike Frysinger  <vapier@gentoo.org>

	* sim-main.h (SIM_CPU): Delete.

2015-04-18  Mike Frysinger  <vapier@gentoo.org>

	* sim-main.h (sim_cia): Delete.

2015-04-17  Mike Frysinger  <vapier@gentoo.org>

	* sim-main.h (CIA_GET, CIA_SET): Delete.

2015-04-17  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (h8300_pc_get, h8300_pc_set): New functions.
	(sim_open): Declare new local var i.  Call CPU_PC_FETCH &
	CPU_PC_STORE for all cpus.
	* sim-main.h (SIM_CPU): Define.

2015-04-15  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete sim-cpu.o.
	* sim-main.h (STATE_CPU): Delete.

2015-04-15  Mike Frysinger  <vapier@gentoo.org>

	* compile.c: Include sim-options.h.
	(sim_open): Call sim_cpu_alloc_all instead of sim_cpu_alloc.
	* sim-main.h (struct sim_state): Change cpu to an array of pointers.
	(STATE_CPU): Handle WITH_SMP.

2015-04-13  Mike Frysinger  <vapier@gentoo.org>

	* configure: Regenerate.

2015-04-06  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete sim-engine.o.

2015-04-01  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_OBJS): Delete $(SIM_EXTRA_OBJS).

2015-03-31  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.

2015-03-24  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_set_callbacks, sim_size, sim_trace): Delete.
	* tconfig.h (SIM_HAVE_PROFILE): Delete.

2015-03-16  Mike Frysinger  <vapier@gentoo.org>

	* config.in, configure: Regenerate.
	* tconfig.in: Rename file ...
	* tconfig.h: ... here.

2015-03-14  Mike Frysinger  <vapier@gentoo.org>

	* Makefile.in (SIM_RUN_OBJS): Delete.

2015-03-14  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (AC_CHECK_HEADERS): Delete stdlib.h & time.h.
	* aclocal.m4, configure: Regenerate.

2014-12-03  Joel Brobecker  <brobecker@adacore.com>

	* compile.c (sim_resume):  Adjust calls to "stat" and "fstat"
	callbacks by calls to "to_stat" and "to_fstat" (resp) callbacks
	following renaming in callback.h.

2014-08-19  Alan Modra  <amodra@gmail.com>

	* configure: Regenerate.

2014-08-15  Roland McGrath  <mcgrathr@google.com>

	* configure: Regenerate.
	* config.in: Regenerate.

2014-03-05  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_load): Add const to prog.

2014-02-17  Mike Frysinger  <vapier@gentoo.org>

	PR gdb/16450
	* compile.c (control_c_sim_desc): Delete.
	(control_c): Likewise.
	(sim_resume): Delete signal(SIGINT) handling.

2013-09-23  Alan Modra  <amodra@gmail.com>

	* configure: Regenerate.

2013-06-03  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4, configure: Regenerate.

2012-06-15  Joel Brobecker  <brobecker@adacore.com>

	* config.in, configure: Regenerate.

2012-05-18  Nick Clifton  <nickc@redhat.com>

	PR 14072
	* compile.c: Include config.h before system header files.
	* sim-main.h: Likewise.

2012-03-24  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4, config.in, configure: Regenerate.

2011-12-03  Mike Frysinger  <vapier@gentoo.org>

	* aclocal.m4: New file.
	* configure: Regenerate.

2011-10-17  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Change include to common/acinclude.m4.

2011-10-17  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Change AC_PREREQ to 2.64.  Delete AC_CONFIG_HEADER
	call.  Replace common.m4 include with SIM_AC_COMMON.
	* configure: Regenerate.

2011-07-05  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_do_command): Delete.

2011-01-11  Andrew Burgess  <aburgess@broadcom.com>

	* compile.c (sim_store_register): Update return value to
	match new API.

2010-04-14  Mike Frysinger  <vapier@gentoo.org>

	* compile.c (sim_write): Add const to buffer arg.

2010-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2009-12-09  Yoshinori Sato <ysato@users.sourceforge.jp>
	* compile.c(fetch_1): Fix pre-dec, pre-inc, post-dec and post-inc.
	Index registers not masked memory areas.
	Only simply increment or decrement.
	* compile.c(store_1): Ditto.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* config.in: Regenerate.
	* configure: Likewise.

	* configure: Regenerate.

2008-12-01  Joel Sherrill <joel.sherrill@oarcorp.com>

	* compile.c: Add const to remove warning.

2008-07-11  Hans-Peter Nilsson  <hp@axis.com>

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

2008-06-06  Vladimir Prus  <vladimir@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* configure: Regenerate.

2007-07-03  Yoshinori Sato <ysato@users.sourceforge.jp>

	* compile.c (sim_resume): Fix the last byte of ARGV for
	SYS_CMDLINE.

2006-12-21  Hans-Peter Nilsson  <hp@axis.com>

	* acconfig.h: Remove.
	* config.in: Regenerate.

2006-07-13  Yoshinori Sato <ysato@users.sourceforge.jp>

	* compile.c (OBITOP): Bit address mask low three bit.
	* compile.c (decode): Fix warning.

2006-06-13  Richard Earnshaw  <rearnsha@arm.com>

	* configure: Regenerated.

2006-06-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure: Regenerated.

2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure: Regenerated.

2005-03-23  Mark Kettenis  <kettenis@gnu.org>

	* configure: Regenerate.

2005-01-14  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Sinclude aclocal.m4 before common.m4.  Add
	explicit call to AC_CONFIG_HEADER.
	* configure: Regenerate.

2005-01-12  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Update to use ../common/common.m4.
	* configure: Re-generate.

2005-01-11  Andrew Cagney  <cagney@localhost.localdomain>

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

2005-01-07  Andrew Cagney  <cagney@gnu.org>

	* configure.ac: Rename configure.in, require autoconf 2.59.
	* configure: Re-generate.

2004-12-08  Hans-Peter Nilsson  <hp@axis.com>

	* configure: Regenerate for ../common/aclocal.m4 update.

2004-06-28  Alexandre Oliva  <aoliva@redhat.com>

	2003-07-23  Richard Sandiford  <rsandifo@redhat.com>
	* compile.c (sim_resume): Make sure that dst.reg refers to the
	right register byte in mova/sz.l @(dd,RnL),ERn.
	2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
	* compile.c (sim_resume): Zero-extend immediate to muls, mulsu,
	mulxs, divs and divxs.

	* compile.c (sim_load): Update sd->memory_size.

2004-06-10  Michael Snyder  <msnyder@redhat.com>

	Patch submitted by Nitin Yewale <NitinY@KPITCummins.com>.
	* compile.c (sim_resume): Corrected ANDC operation on EXR for H8S.

2004-01-05  Michael Snyder  <msnyder@redhat.com>

	* compile.c (sim_load): Don't pass a type to bfd_openr.

2003-12-16  Michael Snyder  <msnyder@redhat.com>

	Patch submitted by Anil Paranjape <AnilP1@KPITCummins.com>
	* sim-main.h (H8300H_MSIZE): Increase from 18 bits to 24 bits.

2003-12-11  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>

	* compile.c (set_h8300h): Initialize globals to zero.

2003-10-17  Shrinivas Atre  <shrinivasa@KPITCummins.com>

	* compile.c (h8300_normal_mode): New.
	(SP): Handle normal mode.
	(bitfrom): Use normal mode flag to return suitable value.
	(lvalue): Use normal mode flag to return command line location.
	(decode): Decode instruction correctly for normal mode.
	(init_pointers): Initialise memory correctly for normal mode.
	(sim_resume): Handle cases for normal mode using h8300_normal_mode
	flag.
	(sim_store_register): Handle 2 byte PC for normal mode.
	(sim_fetch_register): Handle 2 byte PC for normal mode.
	(set_h8300h): Set normal mode flag as per architechture.
	(sim_load): Allocate 64K for normal mode instead of bigger memory.

2003-07-18  Michael Snyder  <msnyder@redhat.com>

	* compile.c (decode): Enhancements for mova.
	Initialize cst, reg, and rdisp inside the loop, for each
	new instruction.  Defer correction of the disp2 values until
	later, and then adjust them by the size of the first operand,
	rather than the size of the instruction.
	(sim_resume): For mova, adjust the size of the second operand
	according to the type of the first operand (INDEXB vs. INDEXW).
	In cases where there is only one operand, the other two must
	both be composed on the fly.

2003-07-22  Michael Snyder  <msnyder@redhat.com>

	* compile.c (sim_resume): Revert 6-24 change, it does not
	work with gdb breakpoints.

2003-07-17  Michael Snyder  <msnyder@redhat.com>

	* compile.c (sim_resume): Handle shll reg, reg and shlr reg, reg.
	(decode): IMM16 is always zero-extended.

2003-06-24  Michael Snyder  <msnyder@redhat.com>

	* sim-main.h (SIM_WIFSTOPPED, SIM_WSTOPSIG): Define.
	* compile.c (sim_resume): Use the above to return stop signal.

2003-06-18  Michael Snyder  <msnyder@redhat.com>

	* compile.c: Replace "Hitachi" with "Renesas".
	(decode): Distinguish AV_H8S from AV_H8H.
	(sim_resume): H8SX can use any register for TAS.
	(decode): Add support for VECIND.
	(sim_resume): Implement rte/l and rts/l.
	(GETSR): New macro (actually old macro reincarnated).
	(decode): Add handling for IMM2.
	(sim_resume): Drop extra block around jmp, jsr, rts.
	Add handling for trapa and rte.
	For divxu.b, change 0xffff mask to 0xff.
	(set_h8300h): Add bfd_mach_h8300sxn machine.

2003-06-18  Corinna Vinschen  <vinschen@redhat.com>

	* sim-main.h (enum h8_regnum): Turn around order of MACH, MACL
	and SBR, VBR.

2003-06-05  Michael Snyder  <msnyder@redhat.com>

	* compile.c (sim_fetch_register): Handle SBR, VBR, MACH, MACL.
	(sim_store_register): Ditto.

2003-06-04  Michael Snyder  <msnyder@redhat.com>

	* compile.c (sim_info): Fix typo in output.

	* compile.c (set_h8300h): Replace 'flag' arguments
	with a bfd_machine argument, and decode it inline.
	Check for bfd_mach_h8300hn and bfd_mach_h8300sn.

2003-06-03  Michael Snyder  <msnyder@redhat.com>

	* compile.c: Add h8300sx insns and addressing modes.
	* sim-main.h: Replaces h8300/inst.h.
	* Makefile.in: Tweak to bring in some sim/common stuff.

2003-04-13  Michael Snyder  <msnyder@redhat.com>

	* compile.c (sim_resume): Implement 'daa' and 'das' instructions.

2003-03-20  D.Venkatasubramanian  <dvenkat@noida.hcltech.com>

	* compile.c (cmdline_location): Added function to
	return the location of 8-bit (256 locations) where the
	Command Line arguments would be stored.
	(decode): Added a TRAP to 0xcc for Commandline
	processing using pseudo opcode O_SYS_CMDLINE.
	(sim_resume): Added handling of O_SYS_CMDLINE Trap.
	(sim_create_inferior): Setting a pointer to
	Commandline Args array.
	* inst.h: Added a new variable ptr_command_line for
	storing pointer to Commandline array.

2003-03-14  D.Venkatasubramanian <dvenkat@noida.hcltech.com>

	* compile.c (decode): Added code for some more magic traps.
	* compile.c (sim_resume): Added support for File I/O system
	calls through callback to host_system.
	System calls provided support for :
	open, read, write, lseek, close, stat, fstat
	Only basic support for stat and fstat.

2003-02-27  Andrew Cagney  <cagney@redhat.com>

	* compile.c (sim_open, sim_create_inferior): Rename _bfd to bfd.

2003-02-05  Kazu Hirata  <kazu@cs.umass.edu>

	* compile.c (init_pointers): Abort if wreg never gets initialized.
	(sim_resume): Fix the handling of exts.w and extu.w.

2003-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* compile.c (sim_resume): Fix the handling of bxor.

2003-01-16  Michael Snyder  <msnyder@redhat.com>

	* compile.c: Change K&R function definitions to ISO.
	(fetch): Make static, and eliminate unused parameter 'n'.

2002-12-26  Kazu Hirata  <kazu@cs.umass.edu>

	* compile.c: Fix formatting.
	* inst.h: Likewise.

2002-07-29  Andrey Volkov  <avolkov@transas.com>

 	* compile.c: Include "gdb/sim-h8300.h"
 	* Makefile.in: Add dependences on "inst.h",
 	"gdb/callback.h", "gdb/remote-sim.h" and "gdb/sim-h8300.h".

2002-06-16  Andrew Cagney  <ac131313@redhat.com>

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

2002-06-08  Andrew Cagney  <cagney@redhat.com>

	* compile.c: Include "gdb/callback.h" and "gdb/remote-sim.h".

2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>

	* compile.c: Fix formatting.

2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>

	* compile.c: Fix formatting.

2002-05-17  Andrey Volkov  (avolkov@transas.com)

	* compile.c: Add absented opcodes: LDC, STC, EEPMOV, TAS.

2002-05-17  Andrey Volkov  (avolkov@transas.com)

	* compile.c: Add support of EXR register
	* inst.h: Ditto.

2002-05-17  Andrey Volkov  (avolkov@transas.com)

	* compile.c: Made h8300s as new target, not h8300h alias.
	* inst.h: Ditto.

2002-05-17  Andrey Volkov  (avolkov@transas.com)

	* compile.c: Add additional CCR flags (I,UI,H,U)

2002-05-17  Andrey Volkov  (avolkov@transas.com)

	* compile.c: Change literal regnumbers to REGNUMS.
	Fix instruction and cycles counting

2001-12-20  Kazu Hirata  <kazu@hxi.com>

	* compile.c: Fix formatting.

2001-12-20  Kazu Hirata  <kazu@hxi.com>

	* compile.c: Fix comment typos.

2000-08-10  Kazu Hirata  <kazu@hxi.com>

	* compile.c (decode): Clean up the code.

2000-06-15  Kazu Hirata  <kazu@hxi.com>

	* compile.c (decode): Distinguish inc/dec.[wl] and adds/subs
	correctly.

2000-06-20  Frank Ch. Eigler  <fche@redhat.com>

	* compile.c: Don't include "wait.h".
	(sim_resume): Use local SIM_WIFEXITED and SIM_WIFSIGNALED macros
	instead of WIF* from host.

2000-06-13  Frank Ch. Eigler  <fche@redhat.com>

	* compile.c, writecode.c: Correct typo.

2000-06-13  Kazu Hirata  <kazu@hxi.com>

	* compile.c: Fix formatting.

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.

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

	* compile.c (POLL_QUIT_INTERVAL): Define. Used to tweak the
	frequency at which the poll_quit callback is used.
	(sim_resume): Use POLL_QUIT_INTERVAL instead of hard-coded value.

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:14 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:19:46 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 Feb 17 12:42:18 1998  Andrew Cagney  <cagney@b1.cygnus.com>

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

Tue Nov 11 16:52:07 1997  Angela Marie Thomas (angela@cygnus.com)

	* compile.c: #include stdio.h for definition of NULL on
	some platforms.

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

	* compile.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 12:00:57 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (compile.o): Depend on config.h in local directory.

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

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

Tue Sep  9 22:17:26 1997  Felix Lee  <flee@cygnus.com>

	* inst.h (sim_state): rename to h8300_sim_state, to avoid conflict
 	with sim/common.
	* configure.in: check for sys/param.h
	* compile.c: #ifdef HAVE_SYS_PARAM_H.
	#define SIGTRAP for wingdb.
	(sim_resume): poll keyboard at least once per call.
	(sim_resume): use host_callback instead of printf for syscall
 	output.

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

	* compile.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, set_h8300h): Add fixme explaining why much of
 	the sim_load code should be moved 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 15:47:41 1997  Andrew Cagney  <cagney@b1.cygnus.com>

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

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

	* compile.c (sim_open): Add callback argument.
	(sim_set_callbacks): Delete SIM_DESC argument.

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

	* compile.c (sim_load): Call bfd_get_mach instead of examining
	bfd fields directly.
	* 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:30:09 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* compile.c (sim_resume): Use poll_quit callback.
	(sim_stop): New function.

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

	* Makefile.in (SIM_OBJS): Add sim-load.o.
	* compile.c (sim_kind, myname): New static locals.
	(sim_open): Set sim_kind, myname.
	(sim_load): Return SIM_RC.  New arg abfd.  Update test for h8300h.
	Call sim_load_file to load file into simulator.  Set start address
	from bfd.
	(sim_create_inferior): Return SIM_RC.  Delete arg start_address.

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>

	* compile.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 12:48:05 1997  Doug Evans  <dje@canuck.cygnus.com>

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

Tue Feb  4 13:36:29 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:39:12 1996  Doug Evans  <dje@canuck.cygnus.com>

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

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

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

Fri Aug  9 22:59:11 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (sim_resume): rts, sleep, bpt and nop have
	no associated "size".

Tue Jul  9 22:15:39 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (sim_resume): Fix all rotate-by-2-bits insns.

Tue Jul  2 23:08:45 1996  Jeffrey A Law  (law@cygnus.com)

	* run.c (main): Don't "load" sections which don't have
	SEC_LOAD set.
	* compile.c (sim_resume, case "O_NOT"): Use ONOT instead
	of OSHIFTS.
	(ONOT): Define.
	(sim_resume, shift/rotate cases): Add support for shift/rotate
	by two bits.
	(OSHIFTS): Corresponding changes.

Tue Jul  2 01:37:27 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (sim_resume): Handle "ldm.l" and "stm.l".

Wed Jun 26 08:58:53 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (h8300smode): Declare.

Wed Jun 26 12:20:56 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.

Tue Jun 18 16:31:10 1996  Jeffrey A. Law  <law@rtl.cygnus.com>

	* compile.c (sim_load): Treat the H8/S like the H8/300H for now.
	* run.c (main): Treat the H8/S like the H8/300H for now.

Fri May 24 10:35:25 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (SEXTCHAR): Clear upper bits when sign
	bit is clear.

Wed May 22 22:23:37 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (sim_resume): Correctly handle divu.

Tue May  7 02:13:05 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (sim_resume): Never allow the PC to have an
	odd value.

Fri Apr 12 16:50:37 1996  Jeffrey A Law  (law@cygnus.com)

	* inst.h: Expand on comments regarding H8300H_MSIZE.  Note
	separate memory is allocate for the 8-bit area.
	(struct cpu_state_type): Add new "eightbit' field.
	* compile.c (GET_MEMORY_L): Handle access into the 8-bit
	area.
	(GET_MEMORY_W, GET_MEMORY_B): Likewise.
	(SET_MEMORY_L, SET_MEMORY_W, SET_MEMORY_B): Likewise.
	(init_pointers): Initialize space for the 8-bit area.
	(sim_write): Handle writing into the 8-bit area.
	(sim_read): Handle reading from the 8-bit area.
	(sim_load): Reallocate space for the 8-bit area.

	* compile.c (sim_load): Re-allocate memory for the simulator
	here.

Fri Apr 12 09:39:56 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (sim_resume): Fix and simplify overflow and carry
	handling for 32bit ALU insns.

Mon Apr  8 23:58:49 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (sim_resume): Fix overflow checks for ALU insns.

Fri Apr  5 17:20:59 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (decode): Use "bit" to hold L_3 immediates instead
	of holding them in "abs".  Handle ABS8MEM memory references aka
	8-bit area.  Replace ABSMOV references with ABS8MEM.

Wed Mar 13 17:43:56 1996  Jeffrey A Law  (law@cygnus.com)

	* compile.c (fetch): Handle accesses to the exception/function
	vectors.

Mon Mar 11 09:53:25 1996  Doug Evans  <dje@charmed.cygnus.com>

	* compile.c: #include "wait.h".
 	(sim_resume, sleep insn): Check program exit status in r0.
	(sim_resume, shift insns): Fix setting of overflow flag for shal.
	* run.c: #include <signal.h>.
	(main): Abort if program got SIGILL.
	Print error message if argument is invalid.
	(usage): Improve text.

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

	* configure: Regenerate with autoconf 2.7.

Thu Jan  4 11:52:53 1996  Doug Evans  <dje@canuck.cygnus.com>

	* inst.h (MPOWER,MSIZE): Deleted.
	(H8300{,H}_MSIZE): Define.
	* compile.c (memory_size): New static global.
	(init_pointers): Set memory size from one of H8300{,H}_MSIZE.
	(sim_write,sim_read): Use memory_size.

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

	* compile.c (sim_set_callbacks): New.

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

	* Makefile.in (BISON): Remove macro.

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

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

Fri Sep  8 12:18:53 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 and AR.
	Call AC_CHECK_HEADERS for stdlib.h and time.h.  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@.
	(RANLIB): Define as @RANLIB@.
	(HDEFINES, TDEFINES): New variables.
	(@host_makefile_frag@): Remove.
	(compile.o, run.o): Depend upon config.h.
	(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.
	* compile.c: Include "config.h".  Don't include <sys/times.h>.
	Include <time.h> and <stdlib.h> if they exist.  Don't include
	"sysdep.h".
	(get_now): Remove unused local b.
	* run.c: Include "config.h".  Include <stdlib.h> if it exists.
	Don't include "sysdep.h".
	* writecode.c: Don't include "bfd.h" or "sysdep.h".  Include
	<stdio.h>.

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

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

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

	* Makefile.in (clean): Remove run.
	(distclean): Remove Makefile.

	* h8300.mt: Removed.

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

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

	* compile.c (sim_do_command): New function.

Tue Jun 20 16:18:13 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* compile.c (get_now): Don't do if win32.
	(sim_resume): Poll in win32 too.

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:30:08 1995  Ian Lance Taylor  <ian@cygnus.com>

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

Sun Jan 22 12:35:43 1995  Steve Chamberlain  <sac@splat>

	* compile.c (sim_resume): Initialize cpu.mask.

Thu Sep  8 16:53:00 1994  Steve Chamberlain  (sac@jonny.cygnus.com)

	* inst.h (MPOWER): Bump simulated memory size to 2^18 bytes.

Wed May 18 13:47:58 1994  Doug Evans  (dje@canuck.cygnus.com)

	* compile.c: #include "bfd.h".
	(sim_*): Set result type to void where there isn't one.
	(sim_resume, default case): Set cpu.exception to SIGILL.
	(sim_trace): Delete.
	(sim_set_pc): Delete.
	(sim_info): Delete printf_fn arg, all callers changed.
	Call printf_filtered.
	(set_h8300h): New arg `flag', all callers changed.
	(sim_close): New function.
	(sim_load): New function.
	(sim_create_inferior): Renamed from sim_set_args, all callers changed.
	* run.c: #include <varargs.h>, "remote-sim.h".
	(printf_filtered): New function.

Fri May 13 18:32:27 1994  Doug Evans  (dje@canuck.cygnus.com)

	* compile.c (decode): Fix typo (16 bit branches).
	(*): Some white space clean up.

Fri May  6 13:44:01 1994  Steve Chamberlain  (sac@jonny.cygnus.com)

	* compile.c (decode): Compile 16bit branches properly.

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

	* compile.c: Tidy up formatting. (sim_resume): Add orc, xorc,
	andc.  Poll for interrupts.

Thu Oct 28 19:29:34 1993  Doug Evans  (dje@canuck.cygnus.com)

	* compile.c: #include "ansidecl.h" for remote-sim.h.

Tue Oct 26 09:43:36 1993  Doug Evans  (dje@canuck.cygnus.com)

	* Makefile.in (CSEARCH): Add -I$(srcdir)/../../gdb
	* compile.c: #include "remote-sim.h".
	(sim_resume): New arg siggnal.
	(sim_write): Use SIM_ADDR for type of arg addr.
	Always return a value.
	(sim_read): Ditto.
	(sim_store_register): Result is type int.
	(sim_fetch_register): Ditto.
	(sim_stop_reason): Renamed from sim_stop_signal.
	(sim_set_pc): Use SIM_ADDR for type of arg pc.
	(sim_info): int result, new arg printf_fn.
	(sim_kill): int result.
	(sim_open): int result, new arg name.
	* run.c (main): Use sim_set_pc to set pc.
	Update call to sim_info.

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

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

Fri Oct 15 23:49:27 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* compile.c (sim_kill, sim_open, sim_set_args): New functions.

Thu Oct  7 16:24:10 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)

	* compile.c (sim_set_pc): Write to the pc direcly.
	(sim_store_register): Now value is passed by reference. (sim_read,
	sim_write): Return number of bytes copied.

Tue Aug 17 07:16:15 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)

	* compile.c (mop): New function to do multiplies.

Fri Jul 16 13:53:53 1993  Doug Evans  (dje@canuck.cygnus.com)

	* compile.c (sim_resume): Add support for nop insn.

Thu Jul 15 09:59:01 1993  Doug Evans  (dje@canuck.cygnus.com)

	* compile.c: Reset HMODE back to zero (accidently set it to 1).

	* run.c (main): If h8/300h binary detected, call set_h8300h.
	* compile.c (sim_resume): Fix O_NEG insn.

Fri Jul  9 14:36:48 1993  Doug Evans  (dje@canuck.cygnus.com)

	* run.c (main): Add -h flag to enable h8/300h emulation.
	* compile.c: Rename Hmode to HMODE (consistency with gdb).
	(set_h8300h): New function.
	(sim_resume): Add support for extu,exts insns.
	(sim_resume): Fix logical right shifting.
	(sim_resume, label alu32): Fix setting of carry flag.

Sun Jul  4 00:35:41 1993  Doug Evans  (dje@canuck.cygnus.com)

	* compile.c (sim_csize): Initialize cpu.cache.

Fri Jul  2 17:42:59 1993  Doug Evans  (dje@canuck.cygnus.com)

	* Makefile.in: Add -I../../bfd to pick up bfd.h.

Thu Jun 24 13:40:12 1993  Doug Evans  (dje@canuck.cygnus.com)

	* run.c (main): Fix parsing of args.

	* compile.c (sim_resume): Fix shll insn.

Tue Jun  8 14:16:46 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)

	* compile.c: New file, supports H8/300H.
	* p1,p3, gencode.c, state.h, writecode.c All dead and obsolete.

Tue Jun  1 11:14:59 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* run.c (main): Add -v to print info.
	* p3.c (sim_info):  New function.

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

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

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

	* Makefile.in: Don't use cb or indent
	* p1.c, state.h, writecode.c: lint

Mon Feb  1 16:44:58 1993  John Gilmore  (gnu@cygnus.com)

	* Makefile.in:  Make SunOS halfdone VPATH work.
	* p1.c:  Lint picked up by HP native compiler.

Mon Jan  4 12:32:35 1993  Steve Chamberlain  (sac@wahini.cygnus.com)

	* p1.c (sim_resume): when running on dos, any character typed to
	the keyboard will cause a simulated exception.

Sun Jan  3 14:15:07 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* p1.c, p3.c, run.c, writecode.c: all used h8/300 opcodes in and
	running

Tue Dec 22 13:56:48 1992  Steve Chamberlain  (sac@thepub.cygnus.com)

	* new
