/[gxemul]/trunk/HISTORY
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4 by dpavlin, Mon Oct 8 16:18:00 2007 UTC revision 26 by dpavlin, Mon Oct 8 16:20:10 2007 UTC
# Line 1  Line 1 
1  $Id: HISTORY,v 1.707 2005/04/27 16:37:33 debug Exp $  $Id: HISTORY,v 1.1264 2006/06/25 11:08:04 debug Exp $
2    
3  Changelog for GXemul:  Changelog for GXemul:
4  ---------------------  ---------------------
# Line 1869  Changelog for GXemul: Line 1869  Changelog for GXemul:
1869    
1870  ==============  RELEASE 0.3.2  ==============  ==============  RELEASE 0.3.2  ==============
1871    
1872    20050428        Disabling the "-fmove-all-movables" option in the configure
1873                    script, because it causes the compile to fail on OpenBSD/sgi.
1874    20050502        Minor updates.
1875    20050503        Removing the WRT54G mode (it was bogus anyway), and adding a
1876                    comment about Windows NT for MIPS in doc/experiments.html.
1877                    Minor updates to the x86 instruction decoding.
1878    20050504        Adding some more x86 instructions.
1879                    Adding support for reading files from ISO9660 CDROMs (including
1880                    gzipped files). It's an ugly hack, but it seems to work.
1881                    Various other minor updates (dev_vga.c, pc_bios.c etc).
1882    20050505        Some more x86-related updates.
1883                    Beginning (what I hope will be) a major code cleanup phase.
1884                    "bootris" (an x86 bootsector) runs :-)
1885    20050506        Adding some more x86 instructions.
1886    20050507        tmpnam => mkstemp.
1887                    Working on a hack to allow VGA charcells to be shown even when
1888                    not running with X11.
1889                    Adding more x86 instructions.
1890    20050508        x86 32-bit SIB addressing fix, and more instructions.
1891    20050509        Adding more x86 instructions.
1892    20050510        Minor documentation updates, and other updates (x86 stuff etc.)
1893    20050511        More x86-related updates.
1894    20050513        Various updates, mostly x86-related. (Trying to fix flag
1895                    calculation, factoring out the ugly shift/rotate code, and
1896                    some other things.)
1897    20050514        Adding support for loading some old i386 a.out executables.
1898                    Finally beginning the cleanup of machine/PROM/bios dependant
1899                    info.
1900                    Some minor documentation updates.
1901                    Trying to clean up ARCBIOS stuff a little.
1902    20050515        Trying to make it possible to actually use more than one disk
1903                    type per machine (floppy, ide, scsi).
1904                    Trying to clean up the kbd vs PROM console stuff. (For PC and
1905                    ARC emulation modes, mostly.)
1906                    Beginning to add an 8259 interrupt controller, and connecting
1907                    it to the x86 emulation.
1908    20050516        The first x86 interrupts seem to work (keyboard stuff).
1909                    Adding a 8253/8254 programmable interval timer skeleton.
1910                    FreeDOS now reaches a command prompt and can be interacted
1911                    with.
1912    20050517        After some bugfixes, MS-DOS also (sometimes) reaches a
1913                    command prompt now.
1914                    Trying to fix the pckbc to work with MS-DOS' keyb.com, but no
1915                    success yet.
1916    20050518        Adding a simple 32-bit x86 MMU skeleton.
1917    20050519        Some more work on the x86 stuff. (Beginning the work on paging,
1918                    and various other fixes).
1919    20050520        More updates. Working on dev_vga (4-bit graphics modes), adding
1920                    40 columns support to the PC bios emulation.
1921                    Trying to add support for resizing windows when switching
1922                    between graphics modes.
1923    20050521        Many more x86-related updates.
1924    20050522        Correcting the initial stack pointer's sign-extension for
1925                    ARCBIOS emulation (thanks to Alec Voropay for noticing the
1926                    error).
1927                    Continuing on the cleanup (ARCBIOS etc).
1928                    dev_vga updates.
1929    20050523        More x86 updates: trying to add some support for protected mode
1930                    interrupts (via gate descriptors) and many other fixes.
1931                    More ARCBIOS cleanup.
1932                    Adding a device flag which indicates that reads cause no
1933                    side-effects. (Useful for the "dump" command in the debugger,
1934                    and other things.)
1935                    Adding support for directly starting up x86 ELFs, skipping the
1936                    bootloader stage. (Most ELFs, however, are not suitable for
1937                    this.)
1938    20050524        Adding simple 32-bit x86 TSS task switching, but no privilege
1939                    level support yet.
1940                    More work on dev_vga. A small "Copper bars" demo works. :-)
1941                    Adding support for Trap Flag (single-step exceptions), at least
1942                    in real mode, and various other x86-related fixes.
1943    20050525        Adding a new disk image prefix (gH;S;) which can be used to
1944                    override the default nr of heads and sectors per track.
1945    20050527        Various bug fixes, more work on the x86 mode (stack change on
1946                    interrupts between different priv.levels), and some minor
1947                    documentation updates.
1948    20050528        Various fixes (x86 stuff).
1949    20050529        More x86 fixes. An OpenBSD/i386 bootfloppy reaches userland
1950                    and can be interacted with (although there are problems with
1951                    key repetition). NetBSD/i386 triggers a serious CISC-related
1952                    problem: instruction fetches across page boundaries, where
1953                    the later part isn't actually part of the instruction.
1954    20050530        Various minor updates. (Documentation updates, etc.)
1955    20050531        Adding some experimental code (experiments/new_test_*) which
1956                    could be useful for dynamic (but not binary) translation in
1957                    the future.
1958    20050602        Adding a dummy ARM skeleton.
1959                    Fixing the pckbc key repetition problem (by adding release
1960                    scancodes for all keypresses).
1961    20050603        Minor updates for the next release.
1962    20050604        Release testing. Minor updates.
1963    
1964    ==============  RELEASE 0.3.3  ==============
1965    
1966    20050604        There'll probably be a 0.3.3.1 release soon, with some very
1967                    very tiny updates.
1968    
1969    ==============  RELEASE 0.3.3.1  ==============
1970    
1971    20050609        Adding simple MIPS IPIs (to dev_mp).
1972    20050611        Adding an ugly hack to track down low-reference bugs
1973                    (define TRACE_NULL_CRASHES, or configure --tracenull).
1974                    Other minor updates.
1975    20050612        Adding a dummy evbmips mode.
1976    
1977    ==============  RELEASE 0.3.3.2  ==============
1978    
1979    20050617        Experimenting some more with netbooting OpenBSD/sgi. Adding
1980                    a hack which allows emulated ethernet networks to be
1981                    distributed across multiple emulator processes.
1982    20050618        Minor updates (documentation, dummy YAMON emulation, etc).
1983    20050620        strcpy/strcat -> strlcpy/strlcat updates.
1984                    Some more progress on evbmips (Malta).
1985    20050621        Adding a section to doc/configfiles.html about ethernet
1986                    emulation across multiple hosts.
1987                    Beginning the work on the ARM translation engine (using the
1988                    dynamic-but-not-binary translation method).
1989                    Fixing a bintrans bug: 0x9fc00000 should always be treated as
1990                    PROM area, just as 0xbfc00000 is.
1991                    Minor progress on Malta emulation (the PCI-ISA bus).
1992    20050622        NetBSD/evbmips can now be installed (using another emulated
1993                    machine) and run (including userland and so on). :-)
1994                    Spliting up the bintrans haddr_entry field into two (one for
1995                    read, one for write). Probably not much of a speed increase,
1996                    though.
1997                    Updating some NetBSD 2.0 -> 2.0.2 in the documentation.
1998    20050623        Minor updates (documentation, the TODO file, etc).
1999                    gzipped kernels are now always automagically gunzipped when
2000                    loaded.
2001    20050624        Adding a dummy Playstation Portable (PSP) mode, just barely
2002                    enough to run Hello World (in weird colors :-).
2003                    Removing the -b command line option; old bintrans is enabled
2004                    by default instead. It makes more sense.
2005                    Trying to finally fix the non-working performance measurement
2006                    thing (instr/second etc).
2007    20050625        Continuing on the essential basics for ARM emulation. Two
2008                    instructions seem to work, a branch and a simple "mov". (The
2009                    mov arguments are not correct yet.) Performance is definitely
2010                    reasonable.
2011                    Various other minor updates.
2012                    Adding the ARM "bl" instruction.
2013                    Adding support for combining multiple ARM instructions into one
2014                    function call. ("mov" + "mov" is the only one implemented so
2015                    far, but it seems to work.)
2016                    Cleaning up some IP32 interrupt things (crime/mace); disabling
2017                    the PS/2 keyboard controller on IP32, so that NetBSD/sgimips
2018                    boots into userland again.
2019    20050626        Finally! NetBSD/sgimips netboots. Adding instructions to
2020                    doc/guestoses.html on how to set up an nfs server etc.
2021                    Various other minor fixes.
2022                    Playstation Portable ".pbp" files can now be used directly.
2023                    (The ELF part of the .pbp is extracted transparently.)
2024                    Converting some sprintf -> snprintf.
2025                    Adding some more instructions to the ARM disassembler.
2026    20050627        More ARM updates. Adding some simple ldr(b), str(b),
2027                    cmps, and conditional branch instructions, enough to run
2028                    a simple Hello World program.
2029                    All ARM instructions are now inlined/generated for all possible
2030                    condition codes.
2031                    Adding add and sub, and more load/store instructions.
2032                    Removing dummy files: cpu_alpha.c, cpu_hppa.c, and cpu_sparc.c.
2033                    Some minor documentation updates; preparing for a 0.3.4
2034                    release. Updating some URLs.
2035    
2036    ==============  RELEASE 0.3.4  ==============
2037    
2038    20050628        Continuing the work on the ARM translation engine. end_of_page
2039                    works. Experimenting with load/store translation caches
2040                    (virtual -> physical -> host).
2041    20050629        More ARM stuff (memory access translation cache, mostly). This
2042                    might break a lot of stuff elsewhere, probably some MIPS-
2043                    related translation things.
2044    20050630        Many load/stores are now automatically generated and included
2045                    into cpu_arm_instr.c; 1024 functions in total (!).
2046                    Fixes based on feedback from Alec Voropay: only print 8 hex
2047                    digits instead of 16 in some cases when emulating 32-bit
2048                    machines; similar 8 vs 16 digit fix for breakpoint addresses;
2049                    4Kc has 16 TLB entries, not 48; the MIPS config select1
2050                    register is now printed with "reg ,0".
2051                    Also changing many other occurances of 16 vs 8 digit output.
2052                    Adding cache associativity fields to mips_cpu_types.h; updating
2053                    some other cache fields; making the output of
2054                    mips_cpu_dumpinfo() look nicer.
2055                    Generalizing the bintrans stuff for device accesses to also
2056                    work with the new translation system. (This might also break
2057                    some MIPS things.)
2058                    Adding multi-load/store instructions to the ARM disassembler
2059                    and the translator, and some optimizations of various kinds.
2060    20050701        Adding a simple dev_disk (it can read/write sectors from
2061                    disk images).
2062    20050712        Adding dev_ether (a simple ethernet send/receive device).
2063                    Debugger command "ninstrs" for toggling show_nr_of_instructions
2064                    during runtime.
2065                    Removing the framebuffer logo.
2066    20050713        Continuing on dev_ether.
2067                    Adding a dummy cpu_alpha (again).
2068    20050714        More work on cpu_alpha.
2069    20050715        More work on cpu_alpha. Many instructions work, enough to run
2070                    a simple framebuffer fill test (similar to the ARM test).
2071    20050716        More Alpha stuff.
2072    20050717        Minor updates (Alpha stuff).
2073    20050718        Minor updates (Alpha stuff).
2074    20050719        Generalizing some Alpha instructions.
2075    20050720        More Alpha-related updates.
2076    20050721        Continuing on cpu_alpha. Importing rpb.h from NetBSD/alpha.
2077    20050722        Alpha-related updates: userland stuff (Hello World using
2078                    write() compiled statically for FreeBSD/Alpha runs fine), and
2079                    more instructions are now implemented.
2080    20050723        Fixing ldq_u and stq_u.
2081                    Adding more instructions (conditional moves, masks, extracts,
2082                    shifts).
2083    20050724        More FreeBSD/Alpha userland stuff, and adding some more
2084                    instructions (inserts).
2085    20050725        Continuing on the Alpha stuff. (Adding dummy ldt/stt.)
2086                    Adding a -A command line option to turn off alignment checks
2087                    in some cases (for translated code).
2088                    Trying to remove the old bintrans code which updated the pc
2089                    and nr_of_executed_instructions for every instruction.
2090    20050726        Making another attempt att removing the pc/nr of instructions
2091                    code. This time it worked, huge performance increase for
2092                    artificial test code, but performance loss for real-world
2093                    code :-( so I'm scrapping that code for now.
2094                    Tiny performance increase on Alpha (by using ret instead of
2095                    jmp, to play nice with the Alpha's branch prediction) for the
2096                    old MIPS bintrans backend.
2097    20050727        Various minor fixes and cleanups.
2098    20050728        Switching from a 2-level virtual to host/physical translation
2099                    system for ARM emulation, to a 1-level translation.
2100                    Trying to switch from 2-level to 1-level for the MIPS bintrans
2101                    system as well (Alpha only, so far), but there is at least one
2102                    problem: caches and/or how they work with device mappings.
2103    20050730        Doing the 2-level to 1-level conversion for the i386 backend.
2104                    The cache/device bug is still there for R2K/3K :(
2105                    Various other minor updates (Malta etc).
2106                    The mc146818 clock now updates the UIP bit in a way which works
2107                    better with Linux for at least sgimips and Malta emulation.
2108                    Beginning the work on refactoring the dyntrans system.
2109    20050731        Continuing the dyntrans refactoring.
2110                    Fixing a small but serious host alignment bug in memory_rw.
2111                    Adding support for big-endian load/stores to the i386 bintrans
2112                    backend.
2113                    Another minor i386 bintrans backend update: stores from the
2114                    zero register are now one (or two) loads shorter.
2115                    The slt and sltu instructions were incorrectly implemented for
2116                    the i386 backend; only using them for 32-bit mode for now.
2117    20050801        Continuing the dyntrans refactoring.
2118                    Cleanup of the ns16550 serial controller (removing unnecessary
2119                    code).
2120                    Bugfix (memory corruption bug) in dev_gt, and a patch/hack from
2121                    Alec Voropay for Linux/Malta.
2122    20050802        More cleanup/refactoring of the dyntrans subsystem: adding
2123                    phys_page pointers to the lookup tables, for quick jumps
2124                    between translated pages.
2125                    Better fix for the ns16550 device (but still no real FIFO
2126                    functionality).
2127                    Converting cpu_ppc to the new dyntrans system. This means that
2128                    I will have to start from scratch with implementing each
2129                    instruction, and figure out how to implement dual 64/32-bit
2130                    modes etc.
2131                    Removing the URISC CPU family, because it was useless.
2132    20050803        When selecting a machine type, the main type can now be omitted
2133                    if the subtype name is unique. (I.e. -E can be omitted.)
2134                    Fixing a dyntrans/device update bug. (Writes to offset 0 of
2135                    a device could sometimes go unnoticed.)
2136                    Adding an experimental "instruction combination" hack for
2137                    ARM for memset-like byte fill loops.
2138    20050804        Minor progress on cpu_alpha and related things.
2139                    Finally fixing the MIPS dmult/dmultu bugs.
2140                    Fixing some minor TODOs.
2141    20050805        Generalizing the 8259 PIC. It now also works with Cobalt
2142                    and evbmips emulation, in addition to the x86 hack.
2143                    Finally converting the ns16550 device to use devinit.
2144                    Continuing the work on the dyntrans system. Thinking about
2145                    how to add breakpoints.
2146    20050806        More dyntrans updates. Breakpoints seem to work now.
2147    20050807        Minor updates: cpu_alpha and related things; removing
2148                    dev_malta (as it isn't used any more).
2149                    Dyntrans: working on general "show trace tree" support.
2150                    The trace tree stuff now works with both the old MIPS code and
2151                    with newer dyntrans modes. :)
2152                    Continuing on Alpha-related stuff (trying to get *BSD to boot
2153                    a bit further, adding more instructions, etc).
2154    20050808        Adding a dummy IA64 cpu family, and continuing the refactoring
2155                    of the dyntrans system.
2156                    Removing the regression test stuff, because it was more or
2157                    less useless.
2158                    Adding loadlinked/storeconditional type instructions to the
2159                    Alpha emulation. (Needed for Linux/alpha. Not very well tested
2160                    yet.)
2161    20050809        The function call trace tree now prints a per-function nr of
2162                    arguments. (Semi-meaningless, since that data isn't read yet
2163                    from the ELFs; some hardcoded symbols such as memcpy() and
2164                    strlen() work fine, though.)
2165                    More dyntrans refactoring; taking out more of the things that
2166                    are common to all cpu families.
2167    20050810        Working on adding support for "dual mode" for PPC dyntrans
2168                    (i.e. both 64-bit and 32-bit modes).
2169                    (Re)adding some simple PPC instructions.
2170    20050811        Adding a dummy M68K cpu family. The dyntrans system isn't ready
2171                    for variable-length ISAs yet, so it's completely bogus so far.
2172                    Re-adding more PPC instructions.
2173                    Adding a hack to src/file.c which allows OpenBSD/mac68k a.out
2174                    kernels to be loaded.
2175                    Beginning to add PPC loads/stores. So far they only work in
2176                    32-bit mode.
2177    20050812        The configure file option "add_remote" now accepts symbolic
2178                    host names, in addition to numeric IPv4 addresses.
2179                    Re-adding more PPC instructions.
2180    20050814        Continuing to port back more PPC instructions.
2181                    Found and fixed the cache/device write-update bug for 32-bit
2182                    MIPS bintrans. :-)
2183                    Triggered a really weird and annoying bug in Compaq's C
2184                    compiler; ccc sometimes outputs code which loads from an
2185                    address _before_ checking whether the pointer was NULL or not.
2186                    (I'm not sure how to handle this problem.)
2187    20050815        Removing all of the old x86 instruction execution code; adding
2188                    a new (dummy) dyntrans module for x86.
2189                    Taking the first steps to extend the dyntrans system to support
2190                    variable-length instructions.
2191                    Slowly preparing for the next release.
2192    20050816        Adding a dummy SPARC cpu module.
2193                    Minor updates (documentation etc) for the release.
2194    
2195    ==============  RELEASE 0.3.5  ==============
2196    
2197    20050816        Some success in decoding the way the SGI O2 PROM draws graphics
2198                    during bootup; lines/rectangles and bitmaps work, enough to
2199                    show the bootlogo etc. :-)
2200                    Adding more PPC instructions, and (dummy) BAT registers.
2201    20050817        Updating the pckbc to support scancode type 3 keyboards
2202                    (required in order to interact with the SGI O2 PROM).
2203                    Adding more PPC instructions.
2204    20050818        Adding more ARM instructions; general register forms.
2205                    Importing armreg.h from NetBSD (ARM cpu ids). Adding a (dummy)
2206                    CATS machine mode (using SA110 as the default CPU).
2207                    Continuing on general dyntrans related stuff.
2208    20050819        Register forms for ARM load/stores. Gaah! The Compaq C Compiler
2209                    bug is triggered for ARM loads as well, not just PPC :-(
2210                    Adding full support for ARM PC-relative load/stores, and load/
2211                    stores where the PC register is the destination register.
2212                    Adding support for ARM a.out binaries.
2213    20050820        Continuing to add more ARM instructions, and correcting some
2214                    bugs. Continuing on CATS emulation.
2215                    More work on the PPC stuff.
2216    20050821        Minor PPC and ARM updates. Adding more machine types.
2217    20050822        All ARM "data processing instructions" are now generated
2218                    automatically.
2219    20050824        Beginning the work on the ARM system control coprocessor.
2220                    Adding support for ARM halfword load/stores, and signed loads.
2221    20050825        Fixing an important bug related to the ARM condition codes.
2222                    OpenBSD/zaurus and NetBSD/netwinder now print some boot
2223                    messages. :)
2224                    Adding a dummy SH (Hitachi SuperH) cpu family.
2225                    Beginning to add some ARM virtual address translation.
2226                    MIPS bugfixes: unaligned PC now cause an ADEL exception (at
2227                    least for non-bintrans execution), and ADEL/ADES (not
2228                    TLBL/TLBS) are used if userland tries to access kernel space.
2229                    (Thanks to Joshua Wise for making me aware of these bugs.)
2230    20050827        More work on the ARM emulation, and various other updates.
2231    20050828        More ARM updates.
2232                    Finally taking the time to work on translation invalidation
2233                    (i.e. invalidating translated code mappings when memory is
2234                    written to). Hopefully this doesn't break anything.
2235    20050829        Moving CPU related files from src/ to a new subdir, src/cpus/.
2236                    Moving PROM emulation stuff from src/ to src/promemul/.
2237                    Better debug instruction trace for ARM loads and stores.
2238    20050830        Various ARM updates (correcting CMP flag calculation, etc).
2239    20050831        PPC instruction updates. (Flag fixes, etc.)
2240    20050901        Various minor PPC and ARM instruction emulation updates.
2241                    Minor OpenFirmware emulation updates.
2242    20050903        Adding support for adding arbitrary ARM coprocessors (with
2243                    the i80321 I/O coprocessor as a first test).
2244                    Various other ARM and PPC updates.
2245    20050904        Adding some SHcompact disassembly routines.
2246    20050907        (Re)adding a dummy HPPA CPU module, and a dummy i960 module.
2247    20050908        Began hacking on some Apple Partition Table support.
2248    20050909        Adding support for loading Mach-O (Darwin PPC) binaries.
2249    20050910        Fixing an ARM bug (Carry flag was incorrectly updated for some
2250                    data processing instructions); OpenBSD/cats and NetBSD/
2251                    netwinder get quite a bit further now.
2252                    Applying a patch to dev_wdc, and a one-liner to dev_pcic, to
2253                    make them work better when emulating new versions of OpenBSD.
2254                    (Thanks to Alexander Yurchenko for the patches.)
2255                    Also doing some other minor updates to dev_wdc. (Some cleanup,
2256                    and finally converting to devinit, etc.)
2257    20050912        IRIX doesn't have u_int64_t by default (noticed by Andreas
2258                    <avr@gnulinux.nl>); configure updated to reflect this.
2259                    Working on ARM register bank switching, CPSR vs SPSR issues,
2260                    and beginning the work on interrupt/exception support.
2261    20050913        Various minor ARM updates (speeding up load/store multiple,
2262                    and fixing a ROR bug in R(); NetBSD/cats now boots as far as
2263                    OpenBSD/cats).
2264    20050917        Adding a dummy Atmel AVR (8-bit) cpu family skeleton.
2265    20050918        Various minor updates.
2266    20050919        Symbols are now loaded from Mach-O executables.
2267                    Continuing the work on adding ARM exception support.
2268    20050920        More work on ARM stuff: OpenBSD/cats and NetBSD/cats reach
2269                    userland! :-)
2270    20050921        Some more progress on ARM interrupt specifics.
2271    20050923        Fixing linesize for VR4121 (patch by Yurchenko). Also fixing
2272                    linesizes/cachesizes for some other VR4xxx.
2273                    Adding a dummy Acer Labs M1543 PCI-ISA bridge (for CATS) and a
2274                    dummy Symphony Labs 83C553 bridge (for Netwinder), usable by
2275                    dev_footbridge.
2276    20050924        Some PPC progress.
2277    20050925        More PPC progress.
2278    20050926        PPC progress (fixing some bugs etc); Darwin's kernel gets
2279                    slightly further than before.
2280    20050928        Various updates: footbridge/ISA/pciide stuff, and finally
2281                    fixing the VGA text scroll-by-changing-the-base-offset bug.
2282    20050930        Adding a dummy S3 ViRGE pci card for CATS emulation, which
2283                    both NetBSD and OpenBSD detects as VGA.
2284                    Continuing on Footbridge (timers, ISA interrupt stuff).
2285    20051001        Continuing... there are still bugs, probably interrupt-
2286                    related.
2287    20051002        More work on the Footbridge (interrupt stuff).
2288    20051003        Various minor updates. (Trying to find the bug(s).)
2289    20051004        Continuing on the ARM stuff.
2290    20051005        More ARM-related fixes.
2291    20051007        FINALLY! Found and fixed 2 ARM bugs: 1 memory related, and the
2292                    other was because of an error in the ARM manual (load multiple
2293                    with the S-bit set should _NOT_ load usermode registers, as the
2294                    manual says, but it should load saved registers, which may or
2295                    may not happen to be usermode registers).
2296                    NetBSD/cats and OpenBSD/cats seem to install fine now :-)
2297                    except for a minor bug at the end of the OpenBSD/cats install.
2298                    Updating the documentation, preparing for the next release.
2299    20051008        Continuing with release testing and cleanup.
2300    
2301    ==============  RELEASE 0.3.6  ==============
2302    
2303    20051008        The bug was not because of faulty ARM documentation after all,
2304                    but it was related to those parts of the code.
2305                    Fixing the RTC (dev_mc146818) to work with CATS.
2306    20051009        Rewriting the R() function; now there are 8192 automatically
2307                    generated smaller functions doing the same thing, but hopefully
2308                    faster. This also fixes some bugs which were triggered when
2309                    trying to compile GXemul inside itself. :-)
2310                    Adding a dummy dev_lpt.
2311    20051010        Small hack to not update virtual translation tables if memory
2312                    accesses are done with the NO_EXCEPTION flag; a time reduction
2313                    of almost a factor 2 for a full NetBSD/cats install. :-)
2314    20051011        Passing -A as the default boot arg for CATS (works fine with
2315                    OpenBSD/cats).
2316    
2317    ==============  RELEASE 0.3.6.1  ==============
2318    
2319    20051012        Fixing the VGA cursor offset bug, and speeding up framebuffer
2320                    redraws if character cells contain the same thing as during
2321                    the last redraw.
2322    20051013        Adding a slow strd ARM instruction hack.
2323    20051017        Minor updates: Adding a dummy i80321 Verde controller (for
2324                    XScale emulation), fixing the disassembly of the ARM "ldrd"
2325                    instruction, adding "support" for less-than-4KB pages for ARM
2326                    (by not adding them to translation tables).
2327    20051020        Continuing on some HPCarm stuff. A NetBSD/hpcarm kernel prints
2328                    some boot messages on an emulated Jornada 720.
2329                    Making dev_ram work better with dyntrans (speeds up some things
2330                    quite a bit).
2331    20051021        Automatically generating some of the most common ARM load/store
2332                    multiple instructions.
2333    20051022        Better statistics gathering for the ARM load/store multiple.
2334                    Various other dyntrans and device updates.
2335    20051023        Various minor updates.
2336    20051024        Continuing; minor device and dyntrans fine-tuning. Adding the
2337                    first "reasonable" instruction combination hacks for ARM (the
2338                    cores of NetBSD/cats' memset and memcpy).
2339    20051025        Fixing a dyntrans-related bug in dev_vga. Also changing the
2340                    dyntrans low/high access notification to only be updated on
2341                    writes, not reads. Hopefully it will be enough. (dev_vga in
2342                    charcell mode now seems to work correctly with both reads and
2343                    writes.)
2344                    Experimenting with gathering dyntrans statistics (which parts
2345                    of emulated RAM that are actually executed), and adding
2346                    instruction combination hacks for cache cleaning and a part of
2347                    NetBSD's scanc() function.
2348    20051026        Adding a bitmap for ARM emulation which indicates if a page is
2349                    (specifically) user accessible; loads and stores with the t-
2350                    flag set can now use the translation arrays, which results in
2351                    a measurable speedup.
2352    20051027        Dyntrans updates; adding an extra bitmap array for 32-bit
2353                    emulation modes, speeding up the check whether a physical page
2354                    has any code translations or not (O(n) -> O(1)). Doing a
2355                    similar reduction of O(n) to O(1) by avoiding the scan through
2356                    the translation entries on a translation update (32-bit mode
2357                    only).
2358                    Various other minor hacks.
2359    20051029        Quick release, without any testing at all.
2360    
2361    ==============  RELEASE 0.3.6.2  ==============
2362    
2363    20051031        Adding disassembly support for more ARM instructions (clz,
2364                    smul* etc), and adding a hack to support "new tiny" pages
2365                    for StrongARM.
2366    20051101        Minor documentation updates (NetBSD 2.0.2 -> 2.1, and OpenBSD
2367                    3.7 -> 3.8, and lots of testing).
2368                    Changing from 1-sector PIO mode 0 transfers to 128-sector PIO
2369                    mode 3 (in dev_wdc).
2370                    Various minor ARM dyntrans updates (pc-relative loads from
2371                    within the same page as the instruction are now treated as
2372                    constant "mov").
2373    20051102        Re-enabling instruction combinations (they were accidentally
2374                    disabled).
2375                    Dyntrans TLB entries are now overwritten using a round-robin
2376                    scheme instead of randomly. This increases performance.
2377                    Fixing a typo in file.c (thanks to Chuan-Hua Chang for
2378                    noticing it).
2379                    Experimenting with adding ATAPI support to dev_wdc (to make
2380                    emulated *BSD detect cdroms as cdroms, not harddisks).
2381    20051104        Various minor updates.
2382    20051105        Continuing on the ATAPI emulation. Seems to work well enough
2383                    for a NetBSD/cats installation, but not OpenBSD/cats.
2384                    Various other updates.
2385    20051106        Modifying the -Y command line option to allow scaleup with
2386                    certain graphic controllers (only dev_vga so far), not just
2387                    scaledown.
2388                    Some minor dyntrans cleanups.
2389    20051107        Beginning a cleanup up the PCI subsystem (removing the
2390                    read_register hack, etc).
2391    20051108        Continuing the cleanup; splitting up some pci devices into a
2392                    normal autodev device and some separate pci glue code.
2393    20051109        Continuing on the PCI bus stuff; all old pci_*.c have been
2394                    incorporated into normal devices and/or rewritten as glue code
2395                    only, adding a dummy Intel 82371AB PIIX4 for Malta (not really
2396                    tested yet).
2397                    Minor pckbc fix so that Linux doesn't complain.
2398                    Working on the DEC 21143 NIC (ethernet mac rom stuff mostly).
2399                    Various other minor fixes.
2400    20051110        Some more ARM dyntrans fine-tuning (e.g. some instruction
2401                    combinations (cmps followed by conditional branch within the
2402                    same page) and special cases for DPIs with regform when the
2403                    shifter isn't used).
2404    20051111        ARM dyntrans updates: O(n)->O(1) for just-mark-as-non-
2405                    writable in the generic pc_to_pointers function, and some other
2406                    minor hacks.
2407                    Merging Cobalt and evbmips (Malta) ISA interrupt handling,
2408                    and some minor fixes to allow Linux to accept harddisk irqs.
2409    20051112        Minor device updates (pckbc, dec21143, lpt, ...), most
2410                    importantly fixing the ALI M1543/M5229 so that harddisk irqs
2411                    work with Linux/CATS.
2412    20051113        Some more generalizations of the PCI subsystem.
2413                    Finally took the time to add a hack for SCSI CDROM TOCs; this
2414                    enables OpenBSD to use partition 'a' (as needed by the OpenBSD
2415                    installer), and Windows NT's installer to get a bit further.
2416                    Also fixing dev_wdc to allow Linux to detect ATAPI CDROMs.
2417                    Continuing on the DEC 21143.
2418    20051114        Minor ARM dyntrans tweaks; ARM cmps+branch optimization when
2419                    comparing with 0, and generalizing the xchg instr. comb.
2420                    Adding disassembly of ARM mrrc/mcrr and q{,d}{add,sub}.
2421    20051115        Continuing on various PPC things (BATs, other address trans-
2422                    lation things, various loads/stores, BeBox emulation, etc.).
2423                    Beginning to work on PPC interrupt/exception support.
2424    20051116        Factoring out some code which initializes legacy ISA devices
2425                    from those machines that use them (bus_isa).
2426                    Continuing on PPC interrupt/exception support.
2427    20051117        Minor Malta fixes: RTC year offset = 80, disabling a speed hack
2428                    which caused NetBSD to detect a too fast cpu, and adding a new
2429                    hack to make Linux detect a faster cpu.
2430                    Continuing on the Artesyn PM/PPC emulation mode.
2431                    Adding an Algor emulation skeleton (P4032 and P5064);
2432                    implementing some of the basics.
2433                    Continuing on PPC emulation in general; usage of unimplemented
2434                    SPRs is now easier to track, continuing on memory/exception
2435                    related issues, etc.
2436    20051118        More work on PPC emulation (tgpr0..3, exception handling,
2437                    memory stuff, syscalls, etc.).
2438    20051119        Changing the ARM dyntrans code to mostly use cpu->pc, and not
2439                    necessarily use arm reg 15. Seems to work.
2440                    Various PPC updates; continuing on the PReP emulation mode.
2441    20051120        Adding a workaround/hack to dev_mc146818 to allow NetBSD/prep
2442                    to detect the clock.
2443    20051121        More cleanup of the PCI bus (memory and I/O bases, etc).
2444                    Continuing on various PPC things (decrementer and timebase,
2445                    WDCs on obio (on PReP) use irq 13, not 14/15).
2446    20051122        Continuing on the CPC700 controller (interrupts etc) for PMPPC,
2447                    and on PPC stuff in general.
2448                    Finally! After some bug fixes to the virtual to physical addr
2449                    translation, NetBSD/{prep,pmppc} 2.1 reach userland and are
2450                    stable enough to be interacted with.
2451                    More PCI updates; reverse-endian device access for PowerPC etc.
2452    20051123        Generalizing the IEEE floating point subsystem (moving it out
2453                    from src/cpus/cpu_mips_coproc.c into a new src/float_emul.c).
2454                    Input via slave xterms was sometimes not really working; fixing
2455                    this for ns16550, and a warning message is now displayed if
2456                    multiple non-xterm consoles are active.
2457                    Adding some PPC floating point support, etc.
2458                    Various interrupt related updates (dev_wdc, _ns16550, _8259,
2459                    and the isa32 common code in machine.c).
2460                    NetBSD/prep can now be installed! :-) (Well, with some manual
2461                    commands necessary before running sysinst.) Updating the
2462                    documentation and various other things to reflect this.
2463    20051124        Various minor documentation updates.
2464                    Continuing the work on the DEC 21143 NIC.
2465    20051125        LOTS of work on the 21143. Both OpenBSD and NetBSD work fine
2466                    with it now, except that OpenBSD sometimes gives a time-out
2467                    warning.
2468                    Minor documentation updates.
2469    
2470    ==============  RELEASE 0.3.7  ==============
2471    
2472    20051126        Cobalt and PReP now work with the 21143 NIC.
2473                    Continuing on Alpha dyntrans things.
2474                    Fixing some more left-shift-by-24 to unsigned.
2475    20051127        Working on OpenFirmware emulation; major cleanup/redesign.
2476                    Progress on MacPPC emulation: NetBSD detects two CPUs (when
2477                    running with -n 2), framebuffer output (for text) works.
2478                    Adding quick-hack Bandit PCI controller and "gc" interrupt
2479                    controller for MacPPC.
2480    20051128        Changing from a Bandit to a Uni-North controller for macppc.
2481                    Continuing on OpenFirmware and MacPPC emulation in general
2482                    (obio controller, and wdc attached to the obio seems to work).
2483    20051129        More work on MacPPC emulation (adding a dummy ADB controller).
2484                    Continuing the PCI bus cleanup (endianness and tag composition)
2485                    and rewriting all PCI controllers' access functions.
2486    20051130        Various minor PPC dyntrans optimizations.
2487                    Manually inlining some parts of the framebuffer redraw routine.
2488                    Slowly beginning the conversion of the old MIPS emulation into
2489                    dyntrans (but this will take quite some time to get right).
2490                    Generalizing quick_pc_to_pointers.
2491    20051201        Documentation update (David Muse has made available a kernel
2492                    which simplifies Debian/DECstation installation).
2493                    Continuing on the ADB bus controller.
2494    20051202        Beginning a rewrite of the Zilog serial controller (dev_zs).
2495    20051203        Continuing on the zs rewrite (now called dev_z8530); conversion
2496                    to devinit style.
2497                    Reworking some of the input-only vs output-only vs input-output
2498                    details of src/console.c, better warning messages, and adding
2499                    a debug dump.
2500                    Removing the concept of "device state"; it wasn't really used.
2501                    Changing some debug output (-vv should now be used to show all
2502                    details about devices and busses; not shown during normal
2503                    startup anymore).
2504                    Beginning on some SPARC instruction disassembly support.
2505    20051204        Minor PPC updates (WALNUT skeleton stuff).
2506                    Continuing on the MIPS dyntrans rewrite.
2507                    More progress on the ADB controller (a keyboard is "detected"
2508                    by NetBSD and OpenBSD).
2509                    Downgrading OpenBSD/arc as a guest OS from "working" to
2510                    "almost working" in the documentation.
2511                    Progress on Algor emulation ("v3" PCI controller).
2512    20051205        Minor updates.
2513    20051207        Sorting devices according to address; this reduces complexity
2514                    of device lookups from O(n) to O(log n) in memory_rw (but no
2515                    real performance increase (yet) in experiments).
2516    20051210        Beginning the work on native dyntrans backends (by making a
2517                    simple skeleton; so far only for Alpha hosts).
2518    20051211        Some very minor SPARC updates.
2519    20051215        Fixing a bug in the MIPS mul (note: not mult) instruction,
2520                    so it also works with non-64-bit emulation. (Thanks to Alec
2521                    Voropay for noticing the problem.)
2522    20051216        More work on the fake/empty/simple/skeleton/whatever backend;
2523                    performance doesn't increase, so this isn't really worth it,
2524                    but it was probably worth it to prepare for a real backend
2525                    later.
2526    20051219        More instr call statistics gathering and analysis stuff.
2527    20051220        Another fix for MIPS 'mul'. Also converting mul and {d,}cl{o,z}
2528                    to dyntrans.
2529                    memory_ppc.c syntax error fix (noticed by Peter Valchev).
2530                    Beginning to move out machines from src/machine.c into
2531                    individual files in src/machines (in a way similar to the
2532                    autodev system for devices).
2533    20051222        Updating the documentation regarding NetBSD/pmax 3.0.
2534    20051223        - " - NetBSD/cats 3.0.
2535    20051225        - " - NetBSD/hpcmips 3.0.
2536    20051226        Continuing on the machine registry redesign.
2537                    Adding support for ARM rrx (33-bit rotate).
2538                    Fixing some signed/unsigned issues (exposed by gcc -W).
2539    20051227        Fixing the bug which prevented a NetBSD/prep 3.0 install kernel
2540                    from starting (triggered when an mtmsr was the last instruction
2541                    on a page). Unfortunately not enough to get the kernel to run
2542                    as well as the 2.1 kernels did.
2543    20051230        Some dyntrans refactoring.
2544    20051231        Continuing on the machine registry redesign.
2545    20060101-10     Continuing... moving more machines. Moving MD interrupt stuff
2546                    from machine.c into a new src/machines/interrupts.c.
2547    20060114        Adding various mvmeppc machine skeletons.
2548    20060115        Continuing on mvme* stuff. NetBSD/mvmeppc prints boot messages
2549                    (for MVME1600) and reaches the root device prompt, but no
2550                    specific hardware devices are emulated yet.
2551    20060116        Minor updates to the mvme1600 emulation mode; the Eagle PCI bus
2552                    seems to work without much modification, and a 21143 can be
2553                    detected, interrupts might work (but untested so far).
2554                    Adding a fake MK48Txx (mkclock) device, for NetBSD/mvmeppc.
2555    20060121        Adding an aux control register for ARM. (A BIG thank you to
2556                    Olivier Houchard for tracking down this bug.)
2557    20060122        Adding more ARM instructions (smulXY), and dev_iq80321_7seg.
2558    20060124        Adding disassembly of more ARM instructions (mia*, mra/mar),
2559                    and some semi-bogus XScale and i80321 registers.
2560    20060201-02     Various minor updates. Moving the last machines out of
2561                    machine.c.
2562    20060204        Adding a -c command line option, for running debugger commands
2563                    before the simulation starts, but after all files have been
2564                    loaded.
2565                    Minor iq80321-related updates.
2566    20060209        Minor hacks (DEVINIT macro, etc).
2567                    Preparing for the generalization of the 64-bit dyntrans address
2568                    translation subsystem.
2569    20060216        Adding ARM ldrd (double-register load).
2570    20060217        Continuing on various ARM-related stuff.
2571    20060218        More progress on the ATA/wdc emulation for NetBSD/iq80321.
2572                    NetBSD/evbarm can now be installed :-)  Updating the docs, etc.
2573                    Continuing on Algor emulation.
2574    
2575    ==============  RELEASE 0.3.8  ==============
2576    
2577    20060219        Various minor updates. Removing the old MIPS16 skeleton code,
2578                    because it will need to be rewritten for dyntrans anyway.
2579    20060220-22     Removing the non-working dyntrans backend support.
2580                    Continuing on the 64-bit dyntrans virtual memory generalization.
2581    20060223        More work on the 64-bit vm generalization.
2582    20060225        Beginning on MIPS dyntrans load/store instructions.
2583                    Minor PPC updates (64-bit load/store, etc).
2584                    Fixes for the variable-instruction-length framework, some
2585                    minor AVR updates (a simple Hello World program works!).
2586                    Beginning on a skeleton for automatically generating documen-
2587                    tation (for devices etc.).
2588    20060226        PPC updates (adding some more 64-bit instructions, etc).
2589                    AVR updates (more instructions).
2590                    FINALLY found and fixed the zs bug, making NetBSD/macppc
2591                    accept the serial console.
2592    20060301        Adding more AVR instructions.
2593    20060304        Continuing on AVR-related stuff. Beginning on a framework for
2594                    cycle-accurate device emulation. Adding an experimental "PAL
2595                    TV" device (just a dummy so far).
2596    20060305        Adding more AVR instructions.
2597                    Adding a dummy epcom serial controller (for TS7200 emulation).
2598    20060310        Removing the emul() command from configuration files, so only
2599                    net() and machine() are supported.
2600                    Minor progress on the MIPS dyntrans rewrite.
2601    20060311        Continuing on the MIPS dyntrans rewrite (adding more
2602                    instructions, etc).
2603    20060315        Adding more instructions (sllv, srav, srlv, bgtz[l], blez[l],
2604                    beql, bnel, slti[u], various loads and stores).
2605    20060316        Removing the ALWAYS_SIGNEXTEND_32 option, since it was rarely
2606                    used.
2607                    Adding more MIPS dyntrans instructions, and fixing bugs.
2608    20060318        Implementing fast loads/stores for MIPS dyntrans (big/little
2609                    endian, 32-bit and 64-bit modes).
2610    20060320        Making MIPS dyntrans the default configure option; use
2611                    "--enable-oldmips" to use the old bintrans system.
2612                    Adding MIPS dyntrans dmult[u]; minor updates.
2613    20060322        Continuing... adding some more instructions.
2614                    Adding a simple skeleton for demangling C++ "_ZN" symbols.
2615    20060323        Moving src/debugger.c into a new directory (src/debugger/).
2616    20060324        Fixing the hack used to load PPC ELFs (useful for relocated
2617                    Linux/ppc kernels), and adding a dummy G3 machine mode.
2618    20060325-26     Beginning to experiment with GDB remote serial protocol
2619                    connections; adding a -G command line option for selecting
2620                    which TCP port to listen to.
2621    20060330        Beginning a major cleanup to replace things like "0x%016llx"
2622                    with more correct "0x%016"PRIx64, etc.
2623                    Continuing on the GDB remote serial protocol support.
2624    20060331        More cleanup, and some minor GDB remote progress.
2625    20060402        Adding a hack to the configure script, to allow compilation
2626                    on systems that lack PRIx64 etc.
2627    20060406        Removing the temporary FreeBSD/arm hack in dev_ns16550.c and
2628                    replacing it with a better fix from Olivier Houchard.
2629    20060407        A remote debugger (gdb or ddd) can now start and stop the
2630                    emulator using the GDB remote serial protocol, and registers
2631                    and memory can be read. MIPS only for now.
2632    20060408        More GDB progress: single-stepping also works, and also adding
2633                    support for ARM, PowerPC, and Alpha targets.
2634                    Continuing on the delay-slot-across-page-boundary issue.
2635    20060412        Minor update: beginning to add support for the SPARC target
2636                    to the remote GDB functionality.
2637    20060414        Various MIPS updates: adding more instructions for dyntrans
2638                    (eret, add), and making some exceptions work. Fixing a bug
2639                    in dmult[u].
2640                    Implementing the first SPARC instructions (sethi, or).
2641    20060415        Adding "magic trap" instructions so that PROM calls can be
2642                    software emulated in MIPS dyntrans.
2643                    Adding more MIPS dyntrans instructions (ddiv, dadd) and
2644                    fixing another bug in dmult.
2645    20060416        More MIPS dyntrans progress: adding [d]addi, movn, movz, dsllv,
2646                    rfi, an ugly hack for supporting R2000/R3000 style faked caches,
2647                    preliminary interrupt support, and various other updates and
2648                    bugfixes.
2649    20060417        Adding more SPARC instructions (add, sub, sll[x], sra[x],
2650                    srl[x]), and useful SPARC header definitions.
2651                    Adding the first (trivial) x86/AMD64 dyntrans instructions (nop,
2652                    cli/sti, stc/clc, std/cld, simple mov, inc ax). Various other
2653                    x86 updates related to variable instruction length stuff.
2654                    Adding unaligned loads/stores to the MIPS dyntrans mode (but
2655                    still using the pre-dyntrans (slow) imlementation).
2656    20060419        Fixing a MIPS dyntrans exception-in-delay-slot bug.
2657                    Removing the old "show opcode statistics" functionality, since
2658                    it wasn't really useful and isn't implemented for dyntrans.
2659                    Single-stepping (or running with instruction trace) now looks
2660                    ok with dyntrans with delay-slot architectures.
2661    20060420        Minor hacks (removing the -B command line option when compiled
2662                    for non-bintrans, and some other very minor updates).
2663                    Adding (slow) MIPS dyntrans load-linked/store-conditional.
2664    20060422        Applying fixes for bugs discovered by Nils Weller's nwcc
2665                    (static DEC memmap => now per machine, and adding an extern
2666                    keyword in cpu_arm_instr.c).
2667                    Finally found one of the MIPS dyntrans bugs that I've been
2668                    looking for (copy/paste spelling error BIG vs LITTLE endian in
2669                    cpu_mips_instr_loadstore.c for 16-bit fast stores).
2670                    FINALLY found the major MIPS dyntrans bug: slti vs sltiu
2671                    signed/unsigned code in cpu_mips_instr.c. :-)
2672                    Adding more MIPS dyntrans instructions (lwc1, swc1, bgezal[l],
2673                    ctc1, tlt[u], tge[u], tne, beginning on rdhwr).
2674                    NetBSD/hpcmips can now reach userland when using dyntrans :-)
2675                    Adding some more x86 dyntrans instructions.
2676                    Finally removed the old Alpha-specific virtual memory code,
2677                    and replaced it with the generic 64-bit version.
2678                    Beginning to add disassembly support for SPECIAL3 MIPS opcodes.
2679    20060423        Continuing on the delay-slot-across-page-boundary issue;
2680                    adding an end_of_page2 ic slot (like I had planned before, but
2681                    had removed for some reason).
2682                    Adding a quick-and-dirty fallback to legacy coprocessor 1
2683                    code (i.e. skipping dyntrans implementation for now).
2684                    NetBSD/hpcmips and NetBSD/pmax (when running on an emulated
2685                    R4400) can now be installed and run. :-)  (Many bugs left
2686                    to fix, though.)
2687                    Adding more MIPS dyntrans instructions: madd[u], msub[u].
2688                    Cleaning up the SPECIAL2 vs R5900/TX79/C790 "MMI" opcode
2689                    maps somewhat (disassembly and dyntrans instruction decoding).
2690    20060424        Adding an isa_revision field to mips_cpu_types.h, and making
2691                    sure that SPECIAL3 opcodes cause Reserved Instruction
2692                    exceptions on MIPS32/64 revisions lower than 2.
2693                    Adding the SPARC 'ba', 'call', 'jmpl/retl', 'and', and 'xor'
2694                    instructions.
2695    20060425        Removing the -m command line option ("run at most x
2696                    instructions") and -T ("single_step_on_bad_addr"), because
2697                    they never worked correctly with dyntrans anyway.
2698                    Freshening up the man page.
2699    20060428        Adding more MIPS dyntrans instructions: bltzal[l], idle.
2700                    Enabling MIPS dyntrans compare interrupts.
2701    20060429        FINALLY found the weird dyntrans bug, causing NetBSD etc. to
2702                    behave strangely: some floating point code (conditional
2703                    coprocessor branches) could not be reused from the old
2704                    non-dyntrans code. The "quick-and-dirty fallback" only appeared
2705                    to work. Fixing by implementing bc1* for MIPS dyntrans.
2706                    More MIPS instructions: [d]sub, sdc1, ldc1, dmtc1, dmfc1, cfc0.
2707                    Freshening up MIPS floating point disassembly appearance.
2708    20060430        Continuing on C790/R5900/TX79 disassembly; implementing 128-bit
2709                    "por" and "pextlw".
2710    20060504        Disabling -u (userland emulation) unless compiled as unstable
2711                    development version.
2712                    Beginning on freshening up the testmachine include files,
2713                    to make it easier to reuse those files (placing them in
2714                    src/include/testmachine/), and beginning on a set of "demos"
2715                    or "tutorials" for the testmachine functionality.
2716                    Minor updates to the MIPS GDB remote protocol stub.
2717                    Refreshing doc/experiments.html and gdb_remote.html.
2718                    Enabling Alpha emulation in the stable release configuration,
2719                    even though no guest OSes for Alpha can run yet.
2720    20060505        Adding a generic 'settings' object, which will contain
2721                    references to settable variables (which will later be possible
2722                    to access using the debugger).
2723    20060506        Updating dev_disk and corresponding demo/documentation (and
2724                    switching from SCSI to IDE disk types, so it actually works
2725                    with current test machines :-).
2726    20060510        Adding a -D_LARGEFILE_SOURCE hack for 64-bit Linux hosts,
2727                    so that fseeko() doesn't give a warning.
2728                    Updating the section about how dyntrans works (the "runnable
2729                    IR") in doc/intro.html.
2730                    Instruction updates (some x64=1 checks, some more R5900
2731                    dyntrans stuff: better mul/mult separation from MIPS32/64,
2732                    adding ei and di).
2733                    Updating MIPS cpuregs.h to a newer one (from NetBSD).
2734                    Adding more MIPS dyntrans instructions: deret, ehb.
2735    20060514        Adding disassembly and beginning implementation of SPARC wr
2736                    and wrpr instructions.
2737    20060515        Adding a SUN SPARC machine mode, with dummy SS20 and Ultra1
2738                    machines. Adding the 32-bit "rd psr" instruction.
2739    20060517        Disassembly support for the general SPARC rd instruction.
2740                    Partial implementation of the cmp (subcc) instruction.
2741                    Some other minor updates (making sure that R5900 processors
2742                    start up with the EIE bit enabled, otherwise Linux/playstation2
2743                    receives no interrupts).
2744    20060519        Minor MIPS updates/cleanups.
2745    20060521        Moving the MeshCube machine into evbmips; this seems to work
2746                    reasonably well with a snapshot of a NetBSD MeshCube kernel.
2747                    Cleanup/fix of MIPS config0 register initialization.
2748    20060529        Minor MIPS fixes, including a sign-extension fix to the
2749                    unaligned load/store code, which makes NetBSD/pmax on R3000
2750                    work better with dyntrans. (Ultrix and Linux/DECstation still
2751                    don't work, though.)
2752    20060530        Minor updates to the Alpha machine mode: adding an AlphaBook
2753                    mode, an LCA bus (forwarding accesses to an ISA bus), etc.
2754    20060531        Applying a bugfix for the MIPS dyntrans sc[d] instruction from
2755                    Ondrej Palkovsky. (Many thanks.)
2756    20060601        Minifix to allow ARM immediate msr instruction to not give
2757                    an error for some valid values.
2758                    More Alpha updates.
2759    20060602        Some minor Alpha updates.
2760    20060603        Adding the Alpha cmpbge instruction. NetBSD/alpha prints its
2761                    first boot messages :-) on an emulated Alphabook 1.
2762    20060612        Minor updates; adding a dev_ether.h include file for the
2763                    testmachine ether device. Continuing the hunt for the dyntrans
2764                    bug which makes Linux and Ultrix on DECstation behave
2765                    strangely... FINALLY found it! It seems to be related to
2766                    invalidation of the translation cache, on tlbw{r,i}. There
2767                    also seems to be some remaining interrupt-related problems.
2768    20060614        Correcting the implementation of ldc1/sdc1 for MIPS dyntrans
2769                    (so that it uses 16 32-bit registers if the FR bit in the
2770                    status register is not set).
2771    20060616        REMOVING BINTRANS COMPLETELY!
2772                    Removing the old MIPS interpretation mode.
2773                    Removing the MFHILO_DELAY and instruction delay stuff, because
2774                    they wouldn't work with dyntrans anyway.
2775    20060617        Some documentation updates (adding "NetBSD-archive" to some
2776                    URLs, and new Debian/DECstation installation screenshots).
2777                    Removing the "tracenull" and "enable-caches" configure options.
2778                    Improving MIPS dyntrans performance somewhat (only invalidate
2779                    translations if necessary, on writes to the entryhi register,
2780                    instead of doing it for all cop0 writes).
2781    20060618        More cleanup after the removal of the old MIPS emulation.
2782                    Trying to fix the MIPS dyntrans performance bugs/bottlenecks;
2783                    only semi-successful so far (for R3000).
2784    20060620        Minor update to allow clean compilation again on Tru64/Alpha.
2785    20060622        MIPS cleanup and fixes (removing the pc_last stuff, which
2786                    doesn't make sense with dyntrans anyway, and fixing a cross-
2787                    page-delay-slot-with-exception case in end_of_page).
2788                    Removing the old max_random_cycles_per_chunk stuff, and the
2789                    concept of cycles vs instructions for MIPS emulation.
2790                    FINALLY found and fixed the bug which caused NetBSD/pmax
2791                    clocks to behave strangely (it was a load to the zero register,
2792                    which was treated as a NOP; now it is treated as a load to a
2793                    dummy scratch register).
2794    20060623        Increasing the dyntrans chunk size back to
2795                    N_SAFE_DYNTRANS_LIMIT, instead of N_SAFE_DYNTRANS_LIMIT/2.
2796                    Preparing for a quick release, even though there are known
2797                    bugs, and performance for non-R3000 MIPS emulation is very
2798                    poor. :-/
2799                    Reverting to half the dyntrans chunk size again, because
2800                    NetBSD/cats seemed less stable with full size chunks. :(
2801                    NetBSD/sgimips 3.0 can now run :-)  (With release 0.3.8, only
2802                    NetBSD/sgimips 2.1 worked, not 3.0.)
2803    
2804    ==============  RELEASE 0.4.0  ==============
2805    
2806    20060624        Replacing the error-prone machine type initialization stuff
2807                    with something more reasonable.
2808                    Finally removing the old "cpu_run" kludge; moving around stuff
2809                    in machine.c and emul.c to better suit the dyntrans system.
2810                    Various minor dyntrans cleanups (renaming translate_address to
2811                    translate_v2p, and experimenting with template physpages).
2812    20060625        Removing the speed hack which separated the vph entries into
2813                    two halves (code vs data); things seem a lot more stable now.
2814                    Minor performance hack: R2000/R3000 cache isolation now only
2815                    clears address translations when going into isolation, not
2816                    when going out of it.
2817                    Fixing the MIPS interrupt problems by letting mtc0 immediately
2818                    cause interrupts.
2819    
2820    ==============  RELEASE 0.4.0.1  ==============
2821    

Legend:
Removed from v.4  
changed lines
  Added in v.26

  ViewVC Help
Powered by ViewVC 1.1.26