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

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

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

	* configure.ac: Delete SIM_AC_OPTION_SCACHE call.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

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

	* configure.ac: Delete SIM_AC_OPTION_DEFAULT_MODEL call.
	* sim-if.c (sim_open): Set STATE_MODEL_NAME.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

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

	* arch.c (sim_machs): Rename to ...
	(cris_sim_machs): ... this.
	* sim-if.c (cris_sim_machs): New decl.
	(sim_open): Set STATE_MACH.

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

	* Makefile.in (stamp-v10fcpu): Do not insert cgen-ops.h include.
	(stamp-v32fcpu): Likewise.

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

	* arch.c (sim_machs): Mark const.

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

	* cpuv10.c (crisv10f_record_trace_results): Delete function.
	* cpuv32.c (crisv32f_record_trace_results): Likewise.

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

	* decodev10.c: Include cgen-mem.h.
	* decodev32.c: Likewise.

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

	* cris-sim.h (cris_bmod_handler): Delete.
	* traps.c (cris_dump_map): New prototype.
	(cris_bmod_handler): Delete.
	(h_supr_set_handler): Likewise.
	(h_supr_get_handler): Likewise.

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

	* traps.c (cris_getpid): New function.
	(cris_set_callbacks): Assign cris_getpid.

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

	* sim-if.c: Include sim-hw.h.
	(cris_write_interp): Change buf to const.
	(sim_open): Cast sp_init to unsigned char *.

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

	* configure: Regenerate.

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

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

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

	* Makefile.in (SIM_EXTRA_HW_DEVICES): Define.
	* configure.ac (SIM_AC_OPTION_HARDWARE): Delete call.
	* configure: Regenerate.

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

	* traps.c (dump_statistics): Clean up sim_io_eprintf calls, and
	replace raw abort with sim engine abort.
	(cris_break_13_handler): Likewise.

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

	* Makefile.in (CGEN_MAINT): Delete.
	* configure.ac: Delete SIM_AC_OPTION_CGEN_MAINT call.
	* 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>

	* Makefile.in (SIM_WERROR_CFLAGS): New variable.
	* configure.ac: Delete call to SIM_AC_OPTION_WARNINGS.
	* configure: Regenerate.

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

	* traps.c: Include sim-signal.h.

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

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

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

	* traps.c: Include sim/callback.h.

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

	* configure: Regenerate.

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

	* Makefile.in (rvdummy.o): Delete config.h.
	* 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>

	* traps.c: Include portability.h.

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

	* dv-rv.c: Delete HAVE_SYS_SELECT_H.
	* rvdummy.c: Likewise.

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>

	* configure.ac: Delete call AC_CHECK_HEADERS_ONCE.
	* config.in, configure: Regenerate.

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

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

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

	* cris-desc.c, cris-desc.h, cris-opc.h: Moved to opcodes/.
	* Makefile.in (SIM_OBJS): Delete cris-desc.o.
	(SIM_EXTRA_DEPS): Delete cris-desc.h.
	(cris-clean): Delete stamp-desc.
	(stamps): Likewise.
	(stamp-desc): Delete rule.

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

	* sim-if.c (sim_open): Delete "x" after PRI macros.

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

	* sim-if.c: Include unistd.h.

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

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

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

	* cris-tmpl.c, crisv10f.c, crisv32f.c, dv-cris.c, dv-cris_900000xx.c,
	dv-rv.c, traps.c: Include defs.h.
	* rvdummy.c, sim-if.c: Replace config.h include with defs.h.

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

	* config.in, configure: Regenerate.

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

	* sim-if.c: Include environ.h.
	(environ, GET_ENVIRON): Delete.
	(sim_open): Replace my_environ with environ.

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

	* traps.c (cris_break_13_handler): Delete 2nd arg to time callback.
	(cris_time): Change return to int64_t.  Delete 2nd arg.

