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

	* configure: Regenerate.

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

	* decode.c (m32rbf_init_idesc_table): Use ARRAY_SIZE.
	* decode2.c (m32r2f_init_idesc_table): Likewise.
	* decodex.c (m32rxf_init_idesc_table): Likewise.

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.ac (SIM_AC_OPTION_ENVIRONMENT): Delete call.
	* 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.ac (SIM_AC_OPTION_INLINE): Delete call.
	* 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>

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

	* sim-if.c (sim_open): Update sim_parse_args comment.

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

	* TODO: Delete file.

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

	* configure.ac (SIM_AC_OPTION_HOSTENDIAN): Delete.
	* configure: Regenerate.
	* traps-linux.c (conv_endian): Change CURRENT_HOST_BYTE_ORDER
	to HOST_BYTE_ORDER.
	(conv_endian16): Likewise.

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

	* arch.h (TARGET_BIG_ENDIAN): Delete.
	* configure.ac (SIM_AC_OPTION_ENDIAN): Change BIG_ENDIAN to BIG.
	* configure: Regenerate.
	* traps-linux.c (conv_endian): Change LITTLE_ENDIAN to
	BFD_ENDIAN_LITTLE.
	(conv_endian16): Likewise.

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

	* sim-if.c (sim_open): Delete #if 0 sim_add_option_table call.

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

	* sim-if.c (current_state): Delete.
	(sim_open): Delete current_state assignment.

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

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

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

	* config.in, configure: Regenerate.

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

	* sim-if.c (sim_create_inferior): Replace old #if 0 code with dupargv.

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

	* configure.ac (SIM_AC_OPTION_HARDWARE): Add m32r_cache & m32r_uart.
	* configure: Regenerate.
	* devices.c: Delete file.
	* dv-m32r_cache.c, dv-m32r_cache.h: New cache model with logic from
	devices.c.
	* dv-m32r_uart.c, dv-m32r_uart.h: New uart model with logic from
	devices.c.
	* m32r-sim.h: Move cache defines to dv-m32r_cache.h and uart defines
	to dv-m32r_uart.h.
	* Makefile.in (SIM_OBJS): Delete devices.o.
	* sim-if.c: Include dv-m32r_uart.h.
	(sim_open): Replace sim_core_attach call with sim_hw_parse calls.
	* tconfig.h: Delete file.

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

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

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

	* arch.c: Rename MACH to SIM_MACH.
	* cpuall.h: Likewise.
	* model.c: Rename MACH to SIM_MACH, MACH_IMP_PROPERTIES to
	SIM_MACH_IMP_PROPERTIES, and MODEL to SIM_MODEL.
	* model2.c, modelx.c: Likewise.

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

	* sim-main.h (WITH_SCACHE_PBB): Move from ...
	* tconfig.h (WITH_SCACHE_PBB): ... here.

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

	* devices.c (device_error): Delete.

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

	* tconfig.h (SIM_HANDLES_LMA): Delete.

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

	* tconfig.h (SIM_HAVE_BREAKPOINTS, SIM_BREAKPOINT,
	SIM_BREAKPOINT_SIZE): Delete.
	* traps-linux.c [SIM_HAVE_BREAKPOINTS] (m32r_trap): Delete sim
	breakpoint code.
	* traps.c [SIM_HAVE_BREAKPOINTS] (m32r_trap): Likewise.

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

	* tconfig.h (WITH_WATCHPOINTS): Delete.

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

	* tconfig.h (SIM_HAVE_MEM_SIZE): Delete.

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

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

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

	* sim-if.c (sim_close): Delete.

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

	* configure: Regenerate.

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

	* traps.c (m32r_trap): Replace call to cb_syscall with
	sim_syscall_multi.
	* traps-linux.c (m32r_trap): Likewise.

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

	* traps-linux.c: Include sim-syscall.h.
	(syscall_read_mem, syscall_write_mem): Delete.
	(m32r_trap): Change syscall_read_mem/syscall_write_mem
	to sim_syscall_read_mem/sim_syscall_write_mem.
	* traps.c: Include sim-syscall.h.
	(syscall_read_mem, syscall_write_mem): Delete.
	(m32r_trap): Change syscall_read_mem/syscall_write_mem
	to sim_syscall_read_mem/sim_syscall_write_mem.

