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>

	* trace.c (load_file_and_line): Use fread return value to index
	the data.

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

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

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

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

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* mem.c (mem_put_blk): Rename parameter, add cast from parameter
	type to local type.  Remove cast later in the function.
	(mem_get_blk): Likewise.
	* mem.h (mem_put_blk): Rename parameter to match definition.
	(mem_get_blk): Likewise.

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* load.c: Replace 'elf/internal.h' and 'elf/common.h' includes
	with 'elf-bfd.h' include.
	* trace.c: Add 'trace.h' include.

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* reg.c (trace_register_changes): Use PRIx64 in printf format
	string.

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* syscalls.c (rx_syscall): Move declaration of some variables to
	the start of the enclosing block.
	* trace.c (load_file_and_line): Likewise.

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* reg.c (fpsw2str): Provide a format string to printf.
	(trace_register_changes): Likewise.

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* err.c (execution_error_exit_all): Delete.

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* fpu.c (check_exceptions): Make static.
	* gdb-if.c (handle_step): Likewise.
	* mem.c (mem_put_byte): Likewise.

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* cpu.h (trace_register_changes): Add void parameter type.
	* err.c (ee_overrides): Likewise.
	* mem.c (mem_usage_stats): Likewise.
	(e): Likewise.
	* reg.c (stack_heap_stats): Likewise.
	* rx.c (pop): Likewise.
	(poppc): Likewise.
	(decode_opcode): Likewise.
	* syscalls.c (arg): Likewise.

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb-if.c (sim_do_command): Work with a copy of the command.

2021-02-08  Andrew Burgess  <andrew.burgess@embecosm.com>

	* gdb-if.c (sim_memory_map): New function.

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

	* configure: Regenerate.

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

	* configure.ac: Call SIM_AC_OPTION_WARNINGS.
	* configure: Regenerate.

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

	* config.in, configure: Regenerate.
	* main.c: Delete HAVE_STDLIB_H.

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

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

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

	* rx.c: Include libiberty.h.
	(N_RXO, N_RXT): Use ARRAY_SIZE.

2016-07-27  Alan Modra  <amodra@gmail.com>

	* load.c: Don't include libbfd.h.
	(rx_load): Don't use private iovec seek or read.

2016-04-27  Nick Clifton  <nickc@redhat.com>

	PR target/20000
	* fpu.c (check_exceptions): Fix typo checking for signalling
	NANs.

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: 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: 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>

	* gdb-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>

	* config.in, configure: Regenerate.

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

	* config.in, configure: Regenerate.

2015-11-10  Nick Clifton  <nickc@redhat.com>

	* rx.c (id_names): Add nop4, nop5, nop6 and nop7.
	(decode_opcode): Likewise.
	(get_op): Handle RX_Operand_Zero_Indirect.
	Handle RX_Bad_Size and RX_MAX_SIZE.
	(put_op): Likewise.
	(N_MAP): Increase to 90.

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

	* configure.ac (AC_ARG_ENABLE(cycle-accurate)): Call AS_HELP_STRING.
	(AC_ARG_ENABLE(cycle-stats)): Likewise.
	* configure: Regenerate.

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

	* configure: Regenerate.

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

	* configure: Regenerate.

2015-04-24  Nick Clifton  <nickc@redhat.com>

	PR sim/18273
	* reg.c (put_reg): Fix check for valid register number.

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

	* configure: Regenerate.

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

	* config.in, configure: Regenerate.

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

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

2015-12-15  Joel Brobecker  <brobecker@adacore.com>

	* gdb-if.c (open): Rename to...
	(rx_sim_is_open): This. Replace all uses of "open" by uses of
	"rx_sim_is_open" throughout.

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>

	* gdb-if.c (sim_do_command): Add const to cmd.  Move args
	to top and add const.  Call strdup on cmd and free at end.

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

	* gdb-if.c (sim_load): Add const to prog.