2021-05-04  Tom Tromey  <tromey@adacore.com>

	* mloop.in: Include <stdlib.h>.

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

	* configure: Regenerate.

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

	* sim-if.c (cris_load_elf_file): Use BFD_VMA_FMT
	(cris_handle_interpreter): Likewise.  Delete phaddr.
	(sim_open): Use PRIx32.

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

	* config.in, configure: Regenerate.

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

	* Makefile.in (NL_TARGET): Delete.

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

	* Makefile.in (SIM_EXTRA_DEPS): Add engv32.h.

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

	* configure.ac (SIM_AC_OPTION_HARDWARE): Delete first two args.
	* configure: Regenerate.

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

	* rvdummy.c: Update includes.
	* dv-rv.c: Update includes.
	* configure, config.in: Rebuild.

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

	* Makefile.in (sim-if.o, dv-cris.o, dv-rv.o, arch.o, traps.o)
	(devices.o, crisv10f.o, mloopv10f.o, cpuv10.o, decodev10.o)
	(modelv10.o, crisv32f.o, mloopv32f.o, cpuv32.o, decodev32.o)
	(modelv32.o): Remove.
	(SIM_EXTRA_DEPS): Add engv10.h.

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.ac: Change AC_CHECK_HEADERS to AC_CHECK_HEADERS_ONCE.
	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* sim-if.c (sim_open): Delete 3rd arg to sim_cpu_alloc_all.

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

	* traps.c: Include stdlib.h.
	* cris-tmpl.c: Include stdlib.h.

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

	* aclocal.m4, configure: Regenerate.

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.
	* dv-rv.c, rvdummy.c, sim-if.c, traps.c: Delete HAVE_ERRNO_H,
	HAVE_STRING_H, HAVE_STRINGS_H, HAVE_STDLIB_H, and strings.h
	include.

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.

2019-09-06  Alan Modra  <amodra@gmail.com>

	* sim-if.c (sim_open): Constify filename variable.

