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.