2015-06-12  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>

	* decode.c (m32rbf_decode): Change TRACE_EXTRACT to CGEN_TRACE_EXTRACT.
	* decode2.c (m32r2f_decode): Likewise.
	* decodex.c (m32rxf_decode): Likewise.
	* mloop.in (execute): Change TRACE_INSN_INIT to CGEN_TRACE_INSN_INIT,
	TRACE_INSN to CGEN_TRACE_INSN, and TRACE_INSN_FINI to CGEN_TRACE_INSN_FINI.
	* sem.c: Rename TRACE_RESULT to CGEN_TRACE_RESULT.
	* sem-switch.c: Likewise.
	* sem-switch2.c: Likewise.
	* sem-switchx.c: Likewise.

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

	* sim-main.h (SIM_ENGINE_HALT_HOOK, SIM_ENGINE_RESTART_HOOK): Delete.

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

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

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

	* sim-main.h (_sim_cpu, 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-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>

	* 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 and sim-hrw.o.

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

	* config.in, configure: Regenerate.

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

	* sim-if.c (sim_open): Delete dv_sockser_install call.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

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

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

	* tconfig.in [HAVE_DV_SOCKSER]: Delete.

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

	* Makefile.in (SIM_RUN_OBJS): Delete.

2014-08-23  Hans-Peter Nilsson  <hp@axis.com>

	* configure.ac: Default simulator hardware to off again.  Remove
	dead m32r_extra_objs substitution.
	* configure: Regenerate.
	* Makefile.in: Remove unused m32r_extra_objs.

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

	* configure: Regenerate.

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

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

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

	* configure: Regenerate.

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

	* aclocal.m4, configure: Regenerate.

2013-03-30  Joel Sherrill  <joel.sherrill@oarcorp.com>
	    Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Add m32r_extra_objs. Change simulator hardware
	from always on to defaulting to yes it is enabled.
	* Makefile.in: Conditionalize reference to dv-sockser.o.
	* tconfig.in: Delete HAVE_DV_SOCKSER logic that was under "#if 0".
	* configure: Regenerated.

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

	* configure: Regenerate.

2013-03-23  Joel Sherrill  <joel.sherrill@oarcorp.com>

	* configure.ac: Fail if dv-sockser.o not available.
	Error when --disable-sim-hardware is specified.
	* configure: Regenerated.

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

	* config.in, configure: Regenerate.

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

	* traps-linux.c (sim_core_trans_addr): Delete prototype.

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>

	* sim-if.c (sim_do_command): Delete.

2010-03-30  Mike Frysinger  <vapier@gentoo.org>

	* devices.c (device_error): Add const to message.

2010-02-11  Doug Evans  <dje@sebabeach.org>

	* cpu.h, * cpu2.h, * cpux.h, * decode.c, * decode2.c, * decodex.c,
	* model.c, * model2.c, * modelx.c,
	* sem-switch.c, * sem.c, * sem2-switch.c, * semx-switch.c: Regenerate.

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

	* configure: Regenerate.

2010-01-02  Doug Evans  <dje@sebabeach.org>

	* arch.c, * arch.h, * cpu.c, * cpu.h, * cpu2.c, * cpu2.h, * cpuall.h,
	* cpux.c, * cpux.h, * decode.c, * decode.h, * decode2.c, * decode2.h,
	* decodex.c, * decodex.h, * model.c, * model2.c, * modelx.c,
	* sem-switch.c, * sem.c, * sem2-switch.c, * semx-switch.c: Regenerate,
	update copyright year.

2009-11-22  Doug Evans  <dje@sebabeach.org>

	* cpu.h: Regenerate.
	* cpu2.h: Regenerate.
	* cpux.h: Regenerate.
	* cpuall.h: Regenerate.
	* decode.c: Regenerate.
	* decode.h: Regenerate.
	* decode2.c: Regenerate.
	* decode2.h: Regenerate.
	* decodex.c: Regenerate.
	* decodex.h: Regenerate.

2009-11-03  Doug Evans  <dje@sebabeach.org>

	* arch.c: Regenerate.
	* arch.h: Regenerate.
	* cpu.c: Regenerate.
	* cpu.h: Regenerate.
	* cpu2.c: Regenerate.
	* cpu2.h: Regenerate.
	* cpuall.h: Regenerate.
	* cpux.c: Regenerate.
	* cpux.h: Regenerate.
	* decode.c: Regenerate.
	* decode.h: Regenerate.
	* decode2.c: Regenerate.
	* decode2.h: Regenerate.
	* decodex.c: Regenerate.
	* decodex.h: Regenerate.
	* model.c: Regenerate.
	* model2.c: Regenerate.
	* modelx.c: Regenerate.
	* sem-switch.c: Regenerate.
	* sem.c: Regenerate.
	* sem2-switch.c: Regenerate.
	* semx-switch.c: Regenerate.

	* Makefile.in (mloop.c): Add @true to rule.
	(mloopx.c, mloop2.c): Ditto.
	(stamp-*): Add Makefile dependency.
	(arch.c, arch.h, cpuall.h): Specify full path.
	(cpu.h, sem.c, sem-switch.c, model.c, decode.c, decode.h): Ditto.
	(cpux.h, semx-switch.c, modelx.c, decodex.c, decodex.h): Ditto.
	(cpu2.h, sem2-switch.c, model2.c, decode2.c, decode2.h): Ditto.

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

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

	* configure: Regenerate.

2009-07-12  Doug Evans  <dje@sebabeach.org>

	* Makefile.in (stamp-arch): Use $(CPU_DIR) instead of $(CGEN_CPU_DIR).
	(stamp-cpu, stamp-xcpu, stamp-2cpu): Ditto.

2009-06-20  Doug Evans  <dje@sebabeach.org>

	* mloop.in: Add missing # comment marker.
	* mloop2.in: Ditto.
	* mloopx.in: Ditto.

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.

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

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

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-09  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	Committed by Kei Sakamoto.
	* traps-linux.c (m32r_trap): Add entries of the following dummy system
	calls: __NR_mmap2, __NR_lchown32, __NR_getuid32, __NR_getgid32,
	__NR_geteuid32, __NR_getegid32, __NR_getgroups32, __NR_fchown32,
	__NR_setfsuid32, __NR_setfsgid32, __NR_getresuid32,
	__NR_getresgid32 and __NR_chown32.
	* syscall.h: Add new definitions of system call number.

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

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

2004-10-07  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	Committed by Andrew Cagney.
	* traps-linux.c: Don't include linux/module.h.
	(m32r_trap): Remove dummy systemcall's entry of __NR_ustat and
	__NR_get_kernel_syms.

2004-05-18  Daniel Jacobowitz  <dan@debian.org>

	* Makefile.in (stamp-xmloop, stamp-2mloop): Use -outfile-suffix.

2004-02-04  Andrew Cagney  <cagney@redhat.com>

	Committed by Andrew Cagney.
	* mloopx.in: Update copyright.
	(xextract-pbb): Fixed trap for system calls operation in parallel.
	* mloop2.in (xextract-pbb): Ditto.

2003-12-19  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* configure.in: Changed for dummy simulator of m32r-linux.
	* configure: Regenerate.
	* Makefile.in: Added traps-linux.o for dummy simulator of m32r-linux.
	* traps-linux.c: Added for dummy simulator of m32r-linux.
	* syscall.h: Ditto.
	* sim-if.c (sim_create_inferior): Changed to setup SP for dummy
	simulator for m32r-linux.
	* sim-main.h (M32R_DEFAULT_MEM_SIZE): Changed for dummy simulator of
	m32r-linux.

2003-12-11  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* Makefile.in: Add support for new machine m32r2.
	* cpu2.c: New file for m32r2 support.
	* cpu2.h: Likewise.
	* decode2.c: Likewise.
	* decode2.h: Likewise.
	* m32r2.c: Likewise.
	* mloop2.in: Likewise.
	* model2.c: Likewise.
	* sem2-switch.c: Likewise.
	* arch.c: Regenerate.
	* arch.h: Regenerate.
	* cpu.c: Regenerate.
	* arch.c: Regenerate.
	* cpuall.c: Regenerate.
	* cpux.c: Regenerate.
	* cpux.h: Regenerate.
	* decode.c: Regenerate.
	* decode.h: Regenerate.
	* decodex.c: Regenerate.
	* decodex.h: Regenerate.
	* model.c: Regenerate.
	* modelx.c: Regenerate.
	* sem-switch.c: Regenerate.
	* sem.c: Regenerate.
	* semx-switch.c: Regenerate.
	* m32r-sim.h: Add EVB register support.
	* sim-if.c: Likewise.
	* sim-main.h: Likewise.
	* traps.c: Likewise.

2003-09-08  Dave Brolley  <brolley@redhat.com>

	On behalf of Doug Evans <dje@sebabeach.org>
	* Makefile.in (stamp-arch,stamp-cpu,stamp-xcpu): Pass archfile to cgen.

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

	* sim-if.c (sim_open, sim_create_inferior): Rename _bfd to bfd.

2002-12-19  Doug Evans  <dje@sebabeach.org>

	* arch.c,arch.h,cpuall.h: Regenerate.
	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Regenerate.
	* cpux.c,cpux.h,decodex.c,decodex.h,modelx.c,semx-switch.c: Regenerate.

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

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

2001-11-14  Dave Brolley  <brolley@redhat.com>

	* arch.c: Regenerate.
	* arch.h: Regenerate.
	* cpu.c: Regenerate.
	* cpu.h: Regenerate.
	* cpuall.h: Regenerate.
	* cpux.c: Regenerate.
	* cpux.h: Regenerate.
	* decode.c: Regenerate.
	* decode.h: Regenerate.
	* decodex.c: Regenerate.
	* decodex.h: Regenerate.
	* model.c: Regenerate.
	* modelx.c: Regenerate.
	* sem-switch.c: Regenerate.
	* sem.c: Regenerate.
	* semx-switch.c: Regenerate.

2001-07-05  Ben Elliston  <bje@redhat.com>

	* Makefile.in (stamp-arch): Use $(CGEN_CPU_DIR).
	(stamp-cpu): Likewise.
	(stamp-xcpu): Likewise.

2001-03-05  Dave Brolley  <brolley@redhat.com>

	* arch.c: Regenerate.
	* arch.h: Regenerate.
	* cpu.c: Regenerate.
	* cpu.h: Regenerate.
	* cpuall.h: Regenerate.
	* cpux.c: Regenerate.
	* cpux.h: Regenerate.
	* decode.c: Regenerate.
	* decode.h: Regenerate.
	* decodex.c: Regenerate.
	* decodex.h: Regenerate.
	* model.c: Regenerate.
	* modelx.c: Regenerate.
	* sem-switch.c: Regenerate.
	* sem.c: Regenerate.
	* semx-switch.c: Regenerate.

2001-01-12  Frank Ch. Eigler  <fche@redhat.com>

	* configure: Regenerated with sim_scache fix.

2000-11-18  Greg McGary  <greg@mcgary.org>

	* Makefile.in: remove `@true' commands for rules that have
	$(CGEN_MAINT) as a prerequisite.

2000-10-06  Dave Brolley  <brolley@redhat.com>

	* sem.c: Regenerated.
	* sem-switch.c: Regenerated.
	* semx-switch.c: Regenerated.

2000-08-28  Dave Brolley  <brolley@redhat.com>

	* Makefile.in: Use of @true confuses VPATH. Remove it.
	* cpu.h: Regenerated.
	* cpux.h: Regenerated.
	* decode.c: Regenerated.
	* decodex.c: Regenerated.
	* model.c: Regenerated.
	* modelx.c: Regenerated.
	* sem-switch.c: Regenerated.
	* sem.c: Regenerated.
	* semx-switch.c: Regenerated.

2000-08-21  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.in (m32r-clean): Add stamp-arch, stamp-cpu.
	(stamp-arch, stamp-cpu): New targets.

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

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

2000-03-30  Dave Brolley  <brolley@redhat.com>

	* configure: Regenerated.

1999-10-04  Doug Evans  <devans@casey.cygnus.com>

	* arch.c,arch.h,cpuall.h: Rebuild.
	* cpux.h,decodex.c,decodex.h,modelx.c,semx-switch.c: Rebuild.

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

	* mloop.in: Update call to sim_engine_invalid_insn.
	* sem.c,sem-switch.c: Rebuild.
	* traps.c (sim_engine_invalid_insn): New arg `vpc'.  Change type of
	result to SEM_PC.  Return vpc.
	* mloopx.in: Ditto.
	* semx-switch.c: Rebuild.

Wed Sep 29 14:47:20 1999  Dave Brolley  <brolley@cygnus.com>

	* traps.c (sim_engine_invalid_insn): Return PC.

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

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

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

	* decodex.c: Rebuild.

1999-08-28  Doug Evans  <devans@casey.cygnus.com>

	* sem.c: Rebuild

	* cpux.h: Rebuild.

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

	* cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Rebuild.
	* cpux.h,decodex.c,decodex.h,modelx.c,semx-switch.c: Rebuild.

1999-08-04  Doug Evans  <devans@casey.cygnus.com>

	* m32r-sim.h (SEM_SKIP_INSN): Delete.
	* cpu.h,cpuall.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild.
	* cpux.h,decodex.c,modelx.c,semx-switch.c: Rebuild.
	* mloopx.in (emit_parallel): Call SEM_SKIP_COMPILE.
	(emit_full_parallel): Ditto.

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

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

Fri Apr 16 16:47:43 1999  Doug Evans  <devans@charmed.cygnus.com>

	* devices.c (device_io_read_buffer): New arg `sd'.
	(device_io_write_buffer): New arg `sd'.
	(device_error): Give proper arg spec.

1999-04-10  Doug Evans  <devans@casey.cygnus.com>

	* sem-switch.c,sem.c: Rebuild.
	* cpux.h,semx-switch.c: Rebuild.

1999-03-27  Doug Evans  <devans@casey.cygnus.com>

	* decode.c: Rebuild.
	* decodex.c: Rebuild.

1999-03-26  Doug Evans  <devans@casey.cygnus.com>

	* m32r-sim.h (M32R_DEVICE_LEN): Fix off by one error.

1999-03-22  Doug Evans  <devans@casey.cygnus.com>

	* arch.c,arch.h,model.c: Rebuild.
	* modelx.c: Rebuild.
	* m32r-sim.h (a_m32r_h_gr_get,a_m32r_h_gr_set): Declare.
	(a_m32r_h_cr_get,a_m32r_h_cr_set): Declare.
	* m32r.c (m32rbf_fetch_register): Replace calls to a_m32r_h_pc_get,
	a_m32r_h_accum_get with appropriate calls to m32rbf_*.
	(m32rbf_store_register): Ditto.
	(a_m32r_h_gr_get,a_m32r_h_gr_set): New functions.
	(a_m32r_h_cr_get,a_m32r_h_cr_set): Ditto.
	* sim-if.c (sim_open): Update call to m32r_cgen_cpu_open.
	* traps.c (m32r_core_signal): Replace calls to a_m32r_h_*,
	with appropriate calls to m32rbf_*.

1999-03-11  Doug Evans  <devans@casey.cygnus.com>

	* arch.c,arch.h,cpu.c,cpu.h,sem.c,sem-switch.c: Rebuild.
	* cpux.c,cpux.h,semx-switch.c: Rebuild.
	* m32r-sim.h (GET_H_*,SET_H_*, except GET_H_SM): Delete.
	* sim-if.c (sim_open): Update call to m32r_cgen_cpu_open.

1999-02-25  Doug Evans  <devans@casey.cygnus.com>

	* cpu.c,cpu.h: Rebuild.

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

	* Makefile.in (SIM_EXTRA_DEPS): Add m32r-desc.h, delete cpu-opc.h.
	(stamp-xmloop): s/-parallel/-parallel-write/.
	* configure.in (sim_link_files,sim_link_links): Delete.
	* configure: Rebuild.
	* decode.c,decode.h,model.c,sem-switch.c,sem.c: Rebuild.
	* decodex.c,decodex.h,modelx.c,semx-switch.c: Rebuild.
	* mloop.in (execute): CGEN_INSN_ATTR renamed to CGEN_INSN_ATTR_VALUE.
	* sim-if.c (sim_open): m32r_cgen_cpu_open renamed from
	m32r_cgen_opcode_open.  Set disassembler.
	(sim_close): m32r_cgen_cpu_open renamed from m32r_cgen_opcode_open.
	* sim-main.h: Don't include cpu-opc.h,cpu-sim.h. Include
	m32r-desc.h,m32r-opc.h,m32r-sim.h.

Thu Feb  4 16:04:26 1999  Doug Evans  <devans@canuck.cygnus.com>

	* cpux.h,decodex.c,modelx.c,semx-switch.c: Regenerate.

1999-01-27  Doug Evans  <devans@casey.cygnus.com>

	* cpu.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild.
	* cpux.h,decodex.c,modelx.c,semx-switch.c: Rebuild.

1999-01-15  Doug Evans  <devans@casey.cygnus.com>

	* decode.h,model.c: Regenerate.
	* decodex.h,modelx.c: Regenerate.

1999-01-14  Doug Evans  <devans@casey.cygnus.com>

	* arch.c,arch.h,cpuall.h: Regenerate.
	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Regenerate.
	* traps.c (sim_engine_invalid_insn): PCADDR->IADDR.
	* cpux.c,cpux.h,decodex.c,decodex.h,modelx.c,semx-switch.c: Regenerate.

1999-01-11  Doug Evans  <devans@casey.cygnus.com>

	* Makefile.in (m32r-clean): rm eng.h.
	* sim-main.h: Delete inclusion of ansidecl.h.
	* cpu.h: Regenerate.
	* cpux.h: Regenerate.

1999-01-06  Doug Evans  <devans@casey.cygnus.com>

	* cpu.h: Regenerate.
	* cpux.h: Regenerate.

1999-01-05  Doug Evans  <devans@casey.cygnus.com>

	* Makefile.in (MAIN_INCLUDE_DEPS): Delete.
	(INCLUDE_DEPS,OPS_INCLUDE_DEPS): Delete.
	(sim-if.o): Use SIM_MAIN_DEPS.
	(arch.o,traps.o,devices.o): Ditto.
	(M32RBF_INCLUDE_DEPS): Use CGEN_MAIN_CPU_DEPS.
	(m32r.o,mloop.o,cpu.o,decode.o,sem.o,model.o): Simplify dependencies.
	(m32rx.o,mloopx.o,cpux.o,decodex.o,semx.o,modelx.o): Ditto.
	* cpu.c,cpu.h,decode.c,model.c,sem-switch.c,sem.c: Regenerate.
	* m32r-sim.h (m32rbf_h_cr_[gs]et_handler): Declare.
	([GS]ET_H_CR): Define.
	(m32rbf_h_psw_[gs]et_handler): Declare.
	([GS]ET_H_PSW): Define.
	(m32rbf_h_accum_[gs]et_handler): Declare.
	([GS]ET_H_ACCUM): Define.
	(m32rxf_h_{cr,psw,accum}_[gs]et_handler): Declare.
	(m32rxf_h_accums_[gs]et_handler): Declare.
	([GS]ET_H_ACCUMS): Define.
	* sim-if.c (sim_open): Model probing code moved to sim-model.c.
	* m32r.c (WANT_CPU): Define as m32rbf.
	(all register access fns): Rename to ..._handler.
	* cpux.c,cpux.h,decodex.c,modelx.c,semx.c: Regenerate.
	* m32rx.c (WANT_CPU): Define as m32rxf.
	(all register access fns): Rename to ..._handler.

1998-12-14  Doug Evans  <devans@casey.cygnus.com>

	* configure.in: --enable-cgen-maint support moved to common/aclocal.m4.
	(SIM_AC_OPTION_ALIGNMENT): Make strict.
	* configure: Regenerate.

	* sem-switch.c,sem.c,semx-switch.c: Regenerate.
	* sim-main.h (SIM_ENGINE_HALT_HOOK,SIM_ENGINE_RESTART_HOOK): Define.
	* traps.c (m32r_core_signal): Handle --environment=operating.

1998-12-09  Doug Evans  <devans@casey.cygnus.com>

	* cpu.h,decode.c,sem-switch.c,sem.c: Regenerate.
	* cpux.h,decodex.c,semx-switch.c: Regenerate.

	* sim-if.c: Include string.h or strings.h if present.

1998-12-04  Doug Evans  <devans@casey.cygnus.com>

	* configure.in: Call SIM_AC_OPTION_INLINE.
	* configure: Regenerate.
	* sim-main.h: Protect against multiple inclusion.
	Don't include cgen-scache.h,cgen-cpu.h,cgen-trace.h,cpuall.h.
	Done by cgen-sim.h now.
	* tconfig.in (SIM_HAVE_MODEL): Delete, moved to cgen-types.h.
	* cpuall.h: Regenerate.
	* cpu.h,decode.c,sem-switch.c,sem.c: Regenerate.
	* mloop.in (extract16): Make static inline again.
	Simplify with call to @cpu@_fill_argbuf,@cpu@_fill_argbuf_tp.
	(extract32): Ditto.
	Simplify with call to @cpu@_fill_argbuf,@cpu@_fill_argbuf_tp.
	(execute): Test ARGBUF_PROFILE_P before profiling.
	Update calls to TRACE_INSN_INIT,TRACE_INSN_FINI.
	* cpux.h,decodex.c,modelx.c,semx-switch.c: Regenerate.
	* mloopx.in: Rewrite.

1998-11-22  Doug Evans  <devans@tobor.to.cygnus.com>

	* devices.c (device_io_write_buffer): Fix typo.
	* sim-if.c (sim_open): Hack in call to dv_sockser_install.
	* tconfig.in (HAVE_DV_SOCKSER): Add but comment out.

1998-11-18  Doug Evans  <devans@casey.cygnus.com>

	* Makefile.in (M32R_OBJS): Delete extract.o.
	(extract.o): Delete.
	* cpu.c,cpu.h,decode.c,decode.h,sem-switch.c,sem.c: Rebuild.
	* mloop.in (extract16): Update type of `insn' arg.
	Delete call to d->extract.
	(extract32): Ditto.
	* cpux.c,cpux.h,decodex.c,decodex.h,semx-switch.c: Rebuild.
	* mloopx.in (extractx16): Update type of `insn' arg.
	Delete call to d->extract.  Delete arg pbb_p.  All callers updated.
	(extract-simple,full-exec-simple,fast-exec-simple): Delete.
	(extractx32): Ditto.

Wed Nov  4 23:55:37 1998  Doug Evans  <devans@seba.cygnus.com>

	* sim-main.h: Delete inclusion of config.h, include sim-basics.h
	before cgen-types.h.
	* tconfig.in: Guard against multiple inclusion.
	* cpu.h: Delete decls moved to genmloop.sh.
	* cpux.h: Ditto.

Mon Oct 19 14:13:05 1998  Doug Evans  <devans@seba.cygnus.com>

	* sim-main.h: #include cpu-opc.h.
	* arch.c,arch.h,decode.c,extract.c,model.c,sem.c: Regenerate
	to get #include cleanup.
	* decodex.c,extractx.c,modelx.c: Ditto.

	* Makefile.in (SIM_EXTRA_DEPS): Replace cgen headers with
	CGEN_INCLUDE_DEPS.
	(M32RBF_INCLUDE_DEPS): Define.
	(m32r .o's): Depend on it.
	(mloop.c): Update call to genmloop.sh.
	* cpu.h,cpuall.h: Regenerate.
	* sim-main.h: Delete inclusion of cpu.h,decode.h, moved to cpuall.h.
	#include cgen-scache.h,cgen-cpu.h.
	* tconfig.in (WITH_FOO semantic macros): Delete.
	* Makefile.in (M32RXF_INCLUDE_DEPS): Define.
	(m32rx .o's): Depend on it.
	(mloopx.c): Update call to genmloop.sh.
	* cpux.h: Regenerate.

Fri Oct 16 09:15:29 1998  Doug Evans  <devans@charmed.cygnus.com>

	* sim-if.c (sim_do_command): Handle "sim info reg {bbpsw,bbpc}".

Fri Oct  9 16:11:58 1998  Doug Evans  <devans@seba.cygnus.com>

	Add pseudo-basic-block execution support.
	* Makefile.in (SIM_OBJS): Add sim-reg.o, cgen-run.o, sim-stop.o.
	(SIM_EXTRA_DEPS): Add include/opcode/cgen.h.
	(INCLUDE_DEPS): Delete cpu-sim.h, include/opcode/cgen.h.
	(mloop.c): Build pseudo-basic-block version.  Depend on stamp-cpu.
	* arch.c,arch.h,cpuall.h: Regenerate.
	* cpu.c,cpu.h,decode.c,decode.h,extract.c,model.c: Regenerate.
	* sem-switch.c,sem.c: Regenerate.
	* m32r-sim.h (M32R_MISC_PROFILE): New members load_regs,
	load_regs_pending.
	* m32r.c (m32rbf_fetch_register): Renamed from m32rb_fetch_register.
	(m32rbf_store_register,m32rbf_h_cr_get,m32rbf_h_cr_set,
	m32rbf_h_psw_get,m32rbf_h_psw_set,m32rbf_h_accum_get,
	m32rbf_h_accum_set): Likewise.
	(m32r_model_{init,update}_insn_cycles): Delete.
	(m32rbf_model_insn_{before,after}): New fns.
	(m32r_model_record_cti,m32r_model_record_cycles): Delete.
	(m32rb_model_mark_get_h_gr,m32rb_model_mark_set_h_gr): Delete.
	(m32rb_model_mark_busy_reg,m32rb_model_mark_unbusy_reg): Delete.
	(check_load_stall): New fn.
	(m32rbf_model_m32r_d_u_{exec,cmp,mac,cti,load,store}): New fns.
	(m32rbf_model_test_u_exec): New fn.
	* mloop.in: Rewrite, use pbb support.
	* sim-if.c (sim_stop,sim_sync_stop,sim_resume): Delete.
	(sim_fetch_register,sim_store_register): Delete.
	* sim-main.h (CIA_GET,CIA_SET): Fix.
	(SIM_ENGINE_HALT_HOOK,SIM_ENGINE_RESTART_HOOK): Delete.
	* tconfig.in (WITH_SCACHE_PBB): Define.
	(WITH_SCACHE_PBB_M32RBF): Define.
	* traps.c (sim_engine_invalid_insn): Renamed from ..._illegal_....
	(m32r_trap): Pass pc to sim_engine_halt.
	* configure.in (SIM_AC_OPTION_SCACHE): Change 1024 to 16384.
	* configure: Regenerate.
	* Makefile.in (M32RX_OBJS): Delete semx.o, add extract.o.
	(mloopx.c): Build pseudo-basic-block version.
	(semx.o): Delete.
	(extractx.o): Add.
	* cpux.c,cpux.h,decodex.c,decodex.h,modelx.c: Regenerate.
	* readx.c: Delete.
	* semx.c: Delete.
	* extractx.c: New file.
	* semx-switch.c: New file.
	* m32r-sim.h (BRANCH_NEW_PC): Delete.
	(SEM_SKIP_INSN): New macro.
	* m32rx.c (m32rxf_fetch_register): Renamed from m32rx_fetch_register.
	(m32rxf_store_register,m32rxf_h_cr_get,m32rxf_h_cr_set,
	m32rxf_h_psw_get,m32rxf_h_psw_set,m32rxf_h_accum_get,
	m32rxf_h_accum_set,m32rxf_h_accums_get,m32rxf_h_accums_set): Likewise.
	(m32rxf_model_insn_{before,after}): New fns.
	(m32rx_model_mark_get_h_gr,m32rx_model_mark_set_h_gr): Delete.
	(m32rx_model_mark_busy_reg,m32rx_model_mark_unbusy_reg): Delete.
	(check_load_stall): New fn.
	(m32rxf_model_m32rx_u_{exec,cmp,mac,cti,load,store}): New fns.
	* mloopx.in: Rewrite, use pbb support.
	* tconfig.in (WITH_SCACHE_PBB_M32RXF): Define.
	(WITH_SEM_SWITCH_FULL): Change from 0 to 1.

Wed Sep 16 18:22:27 1998  Doug Evans  <devans@canuck.cygnus.com>

	* m32r-sim.h ({PSW,CBR,SPI,SPU,BPC,BBPSW,BBPC}_REGNUM): New macros.
	({ACC1L,ACC1H}_REGNUM): New macros.
	(m32r_decode_gdb_ctrl_regnum): Add prototype.
	* m32r.c (m32r_decode_gdb_ctrl_regnum): New function.
	(m32r_fetch_register,m32r_store_register): Rewrite.
	* m32rx.c (m32rx_fetch_register,m32rx_store_register): Rewrite.

Tue Sep 15 15:01:14 1998  Doug Evans  <devans@canuck.cygnus.com>

	* m32r-sim.h (GET_H_SM): New macro.
	(UART params): Update to msa2000.
	* devices.c (device_io_read_buffer): Update to msa2000.
	* m32r.c (m32rb_h_cr_get,m32rb_h_cr_set): Handle bbpc,bbpsw.
	(m32rb_h_psw_get,m32rb_h_psw_set): New functions.
	* arch.c,arch.h,cpu.c,cpu.h,sem-switch.c,sem.c: Regenerate.
	* m32rx.c (m32rx_h_cr_get,m32rx_h_cr_set): Handle bbpc,bbpsw.
	(m32rx_h_psw_get,m32rx_h_psw_set): New functions.
	* cpux.c,cpux.h,readx.c,semx.c: Regenerate.

Wed Sep  9 15:29:36 1998  Doug Evans  <devans@canuck.cygnus.com>

	* m32r-sim.h (m32r_trap): Update prototype.
	* traps.c (m32r_trap): New arg `pc'.
	* sem.c,sem-switch.c: Regenerated.
	* cpux.h,readx.c,semx.c: Regenerated.

Mon Aug  3 12:59:17 1998  Doug Evans  <devans@seba.cygnus.com>

	Rename cpu m32r to m32rb to distinguish from architecture name.
	* Makefile.in (mloop.c): cpu m32r renamed to m32rb.
	* sim-main.h (WANT_CPU_M32RB): Renamed from WANT_CPU_M32R.
	* tconfig.in (WANT_CPU_M32RB): Ditto.
	* m32r.c (WANT_CPU_M32RB): Ditto.
	(*): m32r_ cpu fns renamed to m32rb_.
	* sim-if.c (sim_stop,sim_sync_stop,sim_resume): Update.
	* arch.h,arch.c: Regenerate.
	* cpu.c,cpu.h,decode.c,decode.h,extract.c,model.c: Regenerate.
	* sem-switch.c,sem.c: Regenerate.

	* sim-if.c (sim_open): Don't allocate memory on top of any user
	specified memory.
	(h_gr_get,h_gr_set): Delete.
	* sim-main.h (h_gr_get,h_gr_set): Delete.
	* traps.c (m32r_trap): Replace calls to h_gr_[gs]et with
	a_m32r_h_gr_[gs]et.

	* Makefile.in (INCLUDE_DEPS): Add include/opcode/cgen.h.

	* sim-if.c (sim_open): Open opcode table.
	(sim_close): Close it.

Tue Jul 28 13:06:19 1998  Doug Evans  <devans@canuck.cygnus.com>

	Add support for new versions of mulwhi,mulwlo,macwhi,macwlo that
	accept an accumulator choice.
	* cpux.c,decodex.c,decodex.h,modelx.c,readx.c,semx.c: Regenerate.

Fri Jul 24 13:00:29 1998  Doug Evans  <devans@canuck.cygnus.com>

	* m32r.c: Include cgen-mem.h.
	* traps.c (m32r_trap): Tweak for -Wall.
	* m32rx.c: Include cgen-mem.h.
	* semx.c: Regenerate, get -Wall cleanups.

Tue Jul 21 16:53:10 1998  Doug Evans  <devans@seba.cygnus.com>

	* cpu.h,extract.c: Regenerate.  pc-rel calcs done on f_dispNN now.
	* cpux.h,readx.c,semx.c: Ditto.

Wed Jul  1 16:51:15 1998  Doug Evans  <devans@seba.cygnus.com>

	* Makefile.in: cgen_maint -> CGEN_MAINT.
	* configure.in: AC_SUBST cgen,cgendir.  No longer look for guile.
	* configure: Regenerate.
	* arch.c,arch.h,cpuall.h: Regenerate.
	* cpu.c,cpu.h,decode.c,decode.h,extract.c,model.c: Regenerate.
	* sem-switch.c,sem.c: Regenerate.
	* cpux.c,cpux.h,decodex.c,decodex.h,modelx.c,readx.c: Regenerate.
	* semx.c: Regenerate.
	* mloopx.in (icount): Moved here from genmloop.sh.

Sat Jun 13 07:49:23 1998  Doug Evans  <devans@fallis.cygnus.com>

	* m32r-sim.h (M32R_MISC_PROFILE): New members insn_cycles, cti_stall,
	load_stall,biggest_cycles.
	* m32r.c (m32r_model_mark_get_h_gr): Update.
	(m32r_model_init_insn_cycles,m32r_model_update_insn_cycles): New fns.
	(m32r_model_record_cti,m32r_model_record_cycles): New functions.
	* mloop.in: Call cycle init/update fns.
	* model.c: Regenerate.
	* m32rx.c (m32rx_model_mark_get_h_gr): Update.
	* mloopx.in: Call cycle init/update fns.
	* modelx.c: Regenerate.

Wed Jun 10 17:39:29 1998  Doug Evans  <devans@canuck.cygnus.com>

	* traps.c: New file.  Trap support moved here from sim-if.c.
	* Makefile.in (SIM_OBJS): Add traps.o
	* sim-if.c: Don't include targ-vals.h.
	(sim_engine_illegal_insn): Moved to traps.c
	* sim-main.h (SIM_CORE_SIGNAL): Define.
	(m32r_core_signal): Declare.
	* m32r-sim.h (m32r_trap): Declare.

	* devices.c (device_io_read_buffer): Handle cache purging via MCCR
	register.

	* m32r-sim.h (M32R_MISC_PROFILE): Move here from sim-main.h.
	(PROFILE_COUNT_SHORTINSNS,PROFILE_COUNT_LONGINSNS): New macros.
	(TRAP_SYSCALL,TRAP_BREAKPOINT): New macros.

	* extract.c,sem-switch.c,sem.c: Regenerate.
	* cpux.h,readx.c,semx.c: Regenerate.

Wed May 20 00:10:40 1998  Doug Evans  <devans@seba.cygnus.com>

	* m32r-sim.h (PROFILE_COUNT_PARINSNS): New macro.
	* mloopx.in (extract): Set abuf.addr for proper fill nop counting.
	(execute): Count parallel insns.
	* sim-if.c (print_m32r_misc_cpu): Print count.
	* sim-main.h (M32R_MISC_PROFILE): New member parallel_count.

	Zero bottom two bits of pc in jmp,jl insns.
	* sem.c,sem-switch.c: Regenerate.
	* semx.c: Regenerate.

Tue May 19 16:45:33 1998  Doug Evans  <devans@seba.cygnus.com>

	* sim-if.c (do_trap): Treat traps 2-15 as hardware does.

Sat May 16 13:04:30 1998  Doug Evans  <devans@seba.cygnus.com>

	* sim-if.c (sim_stop): Update call to @cpu@_engine_stop.
	(sim_sync_stop): New function.

Fri May 15 16:43:27 1998  Doug Evans  <devans@seba.cygnus.com>

	* Makefile.in (devices.o): Add dependencies.

	* arch.h,cpu.c,cpu.h,cpuall.h: Regenerate.
	* sem-switch.c,sem.c: Regenerate.
	* mloop.in (execute): Update calls to TRACE_INSN_{INIT,FINI}.
	* cpux.c,cpux.h,modelx.c,semx.c: Regenerate.
	* m32rx.c (m32rx_model_mark_{busy,unbusy}_reg): New functions.
	* mloopx.in (execute): Update calls to TRACE_INSN_{INIT,FINI}.
	Fix pc value passed to TRACE_INSN for second parallel insn.

Thu May  7 02:51:35 1998  Doug Evans  <devans@seba.cygnus.com>

	* Makefile.in (SIM_OBJS): Add sim-cpu.o.

Wed May  6 14:51:39 1998  Doug Evans  <devans@seba.cygnus.com>

	* arch.h,arch.c,cpu.h,cpuall.h: Regenerate, tweaks mostly.
	* model.c: Ditto.  Reorganize model/mach data.
	* cpux.h: Ditto.
	* modelx.c: Ditto.

	* Makefile.in (m32r.o,mloop.o,cpu.o,model.o): Add decode.h dependency.
	(m32rx.o,mloopx.o,cpux.o,modelx.o): Add decodex.h dependency.
	* decode.c,decode.h: Regenerate, introduces IDESC table.
	* mloop.in (extract16,extract32): Add IDESC support.
	Update names of semantic handler member names.
	(execute): Ditto.  Delete call to PROFILE_COUNT_INSN.
	* decodex.c,decodex.h: Regenerate, introduces IDESC table.
	* mloopx.in: Add IDESC support.
	Update names of semantic handler member names.
	Delete call to PROFILE_COUNT_INSN.

	* sem-switch.c: Regenerate.  Redo computed goto label handling.
	* sem.c: Regenerate.  Call PROFILE_COUNT_INSN.
	* readx.c: Regenerate.  Redo computed goto label handling.
	* semx.c: Regenerate.  Call PROFILE_COUNT_INSN.  Finish profiling
	support.

	* m32r.c (m32r_fetch_register): Change result type and args to
	conform to sim_fetch_register interface.
	(m32r_store_register): Ditto for sim_store_register interface.
	* m32rx.c (m32rx_fetch_register): Change result type and args to
	conform to sim_fetch_register interface.
	(m32rx_store_register): Ditto for sim_store_register interface.

	* sim-if.c (alloc_cpu): Delete.
	(free_state): Uninstall modules here ...
	(sim_open): ... and not here.  Call sim_cpu_alloc_all.
	Set default architecture/model if not specified.
	(sim_fetch_register,sim_store_register): Rewrite.

	* sim-if.c (h_pc_get,h_pc_set): Delete.  Renamed to sim_pc_[gs]et
	and moved to common/sim-cpu.c.
	(sim_create_inferior): Update.
	(do_trap): Update.
	* sim-main.h (h_pc_get,h_pc_set): Delete.

	* sim-main.h (sim_cia): Change to USI.
	(sim_cpu): Move m32r_misc_profile before machine generated part.

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

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

Tue Apr 28 18:05:53 1998  Nick Clifton  <nickc@cygnus.com>

	* model.c: Rebuilt.
	* modelx.c: Rebuilt.

Mon Apr 27 15:36:30 1998  Doug Evans  <devans@seba.cygnus.com>

	* cpu.h,model.c,sem-switch.c,sem.c: Regenerated.  Mostly comment
	and variable renaming due to macro insn additions.
	* mloop.in: Update to use CGEN_INSN_NUM.
	* cpux.h,modelx.c,readx.c,semx.c: Regenerated.
	* mloopx.in: Update to use CGEN_INSN_NUM.

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

	* configure.in: Don't call sinclude.

Mon Apr 20 16:12:35 1998  Doug Evans  <devans@canuck.cygnus.com>

	* cpu.c,sem.c,sem-switch.c: Regenerate.  From
	- cgen/m32r.cpu (h-accum): Add attribute FUN-ACCESS.
	* m32r.c (m32r_h_accum_get,m32r_h_accum_set): New functions.
	#include cgen-ops.h.
	* cpux.c,readx.c,semx.c: Regenerate.
	* m32rx.c (m32r_h_accum_get,m32r_h_accum_set): New functions.
	#include cgen-ops.h.  Delete inclusion of several unnecessary headers.
	(m32r_h_accums_get): Sign extend top 8 bits.

Tue Apr 14 14:04:07 1998  Doug Evans  <devans@canuck.cygnus.com>

	* semx.c: Regenerate.

Fri Apr 10 18:22:41 1998  Doug Evans  <devans@canuck.cygnus.com>

	* cpu.h,decode.c,decode.h,extract.c,sem.c,sem-switch.c: Regenerate.
	* cpux.h,decodex.c,decodex.h,readx.c,semx.c: Regenerate.

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.

Sat Mar 14 20:53:36 1998  Doug Evans  <devans@seba.cygnus.com>

	* config.in (HAVE_FCNTL_H): Add.
	* configure: Regenerate.
	* Makefile.in (SIM_OBJS): Add devices.o.
	* m32r-sim.h (m32r_devices): Renamed from m32r_mspr_device.
	(UART_*): Define m32r serial port parameters.
	(M32R_DEVICE_ADDR,M32R_DEVICE_LEN): Define.
	* m32r.c (device_io_{read,write}_buffer,device_error): Move from here,
	* devices.c: To here.
	* sim-if.c: Don't include signal.h,sim-core.h.
	(sim_open): Use M32R_DEVICE_{ADDR,LEN} in sim_core_attach call.
	(sim_resume): Call sim_module_{resume,suspend}.
	* m32r.c (m32r_h_cr_{get,set}): Use register number enums.

	* tconfig.in (SIM_HANDLES_LMA): Define.

	* sim-if.c (do_trap): Result is new pc.
	Handle --environment=operating.
	* sem-switch.c,sem.c: Regenerate.
	* semx.c: Regenerate.

Wed Mar 11 14:07:39 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* sim-if.c (syscall_read_mem, syscall_write_mem): Replace
 	sim_core_*_map with read_map, write_map, exec_map resp.

Wed Mar  4 11:36:51 1998  Doug Evans  <devans@seba.cygnus.com>

	* Makefile.in (SIM_EXTRA_DEPS): Add cpu-opc.h.
	(arch.o): Delete cpu-opc.h dependency.
	(decode.o,model.o): Likewise.
	(decodex.o,modelx.o): Likewise.

	* cpu.h,model.c,sem-switch.c,sem.c: Regenerate.
	* cpux.h,decodex.[ch],modelx.c,readx.c,semx.c: Regenerate.

Thu Feb 26 18:38:35 1998  Andrew Cagney  <cagney@b1.cygnus.com>

	* sim-if.c (sim_open): Initialize PROFILE_INFO_CPU_CALLBACK.

	* sim-if.c (sim_info): Delete.

Fri Feb 27 10:14:29 1998  Doug Evans  <devans@canuck.cygnus.com>

	* mloopx.in: Fix handling of branch in parallel with another insn.
	* semx.c: Regenerate.

Mon Feb 23 13:30:46 1998  Doug Evans  <devans@seba.cygnus.com>

	* sim-main.h: #include symcat.h.
	* m32r-sim.h (BRANCH_NEW_PC): Delete current_cpu arg.
	(NEW_PC_{BASE,SKIP,2,4,BRANCH_P}): New macros.
	* cpu.[ch],decode.[ch],extract.c,model.c: Regenerate.
	* sem.c,sem-switch.c: Regenerate.
	* m32r-sim.h (SEM_NEXT_PC): Modify to handle parallel exec.
	* mloopx.in: Rewrite.
	* cpux.[ch],decodex.[ch],readx.c,semx.c: Regenerate.

Mon Feb 23 12:27:52 1998  Nick Clifton  <nickc@cygnus.com>

	* m32r.c (m32r_h_cr_set, m32r_h_cr_get): Shadow control register 6
	in the backup PC register.
	* m32rx.c (m32r_h_cr_set, m32r_h_cr_get): Shadow control register 6
	in the backup PC register.

Thu Feb 19 16:39:35 1998  Doug Evans  <devans@canuck.cygnus.com>

	* m32r.c (do_lock,do_unlock): Delete.
	* cpu.[ch],decode.[ch],extract.c,model.c: Regenerate.
	* sem.c,sem-switch.c: Regenerate.
	* cpux.[ch],decodex.[ch],readx.c,semx.c: Regenerate.

Tue Feb 17 18:18:10 1998  Doug Evans  <devans@seba.cygnus.com>

	* Makefile.in (M32R_OBJS): Add cpu.o.
	(cpu.o): Add rule for.
	(NL_TARGET): Define.
	* configure.in: Add AC_CHECK_PROG(SCHEME).
	* cpu.c: New file.
	* cpuall.h,cpu.h,decode.c,decode.h,extract.c,model.c: Regenerate.
	* sem-switch.c,sem.c: Regenerate.
	* mloop.in (execute): Update call to semantic fn.
	(M32RX_OBJS): Add cpux.o.
	(cpux.o): Add rule for.
	cpux.c: New file.
	* cpux.h,decodex.c,decodex.h,modelx.c,readx.c,semx.c: Regenerate.
	* m32rx.c (m32rx_h_accums_{get,set}): Rewrite.
	(m32rx_h_cr_{get,set}): New functions.
	(m32rx_h_accums_{get,set}): New functions.
	* mloopx.in: Rewrite main loop.

	* m32r.c (do_trap): Move from here.
	* sim-if.c (do_trap): To here, and rewrite to use CB_SYSCALL support.
	(sim_create_inferior): Use h_pc_set.
	(h_pc_{get,set}): New functions.
	(h_gr_{get,set}): New functions.
	(syscall_{read,write}_mem): New functions.
	* sim-main.h (h_{gr,pc}_{get,set}): Declare.

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

	* sim-if.c (sim_store_register, sim_fetch_register): Pass in
 	length parameter.  Return -1.
	(sim_create_inferior): Pass 4 sim_store_register.

Wed Feb 11 19:53:48 1998  Doug Evans  <devans@canuck.cygnus.com>

	* sim-main.h (CIA_GET,CIA_SET): Provide dummy definitions for now.

	* decode.c, decode.h, sem.c, sem-switch.c, model.c: Regenerate.
	* cpux.c, decodex.c, decodex.h, readx.c, semx.c, modelx.c: Regenerate.

Mon Feb  9 19:41:54 1998  Doug Evans  <devans@canuck.cygnus.com>

	* decode.c, sem.c: Regenerate.
	* cpux.h, decodex.c, readx.c, semx.c: Regenerate.
	* m32rx.c (m32rx_h_accums_set): New function.
	(m32rx_model_mark_[gs]et_h_gr): New function.
	* mloopx.in: Rewrite.
	* Makefile.in (mloopx.o): Build with -parallel.
	* sim-main.h (_sim_cpu): Delete member `par_exec'.
	* tconfig.in (WITH_SEM_SWITCH_FULL): Define as 0 for m32rx.

Thu Feb  5 12:44:31 1998  Doug Evans  <devans@seba.cygnus.com>

	* Makefile.in (m32r.o): Depend on cpu.h
	(extract.o): Pass -DSCACHE_P.
	* mloop.in (extract{16,32}): Update call to m32r_decode.
	* arch.h,cpu.h,cpuall.h,decode.[ch]: Regenerate.
	* extract.c,model.c,sem-switch.c,sem.c: Regenerate.
	* sim-main.h: #include "ansidecl.h".
	Don't include cpu-opc.h, done by arch.h.
	* Makefile.in (M32RX_OBJS): Build m32rx support now.
	(m32rx.o): New rule.
	* m32r-sim.h (m32rx_h_cr_[gs]et): Define.
	* m32rx.c (m32rx_{fetch,store}_register): Update {get,set} of PC.
	(m32rx_h_accums_get): New function.
	* mloopx.in: Update call to m32rx_decode.  Rewrite exec loop.
	* cpux.h,decodex.[ch],modelx.c,readx.c,semx.c: Regenerate.

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.

Thu Jan 29 11:22:00 1998  Doug Evans  <devans@canuck.cygnus.com>

	* Makefile.in (M32RX_OBJS): Comment out until m32rx port working.
	* arch.h (HAVE_CPU_M32R{,X}): Delete, moved to m32r-opc.h.
	* arch.c (machs): Check ifdef HAVE_CPU_FOO for each entry.

Tue Jan 20 14:16:02 1998  Nick Clifton  <nickc@cygnus.com>

	* cpux.h: Fix duplicate definition of h_accums field for
	fmt_53_sadd structure.

Tue Jan 20 01:42:17 1998  Doug Evans  <devans@seba.cygnus.com>

	* Makefile.in: Add m32rx objs, and rules to build them.
	* cpux.h, decodex.h, decodex.c, readx.c, semx.c, modelx.c: New files.
	* m32rx.c, mloopx.in: New files.

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

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

Mon Jan 19 14:13:40 1998  Doug Evans  <devans@seba.cygnus.com>

	* arch.c, arch.h, cpuall.h: New files.
	* arch-defs.h: Deleted.
	* mloop.in: Renamed from mainloop.in.
	* Makefile.in: Update.
	* sem-ops.h: Deleted.
	* mem-ops.h: Deleted.
	(arch): Renamed from CPU.
	* cpu.h: New file.
	* decode.c: Redone.
	* decode.h: Redone.
	* extract.c: Redone.
	* model.c: Redone.
	* sem-switch.c: Redone.
	* sem.c: Renamed from semantics.c, and redone.
	* m32r-sim.h (PROFILE_COUNT_FILLNOPS): Update.
	(GETTWI,SETTWI,BRANCH_NEW_PC): Define.
	* m32r.c (WANT_CPU,WANT_CPU_M32R): Define.
	(m32r_{fetch,store}_register): New functions.
	(model_mark_{get,set}_h_gr): Prefix with m32r_.
	(m32r_model_mark_{busy,unbusy}_reg): Prefix with m32r_.
	(h_cr_{get,set}): Prefix with m32r_.
	(do_trap): Fetch state from current_cpu, not current_state.
	Call sim_engine_halt instead of engine_halt.
	* sim-if.c (alloc_cpu): New function.
	(free_state): New function.
	(sim_open): Call sim_state_alloc, and malloc space for selected cpu
	type.  Call sim_analyze_program.
	(sim_create_inferior): Handle selected cpu type when setting PC.
	(sim_resume): Handle m32rx.
	(sim_stop_reason): Deleted.
	(print_m32r_misc_cpu): Update.
	(sim_{fetch,store}_register): Handle m32rx.
	(sim_{read,write}): Deleted.
	(sim_engine_illegal_insn): New function.
	* sim-main.h: Don't include arch-defs.h,sim-core.h,sim-events.h.
	Include arch.h,cpuall.h.  Include cpu.h,decode.h if m32r.
	Include cpux.h,decodex.h if m32rx.
	(_sim_cpu): Include member appropriate cpu_data member for the cpu.
	(M32R_MISC_PROFILE): Renamed from M32R_PROFILE.
	(sim_state): Delete members core,events,halt_jmp_buf.
	Change `cpu' member to be a pointer to the cpu's struct, rather than
	record inside the state struct.
	* tconfig.in (WITH_DEVICES): Define here.
	(WITH_FAST,WITH_SEM_SWITCH_{FULL,FAST}): Define for the cpu.

Fri Jan 16 12:16:56 1998  Nick Clifton  <nickc@cygnus.com>

	* arch-defs.h (INSN_NAME): Fix typo.

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>

	* m32r-sim.h (MSPR_ADDR): New macro.
	(m32r_mspr_device): Declare.
	(struct _device): Define.
	* m32r.c (m32r_mspr_device): New global.
	(device_{io_{read,write}_buffer,error}): New functions.
	* mem-ops.h (SETMEM*): Use sim_core_write_map, not read map.
	* sim-if.c: Delete redundant inclusion of cpu-sim.h.
	(sim_open): Attach device to handle MSPR register.
	* sim-main.h (WITH_DEVICES): Define as 1.
	Include cpu-sim.h.

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

Wed Dec  3 18:08:44 1997  Doug Evans  <devans@canuck.cygnus.com>

	* configure.in (SIM_AC_OPTION_ENVIRONMENT): Call.
	* configure: Regenerated.

Wed Nov 19 12:17:08 1997  Doug Evans  <devans@canuck.cygnus.com>

	* mem-ops.h: Rename SIM_SIG{ACCESS,ALIGN} to SIM_SIG{SEGV,BUS}.
	* sim-if.c (sim_open): Call sim_config.
	(sim_stop_reason): Update call to sim_signal_to_host.

Tue Nov 18 15:33:48 1997  Doug Evans  <devans@canuck.cygnus.com>

	* Makefile.in (SIM_OBJS): Use $(SIM_NEW_COMMON_OBJS).

Fri Oct 31 18:46:46 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* sim-if.c (sim_open): Delete dead call to sim_core_attach.

Mon Oct 27 12:43:54 1997  Doug Evans  <devans@canuck.cygnus.com>

	* sem-ops.h (U{DIV,MOD}[BHSD]I): Use unsigned division.

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.

Tue Sep 23 10:19:51 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (SIM_ENDIAN, SIM_HOSTENDIAN, SIM_SCACHE,
 	SIM_DEFAULT_MODEL): Delete, moved to common.
	(SIM_EXTRA_CFLAGS): Update.

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

	* configure.in (sim_link_links): Configure non-strict memory
 	alignment.

	* 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 17:44:40 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* sim-if.c (sim_open): Allocate memory under sim-memopt module
 	using sim_do_commandf.
	(sim_open): Set magic-number at the start.
	(sim_do_command): Implement.

	* sim-main.h (sim_engine_halt): Map onto engine_halt.

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.

Fri Sep  5 10:21:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (SIM_OBJS): Add sim-memopt.o module.

Thu Sep  4 10:30:02 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* sim-if.c (sim_open): Pass zero modulo arg to sim_core_attach.

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

	* sim-if.c (sim_kill): Delete.
	(sim_create_inferior): Add ABFD argument.
	(sim_load): Move setting of PC from here.
	(sim_create_inferior): To here.
	(sim_load): Delete, use sim-hload.c instead.

	* Makefile.in (SIM_OBJS): Add sim-hload.o module.

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

	* sim-if.c (sim_open): Add ABFD argument.

Tue Jul 22 10:16:16 1997  Doug Evans  <dje@canuck.cygnus.com>

	* sim-main.h (M32R_DEFAULT_MEM_SIZE): New macro.
	* sim-if.c (sim_open): Use it.

Wed Jun  4 12:48:12 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* sim-main.h (WITH_ENGINE): Disable the common engine for now.

Tue May 27 14:15:44 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* sim-if.c (sim_read): Pass NULL cpu to sim_core_read_buffer.
	(sim_write): Ditto for write.

	* m32r.c (do_trap): Ditto for read/write.

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

	* sim-if.c (sim_open): Add callback argument.
	(sim_set_callbacks, sim_callback): Delete.
	(sim_load): Set STATE_LOADED_P.

Mon May 19 12:55:42 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (SIM_OBJS): Link in sim-abort.o as a stub for
 	sim_engine_abort.

Mon May  5 12:45:28 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* sim-if.c (sim_open): Update to reflect changes to core in
 	../common/.
	* mem-ops.h (GETMEMQI, GETMEMHI, GETMEMSI, GETMEMDI, GETMEMUQI,
 	GETMEMUHI, GETMEMUSI, GETMEMUDI, SETMEMQI, SETMEMHI, SETMEMSI,
 	SETMEMDI, SETMEMUQI, SETMEMUHI, SETMEMUSI, SETMEMUDI): Ditto.

Sat May  3 08:38:55 1997  Doug Evans  <dje@seba.cygnus.com>

	* decode.c (decode): Add computed goto support.

Fri May  2 16:30:26 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* mem-ops.h: Stub additional core read/write arguments.

	* sim-main.h: Declare sim_cia - type SI.
	(struct _sim_cpu): Move base type to end per common.
	(struct _sim_state): Ditto.

Thu May  1 11:15:34 1997  Doug Evans  <dje@canuck.cygnus.com>

	Merge from branch into devo.  CGEN generic files moved to common
	directory.  K&R C support is no longer provided.

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

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

Sat Apr 12 12:57:33 1997  Felix Lee  <flee@yin.cygnus.com>

	* Makefile.in, seman-cache.c: new file, for wingdb build.
	* sim-alloca.h: fixed for wingdb.

Mon Apr  7 13:33:29 1997  Doug Evans  <dje@seba.cygnus.com>

	* decode.c (*): m32r_cgen_insn_table renamed to ..._entries.
	* mainloop.in: Use CGEN_INSN_INDEX instead of CGEN_INSN_TYPE.
	* simdefs.h (INSN_NAME): m32r_cgen_insn_table renamed to ..._entries.

Fri Apr  4 19:23:12 1997  Doug Evans  <dje@canuck.cygnus.com>

	* cgen-utils.in (ex_illegal): Fill in abuf->length, abuf->addr.
	(exc_illegal): Likewise.
	* decode.c (decode_vars): Add decode_illegal.
	* genmloop.sh: #include "cpu-opc.h".
	* sem-switch.c (case_INSN_ILLEGAL): Declare.
	(labels): Add case_INSN_ILLEGAL.
	(SWITCH): Add INSN_ILLEGAL case.

Wed Mar 26 12:34:00 1997  Doug Evans  <dje@canuck.cygnus.com>

	* model.c (model_module): Use 0 not NULL.

	* genmloop.sh (sim_main_loop): Handle k&r c.

	* sem-switch.c: Regenerate to get k&r c support.
	* semantics.c: Likewise.

	* m32r.c (ADD_{OV,CA}_SI,SUB_{OV,CA}_SI): Renamed to {ADD,SUB}[OC]FSI.
	(ADDCSI,SUBCSI): New functions.
	* sem-switch.c (addv,addv3,addx,subv,subx): Fix carry bit handling.
	* semantics.c (addv,addv3,addx,subv,subx): Fix carry bit handling.

	* simcache.c (simcache_{install,init,uninstall}): Use
	DECLARE_MODULE_INSTALL_HANDLER.
	(simcache_option_handler): Use DECLARE_OPTION_HANDLER.

	* utils.c: #include "semops.h".

Tue Mar 11 14:30:26 1997  Doug Evans  <dje@seba.cygnus.com>

	* profile.c (profile_print_simcache): Fix thinko in printf text.

	* simdefs.h (struct argbuf): Add member to fmt_20 so it's not empty.

Mon Mar 10 11:06:29 1997  Doug Evans  <dje@seba.cygnus.com>

	* m32r.c (h_cr_get): Rewrite.
	(h_cr_set): Rewrite.
	* sem-switch.c (rte): bcarry renamed to bcond.
	* semantics.c (rte): Likewise.
	* simdefs.h (CPU_STATE): Likewise.

	* config.in (HAVE_SYS_TIME_H): Add.
	* configure.in: Check for sys/time.h.
	* configure: Regenerated.
	* utils.c: Include sys/time.h if present.

	* common.c (sim_parse_args): Account for NULL terminating entry
	in long_options table.

	* genmloop.sh (RUN_FAST_P): Don't run fast if tracing.
	Always use cache if configured in.
	* mainloop.in (do_extract_insn{16,32}): New functions.
	(normal,fast): Call them.  Handle starting in left slot.
	* simcache.c (simcache_option_handler): Disallow -c0.
	* sem-switch.c (TRACE_RESULT): Redefine so no tracing.

	* profile.c (profile_print_simcache): Fix percentage calc.

	* Makefile.in (INCLUDE_DEPS): Delete simcommon.h.

Sun Mar  9 20:42:17 1997  Doug Evans  <dje@seba.cygnus.com>

	* Makefile.in (COMMON_{PRE,POST}_CONFIG_FRAG): Add delimiters for.
	(M32R_INCLUDE_DEPS): Use cpu-sim.h instead of m32r-sim.h.
	Add mod-list.h.
	(mrun.o): Don't depend on M32R_INCLUDE_DEPS.
	(sim-if.o,m32r.o,utils.o): Likewise.
	(common.o): Don't explicitly depend on mod-list.h.
	(mainloop.c): Pass CPU to genmloop.sh.
	(stamp-modules): Depend on configure.
	(decode.o): Depend on decode,h, memops.h, semops.h, cpu-opc.h.
	(extract.o): Depend on decode.h, memops.h, semops.h.
	(semantics.o,seman-cache.o): Likewise.
	(model.o,ops.o): Depend on memops.h.
	(extr-cache.o): Disable building for the moment.

	* simcommon.h: Delete, move contents into cgen-sim.h.
	* cgen-sim.h: Don't include ansidecl.h,bfd.h,simfns.h.
	(UINT,CGEN_CAT3): Define.
	({extract,semantic}_fn_t): Renamed to {EXTRACT,SEMANTIC}_FN.
	(decode_t): Renamed to DECODE.

	* simfns.h: Delete, contents moved to memops.h,semops.h.
	* memops.h: New file.
	* semops.h: New file.
	* decode.h: Renamed from semantics.h.

	* sim-argv.h: New file.
	* Makefile.in (memory.o,trace.o,profile.o,simcache.o,common): Add
	dependency of sim-argv.h.

	* sim-alloca.h: New file.
	* common.c: Include it.
	* Makefile.in (common.o): Add dependency.

	* config.in (HAVE_TIME_H,HAVE_SYS_RESOURCE_H): Add.
	(HAVE_GETRUSAGE,HAVE_TIME): Add.
	* configure.in: sinclude ../common/aclocal.m4.
	Check for headers time.h, sys/resource.h.
	Check for functions time, getrusage.
	(sim_link_{files,links}): Add link cpu-opc.h.
	(sim_profile): Add simcache.
	(SIM_AC_PROFILE): Add simcache, profile.o.
	(simcache module): Delete extr-cache.o for now.
	(--enable-sim-cache): Allow specification of default cache size.
	* configure: Regenerated.

	* decode.c: #include cgen-sim.h,memops.h,semops.h,decode.h,
	cpu-sim.h,cpu-opc.h.  Don't include m32r-sim.h.
	Regenerate.

	* extract.c: #include cgen-sim.h,decode.h,cpu-sim.h.
	Don't include m32r-sim.h.
	(*): Define/Undef FLD macro.  Use it to reference ARGBUF.
	Simplify profiling test with PROFILE_MODEL_P.
	(mvfc,mvtc): Fix access of control registers.
	* semantic.c: #include cgen-sim.h,memops.h,semops.h,decode.h,cpu-sim.h.
	Don't include m32r-sim.h.
	(*): Define/Undef FLD macro.  Use it to reference ARGBUF.
	Simplify profiling test with PROFILE_MODEL_P.
	(mvfc,mvtc): Fix access of control registers.

	* sem-switch.c: New file, for GCC computed goto support.

	* genmloop.sh: Add #include's of bfd.h,callback.h,cgen-sim.h,
	memops.h,semops.h,trace.h,cpu-sim.h.
	(RUN_FAST_P): Change default to run fast if cache size > 0
	and not profiling.
	(sim_main_loop): Record execution time.
	Record instruction count even in fast mode.
	(init): Allow cpu to provide init code in mainloop.in.
	(FAST): Define as 0 or 1 depending on fast mode.
	* mainloop.in (normal): Combine with fast case.
	Add support for GCC computed gotos.  Count simcache hits/misses.
	(init): Initialize "switch" labels if GNUC.

	* cgen-utils.in: Don't include opcode/cgen.h.
	Include cgen-sim.h, cpu-opc.h.
	* common.c: Don't include simcommon.h,mod-list.h.  Include cgen-sim.h.
	* m32r-sim.h: Don't include mod-list.h
	(RUN_FAST_P): Delete.
	* m32r.c: Don't include profile.h.  #include ansidecl.h,cgen-sim.h,
	semops.h,memory.h,trace.h
	(h_cr_get,h_cr_set): New functions.
	* memory.c: #include cgen-sim.h,callback.h.
	* ops.c: Don't include profile.h,m32r-sim.h.
	Include cgen-sim.h,memops.h,cpu-sim.h.
	(MEMOPS_DEFINE_INLINE): Renamed from SIMFNS_DEFINE_INLINE.
	* trace.c: Include cgen-sim.h,cpu-opc.h.
	* trace.h (trace_insn_{init,fini}): Declare.

	* model.c: Don't include signal.h,stdlib.h,m32r-sim.h.
	Include cgen-sim.h,cpu-sim.h,cpu-opc.h.
	Regenerate to get new insn aliases.

	* mrun.c: #include "ansidecl.h".
	(STATE): Use struct sim_state instead.

	* profile.c: Surround #include <stdlib.h> with HAVE_STDLIB_H.
	Don't include simcommon.h.  Include cgen-sim.h,cpu-opc.h.
	(PROFILE_{READ,WRITE}_MASK): Replace with PROFILE_MEMORY_MASK.
	(profile_print_simcache): New function.
	(profile_print): Call it.  Print simulator speed stats.
	* profile.h (PROFILE_{READ,WRITE}_MASK): Replace with
	PROFILE_MEMORY_MASK.
	(MODULE_PROFILE_SIMCACHE_P): Define.
	(PROFILE_SIMCACHE_MASK): Define.
	(PROFILE_COUNT): New members total_insn_count,exec_time.
	New members simcache_hits,simcache_misses.
	(PROFILE_SIMCACHE_{HITS,MISSES}): Define.
	(PROFILE_MODEL_P): New macro.
	(PROFILE_COUNT_SIMCACHE_{HIT,MISS}): New macros.

	* sim-if.c: Surround #include <stdlib.h> with HAVE_STDLIB_H.
	Don't include simcommon.h,m32r-sim.h.  Include cgen-sim.h,cpu-sim.h.
	(sim_resume): Use USING_SIMCACHE_P instead of RUN_FAST_P.
	(sim_info): Pass verbose to profile_print.

	* simcache.c: Include cgen-sim.h,callback.h.
	(USING_SIMCACHE_P): Replace with SIMCACHE_P.
	(simcache_option_handler): Ensure cache size at least 2.
	Allow config time specification of default cache size.
	* simcache.h (struct simcache): Support GCC computed gotos.
	(SIMCACHE_DEFAULT_CACHE_SIZE): USe CONFIG_SIM_CACHE_SIZE if defined.
	(USING_SIMCACHE_P): New macro.

	* simdefs.h: Don't include m32r-opc.h.
	(CGEN_MAX_SIM_INSNS): Define.
	(CPU_STATE): Regenerate.
	(ARGBUF): Regenerate.
	(extract,semantic handler decls): Delete, moved to decode.h.

	* tconfig.in: Don't include cgen-sim.h,m32r-sim.h.
	(USE_SEM_SWITCH): Define.

	* utils.c: Include bfd.h,time.h,sys/resource.h.
	(sim_time_get,sim_time_elapsed): New functions.
	* cgen-sim.h (SIM_TIME,sim_time_get,sim_time_elapsed): Declare.

Fri Jan 31 20:25:06 1997  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in (AC_CHECK_HEADERS): Handle i386-windows.
	* configure: Regenerated.
	* model.c: #include <stdlib.h>.
	* simcache.c: #include "libiberty.h".
	* simcommon.h (alloca): Handle i386-windows.

	* common.c: #include libiberty.h.
	(sim_signal_to_host): Return 5 if wingdb.

Mon Jan 27 15:22:49 1997  Doug Evans  <dje@seba.cygnus.com>

	* configure.in (sim_cache): Enabled by default now, pass default
	cache size to --enable-sim-cache.
	* simcache.c (simcache_option_handler): Allow -c 0.

	* simdefs.h,simfns.h: Regenerate
	* decode.c,extract.c,model.c,ops.c,semantics.c: Regenerate.

Tue Jan 21 16:21:01 1997  Doug Evans  <dje@seba.cygnus.com>

	Add model profiling support.
	* configure.in: Handle --enable-sim-model.
	(sim_profile): Add model.
	* Makefile.in (model.o): Add rule.
	* cgen-sim.h (UNIT,INSN_TIMING,MACH,MODEL): New types.
	* extract.c (*): Add model profiling support.
	* m32r.c (model_mark_{get,set}_h_gr): New functions.
	(model_mark_{busy,unbusy}_reg): New functions.
	* profile.c (profile_option_handler): Recognize --profile model.
	(profile_print_model): New function.
	(profile_print): Call it.
	* profile.h (MODULE_profile_model,MODULE_PROFILE_MODEL_P): Define.
	(PROFILE_MODEL_MASK,PROFILE_LABEL_WIDTH): Define.
	(PROFILE_COUNT): New members cycle_count,cti_stall_count,
	load_stall_count,taken_count,untaken_count.
	* semantics.c (*): Add model profiling support.
	* simcommon.h (struct sim_state): New members mach,model.
	* simdefs.h (CPU_PROFILE,MODEL_TYPE,UNIT_TYPE): New type.
	(MAX_MODELS,MAX_UNITS): Define.
	* tconfig.in (STATE_EXTRA_MEMBERS): Add cpu_profile.

	* Makefile.in (INCLUDE_DEPS): Add $(SIM_MODULES_HDRS).
	(stamp-modules): Depend on genmodlist.sh.
	* common.c (standard_options): Add --max-insns.
	(copy_argv): New function.
	* tconfig.in (SIM_HAVE_MAX_INSNS): Define.
	* genmloop.sh: Allow mainloop.in to contain support code.
	* mainloop.in: Move do_insn16,do_insn32 here.
	* m32r.c (do_trap): Handle SYS_argvlen,SYS_argv,SYS_read.
	* sim-if.c (sim_open): Don't set max insn count.
	(sim_create_inferior): Save argv,envp.
	* simcommon.h (struct sim_state): New members argv,envp.
	* simdefs.h ([GS]ETTWI,[GS]ETTUWI,[GS]ETTAI): Define.
	([GS]ETMEMWI,[GS]ETMEMUWI,[GS]ETMEMAI): Define.
	(ARGBUF): New members h_gr_get, h_gr_set.
	* trace.c (trace_insn_init,trace_insn_fini): New functions.
	(trace_printf): Print to buffer, output later by trace_insn_fini.
	* trace.h (TRACE_INSN_{INIT,FINI}): Define.

Thu Dec 19 16:01:59 1996  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in (AC_FUNC_ALLOCA): Call.
	* configure: Regenerate.
	* config.h (HAVE_ALLOCA_H): Add.
	* simcommon.h: Add alloca support.
	(DECLARE_MODULE_INSTALL_HANDLER): Define.
	(DECLARE_OPTION_HANDLER): Define.
	(MEM_FN): Declare using PARAMS.
	(DECLARE_MEM_FN): Define.
	* trace.c (trace_result): Tweak for !STDC.
	* cgen-sim.h (UDI_FN_SUPPORT): Define if ! HAVE_LONGLONG.
	* cgen-utils.in (disasm_sprintf): Fix va_arg call in !STDC case.
	* common.c (sim_print_help_fn): Use PARAMS.
	(standard_option_handler): Fix decl for !STDC systems.
	* memory.c: #include <stdio.h>
	(mem_flat_{install,init,uninstall}): Fix decl for !STDC systems.
	(mem_flat_{read,write},mem_flat_option_handler): Likewise.
	* profile.c (profile_install): Likewise.
	(profile_option_handler): Likewise.

Thu Dec 19 11:06:19 1996  Doug Evans  <dje@seba.cygnus.com>

	* semantics.c (*): Don't suffix big unsigned numbers with "U".
	Prefix them with 0x instead.

	* cgen-sim.h (DI_FN_SUPPORT): Define if ! HAVE_LONGLONG.
	(SLADI,SRADI,CONVSIDI,CONVDISI): Delete, moved to simfns.h.
	* semantics.c (machi,maclo,macwhi,macwlo,mulhi,mullo): Implement.
	(mulwhi,mulwlo,mvtachi,mvtaclo,rac,rach): Implement.
	* simfns.h: Add decls for functional DI,UDI,SF,DF,XF,TF support.
	Add support for boolean and/or.
	* utils.c: Redo naming of DI functional support.
	(ANDDI,ORDI,ADDDI,MULDI,GEDI,LEDI,CONVHIDI): New functions.

Tue Dec 17 12:57:48 1996  Doug Evans  <dje@seba.cygnus.com>

	* Directory created.