2018-12-06  Andrew Burgess  <andrew.burgess@embecosm.com>

	* Makefile.in: Replace uses of CGEN_CPU_DIR with CPU_DIR, and
	remove the definition of CGEN_CPU_DIR.

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

	* configure: Regenerate.

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

	* decodev10.c (crisv10f_init_idesc_table): Use ARRAY_SIZE.
	* decodev32.c (crisv32f_init_idesc_table): Likewise.
	* sim-if.c (sim_open): Likewise.

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

	* config.in, configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure.ac (SIM_AC_OPTION_ENVIRONMENT): Delete call.
	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure.ac (SIM_AC_OPTION_INLINE): Delete call.
	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* config.in, configure: Regenerate.
	* rvdummy.c: Change cconfig.h to config.h.

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

	* sim-if.c (sim_open): Mark argv const.
	(sim_create_inferior): Mark argv and env const.

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

	* configure: Regenerate.

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

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

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

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

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>

	* arch.h (TARGET_BIG_ENDIAN): Delete.
	* configure.ac (SIM_AC_OPTION_ENDIAN): Change LITTLE_ENDIAN to
	LITTLE.
	* configure: Regenerate.

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

	* sim-if.c (xprintf, eprintf): Delete.
	(cris_load_elf_file): Delete callback.  Change xprintf to
	sim_io_printf and eprintf to sim_io_eprintf.

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

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

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

	* sim-if.c (sim_open): Delete current_target_byte_order assignment.
	* configure.ac: Call SIM_AC_OPTION_ENDIAN.
	* configure: Regenerate.

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

	* sim-if.c (cris_program_offset_write, sim_load): Delete.

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

	* config.in, configure: Regenerate.
	* Makefile.in (rvdummy.o): Delete tconfig.h.

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

	* sim-if.c (sim_open): Delete cpu variable.  Pass NULL/NULL_CIA to
	sim_core_write_buffer.

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

	* sim-if.c (sim_create_inferior): Delete old comment and set up
	STATE_PROG_ARGV.

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

	* configure.ac (SIM_AC_OPTION_HARDWARE): Change default to yes and
	add cris_900000xx.
	* configure: Regenerated.
	* devices.c: Delete file.
	* dv-cris_900000xx.c: New device model.
	* Makefile.in (SIM_OBJS): Delete devices.o.
	* sim-if.c (sim_open): Replace cris_have_900000xxif logic with a
	call to sim_hw_parse.
	* tconfig.h: Delete file.

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

	* rvdummy.c (_GNU_SOURCE): Delete.
	(setupsocket): Mark static.

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

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

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

	* arch.c: Rename MACH to SIM_MACH.
	* cpuall.h: Likewise.
	* modelv10.c: Rename MACH to SIM_MACH, MACH_IMP_PROPERTIES to
	SIM_MACH_IMP_PROPERTIES, and MODEL to SIM_MODEL.
	* modelv32.c: Likewise.

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

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

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

	* devices.c (device_error): Delete.

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

	* tconfig.h (SIM_HANDLES_LMA): Delete.

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

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

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

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

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

	* configure: Regenerate.

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

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

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

	* traps.c (syscall_map): Fill out name field.
	(syscall_stat32_map, errno_map, open_map): Likewise.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* decodev10.c (crisv10f_decode): Change TRACE_EXTRACT to
	CGEN_TRACE_EXTRACT.
	* decodev32.c (crisv32f_decode): Likewise.
	* mloop.in (execute): Change TRACE_INSN_INIT to CGEN_TRACE_INSN_INIT,
	TRACE_INSN to CGEN_TRACE_INSN, and TRACE_INSN_FINI to CGEN_TRACE_INSN_FINI.
	* semcrisv10f-switch.c: Change TRACE_RESULT to CGEN_TRACE_RESULT.
	* semcrisv32f-switch.c: Likewise.

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

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

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

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

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

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

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

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

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

	* crisv10f.c (deliver_interrupt): Change CIA_GET to CPU_PC_GET.
	* crisv32f.c (deliver_interrupt): Likewise.
	* sim-main.h (CIA_GET, CIA_SET): Delete.

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

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

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

	* sim-main.h (struct sim_state): Change cpu to an array of pointers.
	(STATE_CPU): Handle WITH_SMP.

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

	* configure: Regenerate.

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

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

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

	* config.in, configure: Regenerate.

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

	* configure: Regenerate.

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

	* Makefile.in (CONFIG_DEVICES): Delete.
	(SIM_OBJS): Delete CONFIG_DEVICES.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* aclocal.m4, config.in, configure: Regenerate.
	* rvdummy.c: Delete tconfig.h include.
	* tconfig.in: Rename file ...
	* tconfig.h: ... here.

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

	* tconfig.in: Delete most includes.
	[HAVE_DV_SOCKSER]: Delete.

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

	* Makefile.in (SIM_RUN_OBJS): Delete.

2014-12-03  Joel Brobecker  <brobecker@adacore.com>

	* traps.c (cris_break_13_handler): Adjust call to "fstat" callback
	by call to "to_fstat" following renaming in callback.h.

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

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

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

	* configure: Regenerate.

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

	* config.in, configure: Regenerate.

2012-05-18  Nick Clifton  <nickc@redhat.com>

	PR 14072
	* sim-if.c: Include config.h before system header files.

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

	* configure: Regenerate after common/acinclude.m4 update.

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-10-09  Alan Modra  <amodra@gmail.com>

	* cris-desc.h: Regenerate.

2010-10-07  Hans-Peter Nilsson  <hp@axis.com>

	* traps.c (cris_break_13_handler): Pass lseek
	offset parameter as sign-extended.

2010-05-26  Ozkan Sezer  <sezeroz@gmail.com>

	* dv-rv.c (hw_rv_init_socket): Check error return from socket() call
	by its equality to -1 not by it being negative.
	(hw_rv_write): Likewise.
	(hw_rv_handle_incoming): Likewise.
	(hw_rv_poll_once): Likewise.
	* rvdummy.c (setupsocket): Likewise.
	(main): Likewise for accept() call as returned from setupsocket().

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

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

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

	* cpuv10.h, * cpuv32.h, * cris-desc.c,
	* cris-desc.h, * decodev10.c, * decodev32.c,
	* modelv10.c, * modelv32.c, * semcrisv10f-switch.c,
	* semcrisv32f-switch.c: Regenerate.

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

	* arch.c, * arch.h, * cpuall.h, * cpuv10.c,
	* cpuv10.h, * cpuv32.c, * cpuv32.h, * cris-desc.c,
	* cris-desc.h, * cris-opc.h, * decodev10.c,
	* decodev10.h, * decodev32.c, * decodev32.h,
	* modelv10.c, * modelv32.c, * semcrisv10f-switch.c,
	* semcrisv32f-switch.c: Regenerate, update copyright year.

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

	* mloop.in: Fix copyright year update snafu.

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

	* cpuall.h: Regenerate.
	* cpuv10.h: Regenerate.
	* cpuv32.h: Regenerate.
	* decodev10.c: Regenerate.
	* decodev10.h: Regenerate.
	* decodev32.c: Regenerate.
	* decodev32.h: Regenerate.

