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

	* Makefile.in: Make file obsolete.
	* cpu.c, arch.h, arch.c, cpu.h, decode.h: Ditto.
	* decode.c, fr30-sim.h, devices.c, fr30.c: Ditto.
	* model.c, sem-switch.c, sim-if.c: Ditto.
	* sim-main.h, traps.c, sem.c: Ditto.
	* TODO, README: Ditto.
	* configure.in: Ditto.
	* configure: 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.
	* decode.c: Regenerate.
	* decode.h: Regenerate.
	* model.c: Regenerate.
	* sem-switch.c: Regenerate.
	* sem.c: Regenerate.

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

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

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

	* arch.c: Regenerate.
	* arch.h: Regenerate.
	* cpu.c: Regenerate.
	* cpu.h: Regenerate.
	* cpuall.h: Regenerate.
	* decode.c: Regenerate.
	* decode.h: Regenerate.
	* model.c: Regenerate.
	* sem-switch.c: Regenerate.
	* sem.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.

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

	* cpu.h: Regenerated.
	* decode.c: Regenerated.

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

	* Makefile.in (fr30-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>

	* sem.c,sem-switch.c: Rebuild.
	* traps.c (sim_engine_invalid_insn): New arg `vpc'.  Change type of
	result to SEM_PC.  Return vpc.

Wed Sep 29 14:45:32 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-08-31  Doug Evans  <devans@casey.cygnus.com>

	* sem.c: Rebuild.

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

	* cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Rebuild.

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

	* cpu.h,cpuall.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild.

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

	* cpu.h,decode.h,model.c,sem-switch.c,sem.c: Rebuild.

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

	* configure: Regenerated to track ../common/aclocal.m4 changes.
	
Fri Apr 16 16:50:31 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>

	* cpu.h,sem-switch.c,sem.c: Rebuild.

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

	* decode.c: Rebuild.

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

	* arch.c,arch.h,model.c: Rebuild.
	* fr30.c (fr30bf_fetch_register): Replace calls to a_fr30_h_* with
	calls to fr30bf_h_*.
	(fr30bf_store_register): Ditto.
	* traps.c (setup_int): Ditto.
	* sim-if.c (sim_open): Update call to fr30_cgen_cpu_open.

Mon Mar 22 13:13:05 1999  Dave Brolley  <brolley@cygnus.com>

	* configure.in: Use SIM_AC_OPTION_ALIGNMENT(FORCED_ALIGNMENT).
	* configure: Regenerate.
	* cpu.h: Regenerate.

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

	* arch.c,arch.h,cpu.c,cpu.h: Rebuild.
	* fr30-sim.h (GET_H_SBIT,SET_H_SBIT): Delete.
	(GET_H_CCR,SET_H_CCR,GET_H_SCR,SET_H_SCR,GET_H_ILM,SET_H_ILM): Delete.
	(GET_H_PS,SET_H_PS,GET_H_DR,SET_H_DR): Delete.
	* sim-if.c (sim_open): Update call to fr30_cgen_cpu_open.

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

	* cpu.h: Rebuild.

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

	* Makefile.in (SIM_EXTRA_DEPS): Add fr30-desc.h, delete cpu-opc.h.
	* configure.in (sim_link_files,sim_link_links): Delete.
	* configure: Rebuild.
	* decode.c,decode.h,model.c,sem-switch.c,sem.c: Rebuild.
	* fr30.c (fr30bf_model_fr30_1_u_cti): CGEN_INSN_ATTR renamed to
	CGEN_INSN_ATTR_VALUE.
	* mloop.in (extract-pbb): Ditto. Use idesc->length to get insn length.
	* sim-if.c (sim_open): fr30_cgen_cpu_open renamed from
	fr30_cgen_opcode_open.  Set disassembler.
	(sim_close): fr30_cgen_cpu_open renamed from fr30_cgen_opcode_open.
	* sim-main.h: Don't include cpu-opc.h,cpu-sim.h. Include
	fr30-desc.h,fr30-opc.h,fr30-sim.h.

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

	* cpu.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild.

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

	* cpu.h,decode.h,model.c: Regenerate.
	* fr30.c (fr30bf_model_insn_before): Clear load_regs_pending.
	(fr30bf_model_insn_after): Copy load_regs_pending to load_regs.
	(fr30bf_model_fr30_1_u_exec): Check for load stalls.
	(fr30bf_model_fr30_1_u_{cti,load,store}): Ditto.

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.
	* devices.c (device_io_write_buffer): Remove some m32r cruft.
	* fr30-sim.h (FR30_MISC_PROFILE): Delete, plus supporting macros.
	(EIT_*,MSPR_*,MLCR_*,MPMR_*): Delete, m32r cruft.
	* fr30.c (fr30bf_model_insn_after): Update cycle counts.
	(check_load_stall): New function.
	(fr30bf_model_fr30_1_u_exec): Update argument list.
	(fr30bf_model_fr30_1_u_{cti,load,store,ldm,stm}): New functions.
	* sim-if.c (sim_open): Comment out memory mapped device allocation.
	Delete FR30_MISC_PROFILE handling.
	(print_fr30_misc_cpu): Delete.
	* sim-main.h (_sim_cpu): Delete member fr30_misc_profile.
	* traps.c (sim_engine_invalid_insn): PCADDR->IADDR.

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

	* Makefile.in (fr30-clean): rm eng.h.

	* sim-main.h: Delete inclusion of ansidecl.h.
	Include sim-basics.h before cgen-types.h.
	Delete inclusion of cgen-scache.h,cgen-cpu.h,cgen-trace.h,cpuall.h.
	* cpu.h,sem-switch.c,sem.c: 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,arch.o,devices.o): Use SIM_MAIN_DEPS.
	(FR30BF_INCLUDE_DEPS): Use CGEN_MAIN_CPU_DEPS.
	(mloop.o,cpu.o,decode.o,sem.o,model.o): Simplify dependencies.
	* cpu.c,cpu.h,decode.c,model.c,sem-switch.c,sem.c: Regenerate.
	* fr30-sim.h (fr30bf_h_sbit_[gs]et_handler): Declare.
	([GS]ET_H_SBIT): Define.
	(fr30bf_h_ccr_[gs]et_handler): Declare.
	([GS]ET_H_CCR): Define.
	(fr30bf_h_scr_[gs]et_handler): Declare.
	([GS]ET_H_SCR): Define.
	(fr30bf_h_ilm_[gs]et_handler): Declare.
	([GS]ET_H_ILM): Define.
	(fr30bf_h_ps_[gs]et_handler): Declare.
	([GS]ET_H_PS): Define.
	(fr30bf_h_dr_[gs]et_handler): Declare.
	([GS]ET_H_DR): Define.
	* fr30.c (all register access fns): Rename to ..._handler.
	(fr30bf_h_*_get_handler,fr30bf_h_*_set_handler): Rewrite to use
	CPU or GET_H_FOO/SET_H_FOO access macros as appropriate.
	* sim-if.c (sim_open): Model probing code moved to sim-model.c.

Fri Dec 18 17:09:34 1998  Dave Brolley  <brolley@cygnus.com>

	* fr30.c (fr30bf_store_register): Call a_fr30_h_dr_set for
	dedicated registers.

Thu Dec 17 17:17:48 1998  Dave Brolley  <brolley@cygnus.com>

	* sem-switch.c,sem.c: Regenerate.

Tue Dec 15 17:39:59 1998  Dave Brolley  <brolley@cygnus.com>

	* traps.c (setup_int): Correct calls to SETMEMSI.
	(fr30_int): Must calculate new pc after saving old one.
	* fr30.c (fr30bf_h_sbit_get): New function.
	(fr30bf_h_sbit_set): New function.
	(fr30bf_h_ccr_set): Use fr30bf_h_sbit_set and move stack switching
	logic to that function.
	* cpu.[ch],decode.c,model.c,sem-switch.c,sem.c: Regenerate.

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

	* configure.in: --enable-cgen-maint moved to common/aclocal.m4.
	* configure: Regenerate.

	* sem-switch.c,sem.c: Regenerate.

	* traps.c (setup_int): Use enums for register numbers.
	(fr30_int): Ditto.

1998-12-14  Dave Brolley  <brolley@cygnus.com>

	* cpu.h,decode.[ch],model.c,sem-switch.c,sem.c: Regenerate.

Thu Dec 10 18:43:13 1998  Dave Brolley  <brolley@cygnus.com>

	* arch.[ch],cpu.[ch],decode.c,model.c,sem-switch.c,sem.c: Regenerate.
	* fr30.c (fr30bf_h_scr_get): Implement as separate bits.
	(fr30bf_h_scr_set): Implement as separate bits.

Wed Dec  9 13:25:37 1998  Doug Evans  <devans@canuck.cygnus.com>

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

Tue Dec  8 13:15:23 1998  Dave Brolley  <brolley@cygnus.com>

	* cpu.h,decode.c,model.c,sem-switch.c,sem.c: Regenerate.

Mon Dec  7 14:35:23 1998  Dave Brolley  <brolley@cygnus.com>

	* traps.c (fr30_inte): New function.
	* cpu.h,decode.c,model.c,sem-switch.c,sem.c: Regenerate.

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

	* cpu.h,cpuall.h,decode.c,sem-switch.c,sem.c: Regenerate.
	* mloop.in (extract): Make static inline.  Rewrite.
	(execute): Check ARGBUF_PROFILE_P before profiling.
	Update calls to TRACE_INSN_INIT,TRACE_INSN_FINI.

Fri Dec  4 16:18:25 1998  Doug Evans  <devans@canuck.cygnus.com>

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

Fri Dec  4 17:09:27 1998  Dave Brolley  <brolley@cygnus.com>

	* cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Regenerate.

Fri Dec  4 00:22:43 1998  Doug Evans  <devans@canuck.cygnus.com>

	* cpu.h,decode.c,model.c,sem-switch.c,sem.c: Regenerate.

Thu Dec  3 17:33:16 1998  Dave Brolley  <brolley@cygnus.com>

	* fr30.c (fr30bf_h_ccr_get): New function.
	(fr30bf_h_ccr_set): New function.
	(fr30bf_h_ps_get): Use ccr access function.
	(fr30bf_h_ps_set): Use ccr access function.
	(fr30bf_h_scr_get): New function.
	(fr30bf_h_scr_set): New function.
	(fr30bf_h_ilm_get): New function.
	(fr30bf_h_ilm_set): New function
	(fr30bf_h_ps_get): Implement src and ilm.
	(fr30bf_h_ps_set): Implement src and ilm.

	* arch.c,arch.h,cpu.h,decode.c,decode.h,model.c,
	sem-switch.c,sem.c: Regenerate.

Thu Dec  3 00:15:11 1998  Doug Evans  <devans@canuck.cygnus.com>

	* cpu.h,decode.c,model.c,sem-switch.c,sem.c: Regenerate.

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

	* mloop.in (extract-pbb): Add delay slot support.
	* cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Regenerate.

Thu Nov 26 11:28:30 1998  Dave Brolley  <brolley@cygnus.com>

	* cpu.h,decode.c,model.c,sem.c,sem-switch.c: Regenerated.

Mon Nov 23 18:30:36 1998  Dave Brolley  <brolley@cygnus.com>

	* cpu.h,decode.c,model.c,sem-switch.c,sem.c: Regenerated.

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

	* fr30-sim.h (*-REGNUM): Sync up with gdb.
	* fr30.c (decode_gdb_dr_regnum): New function.
	(fr30bf_fetch_register): Implement.
	(fr30bf_store_register): Ditto.
	(fr30bf_h_ps_get,fr30bf_h_ps_set): Ditto.
	(fr30bf_h_dr_get,fr30bf_h_dr_set): New functions.
	* sem-switch.c,sem.c: Rebuild.
	* traps.c (setup_int): New function
	(fr30_int): Handle all int insn processing here.
	Don't save ps,pc if breakpoint trap.
	* cpu.c,cpu.h,decode.c,sem-switch.c,sem.c: Regenerate.

Thu Nov 19 16:05:09 1998  Dave Brolley  <brolley@cygnus.com>

	* traps.c (fr30_int): Correct register usage.
	* arch.c: Regenerated.
	* arch.h: Regenerated.
	* cpu.c: Regenerated.
	* cpu.h: Regenerated.
	* decode.c: Regenerated.
	* decode.h: Regenerated.
	* model.c: Regenerated.
	* sem-switch.c: Regenerated.
	* sem.c: Regenerated.

Wed Nov 18 21:39:37 1998  Dave Brolley  <brolley@cygnus.com>

	* fr30-sim.h (TRAP_SYSCALL, TRAP_BREAKPOINT): Redefine for fr30.
	* fr30.c (fr30bf_h_ps_get): New function.
	(fr30bf_h_ps_set): New function.
	* mloop.in: Set up fast-pbb model for fr30.
	* traps.c (fr30_int): New function.
	* arch.c: Regenerated.
	* arch.h: Regenerated.
	* cpu.c: Regenerated.
	* cpu.h: Regenerated.
	* decode.c: Regenerated.
	* model.c: Regenerated.
	* sem-switch.c: Regenerated.
	* sem.c: Regenerated.

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

	* Makefile.in (FR30_OBJS): Delete extract.o.
	(FR30BF_INCLUDE_DEPS): Add cgen-engine.h.
	(extract.o): Delete rule for.
	* mloop.in: Rewrite.
	* cpu.c,cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Rebuild.

Wed Nov 18 11:31:21 1998  Dave Brolley  <brolley@cygnus.com>

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

Mon Nov 16 19:23:44 1998  Dave Brolley  <brolley@cygnus.com>

	* arch.c: Regenerated.
	* arch.h: Regenerated.
	* cpu.c: Regenerated.
	* cpu.h: Regenerated.
	* decode.c: Regenerated.
	* decode.h: Regenerated.
	* extract.c: Regenerated.
	* model.c: Regenerated.
	* sem-switch.c: Regenerated.
	* sem.c: Regenerated.

Thu Nov 12 19:27:50 1998  Dave Brolley  <brolley@cygnus.com>

	* arch.c: Regenerated.
	* arch.h: Regenerated.
	* cpu.c: Regenerated.
	* cpu.h: Regenerated.
	* decode.c: Regenerated.
	* decode.h: Regenerated.
	* extract.c: Regenerated.
	* model.c: Regenerated.
	* sem-switch.c: Regenerated.
	* sem.c: Regenerated.
	* fr30.c: Get rid of unused functions.

Mon Nov  9 18:25:47 1998  Dave Brolley  <brolley@cygnus.com>

	* arch.c: Regenerated.
	* arch.h: Regenerated.
	* cpu.c: Regenerated.
	* cpu.h: Regenerated.
	* decode.c: Regenerated.
	* decode.h: Regenerated.
	* extract.c: Regenerated.
	* model.c: Regenerated.
	* sem-switch.c: Regenerated.
	* sem.c: Regenerated.
	* fr30.c: Get rid of m32r stuff. Flesh out fr30 stuff.

Thu Nov  5 15:26:22 1998  Dave Brolley  <brolley@cygnus.com>

	* cpu.h: Regenerated.

Tue Oct 27 15:39:48 1996  Dave Brolley  <brolley@cygnus.com>

	* Directory created.
