Annotation of /trunk/src/machines/machine_sgi.c

++ trunk/HISTORY (local)
$Id: HISTORY,v 1.1298 2006/07/22 11:27:46 debug Exp $
20060626 Continuing on SPARC emulation (beginning on the 'save'
instruction, register windows, etc).
20060629 Planning statistics gathering (new -s command line option),
and renaming speed_tricks to allow_instruction_combinations.
20060630 Some minor manual page updates.
Various cleanups.
Implementing the -s command line option.
20060701 FINALLY found the bug which prevented Linux and Ultrix from
running without the ugly hack in the R2000/R3000 cache isol
code; it was the phystranslation hint array which was buggy.
Removing the phystranslation hint code completely, for now.
20060702 Minor dyntrans cleanups; invalidation of physpages now only
invalidate those parts of a page that have actually been
translated. (32 parts per page.)
Some MIPS non-R3000 speed fixes.
Experimenting with MIPS instruction combination for some
addiu+bne+sw loops, and sw+sw+sw.
Adding support (again) for larger-than-4KB pages in MIPS tlbw*.
Continuing on SPARC emulation: adding load/store instructions.
20060704 Fixing a virtual vs physical page shift bug in the new tlbw*
implementation. Problem noticed by Jakub Jermar. (Many thanks.)
Moving rfe and eret to cpu_mips_instr.c, since that is the
only place that uses them nowadays.
20060705 Removing the BSD license from the "testmachine" include files,
placing them in the public domain instead; this enables the
testmachine stuff to be used from projects which are
incompatible with the BSD license for some reason.
20060707 Adding instruction combinations for the R2000/R3000 L1
I-cache invalidation code used by NetBSD/pmax 3.0, lui+addiu,
various branches followed by addiu or nop, and jr ra followed
by addiu. The time it takes to perform a full NetBSD/pmax R3000
install on the laptop has dropped from 573 seconds to 539. :-)
20060708 Adding a framebuffer controller device (dev_fbctrl), which so
far can be used to change the fb resolution during runtime, but
in the future will also be useful for accelerated block fill/
copy, and possibly also simplified character output.
Adding an instruction combination for NetBSD/pmax' strlen.
20060709 Minor fixes: reading raw files in src/file.c wasn't memblock
aligned, removing buggy multi_sw MIPS instruction combination,
etc.
20060711 Adding a machine_qemu.c, which contains a "qemu_mips" machine.
(It mimics QEMU's MIPS machine mode, so that a test kernel
made for QEMU_MIPS also can run in GXemul... at least to some
extent.) Adding a short section about how to run this mode to
doc/guestoses.html.
20060714 Misc. minor code cleanups.
20060715 Applying a patch which adds getchar() to promemul/yamon.c
(from Oleksandr Tymoshenko).
Adding yamon.h from NetBSD, and rewriting yamon.c to use it
(instead of ugly hardcoded numbers) + some cleanup.
20060716 Found and fixed the bug which broke single-stepping of 64-bit
programs between 0.4.0 and 0.4.0.1 (caused by too quick
refactoring and no testing). Hopefully this fix will not
break too many other things.
20060718 Continuing on the 8253 PIT; it now works with Linux/QEMU_MIPS.
Re-adding the sw+sw+sw instr comb (the problem was that I had
ignored endian issues); however, it doesn't seem to give any
big performance gain.
20060720 Adding a dummy Transputer mode (T414, T800 etc) skeleton (only
the 'j' and 'ldc' instructions are implemented so far). :-}
20060721 Adding gtreg.h from NetBSD, updating dev_gt.c to use it, plus
misc. other updates to get Linux 2.6 for evbmips/malta working
(thanks to Alec Voropay for the details).
FINALLY found and fixed the bug which made tlbw* for non-R3000
buggy; it was a reference count problem in the dyntrans core.
20060722 Testing stuff; things seem stable enough for a new release.
============== RELEASE 0.4.1 ==============