2009-10-23  Doug Evans  <dje@sebabeach.org>

	* arch.c: Regenerate.
	* arch.h: Regenerate.
	* cpuall.h: Regenerate.
	* cpuv10.c: Regenerate.
	* cpuv10.h: Regenerate.
	* cpuv32.c: Regenerate.
	* cpuv32.h: Regenerate.
	* cris-desc.c: Regenerate.
	* cris-desc.h: Regenerate.
	* cris-opc.h: Regenerate.
	* decodev10.c: Regenerate.
	* decodev10.h: Regenerate.
	* decodev32.c: Regenerate.
	* decodev32.h: Regenerate.
	* modelv10.c: Regenerate.
	* modelv32.c: Regenerate.
	* semcrisv10f-switch.c: Regenerate.
	* semcrisv32f-switch.c: Regenerate.

2009-01-18  Hans-Peter Nilsson  <hp@axis.com>

	* sim-if.c: Include errno.h.
	(cris_start_address, cris_program_offset): New variables.
	(OPTION_CRIS_PROGRAM_OFFSET, OPTION_CRIS_STARTADDR): New option
	enums.
	(cris_options): New options --cris-program-offset and
	--cris-start-address.
	(cris_option_handler): Handle new options.
	(cris_program_offset_write, cris_set_section_offset_iterator)
	(cris_offset_sections, cris_offset_sections): New functions.
	(sim_load): Use cris_program_offset_write as function argument to
	cris_load_elf_file, not sim_write.
	(struct offsetinfo): New struct.
	(cris_handle_interpreter): Fix typo in comment.
	(sim_open): Call cris_offset_sections as soon as the bfd of the
	infile is available.  Gate bfd validity checks on abfd non-NULL.
	(sim_create_inferior): Let cris_start_address when != -1 override
	other start-address choices.

2009-01-06  Hans-Peter Nilsson  <hp@axis.com>

	* traps.c (abort): Define to call sim_io_error.
	(create_map): Make -1 imply a non-fixed address, not 0.  All
	callers changed.  Only prefer the next higher unmapped address if
	the last mapped address is no less than 0x40000000.  Check that
	the address to be mapped is not already mapped.  Update head
	comment.
	(unmap_pages): Don't call abort when recursive call fails, just
	note and return an error if a page in the range couldn't be unmapped.
	(cris_bmod_handler, h_supr_set_handler, h_supr_get_handler)
	(schedule, make_first_thread, cris_pipe_empty): New local variable sd.
	(cris_break_13_handler) <case TARGET_SYS_mmap2>: Handle
	non-MAP_FIXED argument overlapping existing map.  For MAP_FIXED,
	don't abort on page not being mapped.  Handle non-anon filemap
	with length padded to pagesize.

