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

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

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

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

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

	* configure: Regenerate.

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

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

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

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

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

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

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

	* configure: Regenerate.

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

	* aclocal.m4, configure: Regenerate.

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

	* configure: Regenerate.

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

	* interp.c: Include sim-signal.h.
	* simops.c: Likewise.

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

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

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

	* configure: Regenerate.

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

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

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

	* config.in, configure: Regenerate.

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

	* configure.ac: Delete call to SIM_AC_OPTION_ALIGNMENT.

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

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

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

	* config.in, configure: Regenerate.

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

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

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

	* sim-main.h (SIM_HAVE_COMMON_SIM_STATE): Define.
	(struct sim_state): Delete.

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

	* cr16_sim.h: Delete config.h include.
	* gencode.c: Replace config.h include with defs.h.
	(write_template): Output defs.h include.
	(write_opcodes): Likewise.
	* interp.c: Replace config.h include with defs.h.
	* simops.c: Include defs.h.

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

	* config.in, configure: Regenerate.

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

	* Makefile.in: Update path.
	* cr16_sim.h: Update include path.
	* interp.c: Likewise.

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

	* configure: Regenerate.

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

	* interp.c (sim_create_inferior): Use BFD_VMA_FMT and drop cast.

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

	* config.in, configure: Regenerate.

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

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

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

	* simops.c: Update includes.
	* configure, config.in: Rebuild.

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

	* Makefile.in (SIM_EXTRA_DEPS): New variable.
	(simops.o): Remove.

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

	* configure: Rebuild.

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

	* aclocal.m4: Regenerate.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* interp.c (sim_open): Use PRIx64 to match mcode type.  Skip the
	current simop when it doesn't match a known hash table.
	* configure.ac (SIM_AC_OPTION_WARNINGS): Delete call.
	* configure: Regenerate.

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

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

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

	* aclocal.m4, configure: Regenerate.

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

	* Makefile.in (gencode.o, cr16-opc.o): Call COMPILE_FOR_BUILD.
	(gencode): Call LINK_FOR_BUILD.

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

	* Makefile.in (gencode): Delete $(BUILD_LIB).

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

	* configure: Regenerate.

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

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

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

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

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

	* configure: Regenerate.

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

	* config.in, configure: Regenerate.
	* simops.c: Delete HAVE_STRING_H & HAVE_TIME_H.

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

	* cr16_sim.h (State): Change to an extern.
	* interp.c (State): Define.

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

	* configure: Regenerate.

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

	* configure.ac (SIM_AC_OPTION_WARNINGS): Pass "no".
	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* config.in, configure: Regenerate.

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

	* configure: Regenerate.

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

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