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>

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

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

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

	* configure.ac (SIM_AC_OPTION_HOSTENDIAN): Delete.
	* configure: Regenerate.

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

	* configure.ac (SIM_AC_OPTION_ENDIAN): Change LITTLE_ENDIAN to
	LITTLE.
	* configure: Regenerate.

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-24  Mike Frysinger  <vapier@gentoo.org>

	* sim-if.c (cris_option_install): Delete.
	(sim_open): Call sim_add_option_table.
	* tconfig.h: Delete sim-module.h include.
	(MODULE_INSTALL_FN, MODULE_LIST): 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-15  Mike Frysinger  <vapier@gentoo.org>

	* cr16_sim.h (cr16_callback): Delete.
	* interp.c (cr16_callback): Delete.
	(do_run): Delete cr16_callback.  Replace
	cr16_callback->printf_filtered with sim_io_printf.
	(sim_open): Delete cr16_callback assignment.
	(step_once, sim_create_inferior): Replace
	cr16_callback->printf_filtered with sim_io_printf.
	* simops.c (move_to_cr, trace_input_func, do_trace_output_flush,
	do_trace_output_finish, trace_output_40, trace_output_32,
	trace_output_16, trace_output_void, trace_output_flag): Replace
	cr16_callback->printf_filtered with sim_io_printf and
	cr16_callback->flush_stdout with sim_io_flush_stdout.
	(OP_14C_14): Likewise.  Rename cr16_callback to cb.

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

	* Makefile.in (SIM_OBJS): Add sim-reason.o, sim-resume.o, and
	sim-stop.o.
	* cr16_sim.h (struct _state): Delete exe and exception.
	* interp.c (lookup_hash): Call sim_engine_halt instead of setting
	State.exception.
	(do_run): Delete unused s and func variables.
	(stop_simulator, sim_stop, sim_stop_reason): Delete.
	(sim_resume): Rename to ...
	(step_once): ... this.  Delete State.exception code and move
	siggnal checking to sim_engine_run.
	(sim_engine_run): New function.
	* simops.c (EXCEPTION): Define.
	(move_to_cr): Call EXCEPTION instead of setting State.exception.
	(OP_1_4, OP_18_8, OP_10_10, OP_C0_8, OP_102_14, OP_148_14, OP_D_C,
	OP_14_D, OP_15_D, OP_2C00_10, OP_16_D, OP_17_D, OP_31E_10, OP_6_10):
	Likewise.
	(OP_C_C): Likewise.  Call sim_engine_halt instead of setting
	State.exception.
	(OP_0_20): Call sim_engine_halt instead of setting State.exception.

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

	* Makefile.in (SIM_OBJS): Delete endian.o.
	(INCLUDE): Delete endian.c.
	* configure.ac (SIM_AC_OPTION_ENDIAN): Declare little endian.
	(SIM_AC_OPTION_ALIGNMENT): release unaligned loads.
	* configure: Regenerate.
	* cr16_sim.h (IMAP_BLOCK_SIZE, DMAP_BLOCK_SIZE, SEGMENT_SIZE,
	IMEM_SEGMENTS, DMEM_SEGMENTS, UMEM_SEGMENTS, cr16_memory, dmem_addr,
	imem_addr, decode_pc, get_longword, get_word, write_word,
	write_longword, READ_16): Delete.
	(struct _state): Delete mem member.
	(endian.c): Delete include.
	(SB, RB, SW, RW, SLW): Rewrite to use sim-core functions.
	(get_longword): New function.
	(RLW): Rewrite to use get_longword.
	* endian.c: Delete file.
	* interp.c (map_memory, sim_size, last_segname, last_from, last_to,
	IMAP0_OFFSET, DMAP0_OFFSET, DMAP2_SHADDOW, DMAP2_OFFSET,
	dmap_register, imap_register, sim_cr16_translate_dmap_addr,
	sim_cr16_translate_imap_addr, sim_cr16_translate_addr, map_memory,
	xfer_mem, sim_write, sim_read, dmem_addr, imem_addr): Delete.
	(do_run): Delete iaddr and replace imem_addr/get_longword with RW.
	(sim_open): Call sim_do_commandf.  Delete sim_size call.
	(sim_resume): Delete iaddr and replace imem_addr/get_longword with
	RLW.
	* simops.c (MEMPTR): Rewrite to use sim_core_trans_addr.

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

	* cr16_sim.h (struct simops): Add SIM_DESC and SIM_CPU to func args.
	(SET_CREG, SET_HW_CREG, SET_PSR_BIT): Pass sd and cpu to move_to_cr.
	(dmem_addr, imem_addr, move_to_cr): Add SIM_DESC and SIM_CPU args.
	(RB, SW, RW, SLW, RLW): Pass sd and cpu to dmem_addr.
	* endian.c: Change cr16_sim.h include to sim-main.h.
	* gencode.c: Likewise.  Add SIM_DESC and SIM_CPU args to all OPs.
	* interp.c (lookup_hash, map_memory, do_run, dmap_register,
	imap_register, sim_cr16_translate_dmap_addr, xfer_mem,
	sim_cr16_translate_imap_addr, sim_cr16_translate_addr): Add
	SIM_DESC and SIM_CPU args and adjust all callers.
	(trace_sd): Delete.
	(sim_open): Do not assign trace_sd.
	(sim_resume, sim_create_inferior): Set up cpu from the first one
	in sd.
	(cr16_reg_store): Get sim state from cpu.
	* simops.c (move_to_cr): Add SIM_DESC and SIM_CPU args.
	(trace_input_func, trace_input, do_trace_output_finish,
	do_trace_output_finish, trace_output_40, trace_output_32,
	trace_output_16, trace_output_void, trace_output_flag): Add
	SIM_DESC arg.
	(trace_input_func): Likewise.  Change trace_sd to sd.
	(OP_*): Add SIM_DESC and SIM_CPU args to all OP funcs.

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

	* cr16_sim.h (get_longlong, write_longlong, WRITE_16, READ_64,
	WRITE_64): Delete.
	* endian.c (get_longlong, write_longlong): Likewise.

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

	* Makefile.in (SIM_OBJS): Add sim-reg.o.
	* interp.c (cr16_reg_fetch, cr16_reg_store): Add prototypes.
	(sim_open): Call CPU_REG_FETCH/CPU_REG_STORE.
	(cr16_extract_unsigned_integer, cr16_store_unsigned_integer):
	New helper functions.
	(sim_fetch_register): Rename to ...
	(cr16_reg_fetch): ... this.  Use cr16_store_unsigned_integer
	to write out the updated register values.
	(sim_store_register): Rename to ...
	(cr16_reg_store): ... this.  Use cr16_extract_unsigned_integer
	to read in the updated register values.

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

	* interp.c (sim_open): Delete sim_create_inferior call.

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

	* interp.c (sim_close): Delete.

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

	* interp.c (sim_cr16_translate_dmap_addr): Mark static.
	(sim_cr16_translate_imap_addr): Likewise.
	(sim_cr16_translate_addr): Likewise.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

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

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

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

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

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

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

	* interp.c (cr16_pc_get, cr16_pc_set): New functions.
	(sim_open): Call CPU_PC_FETCH & CPU_PC_STORE for all cpus.

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

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

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

	* configure: Regenerate.

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

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

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

	* interp.c (sim_set_profile, sim_set_profile_size): Delete.

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

	* Makefile.in (simops.o): New rule.

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

	* cr16_sim.h (text, text_start, text_end, prog_bfd): Delete.
	(SEXT8, SEXT16, SEXT32): Undefine.
	* interp.c: Delete run-sim.h and cr16_sim.h includes.  Include
	sim-main.h and sim-options.h.
	(myname, sim_kind, init_text_p, prog_bfd_was_opened_p, prog_bfd,
	text, text_start, text_end, decode_pc, sim_set_profile,
	sim_set_profile_size, sim_set_trace, sim_info, sim_set_callbacks,
	sim_trace, sim_complete_command, sim_do_command, sim_load): Delete.
	(do_run): Delete prototype.
	(INLINE): Delete define.
	(do_run, xfer_mem): Pass in SIM_DESC.  Set cr16_callback locally from
	it.
	(sim_size): Mark static.
	(sim_write, sim_read): Pass sd to xfer_mem.
	(free_state): New function.
	(trace_sd): Declare global variable.
	(sim_open): Rewrite to use new common logic.
	(sim_close): Delete body.
	(sim_resume): Pass sd to do_run.
	* Makefile.in (SIM_RUN_OBJS, SIM_EXTRA_CFLAGS): Delete.
	(SIM_OBJS): Change to $(SIM_NEW_COMMON_OBJS).
	* sim-main.h: New file.
	* simops.c: Change cr16_sim.h include to sim-main.h.
	(trace_input_func): Rewrite pc checks to use trace_sd.

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

	* Makefile.in (SIM_EXTRA_CFLAGS): Delete -DNEED_UI_LOOP_HOOK.
	* interp.c [NEED_UI_LOOP_HOOK] (UI_LOOP_POLL_INTERVAL,
	ui_loop_hook_counter, deprecated_ui_loop_hook): Delete.
	(sim_resume) [NEED_UI_LOOP_HOOK]: Delete ui code.

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

	* interp.c (old_segment_mapping, ins_type_counters, add_commas,
	set_dmap_register, set_imap_register, HELD_SPI_IDX, HELD_SPU_IDX,
	spu_register, spi_register, set_spi_register, set_spu_register):
	Delete.
	(sim_cr16_translate_addr): Delete old_segment_mapping handling.
	(sim_open): Likewise.
	(sim_info): Delete function body.

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

	* Makefile.in (gencode.o, cr16-opc.o): Add $(WARN_CFLAGS).
	(gencode): Add $(BUILD_LDFLAGS).
	* endian.c (get_word, get_longword, get_longlong, write_word,
	write_longword, write_longlong): Convert old style prototypes.
	* gencode.c: Include string.h.
	(write_header): Convert old style prototype and fix printf format.
	(write_template, write_opcodes): Likewise.
	(check_opcodes): Mark static void and put behind #if 0.
	* interp.c: Include inttypes.h and run-sim.h.
	(add_commas): Delete prototype.
	(decode_pc): Convert old style prototype.
	(do_run): Change h->op compare to 0.
	(add_commas, set_dmap_register, set_imap_register, HELD_SPI_IDX,
	HELD_SPU_IDX, spu_register, spi_register, set_spi_register,
	set_spu_register): Wrap in #if 0.
	(sim_write, sim_read, sim_close, sim_stop, sim_set_callbacks,
	sim_stop_reason, sim_fetch_register, sim_store_register,
	sim_do_command): Convert old style prototypes.
	(sim_create_inferior): Fix pointer cast to use uintptr_t.
	* simops.c [HAVE_TIME_H]: Include time.h.
	[HAVE_SYS_TIME_H]: Include sys/time.h.
	[TARGET_SYS_utime]: Include utime.h.
	[TARGET_SYS_wait]: Include sys/wait.h.
	(strrchr): Delete prototype.
	(cond_stat): Mark static.
	(trace_input_func): Mark name static.
	(trace_input_func, trace_output_void, trace_output_flag): Convert old style prototypes.
	(trace_output_40): Wrap in #if 0.
	(OP_*): Convert old style prototypes.  Move trace_input call below
	all variable decls.  Initialize tmp to 0 when appropriate.

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

	* Makefile.in (SIM_EXTRA_CFLAGS): Delete -DSIM_HAVE_ENVIRONMENT.
	(interp.o, simops.o, endian.o, table.o): Delete rules.
	* configure.ac: Call SIM_AC_OPTION_ENDIAN, SIM_AC_OPTION_ALIGNMENT,
	SIM_AC_OPTION_HOSTENDIAN, SIM_AC_OPTION_ENVIRONMENT, and
	SIM_AC_OPTION_INLINE.
	* config.in, configure: Regenerate.
	* interp.c (sim_trace): Define.

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

	* config.in, configure: Regenerate.

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

	* Makefile.in (SIM_EXTRA_CFLAGS): Add
	-DSIM_USE_DEPRECATED_RUN_FRONTEND.
	(SIM_RUN_OBJS): Set to run.o.

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

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

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

	* configure: Regenerate.

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

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

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

	* interp.c (sim_do_command): Add const to cmd.

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

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

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* aclocal.m4, configure: Regenerate.

