Fri May 10 10:40:29 1991  James Larus  (larus at primost)

	* Version 4.2 released.

	* spim.tex
	Improved the documentation in many small ways, including a couple
	of sections on MIPS conventions.

	* inst.c
	Print R# as $# in instructions.

	* xspim.c button.c
	Clear the console window when the machine is reset.

Thu May  9 16:00:56 1991  James Larus  (larus at primost)

	* Makefile, scanner.l
	Changes to permit use of 8-bit scanners produced by flex.

	* data.c mem.c mem.h op.h parser.y spim-utils.c spim.h
	trap.handler xspim.c
	Added kdata segment [From Scott Kemp.]


Sun May  5 14:16:39 1991  James Larus  (larus at primost)

	* xspim.c
	xspim was null-terminating full buffer in read_string.

	* spim-util.c spim.c
	Handle non-existing file gracefully in spim.

Fri Apr 12 17:01:39 1991  James Larus  (larus at primost)

	* inst.c, tt.le.s, tt.be.s
	lw with small negative offset did not work.

Thu Apr  4 12:03:35 1991  James Larus  (larus at primost)

	* spim.c
	Clear redo flag on serious error to prevent single-step loop at
	error.

Mon Mar 25 14:02:21 1991  James Larus  (larus at primost)

	* Released version 4.1.

Thu Mar 21 09:01:18 1991  James Larus  (larus at primost)

	* parser.y
	More problems with labels fixed.

	* mem.c
	Raise exceptions, not fatal errors on out of bounds memory refs.

Tue Mar 19 16:09:15 1991  James Larus  (larus at primost)

	* parser.y
	Treat hanging labels as if they occured on next non-blank line.

	* mem.c
	Better error messages for out-of-bounds memory references.

	* run.c, sym_tbl.c
	j instruction did not work when high 4 bits of PC were non-zero
	(ie kernel).

Wed Mar 13 17:29:18 1991  James Larus  (larus at primost)

	* xspim.c
	Corrected eror when $sp is non-word aligned and displaying stack
	segment.

Mon Mar 11 10:22:18 1991  James Larus  (larus at primost)

	* xspim.c
	Made ^C work in read_input.

	* mem.c
	Expand stack had typo that screwed up byte references to stack.

Thu Mar  7 15:39:18 1991  James Larus  (larus at primost)

	* op.h
	Correct cvt instruction encodings.

	* inst.c
	Computation of absolute offset was wrong when high bit set because
	of sign-extension (from Scott Kemp).

Tue Jan 29 13:28:56 1991  James Larus  (larus at primost)

	* scanner.l, parser.y
	Avoid some spurious parse errors caused by eating newline in error
	recovery [From Scott Kempf].

Tue Jan 22 08:59:53 1991  James Larus  (larus at primost)

	* xspim.c
	Printed wrong single precsision FP numbers.

	* parser.y
	Fixed spurious warning about $f31.

Mon Jan 14 11:50:26 1991  James Larus  (larus at primost)

	* Version 4.0 released.

	* buttons.c inst.c mem.c mem.h windows.c xspim.c xspim.h xutils.c
	New interface.  Instead of file window, added windows into text
	and data segments that are dynamically updated.

Fri Jan 11 09:25:26 1991  James Larus  (larus at primost)

	* buttons.c inst.c spim-utils.c
	A number of bugs in breakpoints eliminated.  Can properly continue
	from single-stepping at a breakpoint.  Eliminated infinite loop in
	deleting breakpoints.  Don't allow double breakpoints.

	* xspim.c
	Added the ability to display single floats.
	Also can display any register set in natural or hex notation.

Thu Jan 10 13:45:13 1991  James Larus  (larus at primost)

	* sym_tbl.c
	Needed to sign-extend the short offset field in branches after
	shifting right.

	* parser.y
	Some branch instructions had their operands switched.

	* parser.y
	Accept <offset> + <label> as expression.

	* scanner.l
	Catch and report unknown characters.

Fri Jan  4 11:26:06 1991  James Larus  (larus at primost)

	* inst.c op.h run.c spim.h
	Improved printing of offsets in branches and jumps by shifting
	left 2 places and reducing the symbolic cruft printed.

Tue Dec 18 12:05:38 1990  James Larus  (larus at primost)

	* buttons.c
	Added continue button to step menu.

