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.
