+1999-02-11 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * exec.c (dispatch_instruction):
+ Correct the sense of the
+ if (!sparclite) {
+ sregs->trap = TRAP_UNIMP;
+ break;
+ }
+ clause that has been pasted around: it's correct in the SCAN and
+ DIVScc (divide step) cases (where it was probably originally
+ written?), but reversed in the SDIV, SDIVcc, UDIV, UDIVcc cases
+ ie. instructions only in the SPARC V8 or SPARClite 86x
+ architectures. It was also present when not required for SMUL,
+ SMULcc, UMUL, UMULcc instructions that are present in all
+ architectures.
+
+1999-01-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * interf.c (run_sim): Fix a bug in the main loop's handling of
+ annulled delay slot instructions. There is precedent for this
+ change; the _other_ main loop in sis.c gets it right according to
+ my reading of the code.
+
+ The bug is: if an interrupt happens when the next instruction
+ (at sregs->pc) is annulled, the trap is taken (by execute_trap())
+ with the current values of PC and NPC, so when the trap returns,
+ the annulled instruction is indeed executed. Another giveaway is
+ that the annul flag is cleared in execute_trap(): the information
+ is demonstrably discarded.
+
+ The solution is: perform annulling before looking for traps, in
+ fact it's neater to do annulling, see if there's an interrupt and
+ if not, do the instruction, then handle traps be they generated by
+ interrupts pending or by the instruction we might just have done.
+ That's what the sis.c one does.
+
+1999-01-20 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * sis.h: Add asr17 register for support of SparcLITE (at least the
+ Hitachi ones I find before me)
+
+ * exec.c (dispatch_instruction): Case WRY: Allow write of asr17 if
+ sparclite. Other ASR numbers than 17 or 0 (Y) trap out.
+ Case RDY: Allow read of asr17 if sparclite. Other ASRs ditto.
+ (execute_trap): Do single-vector-trapping if asr17 bit 0 is set.
+ (init_regs): Initialize y and asr17.
+ NB: In instruction-set space, the Y register is asr0; the
+ instructions have different names for human reasons only.
+
+ * sis.c:
+ * interf.c: Set boolean mode variable dumbio if invoked with
+ argument "-dumbio" and mention it of verbose.
+ * erc32.c: if "dumbio" is set, do not assume that there is a
+ terminal type device attached to stdin/stdout. Do not set
+ buffering or mess with tcsetattr or do any read operations in
+ order to make UART interrupts; not input data is supported.
+ This is necessary to allow the sim to be used within the eCos
+ testing infrastructure where stdin/stdout are pipes to a TCL
+ program; the sim hangs otherwise.
+
+Thu Jul 23 07:17:03 1998 Mark Alexander <marka@cygnus.com>
+
+ * exec.c (dispatch_instruction): Add SPARClite 'scan' instruction.
+
+Tue Jul 7 21:12:41 1998 Mark Alexander <marka@cygnus.com>
+
+ * func.c (bfd_load): Add special handling of a.out executables.
+
+Sat Jun 13 08:33:25 1998 Mark Alexander <marka@cygnus.com>
+
+ * func.c (bfd_load): Print correct endianness.
+ * interf.c (run_sim): Print debugging information if verbosity level
+ is greater than 2.
+ (sim_open): Repeated -v options now increment verbosity level.
+ (sim_store_register): Handle little-endian case.
+ (flush_window): Print debugging information if verbosity level
+ is greater then 2.
+
+Tue Jun 2 15:20:35 1998 Mark Alexander <marka@cygnus.com>
+
+ * interf.c (sim_open): Use revamped memory_read, which makes
+ byte-swapping unnecessary. Add -sparclite-board option for
+ emulating RAM found on typical SPARClite boards. Print
+ error message for unrecognized option.
+ * erc32.c: Change RAM address and size from constants to variables,
+ to allow emulation of SPARClite board RAM.
+ (fetch_bytes, store_bytes): New helper functions for revamped
+ mememory_read and memory_write.
+ (memory_read, memory_write): Rewrite to store bytes in target
+ byte order instead of storing words in host byte order; this
+ greatly simplifies support of little-endian programs.
+ (get_mem_ptr): Remove unnecessary byte parameter.
+ (sis_memory_write, sis_memory_read): Store words in target
+ byte order instead of host byte order.
+ (byte_swap_words): Remove, no longer needed.
+ * sis.h ((byte_swap_words): Remove declaration, no longer needed.
+ (memory_read): Add new sz parameter.
+ * sis.c (run_sim): Use revamped memory_read, which makes
+ byte-swapping unnecessary.
+ * exec.c (dispatch_instruction): Use revamped memory_read, which
+ makes byte-swapping and double-word fetching unnecessary.
+ * func.c (sparclite_board): Declare new variable.
+ (get_regi): Handle little-endian data.
+ (bfd_load): Recognize little-endian SPARClite as having
+ little-endian data.
+
+Fri May 22 14:23:16 1998 Mark Alexander <marka@cygnus.com>
+
+ * erc32.c (port_init): Print messages only if sis_verbose is true.
+ * func.c (bfd_load): Ditto.
+ * interf.c (sim_open): Ditto.
+
+Thu May 14 23:10:48 1998 Mark Alexander <marka@cygnus.com>
+
+ * sis.h (uint64, int64): Define.
+ * exec.c (SDIV, SDIVCC, UDIV, UDIVCC): Define new opcodes.
+ * (mul64): Simplify calculation of negative result.
+ * (div64): New helper function for 64-bit division.
+ * (dispatch_instruction): Add emulation of SDIV, SDIVCC, UDIV,
+ and UDIVCC.
+
+Wed May 13 14:59:54 1998 Mark Alexander <marka@cygnus.com>
+
+ * erc32.c (close_port): Don't close stdin; it kills GDB.
+ (byte_swap_words): New function.
+ * sis.h: (byte_swap_words): Declare.
+ * interf.c (run_sim): Always fetch instructions as big-endian.
+ * sis.c (run_sim): Ditto.
+
+Tue Apr 28 18:33:31 1998 Geoffrey Noer <noer@cygnus.com>
+
+ * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
+
+ * configure: Regenerated to track ../common/aclocal.m4 changes.
+ * config.in: Ditto.
+
+Sun Apr 26 15:20:17 1998 Tom Tromey <tromey@cygnus.com>
+
+ * acconfig.h: New file.
+ * configure.in: Reverted change of Apr 24; use sinclude again.
+