2014-02-17  Kevin Buettner  <kevinb@redhat.com>

	* gdb-if.c (rx_signal_to_host):  Rename to
	`rx_signal_to_gdb_signal'.  Make static.  Update all callers
	to use new name.  Use signal names from include/gdb/signals.h.

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

	* configure: Regenerate.

2013-06-25  Nick Clifton  <nickc@redhat.com>

	* rx.c (SHIFT_OP): A shift by zero still sets the condition
	codes.

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

	* aclocal.m4, configure: Regenerate.

2013-01-16  Nick Clifton  <nickc@redhat.com>

	* rx.c (decode_opcode): Handle RXO_satr.

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.

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

	* configure.ac (CYCLE_ACCURATE): Add template with AC_DEFINE call.
	(CYCLE_STATS): Likewise.

2012-03-02  Kevin Buettner  <kevinb@redhat.com>

	* load.h (rx_load): Add `callback' parameter to function prototype.
	(gdb/callback.h): Include.
	* load.c (load.h): Include.
	(xprintf, find_section_name_by_offset): New functions.
	(rx_load): Add `callback' parameter.  Add code for printing
	section loaded using GDB's printf facilities.
	* gdb-if.c (sim_load, sim_create_inferior): Update calls to
	rx_load().
	* main.c (main): Likewise.
	* syscalls.c, syscalls.h (get_callbacks): New function.

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.

2011-07-11  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac: Rename from configure.in.

2011-07-11  Mike Frysinger  <vapier@gentoo.org>

	* configure.in: Add "dnl" before copyright notice.

2011-04-16  Mike Frysinger  <vapier@gentoo.org>

	* gdb-if.c (sim_complete_command): New stub function.

2011-01-11  Andrew Burgess  <aburgess@broadcom.com>

	* gdb-if.c (sim_store_register): Update return value to
	match new API.

2010-12-14  DJ Delorie  <dj@redhat.com>

	* rx.c (decode_opcode): For "MVFC PC,", use the address of the
	opcode, not the address following the opcode.
	(decode_opcode): RXO_branchrel is relative to the opcode's PC, not
	the address following the opcode.

2010-11-11  DJ Delorie  <dj@redhat.com>

	* rx.c (lsb_count): New.
	(divu_cycles): New.
	(div_cycles): New.
	(decode_opcode): Fix cycle count math for div, divu, suntil, and
	swhile.

2010-09-29  Kevin Buettner  <kevinb@redhat.com>

	* mem.c (rx_mem_ptr): When invalidating the decode cache, account
	for the fact that the instruction decoder never uses swapped
	addresses.

2010-09-29  Nick Clifton  <nickc@redhat.com>

	* rx.c (decode_opcode: RXO_int): Only break out of the emulation
	loop if rx_syscall() does not return a RX_STEPPED result.

2010-09-23  Kevin Buettner  <kevinb@redhat.com>

	* rx.c (decode_opcode): Add cycle information for RXO_smovu.

2010-09-23  Kevin Buettner  <kevinb@redhat.com>

	* fpu.c, gdb-if.c, load.c, misc.c, syscalls.c (config.h): Include.

	* rx.c (decode_opcode): Declare `tx' as unsigned.

	* cpu.h (reset_decoder): Declare.
	* load.c (rx_load): Call `reset_decoder'.
	* rx.c (reset_decoder): New function.

2010-07-29  DJ Delorie  <dj@redhat.com>

	* rx.c (decode_cache_base): New.
	(id_names): Remove ediv and edivu.
	(optype_names): Add TwoReg.
	(maybe_get_mem_page): New.
	(rx_get_byte): Call it.
	(get_op): Add TwoReg support.
	(put_op): Likewise.
	(PD, PS, PS2, GD, GS, GS2, DSZ, SSZ, S2SZ, US1, US2, OM): "opcode"
	is a pointer now.
	(DO_RETURN): New.  We use longjmp to return an exception result.
	(decode_opcode): Make opcode a pointer to the decode cache.  Save
	decoded opcode information and re-use.  Call DO_RETURN instead of
	return throughout.  Remove ediv and edivu.
	* mem.c (ptdc): New.  Adds decode cache.
	(rx_mem_ptr): Support it.
	(rx_mem_decode_cache): New.
	* mem.h (enum mem_ptr_action): add MPA_DECODE_CACHE.
	(rx_mem_decode_cache): Declare.
	* gdb-if.c (sim_resume): Add decode_opcode's setjmp logic here...
	* main.c (main): ...and here.  Use a fast loop if neither trace
	nor disassemble is given.
	* cpu.h (RX_MAKE_STEPPED, RX_MAKE_HIT_BREAK, RX_MAKE_EXITED,
	RX_MAKE_STOPPED, RX_EXITED, RX_STOPPED): Adjust so that 0 is not a
	valid code for anything.

2010-07-27  DJ Delorie  <dj@redhat.com>

	* README.txt: New.
	* config.h (CYCLE_ACCURATE, CYCLE_STATS): New.
	* configure.in (--enable-cycle-accurate, --enable-cycle-stats):
	New.  Default to enabled.
	* configure: Regenerate.

	* cpu.h (regs_type): Add cycle tracking info.
	(reset_pipeline_stats): Declare.
	(halt_pipeline_stats): Declare.
	(pipeline_stats): Declare.
	* main.c (done): Call pipeline_stats().
	* mem.h (rx_mem_ptr): Moved to here ...
	* mem.c (mem_ptr): ... from here.  Rename throughout.
	(mem_put_byte): Move LEDs to Port A.  Add Port B to control cycle
	statistics.  Move UART to SCI4.
	(mem_put_hi): Add TPU 1-2.  TPU 1 and 2 count CPU cycles.
	* reg.c (init_regs): Set Rt reg to -1 (no reg).
	* rx.c: Add cycle counting and statistics throughout.
	(rx_get_byte): Optimize for speed.
	(decode_opcode): Likewise.
	(reset_pipeline_stats): New.
	(halt_pipeline_stats): New.
	(pipeline_stats): New.
	* trace.c (sim_disasm_one): Print cycle count.

2010-07-07  Kevin Buettner  <kevinb@redhat.com>

	* gdb-if.c (sim_store_register): Add case for sim_rx_acc_regnum.

2010-06-24  Kevin Buettner  <kevinb@redhat.com>

	* gdb-if.c (trace.h): Include.
	(reg_size, sim_fetch_register): Add cases for sim_rx_acc_regnum.

2010-06-07  Nick Clifton  <nickc@redhat.com>

	* reg.c (set_oszc): Use unsigned int for the mask.
	(set_szc, set_osz, set_sz): Likewise.

2010-05-28  Kevin Buettner  <kevinb@redhat.com>

	* gdb-if.c (sim_do_command): Add a "sim verbose noisy" command.

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

	* gdb-if.c (sim_write): Add const to buf arg.

2010-01-30  Masaki Muranaka  <monaka@monami-software.com>

	* configure.in: Check if the host has getopt.h.
	* configure: Regenerate.
	* config.in: Regenerate.
	* main.c: Include config.h.
	Use HAVE_STDLIB_H, HAVE_UNISTD_H, HAVE_GETOPT_H.
	Include getopt.h in case HAVE_GETOPT_H is defined.

2009-12-22  Yoshinori Sato  <ysato@users.sourceforge.jp>

	* rx/rx.c (decode_opcode): btst bit address mask fix.

2009-11-30  DJ Delorie  <dj@redhat.com>

	* rx/rx.c (decode_opcode): fix SWHILE logic.

2009-10-27  DJ Delorie  <dj@redhat.com>
	    Kevin Buettner <kevinb@redhat.com>

	* load.h: New.
	* rx.c: New.
	* syscalls.c: New.
	* syscalls.h: New.
	* load.c: New.
	* configure.in: New.
	* gdb-if.c: New.
	* err.c: New.
	* cpu.h: New.
	* Makefile.in: New.
	* fpu.c: New.
	* mem.c: New.
	* config.in: New.
	* err.h: New.
	* reg.c: New.
	* mem.h: New.
	* main.c: New.
	* misc.h: New.
	* trace.c: New.
	* misc.c: New.
	* syscall.h: New.
	* trace.h: New.
	* fpu.h: New.