Wed Dec 12 11:48:48 1990  James Larus  (larus at primost)

	* mem.c tt.le.s tt.be.s
	Test to decide which segment to exapnd was broken.

	*  mem.h reg.h spim.h mem.c run.c spim.c xspim.c
	Added new class of errors (run_error) that terminate program, but
	not spim.

Tue Dec 11 07:15:40 1990  James Larus  (larus at primost)

	* run.c spim-syscall.h
	Added read_double system call and re-numbered calls.

	* button.c xspim.c spim.c
	Don't load trap handler when clearing bare machine.

	* trap.handler
	Exit on IBUS exception to avoid infinite loop.

	* run.c trap.handler
	Better exception error messages.

	* op.h
	COP1 opcode was incorrect [Goodman].

	* scanner.l
	Accept floating point numbers without trailing fraction (e.g. 2.).

	* parser.y
	Control register specifier in CTCz/CFCz was ignored.

	* data.c op.h parser.y trap.handler tt.?e.s
	Corrected ".asciz" directive to be ".asciiz".

	* scanner.l
	Improved syntax error message printing.

	* parser.y op.h
	Added .livereg decl for cc v2.10 compiler.

	* inst.c
	Improved printing of immediate expressions by eliminating
	redundant information.

	* parser.y tt.le.s tt.be.s
	LI did not work properly on constants > 32K [Canderson].

Mon Dec 10 14:36:39 1990  James Larus  (larus at primost)

	* run.c trap.handler tt.le.s tt.bare.s tt.be.s
	Simulated syscalls now use correct syscall convention: $v0 to pass
	code, and $a0,... for args.

	* Pervasive.
	Can invoke many MIPS system calls from executable files (David W.).

	* buttons.c spim-utils.c
	Pass command-line arguments to programs.

	* Many small bugs from running executables.


Tue Nov 20 15:18:28 1990  James Larus  (larus at primost)

	* spim-util.c
	Check that source file doesn't begin with magic number.

	*  read-aout.c spim-utils.c spim.h
	Added source_file flag to identify the type of the input file.

Thu Oct 25 11:45:58 1990  James Larus  (larus at primost)

	* parser.y, op.h
	Eliminated div_i hack by overloading "div" operator.

Wed Oct 24 17:26:49 1990  James Larus  (larus at primost)

	* parser.y
	Parse div_i instruction!

Tue Sep 25 13:18:43 1990  James Larus  (larus at primost)

	* tt.bare.s
	Put trap handler in kernel, just as in trap.handler.

Fri Sep 21 10:52:32 1990  James Larus  (larus at primost)

	* button.c xspim.c
	Used file name from -file for load dialog box.

	* spim-utils.c, inst.c
	Can now delete breakpoint while stopped at it.

	* Rereleased version 3.0.

	* xspim.c
	Popup continue dialog even when continuing from breakpoint.

	* mem.c
	Check that read/write is within bounds after expanding memory.

Wed Sep 19 15:18:00 1990  James Larus  (larus at primost)

	* Rereleased version 3.0.

	* spim-util.c
	Cleared breakpoints upon reset.

	* button.c xspim.c
	Fixed continue button so it works properly.  Also, made ^C work
	better with the new continue button.

Tue Sep 18 11:56:16 1990  James Larus  (larus at primost)

	* Rereleased version 3.0.

	* buttons.c spim-utils.c spim.c xspim.c
	Added popup to continue from breakpoints.

Thu Sep  6 11:04:00 1990  James Larus  (larus at primost)

	* Rereleased version 3.0.

	* Changed xspim's printing of FP registers to fit better.

	* read_float and read_string did not read from console window.

Tue Sep  4 16:25:46 1990  James Larus  (larus at primost)

	* Released version 3.0.

	* Renamed syscall registers to start at $a0 (not $a1).

Fri Aug 31 10:51:29 1990  James Larus  (larus at primost)

	* Made 2 button dialog work properly on newline.

	* Only permit one instance of each menu.

Wed Aug 29 07:52:41 1990  James Larus  (larus at primost)

	* Rereleased 3.0 beta of Aug. 29.

	* Added dialog box for run.

	* Made entries in most dialog boxes persistent between invocations.

	* Catch and properly handle control C.

	* Clear memory before loading executable to get rid of trap handler.

	* Aborting load trashed saved file name.

	* Released 3.0 beta of Aug. 29.

	* Improved register display to all registers more compactly.

	* Made popups non-exclusive. [wagner@bullwinkle.Colorado.EDU]

	* Beta bug fixes from David Wood:
	xspim -file started running program right away.
	Single-stepping cleared Cause register.
	Can change R0.

	Added -execute flag to xspim.
	Made memory expansion work properly.