2009-01-03  Hans-Peter Nilsson  <hp@axis.com>

	* sim-if.c (TARGET_AT_NULL, TARGET_AT_PHDR, TARGET_AT_PHENT)
	(TARGET_AT_PHNUM, TARGET_AT_PAGESZ, TARGET_AT_BASE)
	(TARGET_AT_FLAGS, TARGET_AT_ENTRY, TARGET_AT_UID, TARGET_AT_EUID)
	(TARGET_AT_GID, TARGET_AT_EGID, TARGET_AT_HWCAP)
	(TARGET_AT_CLKTCK): Remove redundant macros.
	(AUX_ENT): Adjust to use standard ELF AT_* macros.
	(AUX_ENTF): Ditto.  Remove always-0 middle argument.  Update all
	callers.
	(sim_open): Also pass AT_SECURE.

	* sim-main.h (struct _sim_cpu): New member
	set_target_thread_data.
	* crisv32f.c (CRIS_TLS_REGISTER): Define.
	* crisv10f.c: Ditto.
	* cris-tmpl.c (MY (set_target_thread_data)): New function.
	(MY (f_specific_init)): Set new _sim_cpu member to new function.
	* traps.c (TARGET_SYS_set_thread_area): Define.
	(cris_break_13_handler) <case TARGET_SYS_set_thread_area>: New
	case.

	* traps.c (TARGET_SYS_exit_group): Define.
	(cris_break_13_handler): Handle it like the exit for the last
	thread.

	* traps.c (TARGET_UTSNAME): Update to 2009-01-01.
	(TARGET_EPOCH): Update to match TARGET_UTSNAME.  Correct comment.
	(cris_break_13_handler) <case TARGET_SYS_uname>: Update to
	2.6.27.  Set machine field to the BFD printable name of the
	machine.

	* traps.c (TARGET_MAP_DENYWRITE): Define.
	(cris_break_13_handler) <case TARGET_SYS_mmap2>: Handle
	TARGET_MAP_DENYWRITE.

	* traps.c (TARGET_SYS_access, TARGET_R_OK, TARGET_W_OK)
	(TARGET_X_OK, TARGET_F_OK): Define.
	(cris_break_13_handler) <case TARGET_SYS_access>: New case.

	* semcrisv32f-switch.c: Regenerate.

2008-12-30  Hans-Peter Nilsson  <hp@axis.com>

	* sim-if.c (sim_open): If sim_analyze_program fails, emit
	just a short CRIS-specific notice.  Tweak the wording for a
	failing architecture test.

	* traps.c (TARGET_SYS_writev): New macro.
	(is_mapped_only, cris_dump_map): New functions.
	(cris_break_13_handler) <case TARGET_SYS_mmap2>: Handle more flags
	and prot combinations and a non-zero page-offset.  If
	TARGET_MAP_FIXED, unmap pages before mapping them.
	<case TARGET_SYS_mprotect>: When checking, allow any length
	argument.  Don't actually do anything.
	<case TARGET_SYS_writev>: New case.

	* Makefile.in (SIM_OBJS): Remove sim-hload.o.
	* sim-if.c: Include elf-bfd.h.
	(struct progbounds): New members end_loadmem, start_nonloadmem.
	(xprintf, eprintf): New functions, copied from common/sim-load.c.
	(cris_load_elf_file, sim_load, cris_get_progbounds): New functions.
	(get_progbounds_iterator): Renamed from get_progbounds.  Make
	static.  Update head comment.  Set new struct progbounds members.
	(exec_load_addr, interp_load_addr, interp_start_addr): New static
	variables.
	(aux_ent_phdr, aux_ent_phent, aux_ent_phnum, aux_ent_base)
	(aux_ent_entry, cris_write_interp, cris_handle_interpreter): New
	functions.
	(sim_open): New constant array auxv_entries.  Rewrite AUX_ENT
	handling to use auxv_entries.  Improve error message and checking
	for invalid programs.  Use new variable abfd for the program
	instead of for each access reaching into sd to get it.
	(sim_create_inferior): If non-zero, use interp_start_addr instead
	of the program start address.
	(cris_disassemble_insn): Remove incorrect and unclear, supposedly
	stale comment.  Always specify little-endian.

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.

2007-10-22  Hans-Peter Nilsson  <hp@axis.com>

	* arch.c, arch.h, cpuall.h, cpuv10.c,
	cpuv10.h, cpuv32.c, cpuv32.h, cris-desc.c,
	cris-desc.h, cris-opc.h, decodev10.c,
	decodev10.h, decodev32.c, decodev32.h,
	modelv10.c, modelv32.c, semcrisv10f-switch.c,
	semcrisv32f-switch.c: Regenerate.

