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.
