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