2007-02-20  Hans-Peter Nilsson  <hp@axis.com>

	* traps.c (dump_statistics): Change format for cycle numbers
	to %llu and cast parameters to unsigned long long.

2006-10-02  Edgar E. Iglesias  <edgar@axis.com>
	    Hans-Peter Nilsson  <hp@axis.com>

	* cris-sim.h (enum cris_unknown_syscall_action_type)
	(cris_unknown_syscall_action): Declare.
	* sim-if.c (cris_unknown_syscall_action): Define.
	(cris_options): Add cris-unknown-syscall option.
	(cris_option_handler): Correct comment about and error message for
	invalid --cris-cycles argument.  Handle --cris-unknown-syscall.
	* traps.c: Include stdarg.h
	(cris_unknown_syscall): New function.
	(cris_break_13_handler): Instead of sim_io_eprintf and
	sim_engine_halt, call cris_unknown_syscall to handle more or less
	unknown syscalls.  Adjust code as necessary to handle return
	value.

2006-09-30  Hans-Peter Nilsson  <hp@axis.com>

	* traps.c (TARGET_PIPE_BUF): New macro.
	(cris_pipe_empty): Correct initialization of "remaining".  Only
	adjust the "write" return value if more than TARGET_PIPE_BUF bytes
	are written.

2006-09-29  Hans-Peter Nilsson  <hp@axis.com>

	* configure.ac: Check for limits.h and sys/param.h.
	* configure, config.in: Rebuild.
	* traps.c (SIM_PATHMAX): New macro.
	(cris_break_13_handler): Use SIM_PATHMAX, not MAXPATHLEN.

2006-06-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure: Regenerated.

2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure: Regenerated.

2006-04-08  Hans-Peter Nilsson  <hp@axis.com>

	* crisv32f.c (MY (deliver_interrupt)): Set CCS to new_ccs.