Tue Aug 28 11:29:44 1990  James Larus  (larus at primost)

	* Released 3.0 beta of Aug. 28.

	* Makefile buttons.c mem.c spim-utils.c xspim.c xutils.c
	Beta bug fixes from David Wood:
	Single stepping N steps failed.
	Setting breakpoint at bad address killed system.
	Single stepping through a breakpoint failed.
	Setting register to value beginning with 0x failed.
	Removed unnecessary file opens.
	Improved error checking.
	Added auxilary routines for vsprintf and strtol.

Mon Aug 27 13:53:22 1990  James Larus  (larus at primost)

	* button.c
	Improved help message.

	* Makefile
	Use ./spim, not spim in test.

	* Released 3.0beta.

	* buttons.c parser.y scanner.l spim-util.c windows.c xspim.c
	Rewrote user interface code.

Fri Aug 24 15:14:19 1990  James Larus  (larus at primost)

	* Pervasive.
	Added X window interface by Alan Siow.

Tue Aug 21 08:56:04 1990  James Larus  (larus at primost)

	* Makefile inst.c mem.c mem.h op.h parser.y read-aout.c spim.c
	spim.h trap.handler
	Added kernel text segment (but not kernel data/stack segments).

Mon Aug 20 14:21:35 1990  James Larus  (larus at primost)

	* spim.c trap.handler tt.le.s
	Leave Cause register set in single/step mode and clear in trap
	handler.

Fri Aug 17 14:58:04 1990  James Larus  (larus at primost)

	* spim.c
	Don't start top-level with executable file.
	Execute a.out from starting address in file.

Thu Aug 16 16:56:12 1990  James Larus  (larus at primost)

	* Released version 2.5 (no announcement).

Fri Jul 27 14:36:50 1990  James Larus  (larus at primost)

	* Makefile inst.c spim.c read-aout.c
	Added code to read MIPS a.out files.

	* pervasive
	Changed printing of hexdecimal numbers to be fixed format.

	* parser.y, inst.c
	Allowed instructions in data segment and word data in instruction
	segment.

Wed Jul 25 13:47:11 1990  James Larus  (larus at primost)

	* inst.c op.h run.c scanner.l
	Added code to convert betwen MIPS binary format and internal
	format for instructions.

Mon Jul  2 09:43:24 1990  James Larus  (larus at primost)

	* spim.c
	-asm flag did not work properly.

	* inst.h, inst.c, run.c
	Improper sign-extension of constant in backward branches.

	* parser.y, op.h
	Added .alias and .noalias assembler directives (ignored).

Thu May 24 09:57:30 1990  James Larus  (larus at primost)

	* Version 2.3 released.

	* inst.c op.h parser.y, spim.tex tt.?e.s
	Implemented ROL/ROR instructions.  Fixed bug that caused S?LV
	instructiosn to print fields in reverse order.

Wed May 23 09:52:57 1990  James Larus  (larus at primost)

	* scanner.l, spim.tex
	For an unknown reason, v0 and v1 were called v2, v3.  Fixed this
	bug. [From: beihl%cadillac.cad.mcc.com@mcc.com (Gary Beihl)]

Mon May 21 15:34:12 1990  James Larus  (larus at primost)

	* run.c, spim.c, spim.h, scanner.l
	Recompiled on DECstation under T4.0.  That system has bug in atoi,
	but other changes seem worthwhile. [From: whaley@dungeon.pa.dec.com]

	* Version 2.2 released.

Thu May 17 16:41:18 1990  James Larus  (larus at primost)

	* run.c, inst.c, parser.y, tt.?e.s
	Constants were not sign-extended in arithmetic immediate
	instructions.  Now produce literal values with ORI, not ADDI.
	[From: carl@aurora.com (Carl Stehle)]

Mon May 14 13:35:27 1990  James Larus  (larus at primost)

	* scanner.l
	Remove typo in string.  Also, change call on strtol to sscanf
	since the first function doesn't appear to be standard BSD. [From:
	Brian R Murphy <hindmost@ATHENA.MIT.EDU>]


