|
|
1.1 ! root 1: Sun May 18 00:07:59 2003 Matthew Fredette <[email protected]> ! 2: ! 3: * Release 0.0 out. ! 4: ! 5: * configure.in: Changed the version number to 0.0; this is very alpha. ! 6: There are now fewer include directories under tme/; many ! 7: unnecessary headers that belonged to modules were removed. ! 8: ! 9: * bus/multibus/3c400.c: No longer include <tme/bus/multibus/3c400.h>. ! 10: * bus/multibus/Makefile.am: Added library and module versioning. ! 11: * generic/Makefile.am: Added library and module versioning. ! 12: * host/bsd/Makefile.am: Added library and module versioning. ! 13: * host/bsd/bsd-bpf.c: Now include "bsd-impl.h" instead of <tme/host/bsd.h>. ! 14: * host/bsd/bsd-if.c: Now include "bsd-impl.h" instead of <tme/host/bsd.h>. ! 15: * host/bsd/bsd-impl.h: Added. ! 16: * host/posix/Makefile.am: Added library and module versioning. ! 17: * ic/Makefile.am: Added library and module versioning. ! 18: * ic/m68k/Makefile.am: Added library and module versioning. ! 19: * libtme/Makefile.am: Added library and module versioning. ! 20: * machine/sun/Makefile.am: Added library and module versioning. ! 21: * machine/sun/tme-sun-idprom.pl: Added. ! 22: * machine/sun2/Makefile.am: Added library and module versioning. ! 23: * machine/sun2/SUN2-MULTIBUS: Changed the extension on the PROM and IDPROM ! 24: files from .dat to .bin. ! 25: ! 26: * machine/sun2/SUN2-MULTIBUS: Changed the name of the PROM filename to match the documentation. ! 27: * tme/Makefile.am: Removed the host and bus include directories; they don't exist anymore. ! 28: * tmesh/Makefile.am: Added library and module versioning. ! 29: ! 30: Sat May 17 20:16:06 2003 Matthew Fredette <[email protected]> ! 31: ! 32: * acinclude.m4: Added an RCS Id and a short comment. ! 33: * configure.in: Added an RCS Id, the copyright, and license. ! 34: Do a real path search for perl. ! 35: ! 36: * libtme/log-prf.c: Changes to silence gcc -Wuninitialized. ! 37: * libtme/module.c: Changes to silence gcc -Wuninitialized. ! 38: * machine/sun2/sun2-mainbus.c: Changes to silence gcc -Wuninitialized. ! 39: ! 40: Fri May 16 21:48:16 2003 Matthew Fredette <[email protected]> ! 41: ! 42: * By far, this is the worst bulk commit I've ever done. ! 43: Many changes to simplify the element interface as much ! 44: as possible, to do modules better, and to do logging ! 45: better. Fixed a small number of actual bugs. Also ! 46: converted to modern autoconf and automake, because ! 47: the module support requires modern libtool. ! 48: Also added the main libtme, libtmesh, and tmesh itself. ! 49: ! 50: Fri May 16 17:50:17 2003 Matthew Fredette <[email protected]> ! 51: ! 52: * acinclude.m4 (AC_CHECK_ALIGNOF): Now takes only a size, in bits, to check the ! 53: alignment for. Before, it used to take a string of the form intN_t, ! 54: which wouldn't work on systems that don't define an intN_t type. ! 55: When cross-compiling, assume the target requires alignment equal ! 56: to the size. Now use AC_DEFINE_UNQUOTED's third argument to ! 57: specify the config.h.in comment. ! 58: (AC_CHECK_SHIFTMAX): Added. ! 59: (AC_SYS_SOCKADDR_SA_LEN): Now use AC_DEFINE_UNQUOTED's third ! 60: argument to specify the config.h.in comment. ! 61: ! 62: Thu May 15 15:52:08 2003 Matthew Fredette <[email protected]> ! 63: ! 64: * ic/m68k/m68k-insns-auto.sh: Fixed bugs in the shift and rotate insns, where we might try to ! 65: shift by an amount greater than the maximum meaningful shift for ! 66: a given size. ! 67: ! 68: Sat May 10 13:46:02 2003 Matthew Fredette <[email protected]> ! 69: ! 70: * acinclude.m4 (AC_CHECK_ALIGNOF): Fixed a bug where this would stop on ! 71: the first misalignment, instead of continuing to find the ! 72: true minimum alignment. For example, this would have ! 73: found the minimum 32-bit alignment to be 4 instead of 2 ! 74: on a 68000 or 68010, stopping on the misaligned address 3. ! 75: ! 76: * configure.in: Some early distribution work. ! 77: * ic/Makefile.am: Some early distribution work. ! 78: * ic/m68k/Makefile.am: Some early distribution work. ! 79: * ic/m68k/m68k-insns-auto.sh: Fixed some bad macro and type name references. ! 80: * ic/m68k/m68k-insns-auto.sh: Handled the rename of the aligned and unaligned memory access ! 81: rwlocking macros, and use the new tme_memory_sequence_ rwlocking ! 82: macros. Generally made things a little easier to read, although ! 83: we do rely on the optimizer to do the right thing somewhat more. ! 84: ! 85: * ic/m68k/m68k-misc-auto.sh: Fixed some bad macro and type name references. ! 86: * ic/m68k/m68k-misc-auto.sh: Handled the rename of the aligned and unaligned memory access ! 87: rwlocking macros, and use the new tme_memory_sequence_ rwlocking ! 88: macros. Generally made things a little easier to read, although ! 89: we do rely on the optimizer to do the right thing somewhat more. ! 90: ! 91: * machine/Makefile.am: Some early distribution work. ! 92: * machine/sun2/Makefile.am: Some early distribution work. ! 93: * tme/Makefile.am: Some early distribution work. ! 94: * tme/threads.h: Renamed the memory-access locking functions to be ! 95: tme_memory_HOW_WHATlock, where HOW is aligned or ! 96: unaligned, and WHAT is rd or wr. ! 97: Now define the tme_memory_sequence_WHATlock macros, ! 98: used when doing a sequence of memory accesses that ! 99: must appear to be atomic. ! 100: Now define TME_SEQUENCE_ACCESS_NOT_COSTLIER as TRUE ! 101: if locking for a sequence and locking for an aligned ! 102: access have the same cost, else define it as FALSE. ! 103: ! 104: Sat May 10 00:31:32 2003 Matthew Fredette <[email protected]> ! 105: ! 106: * ic/m68k/m68k-insns-auto.sh: Overhauled the shift instructions to not use loops. ! 107: ! 108: Fri May 09 16:32:06 2003 Matthew Fredette <[email protected]> ! 109: ! 110: * ic/m68k/m68k-execute.c: As an optimization, now require the individual insn functions ! 111: to use TME_M68K_INSN_CANFAULT if they may fault, instead of ! 112: figuring out every time if an insn can fault or not. Check ! 113: that insn functions have set it if they need it, and left it ! 114: unset if they do not need it. ! 115: ! 116: * ic/m68k/m68k-execute.c: Made some changes to somewhat optimize certain ! 117: effective address calculations. ! 118: ! 119: * ic/m68k/m68k-impl.h: Now define TME_M68K_INSN_CANFAULT. ! 120: * ic/m68k/m68k-impl.h: Renumbered the TME_M68K_SIZE_ macros slightly to enable an ! 121: optimization on effective address predecrement/postincrement ! 122: calculation. Grew the memory transfer function arrays to ! 123: match. ! 124: Moved the generic IC data structure to the top of the m68k ! 125: structure, to enable register indexing to happen without ! 126: an offset. ! 127: Removed _tme_m68k_areg_increment, it's no longer needed. ! 128: ! 129: * ic/m68k/m68k-insns-auto.sh: Now use TME_M68K_INSN_CANFAULT where it's needed. Also ! 130: fixed some random restarting bugs in some insns. ! 131: ! 132: * ic/m68k/m68k-insns.c: Now use TME_M68K_INSN_CANFAULT where it's needed. Also ! 133: fixed some random restarting bugs in some insns. ! 134: ! 135: * ic/m68k/m68k-misc.c: Removed _tme_m68k_areg_increment, it's no longer needed. ! 136: Grew the memory transfer function arrays to match the ! 137: renumbering of the TME_M68K_SIZE_ macros, and added some ! 138: preprocessor error checking on those macros. ! 139: ! 140: Fri May 09 13:12:01 2003 Matthew Fredette <[email protected]> ! 141: ! 142: * bus/multibus/3c400.c: Bulk change to no longer require bus connections to have a ! 143: power-of-two width. This is largely a name change, renaming ! 144: address_mask to address_last, as nothing depended on the ! 145: address_mask being all-bits-one. ! 146: ! 147: * bus/multibus/3c400.c (_tme_3c400_callout): Make buffer status values have the minimum ! 148: Ethernet frame size. ! 149: ! 150: * generic/bus-device.c: Bulk change to no longer require bus connections to have a ! 151: power-of-two width. This is largely a name change, renaming ! 152: address_mask to address_last, as nothing depended on the ! 153: address_mask being all-bits-one. ! 154: ! 155: * generic/bus-el.c: Bulk change to no longer require bus connections to have a ! 156: power-of-two width. This is largely a name change, renaming ! 157: address_mask to address_last, as nothing depended on the ! 158: address_mask being all-bits-one. ! 159: ! 160: * generic/bus.c: Bulk change to no longer require bus connections to have a ! 161: power-of-two width. This is largely a name change, renaming ! 162: address_mask to address_last, as nothing depended on the ! 163: address_mask being all-bits-one. ! 164: ! 165: * host/posix/posix-memory.c: Bulk change to no longer require bus connections to have a ! 166: power-of-two width. This is largely a name change, renaming ! 167: address_mask to address_last, as nothing depended on the ! 168: address_mask being all-bits-one. ! 169: ! 170: * ic/am9513.c: Now include <stdio.h>, in case TME_AM9513_TRACK_INT_RATE is ! 171: defined. ! 172: ! 173: * ic/am9513.c: Bulk change to no longer require bus connections to have a ! 174: power-of-two width. This is largely a name change, renaming ! 175: address_mask to address_last, as nothing depended on the ! 176: address_mask being all-bits-one. ! 177: ! 178: * ic/am9513.c: Under TME_AM9513_TRACK_INT_RATE, periodically report the ! 179: interrupt rates achieved by the various timers. ! 180: ! 181: * ic/mm58167.c: Bulk change to no longer require bus connections to have a ! 182: power-of-two width. This is largely a name change, renaming ! 183: address_mask to address_last, as nothing depended on the ! 184: address_mask being all-bits-one. ! 185: ! 186: * ic/z8530.c: Bulk change to no longer require bus connections to have a ! 187: power-of-two width. This is largely a name change, renaming ! 188: address_mask to address_last, as nothing depended on the ! 189: address_mask being all-bits-one. ! 190: ! 191: * machine/sun2/sun2-mmu.c (_tme_sun2_m68k_tlb_fill): Because supervisor and user accesses ! 192: go through different context registers, TLBs are generally only ! 193: ever valid for the supervisor or the user, but not both. Fixed ! 194: a bug where a TLB for a user-visible page would be marked as good ! 195: for the supervisor even if the mapping isn't the same in the ! 196: system context. ! 197: ! 198: * tme/generic/bus-device.h: Bulk change to no longer require bus connections to have a ! 199: power-of-two width. This is largely a name change, renaming ! 200: address_mask to address_last, as nothing depended on the ! 201: address_mask being all-bits-one. ! 202: ! 203: * tme/generic/bus.h: Bulk change to no longer require bus connections to have a ! 204: power-of-two width. This is largely a name change, renaming ! 205: address_mask to address_last, as nothing depended on the ! 206: address_mask being all-bits-one. ! 207: ! 208: * tme/generic/ethernet.h: Now define TME_ETHERNET_CRC_SIZE. ! 209: ! 210: Thu May 08 23:37:10 2003 Matthew Fredette <[email protected]> ! 211: ! 212: * ic/m68k/m68k-insns-auto.sh: Fixed bugs, found by the verifier, in the SR and CCR immediate ! 213: instructions. ! 214: ! 215: * ic/m68k/m68k-verify.c: Now keep a short ring of PCs verified. ! 216: ! 217: Thu May 08 18:25:20 2003 Matthew Fredette <[email protected]> ! 218: ! 219: * ic/z8530.c (_tme_z8530_intack): Changes to silence -Wuninitialized. ! 220: * ic/m68k/Makefile.am: No longer define _TME_M68K_OPW_OK. ! 221: * ic/m68k/m68k-execute.c: Changes to support verifying restarted instructions. ! 222: * ic/m68k/m68k-impl.h: Fixed the definitions of the dummy tme_m68k_verify_ macros. ! 223: * ic/m68k/m68k-impl.h: Now call tme_m68k_verify_end_branch inside TME_M68K_INSN_BRANCH. ! 224: Added a unique identifier member to the sequence structure. ! 225: Made a few functions take a const struct tme_m68k *. ! 226: Made changes to the verifier to support verifying restarted ! 227: instructions. ! 228: ! 229: * ic/m68k/m68k-insns-auto.sh: Fixed a bug found by the verifier, where the movem ! 230: instructions weren't following the EA discipline correctly ! 231: and so would transfer to the wrong addresses after a ! 232: restart. ! 233: ! 234: * ic/m68k/m68k-misc.c (tme_m68k_go_slow): Now take a const struct tme_m68k *. ! 235: (tme_m68k_sequence_empty): ! 236: (tme_m68k_sequence_fill): Made the argument that's supposed ! 237: to be read-only const. Under _TME_M68K_VERIFY, save and ! 238: restore the sequence unique identifier. ! 239: ! 240: * ic/m68k/m68k-verify.c: Many changes to support verifying instructions that ended ! 241: only after they were restarted because of one or more bus ! 242: faults. ! 243: ! 244: Thu May 08 13:35:43 2003 Matthew Fredette <[email protected]> ! 245: ! 246: * ic/m68k/m68k-execute.c: Replaced _TME_M68K_OPW_OK bits with new _TME_M68K_VERIFY bits. ! 247: * ic/m68k/m68k-impl.h: Replaced _TME_M68K_OPW_OK bits with new _TME_M68K_VERIFY bits. ! 248: * ic/m68k/m68k-insns-auto.sh: In all memory access functions, added calls to the verifier. ! 249: Fixed a bug in the divide routines, found by the verifier - ! 250: the N flag in set based on the final small quotient, not on ! 251: the big one. ! 252: ! 253: * ic/m68k/m68k-misc-auto.sh: Now define TME_M68K_IREG32_COUNT. ! 254: * ic/m68k/m68k-misc.c: Replaced _TME_M68K_OPW_OK bits with new _TME_M68K_VERIFY bits. ! 255: * ic/m68k/m68k-verify.c: Added. ! 256: ! 257: Wed May 07 02:35:17 2003 Matthew Fredette <[email protected]> ! 258: ! 259: * generic/bus-el.c (_tme_bus_connections_new): Store the final bus interrupt ! 260: signal number, not the raw ipl. ! 261: ! 262: * ic/z8530.c: Although I hate doing this, too many changes to go into ! 263: detail. Much work to support interrupt driven operation. ! 264: ! 265: * ic/z8530reg.h: Added definitions for RR3. ! 266: * ic/m68k/m68k-impl.h: Fixed a serious bug in the TME_M68K_FLAG_SR definition ! 267: that would zero part of the interrupt mask. ! 268: ! 269: * ic/m68k/m68k-insns-auto.sh: Fixed a bug where negx wasn't preserving the Z flag if the ! 270: result was zero. ! 271: ! 272: * machine/sun2/sun2-test.c (main): Fixed a bug where the zs0 ipl arg was getting lost. ! 273: ! 274: Mon May 05 23:08:13 2003 Matthew Fredette <[email protected]> ! 275: ! 276: * TODO: Updated. ! 277: * generic/serial.c (tme_serial_buffer_copyout): Fixed a bug where if we were ! 278: copying to a NULL buffer and the copyout wrapped in the ! 279: ring buffer, we would do pointer arithmetic on the NULL. ! 280: ! 281: * ic/m68k/m68010.c (_tme_m68010_rte): Fixed a bug where we forgot to recover ! 282: the group 0 function code and address for the cycle restart. ! 283: Fixed a bug where we wouldn't reset to extract our internal ! 284: state from the stack buffer. ! 285: ! 286: * ic/m68k/m68k-insns-auto.sh: Fixed several instructions that trap or do trap-like things ! 287: to update PC to be the PC of the following instruction before ! 288: trapping. ! 289: (tme_m68k_read_mem): Fixed a memcpy direction bug. ! 290: ! 291: * ic/m68k/m68k-insns.c: Fixed several instructions that trap or do trap-like things ! 292: to update PC to be the PC of the following instruction before ! 293: trapping. ! 294: ! 295: * libtme/threads-sjlj.c (tme_sjlj_cond_notify): Fixed a bug where we would cancel ! 296: a thread's wait condition instead of notifying the thread. ! 297: ! 298: * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Support the new expansive MMU PTE ! 299: protections. ! 300: ! 301: * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge soft interrupts. ! 302: (tme_machine_sun2_clock_new): Fixed a bug where we had the ! 303: Timer 2 output miswired. ! 304: ! 305: * machine/sun2/sun2-mmu.c: Many changes to support the new full understanding of sun2 ! 306: PTE protections. ! 307: ! 308: * tme/machine/sun.h: Expanded on the generic PTE protections, to support the more ! 309: expressive sun2 protections. ! 310: ! 311: Sun May 04 22:26:01 2003 Matthew Fredette <[email protected]> ! 312: ! 313: * ic/am9513.c (_tme_am9513_counters_disarm): Added. ! 314: (_tme_am9513_th_timer): Try to avoid 32-bit integer overflow ! 315: when calculating the sleep time. ! 316: (_tme_am9513_bus_cycle): Now support the disarm timers command. ! 317: ! 318: * ic/mm58167.c: Changes to silence -Wuninitialized. ! 319: * ic/mm58167.c: Added. ! 320: * ic/z8530.c: Although I hate doing this, too much work to go into detail. ! 321: Did more groundwork for eventually generating interrupts. ! 322: ! 323: * ic/m68k/m68k-execute.c: Now wrap the execute hook call in _TME_M68K_OPW_OK. ! 324: * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug where the new ! 325: ipl mask was put into the sr at the wrong position. ! 326: ! 327: * machine/sun2/sun2-mainbus.c (tme_machine_sun2_tod_new): Added. ! 328: * machine/sun2/sun2-mmu.c (_tme_sun2_obbus_fault_handler): Removed. ! 329: (_tme_sun2_bus_fault_handler): ! 330: (_tme_sun2_obio_fault_handler): ! 331: (_tme_sun2_obmem_fault_handler): Added. ! 332: (_tme_sun2_multibus_fault_handler): Now just call ! 333: _tme_sun2_bus_fault_handler. ! 334: (_tme_sun2_tlb_fill_mmu): Use the new bus-specific ! 335: fault handlers. ! 336: ! 337: * machine/sun2/sun2-test.c: Now create and connect the TOD chip. ! 338: * tme/ic/Makefile.am: Updated. ! 339: * tme/ic/mm58167.h: Added. ! 340: ! 341: Sat May 03 19:27:07 2003 Matthew Fredette <[email protected]> ! 342: ! 343: * TODO: Updated. ! 344: * ic/m68k/m68k-execute.c: Fixed multiple bugs in the handling of brief EA extension words. ! 345: * ic/m68k/m68k-insns-auto.sh: Fixed a bug where subx and addx didn't take the (previous) X ! 346: flag into account when calculating flags. ! 347: ! 348: * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Now call _tme_sun2_ipl_check ! 349: whenever the enable register is written. ! 350: ! 351: * machine/sun2/sun2-impl.h: Added macros for the enable register bits. ! 352: * machine/sun2/sun2-mainbus.c (_tme_sun2_ipl_check): Added. ! 353: (_tme_sun2_bus_signal): Now call _tme_sun2_ipl_check to update ! 354: the ipl driven to the CPU. ! 355: ! 356: Fri May 02 17:10:58 2003 Matthew Fredette <[email protected]> ! 357: ! 358: * TODO: Updated. ! 359: * acconfig.h: Added. ! 360: * acinclude.m4: Added. ! 361: * configure.in: Now check for minimum alignments. ! 362: Now check for various headers and other things needed by the BSD code. ! 363: ! 364: * bus/Makefile.am: Added support for new components. ! 365: * bus/multibus/3c400.c (_tme_3c400): Some changes to silence -Wuninitialized. ! 366: * bus/multibus/3c400.c: Added. ! 367: * bus/multibus/Makefile.am: Added. ! 368: * generic/Makefile.am: Added support for new components. ! 369: * generic/ethernet.c: Added. ! 370: * host/Makefile.am: Added support for new components. ! 371: * host/bsd/Makefile.am: Added. ! 372: * host/bsd/bsd-bpf.c: Added. ! 373: * host/bsd/bsd-if.c: Added. ! 374: * host/posix/posix-serial.c: Fixed some indentation, and one 0 to a TME_OK. ! 375: * ic/am9513.c (_tme_am9513_counters_load): ! 376: (_tme_am9513_counters_arm): Added. ! 377: (_tme_am9513_th_timer): Try to avoid multiplication overflow ! 378: when calculating the number of basic ticks that have elapsed. ! 379: Try to handle armed and unarmed counters correctly. ! 380: (_tme_am9513_bus_cycle): Now load and arm counters correctly. ! 381: (tme_ic_am9513_new): Calculate the number of basic ticks in ! 382: a millisecond for the benefit of the timer thread. ! 383: ! 384: * ic/m68k/m68010.c (_tme_m68010_rte): tme_m68k_rte_finish no longer touches the ! 385: sequence at all, so before calling it make sure the sequence ! 386: is exactly what it's supposed to be. ! 387: ! 388: * ic/m68k/m68k-execute.c: In the fast executor, assert that the ITLB entry allows fast ! 389: reading for the current PC or that the PC is one greater than ! 390: the last address covered by the entry. Fixed the fast-fetch-failed ! 391: code to more correctly simulate a group 0 exception and associated ! 392: RTE. ! 393: ! 394: * ic/m68k/m68k-insns-auto.sh: Cleaned up and fixed the code generated for cmpm, addx, and subx. ! 395: At least, cmpm wasn't getting its address registers postincremented, ! 396: and addx and subx weren't treating the Z flag properly. ! 397: In the fetch insns, take the address to fetch from as an argument, ! 398: instead of using the real ic->tme_m68k_ireg_pc with tme_m68k_read ! 399: (which could actually update it, if recovering from a group 0 ! 400: exception!) ! 401: ! 402: * ic/m68k/m68k-misc-auto.sh: The slow-executor fetch macros now call the fetch insns with the ! 403: PC to fetch from. ! 404: ! 405: * ic/m68k/m68k-misc.c (tme_m68k_rte_finish): No longer do anything with the sequence ! 406: at all, just redispatch it. ! 407: (tme_m68k_sequence_fill): Now set the sequence next-transfer to ! 408: one, to force a restart in case later code doesn't. ! 409: (tme_m68k_insn_buffer_xfer): The insn buffer is kept in host ! 410: byte order, not big-endian byte order. ! 411: ! 412: * libtme/threads-sjlj.c: No longer track and relock a mutex that was held when ! 413: tme_sjlj_cond_wait_yield was called; the thread itself ! 414: will relock the mutex when it is restarted. ! 415: ! 416: * machine/sun2/Makefile.am: Now build and link against the Multibus and BSD libraries. ! 417: * machine/sun2/sun2-test.c (tme_memdup): Added. ! 418: (connect_elements): Now start the new convention of initializing ! 419: the new-connections lists to NULL and letting the new-connections ! 420: functions add elements incrementally. ! 421: (main): Now create the ec0 and bpf0 elements and add them to the ! 422: machine. ! 423: ! 424: * tme/common.h: Added a macro for tme_dup and a prototype for tme_memdup. ! 425: * tme/connection.h: Now define TME_CONNECTION_ETHERNET. ! 426: * tme/threads.h: Fixed a bug where the tme_thread_write macro was defined to ! 427: be the read syscall. ! 428: ! 429: * tme/generic/Makefile.am: Added support for new components. ! 430: * tme/generic/ethernet.h: Added. ! 431: ! 432: Tue Apr 29 20:28:05 2003 Matthew Fredette <[email protected]> ! 433: ! 434: * AUTHORS: Added. ! 435: * COPYING: Added. ! 436: * NEWS: Added. ! 437: * README: Added. ! 438: * generic/bus-device.c: In all connections_new functions, add the new connection ! 439: possibilities to the list rooted at *_conns, instead of ! 440: always replacing the list. ! 441: ! 442: * generic/bus-el.c: In all connections_new functions, add the new connection ! 443: possibilities to the list rooted at *_conns, instead of ! 444: always replacing the list. ! 445: ! 446: * generic/bus-el.c: Changes to silence -Wuninitialized. ! 447: * generic/serial.c: Removed all instances of gen- in comments. ! 448: * host/posix/posix-memory.c: Changes to silence -Wuninitialized. ! 449: * host/posix/posix-serial.c: In all connections_new functions, add the new connection ! 450: possibilities to the list rooted at *_conns, instead of ! 451: always replacing the list. ! 452: ! 453: * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Fixed bugs in scanning the input ! 454: for various escape-like sequences, especially for the escaped ! 455: break signal. ! 456: ! 457: * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Simplified the code that decides ! 458: to call out that we are readable. ! 459: (_tme_posix_serial_ctrl): Always try to call out reads if the ! 460: connection says it's readable, even if we already knew that. ! 461: (_tme_posix_serial_read): Fixed a bug where we would clear ! 462: everything *except* TME_SERIAL_CTRL_OK_READ, instead of clearing ! 463: only that bit. ! 464: (tme_host_posix_serial_new): Return EINVAL on bad arguments. ! 465: ! 466: * ic/Makefile.am: Now define DIST_SUBDIRS. ! 467: * ic/am9513.c: Changes to silence -Wuninitialized. ! 468: * ic/z8530.c: In all connections_new functions, add the new connection ! 469: possibilities to the list rooted at *_conns, instead of ! 470: always replacing the list. ! 471: ! 472: * ic/z8530.c (_tme_z8530_callout): Fixed a bug where we would use an uninitialized ! 473: chan variable to find WR9, which actually only exists in channel A ! 474: anyways. ! 475: (_tme_z8530_ctrl): Now always try to call out reads if the connection ! 476: says it's readable. ! 477: ! 478: * ic/m68k/m68k-execute.c: Changes to silence -Wuninitialized. ! 479: * ic/m68k/m68k-insns-auto.sh: Changes to silence -Wuninitialized. ! 480: * ic/m68k/m68k-insns.c: Changes to silence -Wuninitialized. ! 481: * ic/m68k/m68k-misc.c: In all connections_new functions, add the new connection ! 482: possibilities to the list rooted at *_conns, instead of ! 483: always replacing the list. ! 484: ! 485: * libtme/threads-sjlj.c: Wrap all of the rwlock operations in !TME_NO_DEBUG_LOCKS. ! 486: (tme_sjlj_threads_run): Changes to silence -Wuninitialized. ! 487: ! 488: * machine/sun2/sun2-mainbus.c: In all connections_new functions, add the new connection ! 489: possibilities to the list rooted at *_conns, instead of ! 490: always replacing the list. ! 491: ! 492: * machine/sun2/sun2-mainbus.c: Changes to silence -Wuninitialized. ! 493: * tme/Makefile.am: Now install roughly the correct files into the correct place. ! 494: * tme/atomics.h: Fixed a bug where TME_ATOMIC_POINTER_TYPE was adding an extra *. ! 495: * tme/element.h: Fixed bugs in the TME_NO_LOG versions of TME_LOG_X and TME_LOG_FINISH. ! 496: * tme/generic/Makefile.am: Now install roughly the correct files into the correct place. ! 497: * tme/generic/serial.h: Removed all instances of gen- in comments. ! 498: ! 499: Tue Apr 29 02:47:30 2003 Matthew Fredette <[email protected]> ! 500: ! 501: * TODO: Updated. ! 502: * generic/bus-device.c: Support the new generic bus signal interface. ! 503: (tme_bus_device_connection_score): ! 504: (tme_bus_device_connection_make): ! 505: (tme_bus_device_connection_break): These are now public. ! 506: ! 507: * generic/bus-el.c: Added support for the new generic bus signal interface. ! 508: (_tme_bus_line_raise): Removed. ! 509: (_tme_bus_signal): ! 510: (_tme_bus_intack): Added. ! 511: ! 512: * generic/serial.c: Removed all uses of TME_ATOMIC. ! 513: (tme_serial_buffer_copyout): Fixed a bug where we would ! 514: overwrite data_flags with -1 early, resulting in our ! 515: returning no data. ! 516: ! 517: * host/posix/posix-serial.c: Too much work to go into detail. Everything is at least ! 518: sketched out. ! 519: ! 520: * ic/am9513.c (_tme_am9513_callout): ! 521: (_tme_am9513_th_timer): Added. ! 522: (_tme_am9513_bus_cycle): Now properly handle the ! 523: Clear Toggle Output command, and log it correctly. ! 524: Lock the new mutex on entry, call _tme_am9513_callout ! 525: if needed before exit, and unlock the mutex on exit. ! 526: (tme_ic_am9513_new): Start the new timer thread. ! 527: ! 528: * ic/z8530.c: Too many changes to go into detail. Highlights include ! 529: a real bus cycle handler, real channels, real serial ! 530: connections, real threads. Everything seems to be at ! 531: least sketched out. ! 532: ! 533: * ic/z8530reg.h: Added. ! 534: * ic/m68k/m68k-execute.c: Fixed a bug where we were using the return value of ! 535: tme_mutex_trylock as a truth value. ! 536: ! 537: * ic/m68k/m68k-misc.c: Changed to support the new generic bus signal interface ! 538: and the new m68k bus interrupt interface. ! 539: ! 540: * libtme/threads-sjlj.c (tme_sjlj_threads_run): Fixed a bug where we wouldn't lock ! 541: the mutex before returning from a condition wait. Fixed ! 542: a bug where we would block in select(2) instead of calling ! 543: it with a zero timeout. ! 544: (tme_sjlj_cond_wait_yield): Remember the mutex the thread ! 545: had locked so it can be relocked when the thread resumes. ! 546: (tme_sjlj_select_yield): Fixed bugs where we would treat ! 547: the nfds argument as the maximum fd, instead of the maximum ! 548: fd plus one. Fixed a bug where we couldn't handle NULL ! 549: descriptor sets. ! 550: (tme_sjlj_read_yield): ! 551: (tme_sjlj_write_yield): ! 552: (tme_sjlj_read_yield): ! 553: (tme_sjlj_rwlock_init): ! 554: (tme_sjlj_rwlock_lock): ! 555: (tme_sjlj_rwlock_unlock): Added. ! 556: ! 557: * machine/sun2/sun2-impl.h: Now track the interrupts asserted in the system, and the ! 558: last ipl asserted to the CPU. ! 559: ! 560: * machine/sun2/sun2-mainbus.c (_tme_sun2_line_reset): ! 561: (_tme_sun2_line_halt): ! 562: (_tme_sun2_line_interrupt): Removed. ! 563: (_tme_sun2_bus_signal): ! 564: (_tme_sun2_bus_intack): Added. ! 565: (_tme_sun2_power): Use the generic bus signal interface ! 566: to reset everything. ! 567: (tme_machine_sun2_clock_new): Store how the Am9513 output ! 568: pins are connected to bus interrupt lines. ! 569: ! 570: * machine/sun2/sun2-mmu.c (_tme_sun2_multibus_fault_handler): Added a hack to avoid ! 571: an mbmem bus error when accessed through virtual 0xffffffff, ! 572: which apparently happens in the PROM NMI routine when it ! 573: polls the keyboard, even if it didn't probe a keyboard. ! 574: ! 575: * machine/sun2/sun2-test.c: Updated. ! 576: * tme/element.h: Fixed various const to _tme_const. ! 577: * tme/threads.h: Redid the setjmp/longjmp rwlock operations. ! 578: Added various new function prototypes and macros. ! 579: ! 580: * tme/generic/bus-device.h: Support the new generic bus signal interface. ! 581: The tme_bus_device_connection_score, tme_bus_device_connection_make, ! 582: and tme_bus_device_connection_break functions are now public. ! 583: Fixed a const to _tme_const. ! 584: ! 585: * tme/generic/bus.h: Added the new generic bus signal and interrupt acknowledge ! 586: interfaces. Fixed various const to _tme_const. ! 587: ! 588: * tme/generic/serial.h: Now define TME_SERIAL_CTRL_OK_READ. ! 589: Removed the write method from a serial connection. All ! 590: data transfer happens with reads, with control signals ! 591: to indicate when reads are OK. ! 592: Removed the TME_ATOMIC use in struct tme_serial_buffer. ! 593: (tme_serial_buffer_is_empty): ! 594: (tme_serial_buffer_is_full): Added. ! 595: ! 596: * tme/ic/am9513.h: struct tme_am9513_socket now holds the basic clock provided ! 597: to the chip, and a mapping of its output pins to bus signals. ! 598: Fixed a const to _tme_const. ! 599: ! 600: * tme/ic/m68k.h: Now define some m68k IPL constant macros. ! 601: Add the new m68k bus interrupt method. ! 602: Fixed various const to _tme_const. ! 603: ! 604: * tme/ic/z8530.h: Made the channel letters lowercase in structure member names. ! 605: Fixed a const to _tme_const. ! 606: ! 607: Sat Apr 26 21:14:29 2003 Matthew Fredette <[email protected]> ! 608: ! 609: * Makefile.am: Added. ! 610: * TODO: Added. ! 611: * configure.in: Added. ! 612: * bus/Makefile.am: Updated. ! 613: * bus/bus-device.c: Removed. ! 614: * bus/bus.c: Removed. ! 615: * generic/Makefile.am: Added. ! 616: * generic/bus-device.c: Added. ! 617: * generic/bus-el.c: Added. ! 618: * generic/bus.c: Added. ! 619: * generic/serial.c: Added. ! 620: * host/posix/Makefile.am: Updated. ! 621: * host/posix/memory.c: Renamed to posix-memory.c. ! 622: * host/posix/posix-memory.c: Added. ! 623: * host/posix/posix-serial.c: Added. ! 624: * ic/am9513.c: Added. ! 625: * ic/z8530.c: Added. ! 626: * ic/i386/i386-decode.c: Added. ! 627: * ic/i386/i386-misc-auto-make.sh: Added. ! 628: * ic/i386/i386-opmaps-make.sh: Added. ! 629: * ic/i386/i386-save.c: Added. ! 630: * ic/i386/i386-uinsns-auto-make.sh: Added. ! 631: * ic/i386/i386-uinsns.c: Added. ! 632: * ic/i386/i386.h: Added. ! 633: * ic/m68k/Makefile.am: Updated. ! 634: * ic/m68k/m68k-execute.c: Under _TME_M68K_EXECUTE_FAST, at the beginning of each ! 635: instruction we do have to check if our ITLB has been invalidated, ! 636: as it might have been by some random (control) memory cycle ! 637: we just did. ! 638: Fixed bugs in the predecrement and postincrement EA handlers. ! 639: ! 640: * ic/m68k/m68k-impl.h: Now include <tme/generic/ic.h>. ! 641: * ic/m68k/m68k-impl.h: Added support for logging. ! 642: * ic/m68k/m68k-insns-auto.sh: Fixed a serious movem bug where we would start at bit 1 ! 643: in the mask, and not bit 0. ! 644: In all memory transfer functions, log the transfer. ! 645: Made the bus cycle functions "work correctly". ! 646: Fixed bugs in the generated divide instructions. ! 647: ! 648: * ic/m68k/m68k-insns.c (tme_m68k_swap): Fixed a bug where this wouldn't work on ! 649: big-endian systems. ! 650: (tme_m68k_link): ! 651: (tme_m68k_unlk): Fixed serious bugs where we simply didn't ! 652: do what these instructions are supposed to do. ! 653: ! 654: * ic/m68k/m68k-iset.txt: On the 68010 and up, the move_from_sr and move_from_ccr ! 655: instructions don't read memory before writing it. ! 656: Fixed bugs in the encoding of the register bit-shifting ! 657: with a register count instructions. ! 658: ! 659: * ic/m68k/m68k-misc.c (tme_m68k_idle): Use the renamed tme_cond_wait_yield function. ! 660: (tme_m68k_new): Store the element in the IC. ! 661: (tme_m68k_go_slow): Use the TME_M68K_TLB_OK_FAST_READ to check ! 662: for a bad TLB entry. ! 663: (tme_m68k_exception_process): Don't insist on there being ! 664: exceptions to process. CPU-specific exception processors ! 665: may handle them all, yet still use this function to redispatch. ! 666: (_tme_m68k_execute_hook): Added. ! 667: ! 668: * libtme/threads-sjlj.c (_tme_sjlj_then): ! 669: (_tme_sjlj_timeout): ! 670: (tme_sjlj_sleep_yield): ! 671: (tme_sjlj_select_yield): Added. ! 672: (tme_sjlj_threads_run): Cleaned up the threads dispatcher to ! 673: support threads waiting on classic select(2) fd sets, ! 674: (tme_sjlj_cond_wait_yield): Renamed from tme_sjlj_cond_wait. ! 675: (tme_sjlj_sleep): This function no longer yields. ! 676: ! 677: * machine/Makefile.am: Updated. ! 678: * machine/sun/Makefile.am: Updated. ! 679: * machine/sun/sun-mmu.c: Added some logging. ! 680: Disabled the explicit SEGINV support, for now. It appears that ! 681: the hardware MMU doesn't have a notion of an invalid PMEG. ! 682: Now call the post-MMU TLB fillers with the PTE struct and the ! 683: virtual address. ! 684: ! 685: * machine/sun2/Makefile.am: Updated. ! 686: * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Don't bother to fill the ! 687: segmap register unless this is a read. ! 688: ! 689: * machine/sun2/sun2-impl.h: Now include <tme/generic/ic.h>. ! 690: * machine/sun2/sun2-impl.h: Now include <tme/generic/bus.h>. ! 691: Added some support for logging. ! 692: ! 693: * machine/sun2/sun2-mainbus.c: Added some support for logging. ! 694: (tme_machine_sun2_clock_new): ! 695: (tme_machine_sun2_zs_new): Added. ! 696: ! 697: * machine/sun2/sun2-mmu.c: Too much to go into detail. Highlights: ! 698: Added some logging support. ! 699: Made the bus error behavior more correct. On the sun2, ! 700: obio and obmem don't generate bus errors. Now the post-MMU ! 701: TLB filler takes the original PTE entry and the original ! 702: virtual address. ! 703: ! 704: * machine/sun2/sun2-test.c: Updated. ! 705: * tme/bus-device.h: Removed. ! 706: * tme/bus.h: Removed. ! 707: * tme/connection.h: Now define TME_CONNECTION_SERIAL. ! 708: * tme/element.h: Added logging support. ! 709: * tme/ic.h: Removed. ! 710: * tme/ic.h: Now include <tme/generic/bus.h> ! 711: * tme/threads.h: Defined more of the tme threads API. ! 712: * tme/generic/Makefile.am: Added. ! 713: * tme/generic/bus-device.h: Added. ! 714: * tme/generic/bus.h: Added. ! 715: * tme/generic/ic.h: Added. ! 716: * tme/generic/serial.h: Added. ! 717: * tme/ic/am9513.h: Added. ! 718: * tme/ic/m68k.h: Now include <tme/generic/bus.h>. ! 719: * tme/ic/z8530.h: Added. ! 720: * tme/machine/sun.h: Added support for logging. ! 721: Changed the interface to pass the whole PTE struct to the post-MMU ! 722: TLB fillers. ! 723: ! 724: Sat Apr 26 14:44:07 2003 Matthew Fredette <[email protected]> ! 725: ! 726: * bus/bus.c (tme_bus_cycle_xfer): Fixed a bug where we used cycle_writer to ! 727: get the reader's port size. When indexing bus router arrays, we ! 728: have to subtract out the participant's least port lane, since ! 729: the arrays don't include information for lanes not connected ! 730: to the participant. ! 731: ! 732: Wed Apr 23 19:29:33 2003 Matthew Fredette <[email protected]> ! 733: ! 734: * bus/Makefile.am: Added. ! 735: * bus/bus-device.c: Added. ! 736: * bus/bus.c: Added. ! 737: * host/Makefile.am: Added. ! 738: * host/posix/Makefile.am: Added. ! 739: * host/posix/memory.c: Added. ! 740: * ic/Makefile.am: Added. ! 741: * ic/m68k/m68010.c (_tme_m68010_exception): ! 742: (_tme_m68010_rte): Added. ! 743: ! 744: * ic/m68k/m68k-bus-auto.sh: Now generates the combined input/output bus routers. ! 745: * ic/m68k/m68k-execute.c: Although I hate doing this, "too many changes to list." ! 746: * ic/m68k/m68k-impl.h: Added. ! 747: * ic/m68k/m68k-insns-auto.sh: Some minor copyright and cosmetic fixes. ! 748: Updated the bus cycle functions to support the latest ! 749: generic bus cycle idea. ! 750: ! 751: * ic/m68k/m68k-insns.c: Although I hate doing this, "too many changes to list." ! 752: * ic/m68k/m68k-iset-expand.pl: When the EA is an immediate, just emit the immediate information ! 753: and skip the EA information - we don't want to use the EA path ! 754: in this case. ! 755: ! 756: * ic/m68k/m68k-iset.txt: moveq is now its own insn. ! 757: * ic/m68k/m68k-misc-auto.sh: Copyright sweep. ! 758: * ic/m68k/m68k-misc.c: Although I hate doing this, "too many changes to list." ! 759: * ic/m68k/m68k-opmap-make.pl: Fixed some random bugs, and correctly handle the case where EA and ! 760: immediate operand must be undefined for a pattern, to avoid using ! 761: the EA and immediate operand in any root entry. ! 762: ! 763: * ic/m68k/m68k.h: Removed. ! 764: * libtme/Makefile.am: Added. ! 765: * libtme/threads-sjlj.c: Added. ! 766: * machine/sun/Makefile.am: Added. ! 767: * machine/sun/sun-mmu.c: Added. ! 768: * machine/sun2/Makefile.am: Added. ! 769: * machine/sun2/sun2-control.c: Added. ! 770: * machine/sun2/sun2-impl.h: Added. ! 771: * machine/sun2/sun2-mainbus.c: Added. ! 772: * machine/sun2/sun2-mmu.c: Added. ! 773: * machine/sun2/sun2-test.c: Added. ! 774: * tme/Makefile.am: Added. ! 775: * tme/atomics.h: Added. ! 776: * tme/bus-device.h: Added. ! 777: * tme/bus.h: Added. ! 778: * tme/common.h: Added. ! 779: * tme/connection.h: Added. ! 780: * tme/element.h: Added. ! 781: * tme/ic.h: Added. ! 782: * tme/threads.h: Added. ! 783: * tme/ic/Makefile.am: Added. ! 784: * tme/ic/m68k.h: Added. ! 785: * tme/machine/Makefile.am: Added. ! 786: * tme/machine/sun.h: Added. ! 787: ! 788: Sun Apr 20 21:33:05 2003 Matthew Fredette <[email protected]> ! 789: ! 790: * ic/m68k/m68k-bus-auto.sh: Added. ! 791: ! 792: Fri Apr 18 04:56:36 2003 Matthew Fredette <[email protected]> ! 793: ! 794: * ic/m68k/m68k-insns-auto.sh: Added support for generating the moveq32 insn. ! 795: Cleaned up and fixed some bugs in the bus cycle functions. ! 796: ! 797: * ic/m68k/m68k-misc-auto.sh: Cleaned up the set of registers that we define. ! 798: Added better locking support to the instruction fetch macros. ! 799: ! 800: Tue Apr 15 13:32:37 2003 Matthew Fredette <[email protected]> ! 801: ! 802: * ic/m68k/m68k-insns-auto.sh: Unfortunately, too much work to list in detail. Improved the ! 803: arithmetic function flag-setting code to compile well on i386 ! 804: with gcc -O2. Added many special-purpose memory read and write ! 805: functions, and finally introduced the general bus-cycle read ! 806: and write functions. Added many new instructions, including ! 807: multiply and divide. ! 808: ! 809: Sat Apr 05 18:47:38 2003 Matthew Fredette <[email protected]> ! 810: ! 811: * machine/Makefile.am: Added. ! 812: ! 813: Tue Apr 01 20:13:07 2003 Matthew Fredette <[email protected]> ! 814: ! 815: * ic/m68k/Makefile.am: Build decoders for the 68000, 68010, and 68020. ! 816: * ic/m68k/m68k-iset-expand.pl: Added a very basic preprocessor to support generating ! 817: different instruction sets for different CPUs. ! 818: Now whenever an instruction wants the EA, its operand ! 819: is eax.32 even if the known EA is address register indirect. ! 820: ! 821: * ic/m68k/m68k-iset.txt: This should be the complete integer instruction set for the ! 822: 68000, 68010, 68020, and 68030. ! 823: ! 824: * ic/m68k/m68k-opmap-make.pl: Added comments, and reworked to support compiling instruction ! 825: sets for different CPUs together, reusing submaps and opcode ! 826: maps whenever possible. ! 827: ! 828: * ic/m68k/m68k.h: Before the -impl.h split. ! 829: ! 830: Sun Mar 30 22:04:15 2003 Matthew Fredette <[email protected]> ! 831: ! 832: * ic/m68k/Makefile.am: Added. ! 833: * ic/m68k/m68010.c: Added. ! 834: * ic/m68k/m68k-execute.c: Added. ! 835: * ic/m68k/m68k-insns-auto.sh: Added. ! 836: * ic/m68k/m68k-insns.c: Added. ! 837: * ic/m68k/m68k-iset-expand.pl: Added. ! 838: * ic/m68k/m68k-iset.txt: Added. ! 839: * ic/m68k/m68k-misc-auto.sh: Added. ! 840: * ic/m68k/m68k-misc.c: Added. ! 841: * ic/m68k/m68k-opmap-make.pl: Added. ! 842: * ic/m68k/m68k.h: Added. ! 843: ! 844: Sun Mar 30 22:04:15 2000 Matthew Fredette <[email protected]> ! 845: ! 846: * Dummy entry.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.