2006-04-03  Hans-Peter Nilsson  <hp@axis.com>

	* dv-cris.c, dv-rv.c, rvdummy.c: New files.
	* Makefile.in (CONFIG_DEVICES): Remove redundant setting.
	(dv-cris.o, dv-rv.o rvdummy$(EXEEXT), rvdummy.o): New rules.
	(all): Depend on rvdummy$(EXEEXT).
	* configure.ac: Call SIM_AC_OPTION_WARNINGS.  Check for
	sys/socket.h and sys/select.h.  Call SIM_AC_OPTION_HARDWARE,
	default off.
	* configure: Regenerate.
	* cris-sim.h (cris_have_900000xxif): Declare here.
	(enum cris_interrupt_type, crisv10deliver_interrupt)
	(crisv32deliver_interrupt: New declarations.
	* cris-tmpl.c [WITH_HW] (MY (f_model_insn_after)): Call
	sim_events_tickn and set state-events member work_pending when it's
	time for the next event.
	[WITH_HW] (MY (f_specific_init)): Set CPU-model-specific
	interrupt-delivery function.
	* crisv10f.c (MY (deliver_interrupt)): New function.
	* crisv32f.c (MY (deliver_interrupt)): New function.
	* devices.c: Include hw-device.h.
	(device_io_read_buffer) [WITH_HW]: Call hw_io_read_buffer.
	(device_io_write_buffer): Only perform 0x900000xx-functions if
	cris_have_900000xxif is nonzero.  Else if WITH_HW defined,
	call hw_io_write_buffer.  Add return 0 last in function.
	* sim-if.c (cris_have_900000xxif): Now global.
	(sim_open) [WITH_HW]: Clear deliver_interrupt cpu member.
	Force "-model" option, effectively.
	* sim-main.h (cris_interrupt_delivery_fn): New type.
	(struct _sim_cpu) [WITH_HW]: New member deliver_interrupt.

2006-04-02  Hans-Peter Nilsson  <hp@axis.com>

	* Makefile.in (CRISV10F_OBJS): Remove semcrisv10f-switch.o.
	(CRISV32F_OBJS): Remove semcrisv32f-switch.o.
	(semcrisv10f-switch.o, semcrisv32f-switch.o: Remove dependency rules.

2006-02-23  Hans-Peter Nilsson  <hp@axis.com>

	* traps.c (syscall_map): Remove CB_SYS_time / TARGET_SYS_time
	mapping.
	(cris_break_13_handler) <case TARGET_SYS_time>: New case.

2006-01-10  Hans-Peter Nilsson  <hp@axis.com>

	* cris-tmpl.c (MY (f_model_insn_before)): Only display basic
	cycle count for the current insn.

2005-12-06  Hans-Peter Nilsson  <hp@axis.com>

	* cpuv10.h, cpuv32.h, cris-desc.c, cris-opc.h,
	decodev10.c, decodev10.h, decodev32.c,
	decodev32.h, modelv10.c, modelv32.c,
	semcrisv10f-switch.c, semcrisv32f-switch.c: Regenerate.

2005-12-05  Hans-Peter Nilsson  <hp@axis.com>

	* arch.c, arch.h, cpuall.h, cpuv10.c,
	cpuv10.h, cpuv32.c, cpuv32.h, cris-desc.c,
	cris-desc.h, cris-opc.h, decodev10.c,
	decodev10.h, decodev32.c, decodev32.h,
	modelv10.c, modelv32.c, semcrisv10f-switch.c,
	semcrisv32f-switch.c: Regenerate.

2005-11-20  Hans-Peter Nilsson  <hp@axis.com>

	* traps.c (TARGET_O_RDONLY, TARGET_O_WRONLY): Define.
	(open_map): Use TARGET_O_ACCMODE, TARGET_O_RDONLY and
	TARGET_O_WRONLY.
	(cris_break_13_handler) <case TARGET_SYS_fcntl>: Add support for
	F_GETFL on fd 0, 1 and 2.

2005-11-17  Hans-Peter Nilsson  <hp@axis.com>

	* sim-main.h (struct _sim_cpu): New members last_syscall,
	last_open_fd, last_open_flags.
	* traps.c: Don't include targ-vals.h.
	(TARGET_O_ACCMODE): Define.
	(cris_break_13_handler): Set new _sim_cpu members.
	<case TARGET_SYS_fcntl>: Support special case of F_GETFL.
	Rearrange code as switch.  Emit "unimplemented" abort for
	unimplemented fcntl calls.

	* traps.c (TARGET_SYS_stat): Define.
	(syscall_stat32_map): Add entry for TARGET_SYS_stat.
	(cris_break_13_handler) <case TARGET_SYS_stat>: New case.

2005-11-16  Hans-Peter Nilsson  <hp@axis.com>

	* cris-tmpl.c (MY (f_model_insn_before)): Make sure only the
	low 32 bits are used after an unsigned long cast.

2005-05-28  Hans-Peter Nilsson  <hp@axis.com>

	* Makefile.in (stamp-v32fmloop): Depend on stamp-v10fmloop.

2005-04-18  Hans-Peter Nilsson  <hp@axis.com>

	* traps.c (cris_break_13_handler) <case TARGET_SYS_mmap2>:
	For ((len & 8191) != 0 && fd == (USI) -1), don't say this isn't
	implemented.  In call to create_map, pad length argument to 8k.

2005-03-24  Hans-Peter Nilsson  <hp@axis.com>

	* Makefile.in (stamp-v10fcpu, stamp-v32fcpu): Add kludge to
	include cgen-ops.h in decodev10.c and decodev32.c.
	* sim-main.h: Don't include cgen-ops.h here.
	* arch.c, arch.h, cpuall.h, cpuv10.c,
	cpuv10.h, cpuv32.c, cpuv32.h, cris-desc.c,
	cris-desc.h, cris-opc.h, decodev10.c,
	decodev10.h, decodev32.c, decodev32.h,
	modelv10.c, modelv32.c, semcrisv10f-switch.c,
	semcrisv32f-switch.c: Regenerate.

	* traps.c (cris_break_13_handler) <case
	TARGET_SYS_rt_sigaction>: Rename sa_handler, sa_flags,
	sa_restorer, sa_mask_low, sa_mask_high to target_sa_handler etc.

2005-03-23  Mark Kettenis  <kettenis@gnu.org>

	* configure: Regenerate.