2013-05-10  Freddie Chopin  <freddie_chopin@op.pl>

	* configure: Rebuild.

2012-08-28  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>

	* cr16_sim.h: Add defines for TRAP handling.
	* interp.c (sim_complete_command): New stub function.
	* simops.c: Breakpoint handling code.

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

	* interp.c: Include config.h first.  Also include stdlib.h and
	string.h so we can drop the sysdep.h include.

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

	* config.in, configure: Regenerate.

2012-05-24  Pedro Alves  <palves@redhat.com>

	PR gdb/7205

	Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout.

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

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

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

	PR sim/12862
	* simops.c (OP_C_C): Only handle TARGET_SYS_fork, TARGET_SYS_execve,
	TARGET_SYS_pipe, TARGET_SYS_rename, and TARGET_SYS_chown when they
	are defined.

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.

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

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

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

	* configure: Regenerate.

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

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

	* configure: Regenerate.

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

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

	* interp.c (hash): Remove incorrect prototype.

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

	* configure: Regenerate.

2008-05-02  M Ranga Swami Reddy <MR.Swami.Reddy@nsc.com>

	* interp.c: Update the machine code decode algorithm using hash table.
	* Makefile.in, cr16_sim.h, gencode.c and  simops.c: Update for typos
	and coding standards.

2008-02-12  M Ranga Swami Reddy <MR.Swami.Reddy@nsc.com>

	* ChangeLog, Makefile.in, configure, configure.in, cr16_sim.h,
	gencode.c, interp.c, simops.c, endian.c: Created.

