Mon Jan 13 10:22:39 1992  James Larus  (larus at primost)

	* Version 4.4 released.

	* xspim.c
	Changes for X11R5 libraries.  Got rid of textact.c.

	* xspim.c
	Extra indirection in arguments to X stuff.

Tue Jan  7 11:31:28 1992  James Larus  (larus at primost)

	* spim.h
	Increase default number of instructions executed to a huge value.

	* run.c
	Can't continue after exit syscall.

	* parser.y scanner.l
	Partially allow opcodes to be used as identifiers.  Still can't
	use them as labels before colon because of LALR lookahead problem.

Mon Dec 23 12:02:48 1991  James Larus  (larus at primost)

	* spim.c buttons.c spim.tex
	Set breakpoints at labels as well as memory addresses.

	*  inst.c mem.c mem.h run.cc sym_tbl.c spim.tex
	Added conversion so that reads and writes of instructions work
	correctly in the text and data segments.  This means that programs
	can manipulate instructions as data and execute out of the data
	segment.  Also fixed bug in jumps to addresses with high bits set
	(ie in data segment). [Suggestion from Eliot Moss.]

	*  mem.c spim-utils.c spim.c spim.h xspim.c spim.tex
	Changed memory expansion code.  Text segments do not expand. The
	data segments only expand with sbrk.  Stack segments expand
	automatically. Added new command line options to set segment sizes
	and limits. [Suggestion from Eliot Moss.]

Fri Dec 20 14:09:23 1991  James Larus  (larus at primost)

	* data.c inst.c mem.h spim-utils.c
	.extern directive was broken (from Hans Koomen).  Also fixed many
	bugs in $gp stuff.

Wed Dec 18 14:43:54 1991  James Larus  (larus at primost)

	* spim.c
	Error in program run under -file caused botched longjmp.

Mon Dec  9 16:04:31 1991  James Larus  (larus at primost)

	* spim-utils.c
	Added copyright notice.

Thu Oct 31 10:49:30 1991  James Larus  (larus at primost)

	* xspim.c, xutils.c, Makefile
	Cleanup X stuff a bit and eliminate xutils.c.

	* run.c
	Computed carray improperly in negating result after multiplication.

	* parser.y
	Bug in test in mulo (Eliot Moss).

	* inst.h
	Minor typos (from Eliot Moss).

Mon Oct 21 11:04:53 1991  James Larus  (larus at primost)

	* run.c
	Carry did not propagate from lo->hi in multiplicaton (from Scott).

Fri Aug 30 09:50:10 1991  James Larus  (larus at primost)

	* Version 4.3 released.

	* tt.*
	Move all of the tests to the subdirectory Tests/

	* tt.alu.bare.s tt.fpu.bare.s
	New test of the ALU and FPU instructions in bare mode (from Anne
	Rogers).

	* run.c
	Need to force delayed updating in lwl/lwr in bare mode.

Tue Aug 27 13:35:01 1991  James Larus  (larus at primost)

	* run.c
	Delayed loads of unsigned bytes and halfs did not mask out bits
	(from Anne Rogers).

Mon Aug 26 10:30:59 1991  James Larus  (larus at primost)

	* data.c
	Set the variable program_break for assembly-language programs as
	well as a.out files.

Fri Aug 23 13:09:15 1991  James Larus  (larus at primost)

	* data.c
	Did not save unaligned data larger than a byte properly (from Jeff
	Jackson).

	* run.c spim-utils.c spim.c
	LWC1 did not update the destination register in the bare machine
	(from Anne Rogers).
	Load trap.handler in non-bare machine mode.

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


