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 22 by dpavlin, Mon Oct 8 16:19:37 2007 UTC revision 44 by dpavlin, Mon Oct 8 16:22:56 2007 UTC
# Line 1  Line 1 
1  $Id: HISTORY,v 1.1121 2006/02/18 21:03:08 debug Exp $  $Id: HISTORY,v 1.1632 2007/09/11 21:46:35 debug Exp $
3  Changelog for GXemul:  Changelog for GXemul:
4  ---------------------  ---------------------
# Line 2574  Changelog for GXemul: Line 2574  Changelog for GXemul:
2575  ==============  RELEASE 0.3.8  ==============  ==============  RELEASE 0.3.8  ==============
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.)
2804    ==============  RELEASE 0.4.0  ==============
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.
2820    ==============  RELEASE  ==============
2822    20060626        Continuing on SPARC emulation (beginning on the 'save'
2823                    instruction, register windows, etc).
2824    20060629        Planning statistics gathering (new -s command line option),
2825                    and renaming speed_tricks to allow_instruction_combinations.
2826    20060630        Some minor manual page updates.
2827                    Various cleanups.
2828                    Implementing the -s command line option.
2829    20060701        FINALLY found the bug which prevented Linux and Ultrix from
2830                    running without the ugly hack in the R2000/R3000 cache isol
2831                    code; it was the phystranslation hint array which was buggy.
2832                    Removing the phystranslation hint code completely, for now.
2833    20060702        Minor dyntrans cleanups; invalidation of physpages now only
2834                    invalidate those parts of a page that have actually been
2835                    translated. (32 parts per page.)
2836                    Some MIPS non-R3000 speed fixes.
2837                    Experimenting with MIPS instruction combination for some
2838                    addiu+bne+sw loops, and sw+sw+sw.
2839                    Adding support (again) for larger-than-4KB pages in MIPS tlbw*.
2840                    Continuing on SPARC emulation: adding load/store instructions.
2841    20060704        Fixing a virtual vs physical page shift bug in the new tlbw*
2842                    implementation. Problem noticed by Jakub Jermar. (Many thanks.)
2843                    Moving rfe and eret to cpu_mips_instr.c, since that is the
2844                    only place that uses them nowadays.
2845    20060705        Removing the BSD license from the "testmachine" include files,
2846                    placing them in the public domain instead; this enables the
2847                    testmachine stuff to be used from projects which are
2848                    incompatible with the BSD license for some reason.
2849    20060707        Adding instruction combinations for the R2000/R3000 L1
2850                    I-cache invalidation code used by NetBSD/pmax 3.0, lui+addiu,
2851                    various branches followed by addiu or nop, and jr ra followed
2852                    by addiu. The time it takes to perform a full NetBSD/pmax R3000
2853                    install on the laptop has dropped from 573 seconds to 539. :-)
2854    20060708        Adding a framebuffer controller device (dev_fbctrl), which so
2855                    far can be used to change the fb resolution during runtime, but
2856                    in the future will also be useful for accelerated block fill/
2857                    copy, and possibly also simplified character output.
2858                    Adding an instruction combination for NetBSD/pmax' strlen.
2859    20060709        Minor fixes: reading raw files in src/file.c wasn't memblock
2860                    aligned, removing buggy multi_sw MIPS instruction combination,
2861                    etc.
2862    20060711        Adding a machine_qemu.c, which contains a "qemu_mips" machine.
2863                    (It mimics QEMU's MIPS machine mode, so that a test kernel
2864                    made for QEMU_MIPS also can run in GXemul... at least to some
2865                    extent.)  Adding a short section about how to run this mode to
2866                    doc/guestoses.html.
2867    20060714        Misc. minor code cleanups.
2868    20060715        Applying a patch which adds getchar() to promemul/yamon.c
2869                    (from Oleksandr Tymoshenko).
2870                    Adding yamon.h from NetBSD, and rewriting yamon.c to use it
2871                    (instead of ugly hardcoded numbers) + some cleanup.
2872    20060716        Found and fixed the bug which broke single-stepping of 64-bit
2873                    programs between 0.4.0 and (caused by too quick
2874                    refactoring and no testing). Hopefully this fix will not
2875                    break too many other things.
2876    20060718        Continuing on the 8253 PIT; it now works with Linux/QEMU_MIPS.
2877                    Re-adding the sw+sw+sw instr comb (the problem was that I had
2878                    ignored endian issues); however, it doesn't seem to give any
2879                    big performance gain.
2880    20060720        Adding a dummy Transputer mode (T414, T800 etc) skeleton (only
2881                    the 'j' and 'ldc' instructions are implemented so far). :-}
2882    20060721        Adding gtreg.h from NetBSD, updating dev_gt.c to use it, plus
2883                    misc. other updates to get Linux 2.6 for evbmips/malta working
2884                    (thanks to Alec Voropay for the details).
2885                    FINALLY found and fixed the bug which made tlbw* for non-R3000
2886                    buggy; it was a reference count problem in the dyntrans core.
2887    20060722        Testing stuff; things seem stable enough for a new release.
2889    ==============  RELEASE 0.4.1  ==============
2891    20060723        More Transputer instructions (pfix, nfix, opr, mint, ldl, ldlp,
2892                    eqc, rev, ajw, stl, stlf, sthf, sub, ldnl, ldnlp, ldpi, move,
2893                    wcnt, add, bcnt).
2894                    Adding more SPARC instructions (andcc, addcc, bl, rdpr).
2895                    Progress on the igsfb framebuffer used by NetBSD/netwinder.
2896                    Enabling 8-bit fills in dev_fb.
2897                    NetBSD/netwinder 3.0.1 can now run from a disk image :-)
2898    20060724        Cleanup/performance fix for 64-bit virtual translation table
2899                    updates (by removing the "timestamp" stuff). A full NetBSD/pmax
2900                    3.0.1 install for R4400 has dropped from 667 seconds to 584 :)
2901                    Fixing the igsfb "almost vga" color (it is 24-bit, not 18-bit).
2902                    Adding some MIPS instruction combinations (3*lw, and 3*addu).
2903                    The 8048 keyboard now turns off interrupt enable between the
2904                    KBR_ACK and the KBR_RSTDONE, to work better with Linux 2.6.
2905                    Not causing PPC DEC interrupts if PPC_NO_DEC is set for a
2906                    specific CPU; NetBSD/bebox gets slightly further than before.
2907                    Adding some more SPARC instructions: branches, udiv.
2908    20060725        Refreshing dev_pckbc.c a little.
2909                    Cleanups for the SH emulation mode, and adding the first
2910                    "compact" (16-bit) instructions: various simple movs, nop,
2911                    shll, stc, or, ldc.
2912    20060726        Adding dummy "pcn" (AMD PCnet NIC) PCI glue.
2913    20060727        Various cleanups; removing stuff from cpu.h, such as
2914                    running_translated (not really meaningful anymore), and
2915                    page flags (breaking into the debugger clears all translations
2916                    anyway).
2917                    Minor MIPS instruction combination updates.
2918    20060807        Expanding the 3*sw and 3*lw MIPS instruction combinations to
2919                    work with 2* and 4* too, resulting in a minor performance gain.
2920                    Implementing a usleep hack for the RM52xx/MIPS32/MIPS64 "wait"
2921                    instruction (when emulating 1 cpu).
2922    20060808        Experimenting with some more MIPS instruction combinations.
2923                    Implementing support for showing a (hardcoded 12x22) text
2924                    cursor in igsfb.
2925    20060809        Simplifying the NetBSD/evbmips (Malta) install instructions
2926                    somewhat (by using a NetBSD/pmax ramdisk install kernel).
2927    20060812        Experimenting more with the MIPS 'wait' instruction.
2928                    PCI configuration register writes can now be handled, which
2929                    allow PCI IDE controllers to work with NetBSD/Malta 3.0.1 and
2930                    NetBSD/cobalt 3.0.1. (Previously only NetBSD 2.1 worked.)
2931    20060813        Updating dev_gt.c based on numbers from Alec Voropay, to enable
2932                    Linux 2.6 to use PCI on Malta.
2933                    Continuing on Algor interrupt stuff.
2934    20060814        Adding support for routing ISA interrupts to two different
2935                    interrupts, making it possible to run NetBSD/algor :-)
2936    20060814-15     Testing for the release.
2938    ==============  RELEASE 0.4.2  ==============
2940    20060816        Adding a framework for emulated/virtual timers (src/timer.c),
2941                    using only setitimer().
2942                    Rewriting the mc146818 to use the new timer framework.
2943    20060817        Adding a call to gettimeofday() every now and then (once every
2944                    second, at the moment) to resynch the timer if it drifts.
2945                    Beginning to convert the ISA timer interrupt mechanism (8253
2946                    and 8259) to use the new timer framework.
2947                    Removing the -I command line option.
2948    20060819        Adding the -I command line option again, with new semantics.
2949                    Working on Footbridge timer interrupts; NetBSD/NetWinder and
2950                    NetBSD/CATS now run at correct speed, but unfortunately with
2951                    HUGE delays during bootup.
2952    20060821        Some minor m68k updates. Adding the first instruction: nop. :)
2953                    Minor Alpha emulation updates.
2954    20060822        Adding a FreeBSD development specific YAMON environment
2955                    variable ("khz") (as suggested by Bruce M. Simpson).
2956                    Moving YAMON environment variable initialization from
2957                    machine_evbmips.c into promemul/yamon.c, and adding some more
2958                    variables.
2959                    Continuing on the LCA PCI bus controller (for Alpha machines).
2960    20060823        Continuing on the timer stuff: experimenting with MIPS count/
2961                    compare interrupts connected to the timer framework.
2962    20060825        Adding bogus SCSI commands 0x51 (SCSICDROM_READ_DISCINFO) and
2963                    0x52 (SCSICDROM_READ_TRACKINFO) to the SCSI emulation layer,
2964                    to allow NetBSD/pmax 4.0_BETA to be installed from CDROM.
2965                    Minor updates to the LCA PCI controller.
2966    20060827        Implementing a CHIP8 cpu mode, and a corresponding CHIP8
2967                    machine, for fun. Disassembly support for all instructions,
2968                    and most of the common instructions have been implemented: mvi,
2969                    mov_imm, add_imm, jmp, rand, cls, sprite, skeq_imm, jsr,
2970                    skne_imm, bcd, rts, ldr, str, mov, or, and, xor, add, sub,
2971                    font, ssound, sdelay, gdelay, bogus skup/skpr, skeq, skne.
2972    20060828        Beginning to convert the CHIP8 cpu in the CHIP8 machine to a
2973                    (more correct) RCA 180x cpu. (Disassembly for all 1802
2974                    instructions has been implemented, but no execution yet, and
2975                    no 1805 extended instructions.)
2976    20060829        Minor Alpha emulation updates.
2977    20060830        Beginning to experiment a little with PCI IDE for SGI O2.
2978                    Fixing the cursor key mappings for MobilePro 770 emulation.
2979                    Fixing the LK201 warning caused by recent NetBSD/pmax.
2980                    The MIPS R41xx standby, suspend, and hibernate instructions now
2981                    behave like the RM52xx/MIPS32/MIPS64 wait instruction.
2982                    Fixing dev_wdc so it calculates correct (64-bit) offsets before
2983                    giving them to diskimage_access().
2984    20060831        Continuing on Alpha emulation (OSF1 PALcode).
2985    20060901        Minor Alpha updates; beginning on virtual memory pagetables.
2986                    Removed the limit for max nr of devices (in preparation for
2987                    allowing devices' base addresses to be changed during runtime).
2988                    Adding a hack for MIPS [d]mfc0 select 0 (except the count
2989                    register), so that the coproc register is simply copied.
2990                    The MIPS suspend instruction now exits the emulator, instead
2991                    of being treated as a wait instruction (this causes NetBSD/
2992                    hpcmips to get correct 'halt' behavior).
2993                    The VR41xx RTC now returns correct time.
2994                    Connecting the VR41xx timer to the timer framework (fixed at
2995                    128 Hz, for now).
2996                    Continuing on SPARC emulation, adding more instructions:
2997                    restore, ba_xcc, ble. The rectangle drawing demo works :)
2998                    Removing the last traces of the old ENABLE_CACHE_EMULATION
2999                    MIPS stuff (not usable with dyntrans anyway).
3000    20060902        Splitting up src/net.c into several smaller files in its own
3001                    subdirectory (src/net/).
3002    20060903        Cleanup of the files in src/net/, to make them less ugly.
3003    20060904        Continuing on the 'settings' subsystem.
3004                    Minor progress on the SPARC emulation mode.
3005    20060905        Cleanup of various things, and connecting the settings
3006                    infrastructure to various subsystems (emul, machine, cpu, etc).
3007                    Changing the lk201 mouse update routine to not rely on any
3008                    emulated hardware framebuffer cursor coordinates, but instead
3009                    always do (semi-usable) relative movements.
3010    20060906        Continuing on the lk201 mouse stuff. Mouse behaviour with
3011                    multiple framebuffers (which was working in Ultrix) is now
3012                    semi-broken (but it still works, in a way).
3013                    Moving the documentation about networking into its own file
3014                    (networking.html), and refreshing it a bit. Adding an example
3015                    of how to use ethernet frame direct-access (udp_snoop).
3016    20060907        Continuing on the settings infrastructure.
3017    20060908        Minor updates to SH emulation: for 32-bit emulation: delay
3018                    slots and the 'jsr @Rn' instruction. I'm putting 64-bit SH5 on
3019                    ice, for now.
3020    20060909-10     Implementing some more 32-bit SH instructions. Removing the
3021                    64-bit mode completely. Enough has now been implemented to run
3022                    the rectangle drawing demo. :-)
3023    20060912        Adding more SH instructions.
3024    20060916        Continuing on SH emulation (some more instructions: div0u,
3025                    div1, rotcl/rotcr, more mov instructions, dt, braf, sets, sett,
3026                    tst_imm, dmuls.l, subc, ldc_rm_vbr, movt, clrt, clrs, clrmac).
3027                    Continuing on the settings subsystem (beginning on reading/
3028                    writing settings, removing bugs, and connecting more cpus to
3029                    the framework).
3030    20060919        More work on SH emulation; adding an ldc banked instruction,
3031                    and attaching a 640x480 framebuffer to the Dreamcast machine
3032                    mode (NetBSD/dreamcast prints the NetBSD copyright banner :-),
3033                    and then panics).
3034    20060920        Continuing on the settings subsystem.
3035    20060921        Fixing the Footbridge timer stuff so that NetBSD/cats and
3036                    NetBSD/netwinder boot up without the delays.
3037    20060922        Temporarily hardcoding MIPS timer interrupt to 100 Hz. With
3038                    'wait' support disabled, NetBSD/malta and Linux/malta run at
3039                    correct speed.
3040    20060923        Connecting dev_gt to the timer framework, so that NetBSD/cobalt
3041                    runs at correct speed.
3042                    Moving SH4-specific memory mapped registers into its own
3043                    device (dev_sh4.c).
3044                    Running with -N now prints "idling" instead of bogus nr of
3045                    instrs/second (which isn't valid anyway) while idling.
3046    20060924        Algor emulation should now run at correct speed.
3047                    Adding disassembly support for some MIPS64 revision 2
3048                    instructions: ext, dext, dextm, dextu.
3049    20060926        The timer framework now works also when the MIPS wait
3050                    instruction is used.
3051    20060928        Re-implementing checks for coprocessor availability for MIPS
3052                    cop0 instructions. (Thanks to Carl van Schaik for noticing the
3053                    lack of cop0 availability checks.)
3054    20060929        Implementing an instruction combination hack which treats
3055                    NetBSD/pmax' idle loop as a wait-like instruction.
3056    20060930        The ENTRYHI_R_MASK was missing in (at least) memory_mips_v2p.c,
3057                    causing TLB lookups to sometimes succeed when they should have
3058                    failed. (A big thank you to Juli Mallett for noticing the
3059                    problem.)
3060                    Adding disassembly support for more MIPS64 revision 2 opcodes
3061                    (seb, seh, wsbh, jalr.hb, jr.hb, synci, ins, dins, dinsu,
3062                    dinsm, dsbh, dshd, ror, dror, rorv, drorv, dror32). Also
3063                    implementing seb, seh, dsbh, dshd, and wsbh.
3064                    Implementing an instruction combination hack for Linux/pmax'
3065                    idle loop, similar to the NetBSD/pmax case.
3066    20061001        Changing the NetBSD/sgimips install instructions to extract
3067                    files from an iso image, instead of downloading them via ftp.
3068    20061002        More-than-31-bit userland addresses in memory_mips_v2p.c were
3069                    not actually working; applying a fix from Carl van Schaik to
3070                    enable them to work + making some other updates (adding kuseg
3071                    support).
3072                    Fixing hpcmips (vr41xx) timer initialization.
3073                    Experimenting with O(n)->O(1) reduction in the MIPS TLB lookup
3074                    loop. Seems to work both for R3000 and non-R3000.
3075    20061003        Continuing a little on SH emulation (adding more control
3076                    registers; mini-cleanup of memory_sh.c).
3077    20061004        Beginning on a dev_rtc, a clock/timer device for the test
3078                    machines; also adding a demo, and some documentation.
3079                    Fixing a bug in SH "mov.w @(disp,pc),Rn" (the result wasn't
3080                    sign-extended), and adding the addc and ldtlb instructions.
3081    20061005        Contining on SH emulation: virtual to physical address
3082                    translation, and a skeleton exception mechanism.
3083    20061006        Adding more SH instructions (various loads and stores, rte,
3084                    negc, muls.w, various privileged register-move instructions).
3085    20061007        More SH instructions: various move instructions, trapa, div0s,
3086                    float, fdiv, ftrc.
3087                    Continuing on dev_rtc; removing the rtc demo.
3088    20061008        Adding a dummy Dreamcast PROM module. (Homebrew Dreamcast
3089                    programs using KOS libs need this.)
3090                    Adding more SH instructions: "stc vbr,rn", rotl, rotr, fsca,
3091                    fmul, fadd, various floating-point moves, etc. A 256-byte
3092                    demo for Dreamcast runs :-)
3093    20061012        Adding the SH "lds Rm,pr" and bsr instructions.
3094    20061013        More SH instructions: "sts fpscr,rn", tas.b, and some more
3095                    floating point instructions, cmp/str, and more moves.
3096                    Adding a dummy dev_pvr (Dreamcast graphics controller).
3097    20061014        Generalizing the expression evaluator (used in the built-in
3098                    debugger) to support parentheses and +-*/%^&|.
3099    20061015        Removing the experimental tlb index hint code in
3100                    mips_memory_v2p.c, since it didn't really have any effect.
3101    20061017        Minor SH updates; adding the "sts pr,Rn", fcmp/gt, fneg,
3102                    frchg, and some other instructions. Fixing missing sign-
3103                    extension in an 8-bit load instruction.
3104    20061019        Adding a simple dev_dreamcast_rtc.
3105                    Implementing memory-mapped access to the SH ITLB/UTLB arrays.
3106    20061021        Continuing on various SH and Dreamcast things: sh4 timers,
3107                    debug messages for dev_pvr, fixing some virtual address
3108                    translation bugs, adding the bsrf instruction.
3109                    The NetBSD/dreamcast GENERIC_MD kernel now reaches userland :)
3110                    Adding a dummy dev_dreamcast_asic.c (not really useful yet).
3111                    Implementing simple support for Store Queues.
3112                    Beginning on the PVR Tile Accelerator.
3113    20061022        Generalizing the PVR framebuffer to support off-screen drawing,
3114                    multiple bit-depths, etc. (A small speed penalty, but most
3115                    likely worth it.)
3116                    Adding more SH instructions (mulu.w, fcmp/eq, fsub, fmac,
3117                    fschg, and some more); correcting bugs in "fsca" and "float".
3118    20061024        Adding the SH ftrv (matrix * vector) instruction. Marcus
3119                    Comstedt's "tatest" example runs :) (wireframe only).
3120                    Correcting disassembly for SH floating point instructions that
3121                    use the xd* registers.
3122                    Adding the SH fsts instruction.
3123                    In memory_device_dyntrans_access(), only the currently used
3124                    range is now invalidated, and not the entire device range.
3125    20061025        Adding a dummy AVR32 cpu mode skeleton.
3126    20061026        Various Dreamcast updates; beginning on a Maple bus controller.
3127    20061027        Continuing on the Maple bus. A bogus Controller, Keyboard, and
3128                    Mouse can now be detected by NetBSD and KOS homebrew programs.
3129                    Cleaning up the SH4 Timer Management Unit, and beginning on
3130                    SH4 interrupts.
3131                    Implementing the Dreamcast SYSASIC.
3132    20061028        Continuing on the SYSASIC.
3133                    Adding the SH fsqrt instruction.
3134                    memory_sh.c now actually scans the ITLB.
3135                    Fixing a bug in dev_sh4.c, related to associative writes into
3136                    the memory-mapped UTLB array. NetBSD/dreamcast now reaches
3137                    userland stably, and prints the "Terminal type?" message :-]
3138                    Implementing enough of the Dreamcast keyboard to make NetBSD
3139                    accept it for input.
3140                    Enabling SuperH for stable (non-development) builds.
3141                    Adding NetBSD/dreamcast to the documentation, although it
3142                    doesn't support root-on-nfs yet.
3143    20061029        Changing usleep(1) calls in the debugger to usleep(10000)
3144                    (according to Brian Foley, this makes GXemul run better on
3145                    MacOS X).
3146                    Making the Maple "Controller" do something (enough to barely
3147                    interact with dcircus.elf).
3148    20061030-31     Some progress on the PVR. More test programs start running (but
3149                    with strange output).
3150                    Various other SH4-related updates.
3151    20061102        Various Dreamcast and SH4 updates; more KOS demos run now.
3152    20061104        Adding a skeleton dev_mb8696x.c (the Dreamcast's LAN adapter).
3153    20061105        Continuing on the MB8696x; NetBSD/dreamcast detects it as mbe0.
3154                    Testing for the release.
3156    ==============  RELEASE 0.4.3  ==============
3158    20061107        Adding a new disk image option (-d o...) which sets the ISO9660
3159                    filesystem base offset; also making some other hacks to allow
3160                    NetBSD/dreamcast and homebrew demos/games to boot directly
3161                    from a filesystem image.
3162                    Moving Dreamcast-specific stuff in the documentation to its
3163                    own page (dreamcast.html).
3164                    Adding a border to the Dreamcast PVR framebuffer.
3165    20061108        Adding a -T command line option (again?), for halting the
3166                    emulator on unimplemented memory accesses.
3167    20061109        Continuing on various SH4 and Dreamcast related things.
3168                    The emulator should now halt on more unimplemented device
3169                    accesses, instead of just printing a warning, forcing me to
3170                    actually implement missing stuff :)
3171    20061111        Continuing on SH4 and Dreamcast stuff.
3172                    Adding a bogus Landisk (SH4) machine mode.
3173    20061112        Implementing some parts of the Dreamcast GDROM device. With
3174                    some ugly hacks, NetBSD can (barely) mount an ISO image.
3175    20061113        NetBSD/dreamcast now starts booting from the Live CD image,
3176                    but crashes randomly quite early on in the boot process.
3177    20061122        Beginning on a skeleton interrupt.h and interrupt.c for the
3178                    new interrupt subsystem.
3179    20061124        Continuing on the new interrupt system; taking the first steps
3180                    to attempt to connect CPUs (SuperH and MIPS) and devices
3181                    (dev_cons and SH4 timer interrupts) to it. Many things will
3182                    probably break from now on.
3183    20061125        Converting dev_ns16550, dev_8253 to the new interrupt system.
3184                    Attempting to begin to convert the ISA bus.
3185    20061130        Incorporating a patch from Brian Foley for the configure
3186                    script, which checks for X11 libs in /usr/X11R6/lib64 (which
3187                    is used on some Linux systems).
3188    20061227        Adding a note in the man page about booting from Dreamcast
3189                    CDROM images (i.e. that no external kernel is needed).
3190    20061229        Continuing on the interrupt system rewrite: beginning to
3191                    convert more devices, adding abort() calls for legacy interrupt
3192                    system calls so that everything now _has_ to be rewritten!
3193                    Almost all machine modes are now completely broken.
3194    20061230        More progress on removing old interrupt code, mostly related
3195                    to the ISA bus + devices, the LCA bus (on AlphaBook1), and
3196                    the Footbridge bus (for CATS). And some minor PCI stuff.
3197                    Connecting the ARM cpu to the new interrupt system.
3198                    The CATS, NetWinder, and QEMU_MIPS machine modes now work with
3199                    the new interrupt system :)
3200    20061231        Connecting PowerPC CPUs to the new interrupt system.
3201                    Making PReP machines (IBM 6050) work again.
3202                    Beginning to convert the GT PCI controller (for e.g. Malta
3203                    and Cobalt emulation). Some things work, but not everything.
3204                    Updating Copyright notices for 2007.
3205    20070101        Converting dev_kn02 from legacy style to devinit; the 3max
3206                    machine mode now works with the new interrupt system :-]
3207    20070105        Beginning to convert the SGI O2 machine to the new interrupt
3208                    system; finally converting O2 (IP32) devices to devinit, etc.
3209    20070106        Continuing on the interrupt system redesign/rewrite; KN01
3210                    (PMAX), KN230, and Dreamcast ASIC interrupts should work again,
3211                    moving out stuff from machine.h and devices.h into the
3212                    corresponding devices, beginning the rewrite of i80321
3213                    interrupts, etc.
3214    20070107        Beginning on the rewrite of Eagle interrupt stuff (PReP, etc).
3215    20070117        Beginning the rewrite of Algor (V3) interrupts (finally
3216                    changing dev_v3 into devinit style).
3217    20070118        Removing the "bus" registry concept from machine.h, because
3218                    it was practically meaningless.
3219                    Continuing on the rewrite of Algor V3 ISA interrupts.
3220    20070121        More work on Algor interrupts; they are now working again,
3221                    well enough to run NetBSD/algor. :-)
3222    20070122        Converting VR41xx (HPCmips) interrupts. NetBSD/hpcmips
3223                    can be installed using the new interrupt system :-)
3224    20070123        Making the testmips mode work with the new interrupt system.
3225    20070127        Beginning to convert DEC5800 devices to devinit, and to the
3226                    new interrupt system.
3227                    Converting Playstation 2 devices to devinit, and converting
3228                    the interrupt system. Also fixing a severe bug: the interrupt
3229                    mask register on Playstation 2 is bitwise _toggled_ on writes.
3230    20070128        Removing the dummy NetGear machine mode and the 8250 device
3231                    (which was only used by the NetGear machine).
3232                    Beginning to convert the MacPPC GC (Grand Central) interrupt
3233                    controller to the new interrupt system.
3234                    Converting Jazz interrupts (PICA61 etc.) to the new interrupt
3235                    system. NetBSD/arc can be installed again :-)
3236                    Fixing the JAZZ timer (hardcoding it at 100 Hz, works with
3237                    NetBSD and it is better than a completely dummy timer as it
3238                    was before).
3239                    Converting dev_mp to the new interrupt system, although I
3240                    haven't had time to actually test it yet.
3241                    Completely removing src/machines/interrupts.c, cpu_interrupt
3242                    and cpu_interrupt_ack in src/cpu.c, and
3243                    src/include/machine_interrupts.h! Adding fatal error messages
3244                    + abort() in the few places that are left to fix.
3245                    Converting dev_z8530 to the new interrupt system.
3246                    FINALLY removing the md_int struct completely from the
3247                    machine struct.
3248                    SH4 fixes (adding a PADDR invalidation in the ITLB replacement
3249                    code in memory_sh.c); the NetBSD/dreamcast LiveCD now runs
3250                    all the way to the login prompt, and can be interacted with :-)
3251                    Converting the CPC700 controller (PCI and interrupt controller
3252                    for PM/PPC) to the new interrupt system.
3253    20070129        Fixing MACE ISA interrupts (SGI IP32 emulation). Both NetBSD/
3254                    sgimips' and OpenBSD/sgi's ramdisk kernels can now be
3255                    interacted with again.
3256    20070130        Moving out the MIPS multi_lw and _sw instruction combinations
3257                    so that they are auto-generated at compile time instead.
3258    20070131        Adding detection of amd64/x86_64 hosts in the configure script,
3259                    for doing initial experiments (again :-) with native code
3260                    generation.
3261                    Adding a -k command line option to set the size of the dyntrans
3262                    cache, and a -B command line option to disable native code
3263                    generation, even if GXemul was compiled with support for
3264                    native code generation for the specific host CPU architecture.
3265    20070201        Experimenting with a skeleton for native code generation.
3266                    Changing the default behaviour, so that native code generation
3267                    is now disabled by default, and has to be enabled by using
3268                    -b on the command line.
3269    20070202        Continuing the native code generation experiments.
3270                    Making PCI interrupts work for Footbridge again.
3271    20070203        More native code generation experiments.
3272                    Removing most of the native code generation experimental code,
3273                    it does not make sense to include any quick hacks like this.
3274                    Minor cleanup/removal of some more legacy MIPS interrupt code.
3275    20070204        Making i80321 interrupts work again (for NetBSD/evbarm etc.),
3276                    and fixing the timer at 100 Hz.
3277    20070206        Experimenting with removing the wdc interrupt slowness hack.
3278    20070207        Lowering the number of dyntrans TLB entries for MIPS from
3279                    192 to 128, resulting in a minor speed improvement.
3280                    Minor optimization to the code invalidation routine in
3281                    cpu_dyntrans.c.
3282    20070208        Increasing (experimentally) the nr of dyntrans instructions per
3283                    loop from 60 to 120.
3284    20070210        Commenting out (experimentally) the dyntrans_device_danger
3285                    detection in memory_rw.c.
3286                    Changing the testmips and baremips machines to use a revision 2
3287                    MIPS64 CPU by default, instead of revision 1.
3288                    Removing the dummy i960, IA64, x86, AVR32, and HP PA-RISC
3289                    files, the PC bios emulation, and the Olivetti M700 (ARC) and
3290                    db64360 emulation modes.
3291    20070211        Adding an "mp" demo to the demos directory, which tests the
3292                    SMP functionality of the testmips machine.
3293                    Fixing PReP interrupts some more. NetBSD/prep now boots again.
3294    20070216        Adding a "nop workaround" for booting Mach/PMAX to the
3295                    documentation; thanks to Artur Bujdoso for the values.
3296                    Converting more of the MacPPC interrupt stuff to the new
3297                    system.
3298                    Beginning to convert BeBox interrupts to the new system.
3299                    PPC603e should NOT have the PPC_NO_DEC flag! Removing it.
3300                    Correcting BeBox clock speed (it was set to 100 in the NetBSD
3301                    bootinfo block, but should be 33000000/4), allowing NetBSD
3302                    to start without using the (incorrect) PPC_NO_DEC hack.
3303    20070217        Implementing (slow) AltiVec vector loads and stores, allowing
3304                    NetBSD/macppc to finally boot using the GENERIC kernel :-)
3305                    Updating the documentation with install instructions for
3306                    NetBSD/macppc.
3307    20070218-19     Regression testing for the release.
3309    ==============  RELEASE 0.4.4  ==============
3311    20070224        Minor update to the initialization of the ns16550 in
3312                    machine_walnut.c, to allow that machine type to boot with the
3313                    new interrupt system (although it is still a dummy machine).
3314                    Adding a wdc at 0x14000000 to machine_landisk.c, and fixing
3315                    the SCIF serial interrupts of the SH4 cpu enough to get
3316                    NetBSD/landisk booting from a disk image :-)  Adding a
3317                    preliminary install instruction skeleton to guestoses.html.
3318    20070306        Adding SH-IPL+G PROM emulation, and also passing the "end"
3319                    symbol in r5 on bootup, for Landisk emulation. This is enough
3320                    to get OpenBSD/landisk to install :)  Adding a preliminary
3321                    install instruction skeleton to the documentation. SuperH
3322                    emulation is still shaky, though :-/
3323    20070307        Fixed a strangeness in memory_sh.c (read/write was never
3324                    returned for any page). (Unknown whether this fixes any actual
3325                    problems, though.)
3326    20070308        dev_ram.c fix: invalidate code translations on writes to
3327                    RAM, emulated as separate devices. Linux/dreamcast gets
3328                    further in the boot process than before, but still bugs out
3329                    in userland.
3330                    Fixing bugs in the "stc.l gbr,@-rN" and "ldc.l @rN+,gbr" SuperH
3331                    instructions (they should NOT check the MD bit), allowing the
3332                    Linux/dreamcast Live CD to reach userland correctly :-)
3333    20070310        Changing the cpu name "Alpha" in src/useremul.c to "21364" to
3334                    unbreak userland syscall emulation of FreeBSD/Alpha binaries.
3335    20070314        Applying a patch from Michael Yaroslavtsev which fixes the
3336                    previous Linux lib64 patch to the configure script.
3337    20070315        Adding a (dummy) sun4v machine type, and SPARC T1 cpu type.
3338    20070316        Creating a new directory, src/disk, and moving diskimage.c
3339                    to it. Separating out bootblock loading stuff from emul.c into
3340                    new files in src/disk.
3341                    Adding some more SPARC registers.
3342    20070318        Preparing/testing for a minirelease,
3344    ==============  RELEASE  ==============
3346    20070324        Adding a "--debug" option to the configure script, to disable
3347                    optimizations in unstable development builds.
3348                    Moving out SCSI-specific stuff from diskimage.c into a new
3349                    diskimage_scsicmd.c.
3350                    Applying Håvard Eidnes' patch for SCSICDROM_READ_DISKINFO and
3351                    SCSICDROM_READ_TRACKINFO. (Not really tested yet.)
3352                    Implementing disk image "overlays" (to allow simple roll-back
3353                    to previous disk state). Adding a 'V' disk flag for this, and
3354                    updating the man page and misc.html.
3355    20070325        Stability fix to cpu_dyntrans.c, when multiple physical pages
3356                    share the same initial table entry. (The ppp == NULL check
3357                    should be physpage_ofs == 0.) Bug found by analysing GXemul
3358                    against a version patched for Godson.
3359                    Fixing a second occurance of the same problem (also in
3360                    cpu_dyntrans.c).
3361                    Fixing a MAJOR physical page leak in cpu_dyntrans.c; pages
3362                    weren't _added_ to the set of translated pages, they _replaced_
3363                    all previous pages. It's amazing that this bug has been able
3364                    to live for this long. (Triggered when emulating >128MB RAM.)
3365    20070326        Removing the GDB debugging stub support; it was too hackish
3366                    and ugly.
3367    20070328        Moving around some native code generation skeleton code.
3368    20070329        The -lm check in the configure script now also checks for sin()
3369                    in addition to sqrt(). (Thanks to Nigel Horne for noticing that
3370                    sqrt was not enough on Fedora Core 6.) (Not verified yet.)
3371    20070330        Fixing an indexing bug in dev_sh4.c, found by using gcc version
3372                    4.3.0 20070323.
3373    20070331        Some more experimentation with native code generation.
3374    20070404        Attempting to fix some more SH4 SCIF interrupt bugs; rewriting
3375                    the SH interrupt assertion/deassertion code somewhat.
3376    20070410        Splitting src/file.c into separate files in src/file/.
3377                    Cleanup: Removing the dummy TS7200, Walnut, PB1000, and
3378                    Meshcube emulation modes, and dev_epcom and dev_au1x00.
3379                    Removing the experimental CHIP8/RCA180x code; it wasn't really
3380                    working much lately, anyway. It was fun while it lasted.
3381                    Also removing the experimental Transputer CPU support.
3382    20070412        Moving the section about how the dynamic translation system
3383                    works from intro.html to a separate translation.html file.
3384                    Minor SH fixes; attempting to get OpenBSD/landisk to run
3385                    without randomly bugging out, but no success yet.
3386    20070413        SH SCI (serial bit interface) should now work together with a
3387                    (new) RS5C313 clock device (for Landisk emulation).
3388    20070414        Moving Redhat/MIPS down from supported to experimental, in
3389                    guestoses.html.
3390                    Preparing for a new release; doing some regression testing etc.
3392    ==============  RELEASE 0.4.5  ==============
3394    20070415        Landisk PCLOCK should be 33.33 MHz, not 50 MHz. (This makes
3395                    the clock run at correct speed.)
3396                    FINALLY found and fixed the bug which caused OpenBSD/landisk
3397                    to randomly bug out: an &-sign was missing in the special case
3398                    handling of FPSCR in the 'LDS.L @Rm+,FPSCR' instruction.
3399                    Adding similar special case handling for 'LDC.L @Rm+,SR'
3400                    (calling sh_update_sr() instead of just loading).
3401                    Implementing the 'FCNVSD FPUL,DRn' and 'FCNVDS DRm,FPUL'
3402                    SuperH instructions.
3403                    The 'LDC Rm,SR' instruction now immediately breaks out of the
3404                    dyntrans loop if an interrupt is to be triggered.
3405    20070416        In memory_rw.c, if mapping a page as writable, make sure to
3406                    invalidate code translations even if the data access was a
3407                    read.
3408                    Minor SuperH updates.
3409    20070418        Removing the dummy M68K emulation mode.
3410                    Minor SH update (turning unnecessary sts_mach_rn, sts_macl_rn,
3411                    and sts_pr_rn instruction handlers into mov_rm_rn).
3412    20070419        Beginning to add a skeleton for an M88K mode: Adding a hack to
3413                    allow OpenBSD/m88k a.out binaries to be loaded, and disassembly
3414                    of a few simple 88K instructions.
3415                    Commenting out the 'LDC Rm,SR' fix from a few days ago, because
3416                    it made Linux/dreamcast bug out.
3417                    Adding a hack to dev_sh4.c (an extra translation cache
3418                    invalidation), which allows OpenBSD/landisk to boot ok after
3419                    an install. Upgrading the Landisk machine mode to stable,
3420                    updating documentation, etc.
3421    20070420        Experimenting with adding a PCI controller (pcic) to dev_sh4.
3422                    Adding a dummy Realtek 8139C+ skeleton device (dev_rtl8139c).
3423                    Implementing the first M88K instructions (br, or[.u] imm), and
3424                    adding disassembly of some more instructions.
3425    20070421        Continuing a little on dev_rtl8139c.
3426    20070422        Implementing the 9346 EEPROM "read" command for dev_rtl8139c.
3427                    Finally found and fixed an old bug in the log n symbol search
3428                    (it sometimes missed symbols). Debug trace (-i, -t etc) should
3429                    now show more symbols. :-)
3430    20070423        Continuing a little on M88K disassembly.
3431    20070428        Fixing a memset arg order bug in src/net/net.c (thanks to
3432                    Nigel Horne for noticing the bug).
3433                    Applying parts of a patch from Carl van Schaik to clear out
3434                    bottom bits of MIPS addresses more correctly, when using large
3435                    page sizes, and doing some other minor cleanup/refactoring.
3436                    Fixing a couple of warnings given by gcc with the -W option (a
3437                    few more warnings than just plain -Wall).
3438                    Reducing SuperH dyntrans physical address space from 64-bit to
3439                    32-bit (since SH5/SH64 isn't imlemented yet anyway).
3440                    Adding address-to-symbol annotation to a few more instructions
3441                    in the SuperH instruction trace output.
3442                    Beginning regression testing for the next release.
3443                    Reverting the value of SCIF_DELAYED_TX_VALUE from 1 to 2,
3444                    because OpenBSD/landisk may otherwise hang randomly.
3445    20070429        The ugly hack/workaround to get OpenBSD/landisk booting without
3446                    crashing does NOT work anymore (with the April 21 snapshot
3447                    of OpenBSD/landisk). Strangely enough, removing the hack
3448                    completely causes OpenBSD/landisk to work (!).
3449                    More regression testing (re-testing everything SuperH-related,
3450                    and some other things).
3451                    Cobalt interrupts were actually broken; fixing by commenting
3452                    out the DEC21143s in the Cobalt machine.
3453    20070430        More regression testing.
3454    20070501        Updating the OpenBSD/landisk install instructions to use
3455                    4.1 instead of the current snapshot.
3456                    GAAAH! OpenBSD/landisk 4.1 _needs_ the ugly hack/workaround;
3457                    reintroducing it again. (The 4.1 kernel is actually from
3458                    2007-03-11.)
3459                    Simplifying the NetBSD/evbarm install instructions a bit.
3460                    More regression testing.
3462    ==============  RELEASE  ==============
3464    20070501        Continuing a little on m88k disassembly (control registers,
3465                    more instructions).
3466                    Adding a dummy mvme88k machine mode.
3467    20070502        Re-adding MIPS load/store alignment exceptions.
3468    20070503        Implementing more of the M88K disassembly code.
3469    20070504        Adding disassembly of some more M88K load/store instructions.
3470                    Implementing some relatively simple M88K instructions (br.n,
3471                    xor[.u] imm, and[.u] imm).
3472    20070505        Implementing M88K three-register and, or, xor, and jmp[.n],
3473                    bsr[.n] including function call trace stuff.
3474                    Applying a patch from Bruce M. Simpson which implements the
3475                    SYSCON_BOARD_CPU_CLOCK_FREQ_ID object of the syscon call in
3476                    the yamon PROM emulation.
3477    20070506        Implementing M88K bb0[.n] and bb1[.n], and skeletons for
3478                    ldcr and stcr (although no control regs are implemented yet).
3479    20070509        Found and fixed the bug which caused Linux for QEMU_MIPS to
3480                    stop working in It was a faulty change to the MIPS
3481                    'sc' and 'scd' instructions I made while going through gcc -W
3482                    warnings on 20070428.
3483    20070510        Updating the Linux/QEMU_MIPS section in guestoses.html to
3484                    use mips-test-0.2.tar.gz instead of 0.1.
3485                    A big thank you to Miod Vallat for sending me M88K manuals.
3486                    Implementing more M88K instructions (addu, subu, div[u], mulu,
3487                    ext[u], clr, set, cmp).
3488    20070511        Fixing bugs in the M88K "and" and "and.u" instructions (found
3489                    by comparing against the manual).
3490                    Implementing more M88K instructions (mask[.u], mak, bcnd (auto-
3491                    generated)) and some more control register details.
3492                    Cleanup: Removing the experimental AVR emulation mode and
3493                    corresponding devices; AVR emulation wasn't really meaningful.
3494                    Implementing autogeneration of most M88K loads/stores. The
3495                    rectangle drawing demo (with -O0) for M88K runs :-)
3496                    Beginning on M88K exception handling.
3497                    More M88K instructions: tb0, tb1, rte, sub, jsr[.n].
3498                    Adding some skeleton MVME PROM ("BUG") emulation.
3499    20070512        Fixing a bug in the M88K cmp instruction.
3500                    Adding the M88K lda (scaled register) instruction.
3501                    Fixing bugs in 64-bit (32-bit pairs) M88K loads/stores.
3502                    Removing the unused tick_hz stuff from the machine struct.
3503                    Implementing the M88K xmem instruction. OpenBSD/mvme88k gets
3504                    far enough to display the Copyright banner :-)
3505                    Implementing subu.co (guess), addu.co, addu.ci, ff0, and ff1.
3506                    Adding a dev_mvme187, for MVME187-specific devices/registers.
3507                    OpenBSD/mvme88k prints more boot messages. :)
3508    20070515        Continuing on MVME187 emulation (adding more devices, beginning
3509                    on the CMMUs, etc).
3510                    Adding the M88K and.c, xor.c, and or.c instructions, and making
3511                    sure that mul, div, etc cause exceptions if executed when SFD1
3512                    is disabled.
3513    20070517        Continuing on M88K and MVME187 emulation in general; moving
3514                    the CMMU registers to the CPU struct, separating dev_pcc2 from
3515                    dev_mvme187, and beginning on memory_m88k.c (BATC and PATC).
3516                    Fixing a bug in 64-bit (32-bit pairs) M88K fast stores.
3517                    Implementing the clock part of dev_mk48txx.
3518                    Implementing the M88K fstcr and xcr instructions.
3519                    Implementing m88k_cpu_tlbdump().
3520                    Beginning on the implementation of a separate address space
3521                    for M88K .usr loads/stores.
3522    20070520        Removing the non-working (skeleton) Sandpoint, SonyNEWS, SHARK
3523                    Dnard, and Zaurus machine modes.
3524                    Experimenting with dyntrans to_be_translated read-ahead. It
3525                    seems to give a very small performance increase for MIPS
3526                    emulation, but a large performance degradation for SuperH. Hm.
3527    20070522        Disabling correct SuperH ITLB emulation; it does not seem to be
3528                    necessary in order to let SH4 guest OSes run, and it slows down
3529                    userspace code.
3530                    Implementing "samepage" branches for SuperH emulation, and some
3531                    other minor speed hacks.
3532    20070525        Continuing on M88K memory-related stuff: exceptions, memory
3533                    transaction register contents, etc.
3534                    Implementing the M88K subu.ci instruction.
3535                    Removing the non-working (skeleton) Iyonix machine mode.
3536                    OpenBSD/mvme88k reaches userland :-), starts executing
3537                    /sbin/init's instructions, and issues a few syscalls, before
3538                    crashing.
3539    20070526        Fixing bugs in dev_mk48txx, so that OpenBSD/mvme88k detects
3540                    the correct time-of-day.
3541                    Implementing a generic IRQ controller for the test machines
3542                    (dev_irqc), similar to a proposed patch from Petr Stepan.
3543                    Experimenting some more with translation read-ahead.
3544                    Adding an "expect" script for automated OpenBSD/landisk
3545                    install regression/performance tests.
3546    20070527        Adding a dummy mmEye (SH3) machine mode skeleton.
3547                    FINALLY found the strange M88K bug I have been hunting: I had
3548                    not emulated the SNIP value for exceptions occurring in
3549                    branch delay slots correctly.
3550                    Implementing correct exceptions for 64-bit M88K loads/stores.
3551                    Address to symbol lookups are now disabled when M88K is
3552                    running in usermode (because usermode addresses don't have
3553                    anything to do with supervisor addresses).
3554    20070531        Removing the mmEye machine mode skeleton.
3555    20070604        Some minor code cleanup.
3556    20070605        Moving src/useremul.c into a subdir (src/useremul/), and
3557                    cleaning up some more legacy constructs.
3558                    Adding -Wstrict-aliasing and -fstrict-aliasing detection to
3559                    the configure script.
3560    20070606        Adding a check for broken GCC on Solaris to the configure
3561                    script. (GCC 3.4.3 on Solaris cannot handle static variables
3562                    which are initialized to 0 or NULL. :-/)
3563                    Removing the old (non-working) ARC emulation modes: NEC RD94,
3564                    R94, R96, and R98, and the last traces of Olivetti M700 and
3565                    Deskstation Tyne.
3566                    Removing the non-working skeleton WDSC device (dev_wdsc).
3567    20070607        Thinking about how to use the host's cc + ld at runtime to
3568                    generate native code. (See experiments/native_cc_ld_test.i
3569                    for an example.)
3570    20070608        Adding a program counter sampling timer, which could be useful
3571                    for native code generation experiments.
3572                    The KN02_CSR_NRMMOD bit in the DECstation 5000/200 (KN02) CSR
3573                    should always be set, to allow a 5000/200 PROM to boot.
3574    20070609        Moving out breakpoint details from the machine struct into
3575                    a helper struct, and removing the limit on max nr of
3576                    breakpoints.
3577    20070610        Moving out tick functions into a helper struct as well (which
3578                    also gets rid of the max limit).
3579    20070612        FINALLY figured out why Debian/DECstation stopped working when
3580                    translation read-ahead was enabled: in src/memory_rw.c, the
3581                    call to invalidate_code_translation was made also if the
3582                    memory access was an instruction load (if the page was mapped
3583                    as writable); it shouldn't be called in that case.
3584    20070613        Implementing some more MIPS32/64 revision 2 instructions: di,
3585                    ei, ext, dext, dextm, dextu, and ins.
3586    20070614        Implementing an instruction combination for the NetBSD/arm
3587                    idle loop (making the host not use any cpu if NetBSD/arm
3588                    inside the emulator is not using any cpu).
3589                    Increasing the nr of ARM VPH entries from 128 to 384.
3590    20070615        Removing the ENABLE_arch stuff from the configure script, so
3591                    that all included architectures are included in both release
3592                    and development builds.
3593                    Moving memory related helper functions from misc.c to memory.c.
3594                    Adding preliminary instructions for netbooting NetBSD/pmppc to
3595                    guestoses.html; it doesn't work yet, there are weird timeouts.
3596                    Beginning a total rewrite of the userland emulation modes
3597                    (removing all emulation modes, beginning from scratch with
3598                    NetBSD/MIPS and FreeBSD/Alpha only).
3599    20070616        After fixing a bug in the DEC21143 NIC (the TDSTAT_OWN bit was
3600                    only cleared for the last segment when transmitting, not all
3601                    segments), NetBSD/pmppc boots with root-on-nfs without the
3602                    timeouts. Updating guestoses.html.
3603                    Removing the skeleton PSP (Playstation Portable) mode.
3604                    Moving X11-related stuff in the machine struct into a helper
3605                    struct.
3606                    Cleanup of out-of-memory checks, to use a new CHECK_ALLOCATION
3607                    macro (which prints a meaningful error message).
3608                    Adding a COMMENT to each machine and device (for automagic
3609                    .index comment generation).
3610                    Doing regression testing for the next release.
3612    ==============  RELEASE 0.4.6  ==============
3614    20070616        Implementing the MIPS32/64 revision 2 "ror" instruction.
3615    20070617        Adding a struct for each physpage which keeps track of which
3616                    ranges within that page (base offset, length) that are
3617                    continuously translatable. When running with native code
3618                    generation enabled (-b), a range is added after each read-
3619                    ahead loop.
3620                    Experimenting with using the physical program counter sample
3621                    data (implemented 20070608) together with the "translatable
3622                    range" information, to figure out which physical address ranges
3623                    would be worth translating to native code (if the number of
3624                    samples falling within a range is above a certain threshold).
3625    20070618        Adding automagic building of .index comment files for
3626                    src/file/, src/promemul/, src src/useremul/ as well.
3627                    Adding a "has been translated" bit to the ranges, so that only
3628                    not-yet-translated ranges will be sampled.
3629    20070619        Moving src/cpu.c and src/memory_rw.c into src/cpus/,
3630                    src/device.c into src/devices/, and src/machine.c into
3631                    src/machines/.
3632                    Creating a skeleton cc/ld native backend module; beginning on
3633                    the function which will detect cc command line, etc.
3634    20070620        Continuing on the native code generation infrastructure.
3635    20070621        Moving src/x11.c and src/console.c into a new src/console/
3636                    subdir (for everything that is console or framebuffer related).
3637                    Moving src/symbol*.c into a new src/symbol/, which should
3638                    contain anything that is symbol handling related.
3639    20070624        Making the program counter sampling threshold a "settings
3640                    variable" (sampling_threshold), i.e. it can now be changed
3641                    during runtime.
3642                    Switching the RELEASE notes format from plain text to HTML.
3643                    If the TMPDIR environment variable is set, it is used instead
3644                    of "/tmp" for temporary files.
3645                    Continuing on the cc/ld backend: simple .c code is generated,
3646                    the compiler and linker are called, etc.
3647                    Adding detection of host architecture to the configure script
3648                    (again), and adding icache invalidation support (only
3649                    implemented for Alpha hosts so far).
3650    20070625        Simplifying the program counter sampling mechanism.
3651    20070626        Removing the cc/ld native code generation stuff, program
3652                    counter sampling, etc; it would not have worked well in the
3653                    general case.
3654    20070627        Removing everything related to native code generation.
3655    20070629        Removing the (practically unusable) support for multiple
3656                    emulations. (The single emulation allowed now still supports
3657                    multiple simultaneous machines, as before.)
3658                    Beginning on PCCTWO and M88K interrupts.
3659    20070723        Adding a dummy skeleton for emulation of M32R processors.
3660    20070901        Fixing a warning found by "gcc version 4.3.0 20070817
3661                    (experimental)" on amd64.
3662    20070905        Removing some more traces of the old "multiple emulations"
3663                    code.
3664                    Also looking in /usr/local/include and /usr/local/lib for
3665                    X11 libs, when running configure.
3666    20070909        Minor updates to the guest OS install instructions, in
3667                    preparation for the NetBSD 4.0 release.
3668    20070918        More testing of NetBSD 4.0 RC1.

Removed from v.22  
changed lines
  Added in v.44

  ViewVC Help
Powered by ViewVC 1.1.26