|
|
1.1.1.3 ! root 1: Sun May 15 01:24:11 2005 Matthew Fredette <[email protected]> ! 2: ! 3: * Release 0.4 out. ! 4: ! 5: * configure.in: Fixed a bug where StaticGray, StaticColor, and ! 6: PseudoColor visuals would be considered indexed. This would cause the ! 7: translation functions to incorrectly try to map intensities into pixel ! 8: subfields. ! 9: ! 10: Sat May 14 22:28:29 2005 Matthew Fredette <[email protected]> ! 11: ! 12: * TODO: Updated. ! 13: ! 14: * acinclude.m4 (AC_CHECK_FUNC_LONG): Added. ! 15: ! 16: * configure.in: Now check for sys/bswap.h, bswap16(), and bswap32(). ! 17: Now check for isinff(). ! 18: Instead of taking a set of host display formats in the environment ! 19: variable TME_DISPLAYS, now take the configure argument ! 20: --with-tme-host-displays. When debugging is disabled, to get best ! 21: performance now define macros that preprocess out a lot of debugging ! 22: code. Debugging now defaults to disabled. ! 23: ! 24: * generic/float.c [!HAVE_ISINFF] (isinff): Added. ! 25: ! 26: * host/gtk/gtk-screen.c (_tme_gtk_screen_mode_change): Now initially ! 27: try to allocate new colors. For any colors that fail, try to allocate ! 28: best-match colors. Warn if even best-match colors could not be ! 29: allocated. ! 30: ! 31: * ic/ieee754/ieee754-misc.c: Declare more single- and double-precision ! 32: constants. ! 33: ! 34: * tme/common.h: Now include <sys/bswap.h> for the byteswapping ! 35: functions. When the host is big-endian, try to use bswap16() and ! 36: bswap32() for byteswapping functions, otherwise define them. Now ! 37: define little-endian conversion functions on big-endian hosts. ! 38: ! 39: * tme/generic/float.h: Corrected some HAVE_ macros to _TME_HAVE_ ! 40: macros. Now include float.h and limits.h. Added a prototype for ! 41: isinff(). ! 42: ! 43: Sat May 14 19:18:42 2005 Matthew Fredette <[email protected]> ! 44: ! 45: * generic/fb-xlat-auto.sh: Fixed a bug in the initialization of ! 46: dst_masks_default, that was causing incorrect halving translation on ! 47: PseudoColor hosts. ! 48: ! 49: * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_lookup): Fixed a bug in ! 50: the warning message when a keysym can't be generated by the host ! 51: keyboard. ! 52: ! 53: * ic/ieee754/Makefile.am: Added -lm to libtme_ieee754_la_LDFLAGS. ! 54: ! 55: * ic/m68k/m68k-opmap-dump.c: ! 56: * machine/sun3/sun3-carrera-eeprom.txt: Added. ! 57: ! 58: * ic/m68k/m68k-opmap-make.pl: The previous opcode map functions were ! 59: too big (or complicated?) to be compiled in a reasonable amount of ! 60: time on slower machines. Now compress the functions down by ! 61: initializing similar roots close to each other, and in groups whenever ! 62: possible. This cuts down on the amount of params[] refilling and ! 63: function calls, and decreases the size of m68k-opmap.c by almost half. ! 64: ! 65: * machine/sun3/Makefile.am: Added sun3-carrera-eeprom.txt to ! 66: examples_DATA. ! 67: ! 68: * serial/serial-kb.c (_tme_serial_kb_connection_make): When a keyboard ! 69: macro can't be parsed, instead of aborting, just log a complaint. ! 70: ! 71: Sat May 14 01:43:33 2005 Matthew Fredette <[email protected]> ! 72: ! 73: * acinclude.m4 (AC_CHECK_FLOAT_FORMAT): Fixed a tme_uint16_t, which ! 74: was causing failures on big-endian systems. ! 75: ! 76: * ic/ieee754/softfloat-tme.c: Swapped some declarations that were with ! 77: the wrong comments. ! 78: ! 79: * tme/ic/ieee754.h: Declare more single- and double-precision ! 80: constants. ! 81: ! 82: Wed May 11 00:15:42 2005 Matthew Fredette <[email protected]> ! 83: ! 84: * dist/softfloat/softfloat/bits64/softfloat-macros (add192): ! 85: (sub192): Fixed some gcc3 signed/unsigned comparison warnings. ! 86: ! 87: * dist/softfloat/softfloat/bits64/softfloat.c (roundAndPackFloatx80): ! 88: Fixed a gcc3 signed/unsigned comparison warning. ! 89: ! 90: * ic/i825x6.c (_tme_i825x6_callout_ru): ! 91: (_tme_i825x6_callout): Fixed some gcc3 signed/unsigned comparison ! 92: warnings. ! 93: ! 94: * ic/ieee754/ieee754-misc-auto.sh: Fixed a gcc3 signed/unsigned ! 95: comparison warning. ! 96: ! 97: * machine/sun3/sun3-mainbus.c (_tme_sun3_bus_intack): Make signal ! 98: unsigned, to fix gcc3 signed/unsigned comparison warnings. ! 99: ! 100: * tme/generic/float.h (tme_float_is_negative): Fixed all conditional ! 101: arms to be conditional expressions, to keep the type of the whole ! 102: expression int. ! 103: ! 104: Tue May 10 11:15:26 2005 Matthew Fredette <[email protected]> ! 105: ! 106: * machine/sun3/SUN3-CARRERA: Disable obie0 by default. ! 107: ! 108: Tue May 10 00:38:19 2005 Matthew Fredette <[email protected]> ! 109: ! 110: * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_attach): Connect the ! 111: key_press and key_release events with gtk_signal_connect_after, so we ! 112: can stop the event from propagating up to parents, where a GtkWindow ! 113: parent will do strange things with arrow key presses. ! 114: ! 115: * ic/isil7170.c (_tme_isil7170_bus_cycle): Fixed an off-by-one bug in ! 116: the month register. ! 117: ! 118: * machine/sun3/SUN3-CARRERA: Disable the serial console by default. ! 119: ! 120: Mon May 09 02:01:02 2005 Matthew Fredette <[email protected]> ! 121: ! 122: * machine/sun/sun-cgtwo.c (_tme_suncg2_bus_cycle_regs): Wrap the ! 123: rasterop register log in #ifndef TME_NO_LOG, since the rasterop ! 124: register names array doesn't exist otherwise. ! 125: ! 126: Mon May 09 01:59:03 2005 Matthew Fredette <[email protected]> ! 127: ! 128: * generic/ethernet.c (tme_ethernet_chunks_copy): Fixed a bug where the ! 129: size of the destination buffer would get loaded with the size of the ! 130: source buffer. ! 131: ! 132: * generic/fb.c (_tme_fb_xlat_colors_get_set): Fixed a bug where the ! 133: number of colors allocated wasn't being saved. ! 134: ! 135: * ic/i825x6.c (_tme_i825x6_fbl_refill): Now tolerate a Receive Buffer ! 136: with zero size. ! 137: (_tme_i825x6_callout_ru): Initialize rbd_size early, since its value ! 138: is decreased early when a fake receive buffer is made from the RFD ! 139: Ethernet header space. ! 140: ! 141: Sat Apr 30 15:22:25 2005 Matthew Fredette <[email protected]> ! 142: ! 143: * configure.in: Now determine the default display depth with xwininfo ! 144: -root, assuming that the root window is at the default depth. If the ! 145: depth is greater than one, also determine the visual class and any ! 146: subfield masks, and include this information in the destination image ! 147: key. Add support for color framebuffer images on the sun3. ! 148: ! 149: * generic/bus.c (_tme_bus_cycle_xfer_resp_least_lane): ! 150: (tme_bus_cycle_xfer_reg): Added. ! 151: ! 152: * generic/fb-xlat-auto.sh: Added support for color source and ! 153: destination images. ! 154: ! 155: * generic/fb.c (tme_fb_xlat_best): ! 156: (tme_fb_xlat_is_optimal): Now consider source image class, mapping ! 157: type, mapping size, and subfield masks, and destination image mapping ! 158: type and subfield masks. ! 159: (_tme_fb_xlat_colors_get_set): ! 160: (tme_fb_xlat_colors_get): ! 161: (tme_fb_xlat_colors_set): Added. ! 162: ! 163: * host/gtk/gtk-display.h: Removed the monochrome invert mask from ! 164: struct tme_gtk_display. Inversion is now specified by the ! 165: framebuffer. ! 166: ! 167: * host/gtk/gtk-screen.c (_tme_gtk_screen_mode_change): Added color ! 168: support. Now we determine the destination image class, mapping, and ! 169: any subfield masks. We choose a translation function based on image ! 170: classes, mappings, and subfield masks, and allocate colors on behalf ! 171: of the translation function. ! 172: ! 173: * ic/m68k/m68020.c (_tme_m68020_exception): Fixed a bug where a 32-bit ! 174: fetch wasn't marking the B stage as faulted. ! 175: ! 176: * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Fixed a bug with ! 177: the instruction buffer. Before, when the slow executor would take a ! 178: fault in the middle of a 32-bit instruction fetch, the successfully ! 179: fetched first 16 bits wouldn't get put in the instruction buffer by ! 180: the fault processing, because a fetch was only accounted for once it ! 181: fully succeeded. When the fetch was resumed, the first 16 bits was ! 182: lost. Now, a slow executor fetch is accounted for before it begins, ! 183: which guarantees that any partially fetched instruction makes it into ! 184: the instruction buffer. ! 185: ! 186: * ic/m68k/m68k-misc-auto.sh: Now, we update the instruction buffer ! 187: fetch total and sizes values before we do the actual fetch, because we ! 188: may transfer a few bytes and then fault. Without this, those few ! 189: bytes wouldn't get saved in the exception stack frame by ! 190: tme_m68k_insn_buffer_xfer(), because it wouldn't know about the fetch. ! 191: Later, when the instruction would be resumed, tme_m68k_fetch32() won't ! 192: refetch them, because it knows they've already been fetched and thinks ! 193: they're still in the instruction buffer. ! 194: ! 195: * machine/sun/Makefile.am: Now build sun-cgtwo.c for ! 196: libtme_machine_sun.la. ! 197: ! 198: * machine/sun/sun-bwtwo.c (_tme_sunbw2_connections_new): Fill in the ! 199: new parts of the struct tme_fb_connection. ! 200: (tme_sun_bwtwo): Fixed a bug in the argument processing. ! 201: ! 202: * machine/sun/sun-cgtwo.c: Added. ! 203: ! 204: * machine/sun2/SUN2-MULTIBUS: Since the Emulex emulation changed ! 205: slightly, make sure that NetBSD will still probe this as an Emulex. ! 206: ! 207: * machine/sun3/SUN3-CARRERA: Added support for the cgthree board. ! 208: ! 209: * machine/sun3/sun3-mainbus.c (tme_machine_sun3,cgtwo): Added. ! 210: ! 211: * machine/sun3/sun3-mmu.c (_tme_sun3_tlb_fill_mmu): Temporarily work ! 212: around a bug in NetBSD/sun3 where the cgtwo is mapped at the wrong ! 213: physical address. ! 214: ! 215: * tme/generic/bus.h: Added a prototype for tme_bus_cycle_xfer_reg(). ! 216: ! 217: * tme/generic/fb.h: Added macros for the different image classes, ! 218: mapping types, and default subfield masks. Also added macros for the ! 219: "any" subfield mask, and for the mask of the maximum index value. ! 220: Expanded struct tme_fb_connection and struct tme_fb_xlat to include ! 221: image class, subfield masks, and mapping information. Added ! 222: prototypes for tme_fb_xlat_colors_get() and tme_fb_xlat_colors_set(). ! 223: ! 224: * tme/machine/sun.h: Added a prototype for tme_sun_cgtwo(). ! 225: ! 226: Wed Mar 23 12:42:56 2005 Matthew Fredette <[email protected]> ! 227: ! 228: * ic/ieee754/ieee754-ops-auto.sh: Now emit ops for log, log10, and ! 229: exp. ! 230: ! 231: * ic/m68k/m68010.c: TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68010): Now ! 232: call tme_m68k_opcodes_init_m68010() to initialize the opcode table. ! 233: ! 234: * ic/m68k/m68020.c: TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68020): Now ! 235: call tme_m68k_opcodes_init_m68020() to initialize the opcode table. ! 236: ! 237: * ic/m68k/m6888x.c (tme_m68k_fbcc): Fixed a bug in calculating the ! 238: target PC; the displacement is always added to the original PC plus ! 239: two. Now always take a 32-bit displacement as a proper operand. ! 240: ! 241: * ic/m68k/m68k-execute.c: Simplified how instructions are decoded and ! 242: executed. Now, the first 16-bit instruction word is used to directly ! 243: index an array of 32-bit integers, each of which gives the ! 244: instruction's function number, the function's arguments, immediate ! 245: fetching and EA calculation information, and a single ! 246: special-operation escape bit. Only two types of immediate fetches are ! 247: supported: a 16-bit fetch, sign-extended to 32 bits, and a 32-bit ! 248: fetch. All of this speeds things up dramatically. ! 249: [_TME_M68K_STATS]: Keep statistics on executed instructions. ! 250: ! 251: * ic/m68k/m68k-impl.h: Removed TME_M68K_SIZE_SUBMAP_X, ! 252: TME_M68K_SIZE_16U8, TME_M68K_SIZE_16S32, TME_M68K_OPNUM_SUBMAP_X, ! 253: TME_M68K_OPNUM_UNDEF, and the list of special opcodes, all of which ! 254: were used only in the old opcode maps. ! 255: Added macros for the decoded instruction parameters in the new opcode ! 256: maps. ! 257: Removed the data structures used by the old opcode maps. The EA ! 258: register is now a proper IC register. Added statistics to struct ! 259: tme_m68k. Removed the declarations of the small immediate arrays. ! 260: The small immediates are now proper IC registers. Added declarations ! 261: of the different CPUs' opcode maps and their initialization functions, ! 262: and the instruction function array. Added declarations for ! 263: tme_m68k_bccl(), tme_m68k_bsrl(), tme_m68k_divl() and tme_m68k_mull(). ! 264: ! 265: * ic/m68k/m68k-insns.c (tme_m68k_bccl): ! 266: (tme_m68k_bsrl): ! 267: (tme_m68k_link): ! 268: (tme_m68k_rtd): Now that the opcode map supports 16-bit immediates ! 269: sign-extended to 32 bits, always take a proper 32-bit operand. ! 270: ! 271: * ic/m68k/m68k-iset.txt: Now that the opcode map supports 16-bit ! 272: immediates sign-extended to 32 bits again, make rtd and the 16-bit ! 273: versions of link, bsr, bcc, and fbcc take this kind of immediate. ! 274: ! 275: * ic/m68k/m68k-misc.c (tme_m68k_exception): Now log a message when a ! 276: double fault causes a processor halt. ! 277: ! 278: * ic/m68k/m68k-opmap-make.pl: The initial rewrite of the opcode map ! 279: generation resulted in an enormous opcode map source file, and, ! 280: because the instruction function pointers were in the map entries ! 281: directly, an opcode map array that wasn't 64-bit friendly. ! 282: Now, the instruction function pointers are in a small separate array ! 283: which is indexed by eight bits in the 32-bit opcode parameter ! 284: information, which is all that remains in the opcode map. To make ! 285: room for these eight bits, the first EA mode and reg fields are not ! 286: stored (and are instead are swapped in by the instruction executer ! 287: after the instruction function has been fetched), and the special ! 288: operation field has been reduced to a single bit. To shrink the ! 289: opcode map sources, we take advantage of the fact that each of the ! 290: 1024 aligned sets of 64 opcodes (a "root") uses one of a small number ! 291: of patterns to initialize itself (for m68000 through m68020, there are ! 292: only 37 such patterns), and we generate a function to initialize the ! 293: parameters in that pattern. Also, each CPU uses the previous CPU's ! 294: opcode initialization function to initialize the bulk of its opcode ! 295: map, making changes only as needed. ! 296: All of this has reduced the size of the opcode map source file ! 297: dramatically. ! 298: Also, support for 16-bit immediates, sign-extended to 32 bits, has ! 299: been added again. ! 300: ! 301: Tue Mar 15 02:56:58 2005 Matthew Fredette <[email protected]> ! 302: ! 303: * ic/m68k/m6888x.c (tme_m68k_fbcc): All 16-bit immediates are now ! 304: sign-extended to 32-bits in a fixed immediate register. ! 305: ! 306: * ic/m68k/m68k-insns.c (_tme_m68k_bcc): ! 307: (tme_m68k_bccl): ! 308: (_tme_m68k_bsr): ! 309: (tme_m68k_bsrl): Added. ! 310: (tme_m68k_bcc): Now just use _tme_m68k_bcc. ! 311: (tme_m68k_bsr): Now just use _tme_m68k_bsr. ! 312: (tme_m68k_link): Now handle the 16-bit variant explicitly. ! 313: (tme_m68k_rtd): Now handle our 16-bit argument correctly. ! 314: (tme_m68k_mull): ! 315: (tme_m68k_divl): Added. ! 316: ! 317: Thu Mar 10 13:29:42 2005 Matthew Fredette <[email protected]> ! 318: ! 319: * ic/m68k/m68010.c: Now define _TME_M68K_EXECUTE_OPMAP to ! 320: tme_m68k_opcodes_m68010 when compiling the executors. ! 321: TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68010): No longer call ! 322: _tme_m68010_decoder_map_init(). ! 323: ! 324: * ic/m68k/m68020.c: Now define _TME_M68K_EXECUTE_OPMAP to ! 325: tme_m68k_opcodes_m68020 when compiling the executors. ! 326: TME_ELEMENT_X_NEW_DECL(tme_ic_,m68k,m68020): No longer call ! 327: _tme_m68020_decoder_map_init(). ! 328: ! 329: * ic/m68k/m68k-insns-auto.sh: cas2 now gets its specop2 as a 16-bit ! 330: operand. moves now must do its own memory cycles, and EA ! 331: postincrement and predecrement. ! 332: Now track memory statistics in the memory functions. ! 333: ! 334: * ic/m68k/m68k-iset.txt: Many simplifications, and some expansions, to ! 335: enable faster instruction dispatching. Eliminated all specops except ! 336: for specop16 and fpgen, eliminated the #16S32 immediate type (all ! 337: 16-bit immediates are now sign-expanded to 32 bits), and bcc and bsr ! 338: are now expanded (multiple iset lines may expand to the same pattern, ! 339: with the first one winning, but also with a system of * understood by ! 340: m68k-opmap-make.pl to count the correct number of duplicates). ! 341: ! 342: * ic/m68k/m68k-misc-auto.sh: Now define a 96-bit register for ! 343: immediates. Now define registers for the constants zero through ! 344: eight. ! 345: ! 346: * ic/m68k/m68k-misc.c: Removed the small immediates arrays. ! 347: (_tme_m68k_connection_break): Now return zero, to silence a warning ! 348: (?). ! 349: (tme_m68k_new): Increased the instruction burst size to 200. This ! 350: dramatically improves performance. Now initialize the small ! 351: immediates. ! 352: (tme_m68k_redispatch): Count redispatch statistics. ! 353: (tme_m68k_tlb_fill): Count TLB fill statistics. ! 354: (tme_m68k_dump): No longer display the specop2 value. ! 355: ! 356: * ic/m68k/m68k-opmap-make.pl (operand_final): Removed. ! 357: ! 358: * ic/m68k/m68k-opmap-make.pl: Rewritten to support much faster ! 359: dispatching of instructions. Now each CPU gets an independent ! 360: 64K-entry array, indexed by first instruction word, that yields a ! 361: function pointer and 32 bits of parameter information. This ! 362: information includes struct tme_m68k-relative offsets for the ! 363: function's operands, EA and immediate fetching information, and specop ! 364: information. ! 365: ! 366: Fri Feb 18 04:12:55 2005 Matthew Fredette <[email protected]> ! 367: ! 368: * bus/multibus/sun-mie.c (_tme_sun_mie_tlb_set_allocate): Atomic ! 369: variable changes. ! 370: (_tme_sun_mie_tlb_fill): Don't invalidate a TLB entry if it happens to ! 371: be the same as the one we're filling. ! 372: ! 373: * bus/multibus/sun-sc.c (_tme_sun_sc_bus_cycle_dma): Fixed a bug where ! 374: we would do 16-bit accesses in 8-bit mode. ! 375: (_tme_sun_sc_intack): Added. ! 376: (_tme_sun_sc_cycle_new): ! 377: (_tme_sun_sc_callout): ! 378: (_tme_sun_sc_bus_cycle_data_reg): ! 379: (_tme_sun_sc_bus_cycle_icr): ! 380: (_tme_sun_sc_scsi_cycle): Mostly mechanical changes to support the new ! 381: events/actions SCSI bus interface. ! 382: (_tme_sun_sc_connection_make_scsi): No longer get any predefined SCSI ! 383: sequences. ! 384: (_tme_sun_sc_connections_new): No longer provide a predefined SCSI ! 385: sequence function. ! 386: (tme_bus_multibus,sun_sc): Added support for the "vme" argument. ! 387: ! 388: * generic/fb-xlat-auto.sh: Fixed a serious bug where we would decide ! 389: that FIFOs are always aligned, even when the FIFO's bits per pixel ! 390: value isn't known at compile time. ! 391: Fixed a bug where xlat_run would get decremented during every loop ! 392: iteration, instead of only after every translated source 32-bit word. ! 393: When the loop isn't unrolled for source pixels, this causes xlat_run ! 394: to go negative too early, which can stop translation. ! 395: ! 396: * generic/scsi.c (tme_scsi_connection_score): No longer score based on ! 397: a predefined SCSI sequence function. ! 398: ! 399: * ic/m68k/Makefile.am: Now build the m6888x support, which depends on ! 400: the ieee754 support. ! 401: ! 402: * ic/m68k/m68k-impl.h: ! 403: * tme/ic/m68k.h: Added m6888x support. ! 404: ! 405: * ic/m68k/m68k-iset.txt: Added the floating-point instructions. ! 406: ! 407: * ic/m68k/m68k-misc.c (_tme_m6888x_enable): Added. ! 408: (_tme_m68k_connection_score): A bus must not provide an m6888x enable ! 409: function. ! 410: (_tme_m68k_connections_new): A m68k provides an m6888x enable ! 411: function. ! 412: (tme_m68k_new): Now pass FPU arguments to tme_m68k_fpu_new(), and ! 413: display the FPU usage with tme_m68k_fpu_usage(). ! 414: (tme_m68k_do_reset): Reset any FPU. ! 415: ! 416: * machine/sun2/SUN2-MULTIBUS: Make the bpf attachment for ie0 delay ! 417: packets slightly. This works around a sleep/wakeup race condition in ! 418: the NetBSD kernel RARP code. ! 419: Changed the type of the bwtwo from obmem to multibus, since the bwtwo ! 420: implementation is now common to all sun machines. ! 421: ! 422: * machine/sun3/SUN3-CARRERA: Now define an unknown-compliance m68881. ! 423: Now use the revision 3.0 ROM. ! 424: Increased the size of the VME bus to the full 4GB. Commented out the ! 425: sc0 attachment, in favor of the new si0 attachment. ! 426: To support stock NetBSD 1.6*, make the Emulex tape respond to INQUIRY ! 427: commands in a normal way. ! 428: ! 429: * machine/sun3/sun3-control.c (_tme_sun3_control_cycle_handler): Call ! 430: out changes to the FPU and DVMA enable bits. Silently ignore an ! 431: attempt to enable the Sun FPA. ! 432: ! 433: * machine/sun3/sun3-impl.h: Now track the active DVMA TLBs, so that ! 434: they can be invalidated when DVMA is enabled or disabled. Atomic ! 435: variable fixes, and a prototype for _tme_sun3_mmu_sdvma_change(). ! 436: ! 437: * machine/sun3/sun3-mmu.c (_tme_sun3_cycle_dummy): ! 438: (_tme_sun3_sdvma_disabled): ! 439: (_tme_sun3_mmu_sdvma_change): Added. ! 440: (_tme_sun3_bus_tlb_fill): Now track TLB entries filled for DVMA space. ! 441: Entries that are filled while DVMA is disabled generate a VME bus ! 442: fault. For now, bus cycles to unmapped DVMA addresses are ignored. ! 443: (_tme_sun3_tlb_fill_mmu): Apparently the magic obio mapping of the ! 444: PROM works over a PROM-sized region starting at 0x100000. Made some ! 445: changes to silence -Wuninitialized. ! 446: (_tme_sun3_mmu_tlb_set_allocate): Atomic variable changes. ! 447: ! 448: * scsi/scsi-bus.c: Replaced the idea of a SCSI sequence with the much ! 449: simpler idea of a bus agent waiting for one or more SCSI events to ! 450: happen, then taking one or more SCSI actions. ! 451: (_tme_scsi_bus_callout): Now call out the events triggered and actions ! 452: taken to the connection. ! 453: (_tme_scsi_bus_cycle): Now take the events to wait on and the actions ! 454: to take from the connection. A connection waits until one of its ! 455: events triggers, then some part of its actions are taken. There is ! 456: now support for half and full SCSI bus arbitration, and reselection. ! 457: (_tme_scsi_bus_sequence_get): Removed. ! 458: (_tme_scsi_bus_connection_score): ! 459: (_tme_scsi_bus_connections_new): We can't provide a predefined ! 460: sequence function any more, or score a connection based on one. ! 461: ! 462: * scsi/scsi-device.c (_tme_scsi_device_callout): ! 463: (_tme_scsi_device_cycle): More or less mechanical changes to support ! 464: the new events/actions SCSI bus interface. Fixed a bug where we would ! 465: go past the end of the message dispatch array for IDENTIFY messages. ! 466: (tme_scsi_device_connections_new): Removed the predefined SCSI ! 467: sequence member assignment. ! 468: ! 469: * scsi/scsi-tape.c (tme_scsi_tape_cdb_inquiry): It looks like ! 470: nonexistent LUNs are reported as "unsupported", and not "not present". ! 471: Now identify as a SCSI-1 device, and be sure not to return more data ! 472: than the initiator requested. ! 473: ! 474: * tme/common.h: Now declare _tme_volatile. ! 475: Added some missing parentheses to _TME_FIELD_DEPOSIT(). Fixed a bug ! 476: in the definition of the tme_value64_uint32s[] member of union ! 477: tme_value64. ! 478: Added definitions for tme_value64_imul() and tme_value64_idiv(). ! 479: ! 480: * tme/generic/Makefile.am: Now install float.h. ! 481: ! 482: * tme/generic/bus.h: Now define TME_BUS_SIGNAL_DRQ and ! 483: TME_BUS_SIGNAL_DACK. ! 484: ! 485: * tme/generic/scsi.h: Now define TME_SCSI_ID_SELECTED() and ! 486: TME_SCSI_ID_RESELECTED(), to determine if an ID is being selected or ! 487: reselected. Replaced the idea of a SCSI sequence with the much ! 488: simpler idea of a bus agent waiting for one or more SCSI events to ! 489: happen, then taking one or more SCSI actions. ! 490: ! 491: * tme/ic/Makefile.am: Now install i825x6.h and ieee754.h. ! 492: ! 493: * tme/machine/sun.h: Added a prototype for tme_sun_si(). ! 494: ! 495: * tme/scsi/scsi-device.h: Removed the old predefined SCSI sequences ! 496: from struct scsi_device. ! 497: ! 498: * tme/scsi/scsi-msg.h: Now define TME_SCSI_MSG_IDENTIFY_LUN_MASK, for ! 499: getting the LUN out of an IDENTIFY message. ! 500: ! 501: * tmesh/tmesh-input.y: Now define YYMAXDEPTH, to silence -Wundef. ! 502: ! 503: Thu Feb 17 13:42:44 2005 Matthew Fredette <[email protected]> ! 504: ! 505: * Makefile.am: Added tools/ to SUBDIRS, and dist/ to EXTRA_DIST. ! 506: Added a dist-hook target to clean the CVS directories out of dist/. ! 507: ! 508: * acinclude.m4 (AC_CHECK_FLOAT_FORMAT): ! 509: (AC_CHECK_FLOAT_LIMITS): Added. ! 510: ! 511: * configure.in: Bumped version to 0.4. ! 512: Now check for limits.h and float.h. Check for volatile, float, ! 513: double, and long double, and the signal handler type. ! 514: Added ieee754 and ncr5380 to the list of sun3 ICs. When using gcc, ! 515: now use -Wundef when compiling with warnings, and set the no strict ! 516: aliasing flag. Add the floating point format configuration to ! 517: tmeconfig.h. ! 518: ! 519: * generic/Makefile.am: Now build float.c and float-auto.c, and include ! 520: float-auto.sh and float-auto.c in the distribution. ! 521: ! 522: * generic/bus-el.c generic/bus.c machine/sun/sun-mmu.c ! 523: machine/sun/sun-obie.c machine/sun2/sun2-impl.h ! 524: machine/sun2/sun2-mmu.c tme/atomics.h tme/generic/bus.h ! 525: tme/machine/sun.h: ! 526: ! 527: Cleaned up atomic variables. Now atomic variables declared with ! 528: TME_ATOMIC and TME_ATOMIC_POINTER_TYPE are volatile. To do this ! 529: right, TME_ATOMIC_POINTER_TYPE changed to take just the base type ! 530: pointed to, so there has been some fallout. ! 531: ! 532: * generic/float-auto.sh generic/float.c ic/ncr5380.c ! 533: ic/ieee754/Makefile.am ic/ieee754/ieee754-misc-auto.sh ! 534: ic/ieee754/ieee754-misc.c ic/ieee754/ieee754-ops-auto.sh ! 535: ic/ieee754/ieee754-precision.sh ic/ieee754/softfloat-tme.c ! 536: ic/ieee754/softfloat-tme.h ic/m68k/m6888x-auto.sh ic/m68k/m6888x.c ! 537: machine/sun/sun-si.c tme/generic/float.h tme/ic/ieee754.h ! 538: tools/Makefile.am: ! 539: ! 540: Added. ! 541: ! 542: * host/posix/posix-disk.c (tme_host_posix,disk): Only probe for the ! 543: block size if the device is a character device. If we have mmap ! 544: support, the block size for all devices must be some multiple of the ! 545: page size - this fixes a bug where we would try to mmap() ! 546: non-page-sized regions at non-page boundaries. ! 547: ! 548: * ic/Makefile.am: Added ieee754 to the list of distribution ! 549: subdirectories. Now build ncr5380.c. ! 550: Added i825x6reg.h to the list of i825x6 sources. ! 551: ! 552: * ic/m68k/m68020.c (_tme_m68020_exception): ! 553: (_tme_m68020_rte): Fixed bugs in the handling of bus fault frames for ! 554: instruction fetches. Previously, we would always fault on stage B, ! 555: and only on stage C for a 32-bit fetch. This was supposed to be the ! 556: other way around. Also, an address error doesn't set a fault bit, ! 557: only a rerun bit. ! 558: ! 559: * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Fixed some bugs ! 560: caught by gcc -Wuninitialized. ! 561: ! 562: * ic/m68k/m68k-opmap-make.pl: Fixed a bug where the illegal opcode ! 563: wouldn't get the 'illegal' specop. ! 564: ! 565: * libtme/threads-sjlj.c [HAVE_GTK]: Define G_ENABLE_DEBUG if it isn't ! 566: defined, to silence -Wundef. ! 567: ! 568: * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Fixed a serious bug ! 569: where any page marked as modified was given out as writable, even if ! 570: it wasn't marked as writable. SunOS likes to set page table entries ! 571: that are modified, but not writable, and this bug was preventing ! 572: proper copy-on-write behavior. ! 573: ! 574: * machine/sun2/Makefile.am: No longer build sun2-bwtwo.c. ! 575: ! 576: * machine/sun2/sun2-bwtwo.c: Removed. ! 577: ! 578: * machine/sun2/sun2-mainbus.c (_tme_sun2_connections_new): Fixed bugs ! 579: in forming the list of free buses. ! 580: (tme_machine_sun2,zs): Now use the standard Sun z8530 socket ! 581: definition. ! 582: (tme_machine_sun2,bwtwo): Added. ! 583: ! 584: * machine/sun3/sun3-mainbus.c (_tme_sun3_bus_signal): Apparently, ! 585: SunOS likes to set both the level 5 and level 7 clock interrupt enable ! 586: bits. The level 5 bit seems to take precedence. ! 587: (_tme_sun3_connection_score): Insist on a m68020 or better. ! 588: (tme_machine_sun3,si): Added. ! 589: ! 590: * scsi/emulexmt02.c (_tme_emulexmt02_cdb_request_sense): Fixed a bug ! 591: where we weren't putting the Emulex error code in the sense. ! 592: (_tme_emulexmt02_cdb_inquiry): Added a hack to make this tape usable ! 593: to install SunOS 4.1.1. ! 594: (tme_scsi_tape_emulexmt02_init): If the user specified a vendor of ! 595: EMULEX, use the normal INQUIRY CDB handling, instead of returning the ! 596: useless Emulex INQUIRY data. Now return an illegal command for a ! 597: RESERVE CDB. ! 598: ! 599: Thu Feb 17 02:14:57 2005 Matthew Fredette <[email protected]> ! 600: ! 601: * ic/m68k/m68k-insns.c (tme_m68k_bfffo): Fixed a bug where we were ! 602: using ffs(), which finds the least significant bit set, and not the ! 603: most significant bit set. Now find the most significant bit set. ! 604: ! 605: * ic/m68k/m68k-verify.c (_tme_m68k_verify_end): Added better support ! 606: for verifying bitfield instructions. Don't try to verify ! 607: floating-point instructions. ! 608: (tme_m68k_verify_end_branch): Now leave the m68k structure unchanged. ! 609: ! 610: * machine/sun/Makefile.am: Added sun-fb.h and sun-si.c to the sources ! 611: list. Added tme-sun-eeprom.pl to the distribution. ! 612: ! 613: Wed Jan 26 13:13:29 2005 Matthew Fredette <[email protected]> ! 614: ! 615: * host/gtk/gtk-display.h: If G_ENABLE_DEBUG isn't defined, define it ! 616: to zero. Some GTK installations apparently require this. ! 617: ! 618: * host/gtk/gtk-screen.c (_tme_gtk_screen_mode_change): Allocate a ! 619: GdkImage with the extra scanlines needed to hold the overtranslation ! 620: that the automatically generated functions do. ! 621: ! 622: * ic/isil7170.c: Include <time.h> and not <sys/types.h> to get struct ! 623: tm. ! 624: ! 625: * ic/m68k/m68020.c (_tme_m68020_exception): Store the memory Z buffer. ! 626: (_tme_m68020_rte): Restore the memory Z buffer. ! 627: ! 628: * libtme/module.c (tme_module_open): Fixed a bug where were freeing ! 629: the tokens array twice. ! 630: ! 631: * scsi/scsi-msg.c (tme_scsi_device_msg_identify): Now set the ! 632: addressed LUN. ! 633: ! 634: Sun Jan 16 01:24:37 2005 Matthew Fredette <[email protected]> ! 635: ! 636: * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Added support for ! 637: executing floating-point general instructions. ! 638: ! 639: Fri Jan 14 12:27:41 2005 Matthew Fredette <[email protected]> ! 640: ! 641: * dist/softfloat/processors/386-GCC.h ! 642: dist/softfloat/processors/SPARC-GCC.h ! 643: dist/softfloat/softfloat/README.txt ! 644: dist/softfloat/softfloat/SoftFloat-history.txt ! 645: dist/softfloat/softfloat/SoftFloat-source.txt ! 646: dist/softfloat/softfloat/SoftFloat.txt ! 647: dist/softfloat/softfloat/timesoftfloat.txt ! 648: dist/softfloat/softfloat/bits32/softfloat-macros ! 649: dist/softfloat/softfloat/bits32/softfloat.c ! 650: dist/softfloat/softfloat/bits32/timesoftfloat.c ! 651: dist/softfloat/softfloat/bits32/386-Win32-GCC/Makefile ! 652: dist/softfloat/softfloat/bits32/386-Win32-GCC/milieu.h ! 653: dist/softfloat/softfloat/bits32/386-Win32-GCC/softfloat-specialize ! 654: dist/softfloat/softfloat/bits32/386-Win32-GCC/softfloat.h ! 655: dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/Makefile ! 656: dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/milieu.h ! 657: dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/softfloat-specialize ! 658: dist/softfloat/softfloat/bits32/SPARC-Solaris-GCC/softfloat.h ! 659: dist/softfloat/softfloat/bits32/templates/Makefile ! 660: dist/softfloat/softfloat/bits32/templates/milieu.h ! 661: dist/softfloat/softfloat/bits32/templates/softfloat-specialize ! 662: dist/softfloat/softfloat/bits32/templates/softfloat.h ! 663: dist/softfloat/softfloat/bits64/softfloat-macros ! 664: dist/softfloat/softfloat/bits64/softfloat.c ! 665: dist/softfloat/softfloat/bits64/timesoftfloat.c ! 666: dist/softfloat/softfloat/bits64/386-Win32-GCC/Makefile ! 667: dist/softfloat/softfloat/bits64/386-Win32-GCC/milieu.h ! 668: dist/softfloat/softfloat/bits64/386-Win32-GCC/softfloat-specialize ! 669: dist/softfloat/softfloat/bits64/386-Win32-GCC/softfloat.h ! 670: dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/Makefile ! 671: dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/milieu.h ! 672: dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/softfloat-specialize ! 673: dist/softfloat/softfloat/bits64/SPARC-Solaris-GCC/softfloat.h ! 674: dist/softfloat/softfloat/bits64/templates/Makefile ! 675: dist/softfloat/softfloat/bits64/templates/milieu.h ! 676: dist/softfloat/softfloat/bits64/templates/softfloat-specialize ! 677: dist/softfloat/softfloat/bits64/templates/softfloat.h: ! 678: ! 679: Import of SoftFloat Release 2b. ! 680: ! 681: * dist/softfloat/softfloat/bits32/softfloat.c: ! 682: * dist/softfloat/softfloat/bits64/softfloat.c: Added the tme/softfloat ! 683: glue and removed some unused variables. ! 684: ! 685: Fri Jan 14 11:44:18 2005 Matthew Fredette <[email protected]> ! 686: ! 687: * machine/sun/tme-sun-eeprom.pl: Make selftest-#megs default to zero. ! 688: * tools/tme-binary-struct.pl.in: When standard input is a terminal, we ! 689: don't read any input. ! 690: ! 691: Thu Aug 19 12:27:24 2004 Matthew Fredette <[email protected]> ! 692: ! 693: * TODO: Updated. ! 694: ! 695: * acinclude.m4 (AC_CHECK_SHIFTSIGNED): Added. ! 696: ! 697: * configure.in: Use AC_CHECK_SHIFTSIGNED() to see if right shifts of ! 698: signed integrals preserve sign. ! 699: Added support for sun3 systems. ! 700: ! 701: * generic/bus-el.c (_tme_bus_intack): If a device doesn't acknowledge ! 702: interrupts, return any user-specified vector on the bus connection ! 703: before falling back to the undefined vector. ! 704: (_tme_bus_connections_new): Now allow the user to specify a vector on ! 705: the bus connection. ! 706: (tme_generic,bus): Added a hack that allows the user to specify a 4GB ! 707: bus on a 32-bit system. ! 708: ! 709: * ic/Makefile.am: Now build tme_ic_isil7170.la. ! 710: ! 711: * ic/i825x6.c (_tme_i825x6_callout_cu): Added a missing break ! 712: statement to a switch arm. ! 713: ! 714: * ic/isil7170.c ic/m68k/m68020.c machine/sun/sun-bwtwo.c ! 715: machine/sun/sun-fb.c machine/sun/sun-fb.h machine/sun/sun-obie.c ! 716: machine/sun/tme-sun-eeprom.pl machine/sun3/Makefile.am ! 717: machine/sun3/SUN3-CARRERA machine/sun3/sun3-control.c ! 718: machine/sun3/sun3-impl.h machine/sun3/sun3-mainbus.c ! 719: machine/sun3/sun3-mmu.c tme/ic/isil7170.h ! 720: tools/tme-binary-struct.pl.in: ! 721: ! 722: Added. ! 723: ! 724: * ic/m68k/Makefile.am: Removed an inadvertent m68k-verify.c from ! 725: tme_ic_m68k_la_SOURCES. ! 726: ! 727: * ic/m68k/Makefile.am: Now compile m68020.c. ! 728: ! 729: * ic/m68k/m68k-misc.c (tme_m68000_exception_process): ! 730: (tme_m68020_exception_process): For illegal instruction exceptions, ! 731: now use the line A or line F vector as appropriate. ! 732: (tme_m68k_rte_start): Added some TME_M68K_SEQUENCE_RESTARTING ! 733: protection. ! 734: ! 735: * libtme/threads-sjlj.c: Removed the unused ! 736: tme_sjlj_thread_cond_notified field from the thread structure. ! 737: (tme_sjlj_thread_create): Initialize the thread's linkage in the ! 738: timeout list. ! 739: ! 740: * machine/Makefile.am: Added the sun3 directory to DIST_SUBDIRS. ! 741: ! 742: * machine/sun/Makefile.am: Now build sun-bwtwo.c, sun-fb.c, and ! 743: sun-obie.c for libtme_machine_sun.la. ! 744: Now make the tme-sun-eeprom script. ! 745: ! 746: * machine/sun/sun-keyboards.txt: Added a map for the type 3 keyboard. ! 747: ! 748: * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Don't invalidate the ! 749: old TLB entry if it happens to be the same one we're filling. ! 750: ! 751: * tme/common.h: Now define TME_FIELD_MASK_EXTRACTU and the internal ! 752: _TME_FIELD_MASK_FACTOR, for extracting field values using a mask. ! 753: ! 754: * tme/generic/bus.h: Now define TME_BUS_CYCLE_SYNCHRONOUS_EVENT. Now ! 755: track a single interrupt vector for a connection, for those ! 756: connections that only use a single, nonprogrammable vector. ! 757: ! 758: * tme/ic/Makefile.am: Now install isil7170.h. ! 759: ! 760: * tme/machine/sun.h: To allow for more code sharing, now define ! 761: TME_SUN_Z8530_SIZE and TME_SUN_Z8530_SOCKET_INIT. Added prototypes ! 762: for tme_sun_obie() and tme_sun_bwtwo(). ! 763: ! 764: Wed Aug 11 12:30:28 2004 Matthew Fredette <[email protected]> ! 765: ! 766: * ic/m68k/m68010.c: Removed GROUPn_ from the TME_M68K_EXCEPTION_ macro ! 767: names, since those group numbers applied to only the 68000 and 68010. ! 768: Also added the new TME_M68K_VECTOR_ macros. ! 769: ! 770: * ic/m68k/m68k-execute.c (_TME_M68K_EXECUTE_NAME): Fixed problems with ! 771: the way that tracing is handled, to enable support for 68020 tracing ! 772: and its new trace exception frame format. Fixed a bug in the code ! 773: that detects a 32-bit branch. Fixed a bug in decoding the divul and ! 774: mulul extension words. Added missing declarations for some variables ! 775: used in 68020 effective address calculation. ! 776: ! 777: * ic/m68k/m68k-impl.h: Replaced TME_M68K_FLAG_T with TME_M68K_FLAG_T0 ! 778: and TME_M68K_FLAG_T1, and use them wherever possible. Removed the ! 779: GROUPn_ from the TME_M68K_EXCEPTION_ macros, since the original group ! 780: numbers were specific to the 68000 and 68010. Added more exception ! 781: frame format identifier macros. Added new macros for the exception ! 782: vectors. ! 783: (TME_M68K_INSN_BRANCH): ! 784: (TME_M68K_INSN_CHANGE_SR): Improved tracing support. ! 785: ! 786: * ic/m68k/m68k-insns-auto.sh: The old asr expansion (which was the ! 787: same as the lsr expansion, but with a signed operand and result) had ! 788: bugs and also required that right shifts of a signed operand be ! 789: arithmetic. Added a new expansion that fixes these problems. ! 790: Removed the _GROUPn from the TME_M68K_EXCEPTION_ macro names, since ! 791: the group numbers were specific to the 68000 and 68010. Also added ! 792: the new TME_M68K_VECTOR_ macros. ! 793: In the bus-cycle functions, recognize the ! 794: TME_BUS_CYCLE_SYNCHRONOUS_EVENT pseudo-error, and make it force the ! 795: executer to check external events before executing the next ! 796: instruction. ! 797: ! 798: * ic/m68k/m68k-insns.c: Removed the _GROUPn from the ! 799: TME_M68K_EXCEPTION_ macro names, since the group numbers were specific ! 800: to the 68000 and 68010. Also added the new TME_M68K_VECTOR_ macros. ! 801: Where applicable, store the current PC as the last PC before setting ! 802: the next PC as the current PC. This supports format 2 exception ! 803: frames, which stack the address of the instruction that caused the ! 804: exception. ! 805: (tme_m68k_movec): Added support for the 68020 control registers. ! 806: ! 807: * ic/m68k/m68k-misc-auto.sh: Create registers for the next program ! 808: counter, the 68020 cacr and caar, and the always-zero register. ! 809: ! 810: * ic/m68k/m68k-misc.c: Removed the _GROUPn from the ! 811: TME_M68K_EXCEPTION_ macro names, since the group numbers were specific ! 812: to the 68000 and 68010. Also added the new TME_M68K_VECTOR_ macros. ! 813: (_tme_m68k_bus_interrupt): ! 814: (tme_m68k_external_check): Implement a system that prevents NMI from ! 815: being repeatedly accepted. If the interrupt priority mask is already ! 816: seven, only accept an NMI on a transition from deasserted to asserted. ! 817: (tme_m68k_new): Now set the mask of T bits used by the processor. ! 818: (tme_m68k_do_reset): Now clear the E and F bits in the 68020 cacr. ! 819: Fixed a bug where we loaded the initial SSP and PC from supervisor ! 820: data space instead of the correct supervisor program space. ! 821: (tme_m68k_change_sr): Only recognize the M bit on a 68020 or greater, ! 822: and fixed bugs in the selection of the correct stack pointer control ! 823: register. ! 824: (tme_m68k_exception_process): Renamed to tme_m68000_exception_process, ! 825: since the grouping and priority it implements are specific to the ! 826: 68000 and 68010. ! 827: (tme_m68020_exception_process): Added. ! 828: (tme_m68k_bitfield_offset): Simplified the bitfield byte offset ! 829: calculation for negative bit offsets. ! 830: (tme_m68k_bitfield_width): Don't bother masking a bitfield width that ! 831: was encoded in the instruction; it can't be greater than 31. ! 832: (_tme_m68k_bitfield_read): If the bitfield is in memory, note that the ! 833: current instruction can fault. Fixed bugs where we assumed that ! 834: TME_BIT(32) is zero mod 2^32, when it may be 1 because of shift ! 835: limiting, which would cause us to fail to mask and/or sign-extend a ! 836: 32-bit bitfield value correctly. ! 837: (tme_m68k_bitfield_write_unsigned): Fixed a bug where we wouldn't mask ! 838: the value we were given before setting the flags. Fixed bugs where we ! 839: assumed that TME_BIT(32) is zero mod 2^32, when it may be 1 because of ! 840: shift limiting. If the bitfield is in memory, note that the current ! 841: instruction can fault. ! 842: ! 843: * ic/m68k/m68k-verify.c (tme_m68k_verify_mem_any): Fixed a bug where ! 844: we wouldn't properly verify transfers of endianless data. ! 845: (tme_m68k_verify_init): Now set up a full 32-bit address space. ! 846: (_tme_m68k_verify_end): Store %a7 back in its proper stack pointer ! 847: control register, so we can verify changes to the control registers. ! 848: Ignore extra verifier memory reads on bitfield instructions; the ! 849: verifier bitfield implementation often reads addresses not covered by ! 850: the bitfield. ! 851: ! 852: Mon May 17 11:57:01 2004 Matthew Fredette <[email protected]> ! 853: ! 854: * host/bsd/bsd-bpf.c: Added support for the "delay" option, which ! 855: delays all incoming packets for a user-specified number of ! 856: microseconds. ! 857: (_tme_bsd_bpf_read): Fixed a bug where a TME_ETHERNET_READ_PEEK read ! 858: would discard the read packet. ! 859: ! 860: Fri May 14 00:56:19 2004 Matthew Fredette <[email protected]> ! 861: ! 862: * host/bsd/bsd-bpf.c: Removed the unused tme_bsd_bpf_cond_writer ! 863: structure member. ! 864: (tme_host_bsd,bpf): Fixed a bug where we weren't initializing the ! 865: tme_bsd_bpf_conf_reader condition. ! 866: ! 867: Tue May 11 12:03:36 2004 Matthew Fredette <[email protected]> ! 868: ! 869: * ic/i825x6.c: Added some logging. ! 870: (_tme_i825x6_callout_ru): Don't set the B bit in RFD status fields. ! 871: ! 872: * libtme/misc.c (_tme_misc_number_parse): Some changes to silence gcc ! 873: -Wuninitialized. ! 874: ! 875: Tue May 04 01:17:27 2004 Matthew Fredette <[email protected]> ! 876: ! 877: * bus/multibus/sun-mie.c: ! 878: * ic/i825x6.c: ! 879: * ic/i825x6reg.h: ! 880: * tme/ic/i825x6.h: Added. ! 881: ! 882: * machine/sun2/SUN2-MULTIBUS: Added commands to create ie0. ! 883: ! 884: Fri Apr 30 12:11:36 2004 Matthew Fredette <[email protected]> ! 885: ! 886: * bus/multibus/3c400.c bus/multibus/sun-sc.c generic/bus-el.c ! 887: ic/am9513.c ic/z8530.c ic/m68k/m68k-insns.c ic/m68k/m68k-misc.c ! 888: machine/sun2/sun2-mainbus.c tme/generic/bus.h: ! 889: ! 890: Reworked bus signals in several ways: Added the notion of the bus ! 891: signals set. Every bus should support multiple device-specific bus ! 892: signals sets, added by elements connecting to the bus. This enables ! 893: elements to pass these device-specific bus signals to each other. ! 894: Now bus signals are only specified as either asserted or negated, ! 895: and devices almost never signal edges. For devices that only drive ! 896: signals either high or low, you can exclusive-or ! 897: TME_BUS_SIGNAL_LEVEL_ASSERTED with either TME_BUS_SIGNAL_LEVEL_HIGH ! 898: or TME_BUS_SIGNAL_LEVEL_LOW as appropriate, and provide that to the ! 899: device such that the device only needs to exclusive-or that with the ! 900: signal level to get the right asserted or negated level. Also ! 901: expanded the number of generic bits in a signal value, and improved ! 902: the set of macros used to compose and decompose signal values. ! 903: ! 904: * bus/multibus/sun-sc.c generic/bus.c ic/m68k/m68k-misc.c ! 905: machine/sun/sun-mmu.c tme/generic/bus.h: ! 906: ! 907: Made changes to the TLB protocol, to better support reentrant ! 908: devices. Now, a TLB entry passed to a fill function is expected to ! 909: be local on the stack, and it "reserves" the real, backing TLB entry ! 910: in the device's state. This prevents the case where a device tries ! 911: to fill the same backing TLB entry at the same time in two or more ! 912: threads. TLB fill functions for devices that need to invalidate ! 913: outstanding TLBs always invalidate the backing TLB entry. After a ! 914: TLB fill has finished, the caller checks its reservation on the ! 915: real, backing TLB, and copies the local TLB back if the reservation ! 916: has not been broken. Devices that want to use a TLB entry ! 917: immediately after the fill function returns must use the local TLB, ! 918: since it cannot have been invalidated yet. Also made fixes to TLB ! 919: entry users that avoid rereading fields that are destroyed by ! 920: invalidation, after the device has committed to using the TLB entry, ! 921: since invalidation can happen at any time. Also made the TLB ! 922: tme_bus_tlb_emulator_off_read member const. ! 923: ! 924: * generic/Makefile.am: ! 925: * generic/bus-device.c: ! 926: * tme/generic/bus-device.h: Added generic bus-device support for real ! 927: bus interfaces and bus-mastering. ! 928: ! 929: Fri Apr 30 01:46:01 2004 Matthew Fredette <[email protected]> ! 930: ! 931: * TODO: Updated. ! 932: ! 933: * configure.in: Added the i825x6 to the list of ICs for the sun2. ! 934: ! 935: * bus/multibus/Makefile.am: Now compile sun-mie.c. ! 936: ! 937: * ic/Makefile.am: Now build tme_ic_i825x6.la. ! 938: ! 939: * tme/common.h: Added the TME_X_VERSION versioning macros. Simplified ! 940: the definition of TME_RANGES_OVERLAP. ! 941: ! 942: * tme/generic/ethernet.h: Now define TME_ETHERNET_LENGTH_SIZE and ! 943: TME_ETHERNET_HEADER_SIZE. ! 944: ! 945: * tme/ic/m68k.h: Removed the ancient tme_m68k_tlb_bus_wrlock_on_read ! 946: macro. ! 947: ! 948: Sun Mar 28 23:38:28 2004 Matthew Fredette <[email protected]> ! 949: ! 950: * generic/bus-device-auto.sh: Added. ! 951: ! 952: Fri Feb 20 12:42:11 2004 Matthew Fredette <[email protected]> ! 953: ! 954: * ic/m68k/m68k-execute.c [_TME_M68K_EXECUTE_FAST]: Make the fast ! 955: emulator load pointers const. ! 956: ! 957: Fri Jan 09 03:42:48 2004 Matthew Fredette <[email protected]> ! 958: ! 959: * generic/bus-el.c ic/am9513.c ic/m68k/m68k-misc.c ! 960: machine/sun2/sun2-mainbus.c tme/generic/bus.h: ! 961: ! 962: Increased the possible number of signal flag bits. ! 963: (TME_BUS_SIGNAL_WHICH): Renamed to TME_BUS_SIGNAL_INDEX, all callers ! 964: changed, and added a new macro with the same old name that simply ! 965: masks off the signal flag bits. ! 966: (TME_BUS_SIGNAL_WHICH_INT): Renamed to TME_BUS_SIGNAL_INDEX_INT, all ! 967: callers changed. ! 968: ! 969: * generic/bus.c (tme_bus_addr_parse_any): Now use ! 970: tme_misc_unumber_parse_any(). ! 971: ! 972: * generic/disk.c (tme_disk_dimension_parse): Now use ! 973: tme_misc_unumber_parse(). ! 974: ! 975: * generic/fb-xlat-auto.sh: No longer emit some pixel-doubling code in ! 976: optimized translation functions for formats for 24 or more bits per ! 977: pixel, because that code would expand to shifts of more than 32 bits, ! 978: tripping gcc -Werror. ! 979: ! 980: * host/gtk/gtk-screen.c (_tme_gtk_gdkimage_bipp): Fixed a bug where ! 981: this would fail when bipp > depth, which is common on deep ! 982: framebuffers. ! 983: ! 984: * libtme/misc.c (_tme_misc_number_parse): ! 985: (tme_misc_unumber_parse_any): ! 986: (tme_misc_number_parse_any): ! 987: (tme_misc_unumber_parse): ! 988: (tme_misc_number_parse): Added. ! 989: ! 990: * tme/misc.h: Added prototypes for tme_misc_unumber_parse_any, ! 991: tme_misc_number_parse_any, tme_misc_unumber_parse, and ! 992: tme_misc_number_parse. ! 993: 1.1.1.2 root 994: Wed Oct 29 02:03:26 2003 Matthew Fredette <[email protected].> 995: 996: * Release 0.2 out. 1.1 root 997: 1.1.1.2 root 998: * host/gtk/gtk-screen.c: Some quick changes for GTK 2 compatibility. 1.1 root 999: 1.1.1.2 root 1000: Sat Oct 25 17:08:02 2003 Matthew Fredette <[email protected]> 1001: 1002: * ic/am9513.c ic/mm58167.c ic/z8530.c ic/z8530reg.h 1003: ic/m68k/m68k-execute.c ic/m68k/m68k-insns.c ic/m68k/m68k-iset.txt 1004: ic/m68k/m68k-misc.c ic/m68k/m68k-verify.c tmesh/tmesh-cmds.c 1005: tmesh/tmesh-util.c: 1006: 1007: RCS Id, header comment, and license sweep. 1008: 1009: Thu Oct 16 03:02:11 2003 Matthew Fredette <[email protected]> 1010: 1011: * configure.in: Now check for size_t. 1012: Now make sure that <net/bpf.h> defines BIOCSHDRCMPLT before deciding 1013: that bpf support is present. 1014: 1015: * generic/bus.c generic/keyboard.c host/bsd/bsd-bpf.c 1016: host/bsd/bsd-if.c host/gtk/gtk-display.h host/gtk/gtk-keyboard.c 1017: host/posix/posix-tape.c ic/am9513.c ic/m68k/m68k-impl.h 1018: libtme/log-prf.c machine/sun2/sun2-mmu.c scsi/scsi-cdb.c 1019: scsi/scsi-tape.c serial/kb-sun.c serial/serial-kb.c 1020: serial/serial-ms.c tme/generic/keyboard.h tme/scsi/scsi-device.h 1021: tmesh/tmesh-cmds.c tmesh/tmesh.c: 1022: 1023: Fixed many small bugs caught by the gcc3 -Wall -Wuninitialized. 1024: 1025: * host/posix/posix-disk.c: Fixed various type problems found by gcc3. 1026: 1027: * scsi/acb4000.c (_tme_acb4000_cdb_bad): Fixed a bug where we set the 1028: amount of valid sense to TRUE instead of to a byte count. 1029: 1030: * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Work around an aliasing 1031: warning. 1032: 1033: * tme/common.h: Fixed a bug where tme_value64_set had a conditional 1034: with two different result types. 1035: When included by the implementation, now try to bring in standard 1036: headers to get string and memory function prototypes. Added an 1037: incomplete list of prototypes for when standard headers aren't 1038: available. 1039: 1040: Mon Sep 29 11:42:56 2003 Matthew Fredette <[email protected]> 1041: 1042: * generic/fb-xlat-auto.sh: Added many comments, clarified some obscure 1043: code, and fixed a bug where unoptimized halving translators wouldn't 1044: shift the source FIFOs by two pixels when they had to. 1045: 1046: Wed Sep 10 01:49:22 2003 Matthew Fredette <[email protected]> 1047: 1048: * generic/fb-xlat-auto.sh: Fixed various bugs when the destination 1049: FIFOs may not be aligned, and when doubling. These bugs were mostly 1050: found by inspection, and the fixes haven't been tested. 1051: 1052: Mon Sep 01 14:58:57 2003 Matthew Fredette <[email protected]> 1053: 1054: * configure.in: Changed the version number. 1055: Now only build the bsd host modules on BSD-like systems. 1056: 1057: * generic/keyboard.c (_tme_keyboard_buffer_in0): Now examine any 1058: keycode on the user's event to determine if an earlier press of a 1059: different keysym from the same keycode has actually released. 1060: 1061: * host/gtk/gtk-display.h: Now keep a mapping from keysym to keycode, 1062: for those keysyms that can only be generated by one keycode. 1063: 1064: * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_x11_new): 1065: (_tme_gtk_keyboard_key_event): 1066: (_tme_gtk_keyboard_new): Now keep a mapping from keysym to keycode, 1067: for those keysyms that can only be generated by one keycode, and add 1068: that keycode to key events. 1069: 1070: * host/posix/posix-tape.c: Some changes to silence gcc 1071: -Wuninitialized. 1072: 1073: * host/posix/posix-tape.c (_tme_posix_tape_xfer1): When we hit the end 1074: of the media, don't try to skip ahead to a nonexistent next segment. 1075: 1076: * libtme/hash.c (_tme_hash_lookup_internal): When the lookup succeeds, 1077: be sure to return the handle the bucket. 1078: 1079: * libtme/log.c: Fixed many of the non-stdarg declarations of the 1080: variable-argument functions. 1081: 1082: * machine/sun2/SUN2-MULTIBUS: Now set a fixed key rate on kbd0, to 1083: work around a bug in NetBSD where only the first of simultaneously 1084: received keycodes will be processed. 1085: 1086: * serial/serial-kb.c (_tme_serial_kb_callout): Cleaned up the code 1087: that translates keyboard events into serial data, and added support 1088: for rate-limiting. 1089: (_tme_serial_kb_th_rate): Added. 1090: (_tme_serial_kb_serial_read): 1091: ((tme_serial_,kb,keyboard): Added support for rate-limiting. 1092: 1093: * serial/serial-kb.h: Added various members to control rate-limiting. 1094: 1095: * tme/generic/keyboard.h: A keyboard event for a keysym can now 1096: include the related keycode. This is for handling the case of a key 1097: release giving a different keysym than the key press did because 1098: modifiers changed in between. 1099: 1100: Sat Aug 23 13:50:34 2003 Matthew Fredette <[email protected]> 1101: 1102: * generic/Makefile.am: Be sure to distribute fb-xlat-auto.sh. 1103: * generic/keyboard.c (_tme_keyboard_debug): 1104: (tme_keyboard_buffer_new): Changes to support logging debug messages. 1105: 1106: * host/gtk/Makefile.am: 1107: * serial/Makefile.am: 1108: * tme/generic/Makefile.am: Added some headers that weren't getting 1109: distributed. 1110: 1111: * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_new): Allow the keyboard 1112: buffer to log messages using our log handle. 1113: 1114: * host/posix/posix-tape.c: Changes to silence various gcc warnings. 1115: 1116: * libtme/module.c: Added a hack to support older installed libltdls 1117: that don't define lt_ptr. 1118: 1119: * libtme/threads-sjlj.c: Fixed uses of struct fd_set. 1120: 1121: * tme/common.h: Now include <netinet/in.h> for the byteswapping 1122: functions. 1123: 1124: * tme/generic/keyboard.h: Users can now give a log handle to the 1125: keyboard buffer, for logging debug messages. 1126: 1127: Fri Aug 22 16:39:30 2003 Matthew Fredette <[email protected]> 1128: 1129: * serial/serial-kb.c (tme_serial_,kb,keyboard): Give the element's log 1130: handle to the keyboard buffer, to enable debugging. 1131: 1132: Tue Aug 12 23:00:40 2003 Matthew Fredette <[email protected]> 1133: 1134: * machine/sun/Makefile.am: Now install sun-keyboards.txt and 1135: my-sun-macros.txt. 1136: 1137: * machine/sun/my-sun-macros.txt: 1138: * machine/sun/sun-keyboards.txt: Added. 1139: 1140: * machine/sun2/Makefile.am: Removed some old targets and dependencies. 1141: 1142: * machine/sun2/SUN2-MULTIBUS: Reorganized and added more comments. 1143: As-is, this now represents the common case of local disk, no network. 1144: 1145: Fri Aug 08 13:33:45 2003 Matthew Fredette <[email protected]> 1146: 1147: * tmesh/tmesh.c (main): Added support for the --noninteractive option. 1148: Fixed a bug where we wouldn't report meaningful file and line number 1149: information on early errors. 1150: 1151: Thu Aug 07 22:14:46 2003 Matthew Fredette <[email protected]> 1152: 1153: * bus/multibus/sun-sc.c (_tme_sun_sc_bus_cycle_data_reg): Added. 1154: (_tme_sun_sc_bus_cycle_data): 1155: (_tme_sun_sc_bus_cycle_cmd_stat): Now use 1156: _tme_sun_sc_bus_cycle_data_reg to run the bus cycle. 1157: (_tme_sun_sc_tlb_fill): The data register can't allow fast reading. 1158: 1159: * host/posix/posix-disk.c (_tme_posix_disk_buffer_get): Now honor a 1160: device's block size. 1161: (tme_host_posix,disk): If the disk image is a character device, see if 1162: it has a minimum block size. 1163: 1164: * host/posix/posix-tape.c (__tme_posix_tape_command): Fixed a bug 1165: where an error return value wouldn't get returned. Fixed a bug where 1166: a LOAD control would get called out even when an error occured during 1167: loading. 1168: 1169: * scsi/emulexmt02.c: Replaced blocksize with block_size for 1170: consistency. 1171: (_tme_emulexmt02_cdb_block_limits): Added. 1172: (tme_scsi,tape): Now handle the BLOCK LIMITS command. 1173: 1174: * scsi/scsi-cdb.c (tme_scsi_device_cdb_illegal): Added. 1175: (_tme_scsi_device_make_inquiry_string): Added. 1176: (tme_scsi_device_make_inquiry_data): Added. 1177: (tme_scsi_device_cdb_inquiry): Removed. 1178: 1179: * scsi/scsi-device.c (tme_scsi_device_address_lun_aware): Always allow 1180: an INQUIRY command, even for a LUN that isn't defined. 1181: (tme_scsi_device_new): Set a NULL handler for the INQUIRY command by 1182: default. 1183: 1184: * scsi/scsi-disk.c: Renamed the tme-scsi-2 disk type to tme-scsi-1, to 1185: reflect that it's a SCSI-1 disk. 1186: (tme_scsi_disk_cdb_inquiry): Added. 1187: (tme_scsi_disk_cdb_mode_sense): 1188: (tme_scsi_disk_cdb_start_stop): 1189: (tme_scsi_disk_cdb_prevent_allow): 1190: (tme_scsi_disk_cdb_read_capacity): Crudely implemented these commands. 1191: (tme_scsi_disk_cdb_read1): 1192: (tme_scsi_disk_cdb_write1): Implemented these commands. 1193: (_tme_scsi_disk_control): Made public. 1194: (_tme_scsi_disk_connection_break): Made public. 1195: (_tme_scsi_disk_connection_make): Made public. 1196: (_tme_scsi_disk_connections_new): Made public. 1197: (tme_scsi,disk): Install the disk handler for the INQUIRY command. 1198: 1199: * scsi/scsi-tape.c (tme_scsi_tape_cdb_inquiry): Added. 1200: (tme_scsi_tape_cdb_load_unload): 1201: ((tme_scsi_tape_cdb_prevent_allow): Made these command handlers do 1202: nothing, for now. 1203: (tme_scsi,tape): Install the tape handler for the INQUIRY command. 1204: 1205: * tme/generic/disk.h: Define some disk controls. 1206: 1207: * tme/scsi/scsi-cdb.h: Define various macros, types, and prototypes 1208: for generating INQUIRY response data. 1209: 1210: * tme/scsi/scsi-disk.h: Added some prototypes for some now-public 1211: functions. 1212: 1213: * tme/scsi/scsi-tape.h: Added a prototype for 1214: tme_scsi_tape_cdb_inquiry. 1215: 1216: Tue Aug 05 03:41:31 2003 Matthew Fredette <[email protected]> 1217: 1218: * bus/multibus/sun-sc.c (_tme_sun_sc_scsi_cycle): If we're not 1219: starting DMA, be sure to call out a wait-change cycle instead, 1220: otherwise we can miss SCSI bus transitions. 1221: 1222: * generic/Makefile.am: Now compile tape.c 1223: 1224: * generic/tape.c host/posix/posix-tape.c scsi/emulexmt02.c 1225: scsi/scsi-tape.c tme/generic/tape.h tme/scsi/scsi-tape.h: 1226: 1227: Added. 1228: 1229: * host/posix/Makefile.am: Now compile posix-tape.c. 1230: 1231: * ic/z8530.c (_tme_z8530_bus_cycle): Added support for the WR0 reset 1232: Rx interrupt command. 1233: 1234: * ic/m68k/m68k-impl.h: Now always declare tme_m68k_verify_hook. 1235: 1236: * ic/m68k/m68k-insns-auto.sh: Fixed a bug in the V bit calculation in 1237: the asl insns. 1238: 1239: * ic/m68k/m68k-misc.c (tme_m68k_verify_hook): Now always compile this 1240: function. 1241: 1242: * ic/m68k/m68k-verify.c (_tme_m68k_verify_end): Ignore the T bits when 1243: verifying %sr. 1244: 1245: * machine/sun2/SUN2-MULTIBUS: Updated. 1246: 1247: * scsi/Makefile.am: Now compile emulexmt02.c and scsi-tape.c. 1248: 1249: * scsi/acb4000.c (_tme_acb4000_address_lun): When marking a 1250: nonextended sense as valid we now have to indicate how many bytes it 1251: contains. 1252: 1253: * scsi/acb4000.c: 1254: * tme/scsi/scsi-device.h: Fixed a comment. 1255: 1256: * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Now be more universal about 1257: remembering the last SCSI bus state we called out to each connection, 1258: and call out whenever that state changes and the connection wants a 1259: callout. When a connection gives us an empty DMA sequence, instead of 1260: aborting just immediately call out. When a connection is in a DMA 1261: sequence and the bus gets reset, try to reset on behalf of the 1262: connection. 1263: 1264: * scsi/scsi-cdb.c (tme_scsi_device_cdb_request_sense): Now require 1265: that the valid marker for nonextended senses give the length of the 1266: sense. 1267: 1268: * scsi/scsi-device.c (tme_scsi_device_target_phase): Now log up to 128 1269: bytes of output in various phases. 1270: (_tme_scsi_device_cycle): Now log short transfers. 1271: (tme_scsi_device_target_dsmf): Fixed a comment. 1272: 1273: * scsi/scsi-disk.c (_tme_scsi_disk_connections_new): Fixed a usage 1274: string. 1275: (tme_disk,new): Fixed a comment. 1276: 1277: * serial/ms-mssystems.c: Removed the 3-byte packet support, since it's 1278: apparently only found on the Tadpole SPARCbooks. 1279: 1280: * serial/serial-ms.c (_tme_serial_ms_serial_config): Now store the 1281: peer's serial configuration. 1282: 1283: * serial/serial-ms.h: Now store the peer's serial configuration. 1284: 1285: * tme/connection.h: Now define TME_CONNECTION_TAPE. 1286: 1287: * tme/generic/Makefile.am: Now install tape.h. 1288: 1289: * tme/scsi/Makefile.am: Now install scsi-tape.h. 1290: 1291: Thu Jul 31 19:03:16 2003 Matthew Fredette <[email protected]> 1292: 1293: * scsi/scsi-bus.c (_tme_scsi_bus_cycle): Fixed some uses of dma_in to 1294: dma; caught by gcc -Wuninitialized. 1295: 1296: * tmesh/tmesh-cmds.c (_tmesh_command_log): Wrapped some otherwise 1297: unused declarations in !TME_NO_LOG. 1298: 1299: Thu Jul 31 01:47:46 2003 Matthew Fredette <[email protected]> 1300: 1301: * generic/Makefile.am: Now compile mouse.c. 1302: 1303: * generic/fb.c (tme_fb_xlat_best): Fixed a bug where we wouldn't 1304: reject translation functions that don't match the question. 1305: 1306: * generic/keyboard.c: Fixed a comment. 1307: 1308: * generic/mouse.c host/gtk/gtk-mouse.c serial/ms-mssystems.c 1309: serial/serial-ms.c serial/serial-ms.h tme/generic/mouse.h: 1310: 1311: Added. 1312: 1313: * host/gtk/Makefile.am: Now compile gtk-mouse.c. 1314: 1315: * host/gtk/gtk-display.c: 1316: * host/gtk/gtk-display.h: 1317: * host/gtk/gtk-keyboard.c: Many changes to add mouse support. 1318: 1319: * host/gtk/gtk-screen.c: Many changes to improve the user interface. 1320: Now include a menu for changing the scaling factor. Fixed bugs with 1321: respect to event masks, mostly by adding an event box. 1322: 1323: * ic/z8530.c (_tme_z8530_callout): Fixed a bug that caused us to never 1324: check the callouts on channel B. 1325: 1326: * ic/m68k/m68k-insns.c (tme_m68k_reset): Added a crude implementation 1327: of the reset instruction. 1328: 1329: * machine/sun2/SUN2-MULTIBUS: Updated. 1330: 1331: * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_signal): Instead of 1332: aborting, just ignore the RESET signal from the CPU for now. 1333: 1334: * serial/Makefile.am: Now compile serial-ms.c and ms-mssystems.c. 1335: 1336: * tme/connection.h: Now define TME_CONNECTION_MOUSE. 1337: 1338: Tue Jul 29 18:33:14 2003 Matthew Fredette <[email protected]> 1339: 1340: * Makefile.am: 1341: * tme/Makefile.am: Added scsi to SUBDIRS. 1342: 1343: * configure.in: If long on the target is 64-bits, use it as our 64-bit 1344: type. Substitute the scsi Makefiles. 1345: 1346: * bus/multibus/3c400.c (TME_3C400_CSR_PUT_3c400): Corrected a 1347: tme_betoh_u16 into a tme_htobe_u16. 1348: 1349: * bus/multibus/Makefile.am: Now compile sun-sc.c. 1350: 1351: * bus/multibus/sun-sc.c generic/disk.c generic/scsi.c 1352: host/posix/posix-disk.c scsi/Makefile.am scsi/acb4000.c 1353: scsi/disk-tme.c scsi/scsi-bus.c scsi/scsi-cdb.c scsi/scsi-device.c 1354: scsi/scsi-disk.c scsi/scsi-msg.c tme/generic/disk.h 1355: tme/generic/scsi.h tme/scsi/Makefile.am tme/scsi/scsi-cdb.h 1356: tme/scsi/scsi-device.h tme/scsi/scsi-disk.h tme/scsi/scsi-msg.h: 1357: 1358: Added. 1359: 1360: * generic/Makefile.am: Now compile disk.c and scsi.c. 1361: 1362: * generic/bus-device.c: 1363: * generic/bus-el.c: Fixed a comment. 1364: 1365: * host/posix/Makefile.am: Now compile posix-disk.c. 1366: 1367: * host/posix/posix-memory.c: 1368: * host/posix/posix-serial.c: Fixed comments. 1369: 1370: * ic/mm58167.c: Fixed many significant problems with this emulation, 1371: most notably that the size of the chip was not calculated correctly at 1372: all. We now report with microsecond resolution, since SunOS's probe 1373: routine requires this. 1374: 1375: * ic/z8530.c (_tme_z8530_intack): Simplified and fixed bugs in how 1376: variable interrupt vectors are computed. For now, since there's no 1377: emulation of the IEI pin, we just behave as if it's always tied low, 1378: so we never put any vector on the bus during a hard interrupt 1379: acknowledge. 1380: (_tme_z8530_bus_cycle): Now ignore all WR0 CRC reset commands. Now 1381: support the WR0 transmitter reset command. Now support reads of RR10 1382: and RR14. 1383: 1384: * ic/m68k/m68k-insns-auto.sh: The movem instructions cannot fault when 1385: the register mask is zero. Now that we generally have a 64-bit type 1386: available, fixed various bugs in the 64-bit multiply and divide 1387: instructions. 1388: 1389: * ic/m68k/m68k-insns.c (tme_m68k_movec): Now appropriately mask values 1390: loaded into control registers. movec only has a long version, and 1391: SunOS on the Sun-2 doesn't necessarily clear the remainder of the data 1392: register it uses to load %sfc and %dfc. 1393: 1394: * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug 1395: where the T bits weren't cleared. This bug was found by SunOS on the 1396: sun2, which starts at least init in usermode with tracing enabled. 1397: 1398: * ic/m68k/m68k-verify.c (tme_m68k_verify_init): Now assume that the 1399: CPU generates 28-bit addresses. SunOS 3 on the Sun-2 does this. 1400: 1401: * machine/sun/tme-sun-idprom.pl: Added support for the obscure 1402: Roadrunner-MB1. 1403: 1404: * machine/sun2/sun2-bwtwo.c: Fixed various comments. 1405: Because SunOS's probe routine fails otherwise, added support for the 1406: entire 2KB page starting at the CSR to appear undecoded, i.e., to look 1407: like the CSR repeated 1024 times. 1408: 1409: * machine/sun2/sun2-impl.h: Now define TME_SUN2_DVMA_SIZE_MBMEM and 1410: TME_SUN2_DVMA_SIZE_VME. 1411: Now make struct tme_sun2_bus_connection public, since the bus DVMA TLB 1412: filler needs to know which bus it's filling for. 1413: 1414: * machine/sun2/sun2-mainbus.c (_tme_sun2_connections_new): When making 1415: the connections for the mbmem or vme buses, be sure to set the last 1416: address that we decode on the bus, for DVMA purposes. 1417: 1418: * machine/sun2/sun2-mmu.c (_tme_sun2_bus_tlb_fill): Fixed many bugs 1419: involving filling TLB entries for bus's DVMA regions. 1420: (_tme_sun2_mmu_pte_set): Added a missing protection. 1421: 1422: * tme/common.h: Added some crude support for 64-bit math, even for 1423: compilers that offer no 64-bit type at all. 1424: 1425: * tme/connection.h: Now define TME_CONNECTION_SCSI and 1426: TME_CONNECTION_DISK. 1427: 1428: * tme/generic/Makefile.am: Added more headers. 1429: 1430: * tme/generic/bus-device.h: Corrected a comment. 1431: 1432: * tme/generic/ic.h: Corrected the 64-bit support. 1433: 1434: * tmesh/tmesh-cmds.c (_tmesh_command_log): Added. 1435: 1436: * tmesh/tmesh-impl.h: Now define TMESH_COMMAND_LOG. 1437: 1438: * tmesh/tmesh-input.y: Added support for parsing the `log' command. 1439: 1440: Tue Jul 22 18:30:31 2003 Matthew Fredette <[email protected]> 1441: 1442: * generic/fb-xlat-auto.sh: Changes to silence gcc -Wuninitialized. 1443: * host/gtk/gtk-keyboard.c (_tme_gtk_keyboard_lookup): Changes to 1444: silence gcc -Wuninitialized. 1445: 1446: * libtme/module.c (tme_module_open): Changes to silence gcc 1447: -Wuninitialized. 1448: 1449: * libtme/threads-sjlj.c (tme_sjlj_dispatch): Declared some locals 1450: volatile to silence gcc's setjmp-related warning. 1451: 1452: Fri Jun 27 21:30:37 2003 Matthew Fredette <[email protected]> 1453: 1454: * Makefile.am: Added the serial directory to SUBDIRS. 1455: * configure.in: Many changes to support framebuffer emulation and X11 1456: and gtk elements. Also added some serial elements support. 1457: 1458: * generic/Makefile.am: Now create fb-xlat-auto.c and build fb.c and 1459: keyboard.c. 1460: 1461: * generic/bus-device.c: 1462: * generic/bus-el.c: 1463: * generic/bus.c: Although I hate doing this, various changes to 1464: support a single bus connection connecting to a bus region sparsely. 1465: 1466: * generic/fb-xlat-auto.sh: Now declare src_bypb to include one more 1467: extra line of data, to make a total of two. 1468: Fixed a bug where translating and halving would really translate every 1469: line twice. Now when we reach the end of a line we skip the next 1470: line, to move to the next pair of lines. 1471: 1472: * generic/fb.c generic/keyboard.c host/gtk/Makefile.am 1473: host/gtk/gtk-display.c host/gtk/gtk-display.h 1474: host/gtk/gtk-keyboard.c host/gtk/gtk-screen.c libtme/hash.c 1475: machine/sun2/sun2-bwtwo.c serial/Makefile.am serial/kb-sun.c 1476: serial/serial-kb.c serial/serial-kb.h tme/hash.h tme/misc.h 1477: tme/generic/fb.h tme/generic/keyboard.h: 1478: 1479: Added. 1480: 1481: * generic/keyboard.c: Disabled debug output. 1482: 1483: * host/Makefile.am: Added gtk to DIST_SUBDIRS. 1484: 1485: * ic/am9513.c (_tme_am9513_th_timer): Removed a newline from a log 1486: statement. 1487: 1488: * ic/z8530.c (_tme_z8530_channel_reset): Fixed an incorrect reset 1489: value for RR3. 1490: (_tme_z8530_config): Simply ignore a peer's request to change the 1491: serial configuration. 1492: 1493: * ic/m68k/m68k-execute.c: To fix a problem where m68k execution could 1494: possibly never yield (by oscillating back and forth between fast and 1495: slow execution, for example) we make sure that we never run more than 1496: _tme_m68k_instruction_burst before checking for external interrupts 1497: and yielding. 1498: 1499: * ic/m68k/m68k-impl.h: Now in addition to _tme_m68k_instruction_burst, 1500: the maximum burst length, there is 1501: _tme_m68k_instruction_burst_remaining, which is the maximum number of 1502: instructions remaining in the current burst. 1503: 1504: * ic/m68k/m68k-iset-expand.pl: 1505: * ic/m68k/m68k-opmap-make.pl: Made the RCS keywords, copyright and 1506: license like other files. 1507: 1508: * ic/m68k/m68k-misc.c (tme_m68k_new): Now initialize the new 1509: _tme_m68k_instruction_burst_remaining struct member. 1510: 1511: * libtme/Makefile.am: Now compile hash.c, and use the GTK CFLAGS. 1512: 1513: * libtme/misc.c (tme_misc_tokenize): 1514: (tme_free_string_array): Added. 1515: 1516: * libtme/module.c (tme_module_open): Now use tme_misc_tokenize to 1517: tokenize. 1518: 1519: * libtme/threads-sjlj.c: Although I hate doing this, many changes to 1520: support using the GTK event loop. 1521: 1522: * machine/sun2/Makefile.am: Now build sun2-bwtwo.c. 1523: 1524: * machine/sun2/SUN2-MULTIBUS: Added commands to create a real physical 1525: console. 1526: 1527: * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge 1528: interrupts on the obmem bus too, since the bwtwo z8530s are there. 1529: 1530: * tme/Makefile.am: Now install misc.h and hash.h. 1531: 1532: * tme/common.h: Now define tme_letoh_u16() and tme_letoh_u32(x). 1533: Declare tme_free_string_array(). 1534: 1535: * tme/connection.h: Add connection types for keyboards and 1536: framebuffers. 1537: 1538: * tme/threads.h: Under _TME_HAVE_GTK, declare tme_threads_gtk_init. 1539: 1540: * tme/tme.h: Now include <tme/hash.h> and <tme/misc.h>. 1541: 1542: * tme/generic/Makefile.am: Now install fb.h and keyboard.h. 1543: 1544: * tme/generic/bus-device.h: 1545: * tme/generic/bus.h: Changes to support a single bus connection 1546: connecting to a bus region sparsely. 1547: 1548: * tmesh/Makefile.am: Now link with the GTK libraries. 1549: 1550: Fri Jun 27 01:37:57 2003 Matthew Fredette <[email protected]> 1551: 1552: * generic/fb-xlat-auto.sh: Added. 1553: 1554: Thu Jun 26 13:16:12 2003 Matthew Fredette <[email protected]> 1555: 1556: * tme/generic/ic.h: Fixed grammar in a comment. 1557: 1558: Sun May 18 02:40:56 2003 Matthew Fredette <[email protected]> 1559: 1560: * configure.in: Changed the version number to 0.0; this is very alpha. 1561: There are now fewer include directories under tme/; many unnecessary 1562: headers that belonged to modules were removed. 1563: 1564: * bus/multibus/3c400.c: No longer include <tme/bus/multibus/3c400.h>. 1565: 1566: * bus/multibus/Makefile.am generic/Makefile.am host/bsd/Makefile.am 1567: host/posix/Makefile.am ic/Makefile.am ic/m68k/Makefile.am 1568: libtme/Makefile.am machine/sun/Makefile.am machine/sun2/Makefile.am 1569: tmesh/Makefile.am: 1570: 1571: Added library and module versioning. 1572: 1573: * host/bsd/bsd-bpf.c: 1574: * host/bsd/bsd-if.c: Now include "bsd-impl.h" instead of 1575: <tme/host/bsd.h>. 1576: 1577: * host/bsd/bsd-impl.h: 1578: * machine/sun/tme-sun-idprom.pl: Added. 1579: 1580: * machine/sun2/SUN2-MULTIBUS: Changed the extension on the PROM and 1581: IDPROM files from .dat to .bin. 1582: 1583: * machine/sun2/SUN2-MULTIBUS: Changed the name of the PROM filename to 1584: match the documentation. 1585: 1586: * tme/Makefile.am: Removed the host and bus include directories; they 1587: don't exist anymore. 1588: 1589: Sat May 17 20:34:07 2003 Matthew Fredette <[email protected]> 1590: 1591: * acinclude.m4: Added an RCS Id and a short comment. 1592: * configure.in: Added an RCS Id, the copyright, and license. Do a 1593: real path search for perl. 1594: 1595: * libtme/log-prf.c: 1596: * libtme/module.c: 1597: * machine/sun2/sun2-mainbus.c: Changes to silence gcc -Wuninitialized. 1.1 root 1598: 1599: Fri May 16 21:48:16 2003 Matthew Fredette <[email protected]> 1600: 1.1.1.2 root 1601: * Makefile.am TODO acconfig.h configure.in modules bus/Makefile.am 1602: bus/multibus/3c400.c bus/multibus/Makefile.am generic/Makefile.am 1603: generic/bus-device.c generic/bus-el.c generic/bus.c 1604: host/bsd/Makefile.am host/bsd/bsd-bpf.c host/posix/Makefile.am 1605: host/posix/posix-memory.c host/posix/posix-serial.c ic/Makefile.am 1606: ic/am9513.c ic/mm58167.c ic/z8530.c ic/m68k/Makefile.am 1607: ic/m68k/m68010.c ic/m68k/m68k-impl.h ic/m68k/m68k-insns-auto.sh 1608: ic/m68k/m68k-misc.c libtme/Makefile.am libtme/alloc.c 1609: libtme/element.c libtme/log-prf.c libtme/log.c libtme/misc.c 1610: libtme/module.c libtme/threads-sjlj.c machine/Makefile.am 1611: machine/sun/Makefile.am machine/sun/sun-mmu.c 1612: machine/sun2/Makefile.am machine/sun2/SUN2-MULTIBUS 1613: machine/sun2/sun2-impl.h machine/sun2/sun2-mainbus.c 1614: machine/sun2/sun2-mmu.c tme/Makefile.am tme/common.h 1615: tme/connection.h tme/element.h tme/log.h tme/module.h tme/tme.h 1616: tme/tmesh.h tme/generic/bus-device.h tme/generic/bus.h 1617: tme/ic/am9513.h tme/ic/m68k.h tme/ic/mm58167.h tme/ic/z8530.h 1618: tmesh/Makefile.am tmesh/tmesh-cmds.c tmesh/tmesh-impl.h 1619: tmesh/tmesh-input.y tmesh/tmesh-util.c tmesh/tmesh.c: 1620: 1621: By far, this is the worst bulk commit I've ever done. Many changes 1622: to simplify the element interface as much as possible, to do modules 1623: better, and to do logging better. Fixed a small number of actual 1624: bugs. Also converted to modern autoconf and automake, because the 1625: module support requires modern libtool. Also added the main libtme, 1626: libtmesh, and tmesh itself. 1627: 1628: * ic/m68k/m68k-verify.c: Now include <stdio.h>. 1.1 root 1629: 1630: Fri May 16 17:50:17 2003 Matthew Fredette <[email protected]> 1631: 1.1.1.2 root 1632: * acinclude.m4 (AC_CHECK_ALIGNOF): Now takes only a size, in bits, to 1633: check the alignment for. Before, it used to take a string of the form 1634: intN_t, which wouldn't work on systems that don't define an intN_t 1635: type. When cross-compiling, assume the target requires alignment 1636: equal to the size. Now use AC_DEFINE_UNQUOTED's third argument to 1637: specify the config.h.in comment. 1638: (AC_CHECK_SHIFTMAX): Added. 1639: (AC_SYS_SOCKADDR_SA_LEN): Now use AC_DEFINE_UNQUOTED's third argument 1640: to specify the config.h.in comment. 1.1 root 1641: 1642: Thu May 15 15:52:08 2003 Matthew Fredette <[email protected]> 1643: 1.1.1.2 root 1644: * ic/m68k/m68k-insns-auto.sh: Fixed bugs in the shift and rotate 1645: insns, where we might try to shift by an amount greater than the 1646: maximum meaningful shift for a given size. 1647: 1648: Sat May 10 15:41:23 2003 Matthew Fredette <[email protected]> 1649: 1650: * acinclude.m4 (AC_CHECK_ALIGNOF): Fixed a bug where this would stop 1651: on the first misalignment, instead of continuing to find the true 1652: minimum alignment. For example, this would have found the minimum 1653: 32-bit alignment to be 4 instead of 2 on a 68000 or 68010, stopping on 1654: the misaligned address 3. 1655: 1656: * configure.in ic/Makefile.am ic/m68k/Makefile.am machine/Makefile.am 1657: machine/sun2/Makefile.am tme/Makefile.am: 1658: 1659: Some early distribution work. 1660: 1661: * ic/m68k/m68k-insns-auto.sh: 1662: * ic/m68k/m68k-misc-auto.sh: Fixed some bad macro and type name 1663: references. 1664: 1665: * ic/m68k/m68k-insns-auto.sh: 1666: * ic/m68k/m68k-misc-auto.sh: Handled the rename of the aligned and 1667: unaligned memory access rwlocking macros, and use the new 1668: tme_memory_sequence_ rwlocking macros. Generally made things a little 1669: easier to read, although we do rely on the optimizer to do the right 1670: thing somewhat more. 1671: 1.1 root 1672: * tme/threads.h: Renamed the memory-access locking functions to be 1.1.1.2 root 1673: tme_memory_HOW_WHATlock, where HOW is aligned or unaligned, and WHAT 1674: is rd or wr. Now define the tme_memory_sequence_WHATlock macros, used 1675: when doing a sequence of memory accesses that must appear to be 1676: atomic. 1677: Now define TME_SEQUENCE_ACCESS_NOT_COSTLIER as TRUE if locking for a 1678: sequence and locking for an aligned access have the same cost, else 1679: define it as FALSE. 1.1 root 1680: 1681: Sat May 10 00:31:32 2003 Matthew Fredette <[email protected]> 1682: 1.1.1.2 root 1683: * ic/m68k/m68k-insns-auto.sh: Overhauled the shift instructions to not 1684: use loops. 1685: 1686: Fri May 09 17:45:06 2003 Matthew Fredette <[email protected]> 1687: 1688: * ic/m68k/m68k-execute.c: As an optimization, now require the 1689: individual insn functions to use TME_M68K_INSN_CANFAULT if they may 1690: fault, instead of figuring out every time if an insn can fault or not. 1691: Check that insn functions have set it if they need it, and left it 1692: unset if they do not need it. 1693: 1694: * ic/m68k/m68k-execute.c: Made some changes to somewhat optimize 1695: certain effective address calculations. 1696: 1697: * ic/m68k/m68k-impl.h: Now define TME_M68K_INSN_CANFAULT. 1698: 1699: * ic/m68k/m68k-impl.h: Renumbered the TME_M68K_SIZE_ macros slightly 1700: to enable an optimization on effective address 1701: predecrement/postincrement calculation. Grew the memory transfer 1702: function arrays to match. 1703: Moved the generic IC data structure to the top of the m68k structure, 1704: to enable register indexing to happen without an offset. 1705: Removed _tme_m68k_areg_increment, it's no longer needed. 1706: 1707: * ic/m68k/m68k-insns-auto.sh: 1708: * ic/m68k/m68k-insns.c: Now use TME_M68K_INSN_CANFAULT where it's 1709: needed. Also fixed some random restarting bugs in some insns. 1.1 root 1710: 1.1.1.2 root 1711: * ic/m68k/m68k-misc.c: Removed _tme_m68k_areg_increment, it's no 1712: longer needed. Grew the memory transfer function arrays to match the 1713: renumbering of the TME_M68K_SIZE_ macros, and added some preprocessor 1714: error checking on those macros. 1.1 root 1715: 1.1.1.2 root 1716: Fri May 09 14:36:16 2003 Matthew Fredette <[email protected]> 1.1 root 1717: 1.1.1.2 root 1718: * bus/multibus/3c400.c generic/bus-device.c generic/bus-el.c 1719: generic/bus.c host/posix/posix-memory.c ic/am9513.c ic/mm58167.c 1720: ic/z8530.c tme/generic/bus-device.h tme/generic/bus.h: 1721: 1722: Bulk change to no longer require bus connections to have a 1723: power-of-two width. This is largely a name change, renaming 1724: address_mask to address_last, as nothing depended on the 1725: address_mask being all-bits-one. 1726: 1727: * bus/multibus/3c400.c (_tme_3c400_callout): Make buffer status values 1728: have the minimum Ethernet frame size. 1729: 1730: * ic/am9513.c: Now include <stdio.h>, in case 1731: TME_AM9513_TRACK_INT_RATE is defined. 1732: 1733: * ic/am9513.c: Under TME_AM9513_TRACK_INT_RATE, periodically report 1734: the interrupt rates achieved by the various timers. 1735: 1736: * machine/sun2/sun2-mmu.c (_tme_sun2_m68k_tlb_fill): Because 1737: supervisor and user accesses go through different context registers, 1738: TLBs are generally only ever valid for the supervisor or the user, but 1739: not both. Fixed a bug where a TLB for a user-visible page would be 1740: marked as good for the supervisor even if the mapping isn't the same 1741: in the system context. 1742: 1743: * tme/generic/ethernet.h: Now define TME_ETHERNET_CRC_SIZE. 1744: 1745: Thu May 08 23:37:55 2003 Matthew Fredette <[email protected]> 1746: 1747: * ic/m68k/m68k-insns-auto.sh: Fixed bugs, found by the verifier, in 1748: the SR and CCR immediate instructions. 1749: 1750: * ic/m68k/m68k-verify.c: Now keep a short ring of PCs verified. 1751: 1752: Thu May 08 19:22:10 2003 Matthew Fredette <[email protected]> 1753: 1754: * ic/z8530.c (_tme_z8530_intack): Changes to silence -Wuninitialized. 1755: * ic/m68k/Makefile.am: No longer define _TME_M68K_OPW_OK. 1756: * ic/m68k/m68k-execute.c: Changes to support verifying restarted 1757: instructions. 1758: 1759: * ic/m68k/m68k-impl.h: Fixed the definitions of the dummy 1760: tme_m68k_verify_ macros. 1761: 1762: * ic/m68k/m68k-impl.h: Now call tme_m68k_verify_end_branch inside 1763: TME_M68K_INSN_BRANCH. Added a unique identifier member to the 1764: sequence structure. Made a few functions take a const struct tme_m68k 1765: *. Made changes to the verifier to support verifying restarted 1766: instructions. 1767: 1768: * ic/m68k/m68k-insns-auto.sh: Fixed a bug found by the verifier, where 1769: the movem instructions weren't following the EA discipline correctly 1770: and so would transfer to the wrong addresses after a restart. 1771: 1772: * ic/m68k/m68k-misc.c (tme_m68k_go_slow): Now take a const struct 1773: tme_m68k *. 1.1 root 1774: (tme_m68k_sequence_empty): 1.1.1.2 root 1775: (tme_m68k_sequence_fill): Made the argument that's supposed to be 1776: read-only const. Under _TME_M68K_VERIFY, save and restore the 1777: sequence unique identifier. 1778: 1779: * ic/m68k/m68k-verify.c: Many changes to support verifying 1780: instructions that ended only after they were restarted because of one 1781: or more bus faults. 1.1 root 1782: 1783: Thu May 08 13:35:43 2003 Matthew Fredette <[email protected]> 1784: 1.1.1.2 root 1785: * ic/m68k/m68k-execute.c: 1786: * ic/m68k/m68k-impl.h: 1787: * ic/m68k/m68k-misc.c: Replaced _TME_M68K_OPW_OK bits with new 1788: _TME_M68K_VERIFY bits. 1789: 1790: * ic/m68k/m68k-insns-auto.sh: In all memory access functions, added 1791: calls to the verifier. Fixed a bug in the divide routines, found by 1792: the verifier - the N flag in set based on the final small quotient, 1793: not on the big one. 1794: 1795: * ic/m68k/m68k-misc-auto.sh: Now define TME_M68K_IREG32_COUNT. 1.1 root 1796: 1.1.1.2 root 1797: * ic/m68k/m68k-verify.c: Added. 1.1 root 1798: 1.1.1.2 root 1799: Wed May 07 02:37:05 2003 Matthew Fredette <[email protected]> 1800: 1801: * generic/bus-el.c (_tme_bus_connections_new): Store the final bus 1802: interrupt signal number, not the raw ipl. 1.1 root 1803: 1804: * ic/z8530.c: Although I hate doing this, too many changes to go into 1.1.1.2 root 1805: detail. Much work to support interrupt driven operation. 1806: 1807: * ic/z8530reg.h: Added definitions for RR3. 1808: 1809: * ic/m68k/m68k-impl.h: Fixed a serious bug in the TME_M68K_FLAG_SR 1810: definition that would zero part of the interrupt mask. 1811: 1812: * ic/m68k/m68k-insns-auto.sh: Fixed a bug where negx wasn't preserving 1813: the Z flag if the result was zero. 1814: 1815: * machine/sun2/sun2-test.c (main): Fixed a bug where the zs0 ipl arg 1816: was getting lost. 1.1 root 1817: 1.1.1.2 root 1818: Mon May 05 23:20:11 2003 Matthew Fredette <[email protected]> 1.1 root 1819: 1.1.1.2 root 1820: * TODO: Updated. 1.1 root 1821: 1.1.1.2 root 1822: * generic/serial.c (tme_serial_buffer_copyout): Fixed a bug where if 1823: we were copying to a NULL buffer and the copyout wrapped in the ring 1824: buffer, we would do pointer arithmetic on the NULL. 1.1 root 1825: 1.1.1.2 root 1826: * ic/m68k/m68010.c (_tme_m68010_rte): Fixed a bug where we forgot to 1827: recover the group 0 function code and address for the cycle restart. 1828: Fixed a bug where we wouldn't reset to extract our internal state from 1829: the stack buffer. 1.1 root 1830: 1.1.1.2 root 1831: * ic/m68k/m68k-insns-auto.sh: Fixed several instructions that trap or 1832: do trap-like things to update PC to be the PC of the following 1833: instruction before trapping. 1834: (tme_m68k_read_mem): Fixed a memcpy direction bug. 1.1 root 1835: 1.1.1.2 root 1836: * ic/m68k/m68k-insns.c: Fixed several instructions that trap or do 1837: trap-like things to update PC to be the PC of the following 1838: instruction before trapping. 1.1 root 1839: 1.1.1.2 root 1840: * libtme/threads-sjlj.c (tme_sjlj_cond_notify): Fixed a bug where we 1841: would cancel a thread's wait condition instead of notifying the 1842: thread. 1.1 root 1843: 1.1.1.2 root 1844: * machine/sun/sun-mmu.c (tme_sun_mmu_tlb_fill): Support the new 1845: expansive MMU PTE protections. 1.1 root 1846: 1.1.1.2 root 1847: * machine/sun2/sun2-mainbus.c (_tme_sun2_bus_intack): Now acknowledge 1848: soft interrupts. 1849: (tme_machine_sun2_clock_new): Fixed a bug where we had the Timer 2 1850: output miswired. 1.1 root 1851: 1.1.1.2 root 1852: * machine/sun2/sun2-mmu.c: Many changes to support the new full 1853: understanding of sun2 PTE protections. 1.1 root 1854: 1.1.1.2 root 1855: * tme/machine/sun.h: Expanded on the generic PTE protections, to 1856: support the more expressive sun2 protections. 1.1 root 1857: 1.1.1.2 root 1858: Sun May 04 22:46:12 2003 Matthew Fredette <[email protected]> 1.1 root 1859: 1.1.1.2 root 1860: * ic/am9513.c (_tme_am9513_counters_disarm): Added. 1861: (_tme_am9513_th_timer): Try to avoid 32-bit integer overflow when 1862: calculating the sleep time. 1863: (_tme_am9513_bus_cycle): Now support the disarm timers command. 1.1 root 1864: 1.1.1.2 root 1865: * ic/mm58167.c: Changes to silence -Wuninitialized. 1.1 root 1866: 1.1.1.2 root 1867: * ic/mm58167.c: 1868: * tme/ic/mm58167.h: Added. 1.1 root 1869: 1.1.1.2 root 1870: * ic/z8530.c: Although I hate doing this, too much work to go into 1871: detail. Did more groundwork for eventually generating interrupts. 1.1 root 1872: 1.1.1.2 root 1873: * ic/m68k/m68k-execute.c: Now wrap the execute hook call in 1874: _TME_M68K_OPW_OK. 1.1 root 1875: 1.1.1.2 root 1876: * ic/m68k/m68k-misc.c (tme_m68k_exception_process_start): Fixed a bug 1877: where the new ipl mask was put into the sr at the wrong position. 1878: 1879: * machine/sun2/sun2-mainbus.c (tme_machine_sun2_tod_new): Added. 1880: 1881: * machine/sun2/sun2-mmu.c (_tme_sun2_obbus_fault_handler): Removed. 1.1 root 1882: (_tme_sun2_bus_fault_handler): 1883: (_tme_sun2_obio_fault_handler): 1.1.1.2 root 1884: (_tme_sun2_obmem_fault_handler): Added. 1.1 root 1885: (_tme_sun2_multibus_fault_handler): Now just call 1.1.1.2 root 1886: _tme_sun2_bus_fault_handler. 1887: (_tme_sun2_tlb_fill_mmu): Use the new bus-specific fault handlers. 1888: 1889: * machine/sun2/sun2-test.c: Now create and connect the TOD chip. 1890: 1891: * tme/ic/Makefile.am: Updated. 1.1 root 1892: 1893: Sat May 03 19:27:07 2003 Matthew Fredette <[email protected]> 1894: 1.1.1.2 root 1895: * TODO: Updated. 1896: 1897: * ic/m68k/m68k-execute.c: Fixed multiple bugs in the handling of brief 1898: EA extension words. 1899: 1900: * ic/m68k/m68k-insns-auto.sh: Fixed a bug where subx and addx didn't 1901: take the (previous) X flag into account when calculating flags. 1902: 1903: * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Now 1904: call _tme_sun2_ipl_check whenever the enable register is written. 1905: 1906: * machine/sun2/sun2-impl.h: Added macros for the enable register bits. 1907: 1908: * machine/sun2/sun2-mainbus.c (_tme_sun2_ipl_check): Added. 1909: (_tme_sun2_bus_signal): Now call _tme_sun2_ipl_check to update the ipl 1910: driven to the CPU. 1911: 1912: Fri May 02 17:37:10 2003 Matthew Fredette <[email protected]> 1913: 1914: * TODO: Updated. 1915: 1916: * acconfig.h acinclude.m4 bus/multibus/3c400.c 1917: bus/multibus/Makefile.am generic/ethernet.c host/bsd/Makefile.am 1918: host/bsd/bsd-bpf.c host/bsd/bsd-if.c tme/generic/ethernet.h: 1919: 1920: Added. 1921: 1922: * configure.in: Now check for minimum alignments. Now check for 1923: various headers and other things needed by the BSD code. 1924: 1925: * bus/Makefile.am: 1926: * generic/Makefile.am: 1927: * host/Makefile.am: 1928: * tme/generic/Makefile.am: Added support for new components. 1929: 1930: * bus/multibus/3c400.c (_tme_3c400): Some changes to silence 1931: -Wuninitialized. 1932: 1933: * host/posix/posix-serial.c: Fixed some indentation, and one 0 to a 1934: TME_OK. 1935: 1.1 root 1936: * ic/am9513.c (_tme_am9513_counters_load): 1.1.1.2 root 1937: (_tme_am9513_counters_arm): Added. 1938: (_tme_am9513_th_timer): Try to avoid multiplication overflow when 1939: calculating the number of basic ticks that have elapsed. Try to 1940: handle armed and unarmed counters correctly. 1941: (_tme_am9513_bus_cycle): Now load and arm counters correctly. 1942: (tme_ic_am9513_new): Calculate the number of basic ticks in a 1943: millisecond for the benefit of the timer thread. 1944: 1945: * ic/m68k/m68010.c (_tme_m68010_rte): tme_m68k_rte_finish no longer 1946: touches the sequence at all, so before calling it make sure the 1947: sequence is exactly what it's supposed to be. 1948: 1949: * ic/m68k/m68k-execute.c: In the fast executor, assert that the ITLB 1950: entry allows fast reading for the current PC or that the PC is one 1951: greater than the last address covered by the entry. Fixed the 1952: fast-fetch-failed code to more correctly simulate a group 0 exception 1953: and associated RTE. 1954: 1955: * ic/m68k/m68k-insns-auto.sh: Cleaned up and fixed the code generated 1956: for cmpm, addx, and subx. At least, cmpm wasn't getting its address 1957: registers postincremented, and addx and subx weren't treating the Z 1958: flag properly. In the fetch insns, take the address to fetch from as 1959: an argument, instead of using the real ic->tme_m68k_ireg_pc with 1960: tme_m68k_read 1.1 root 1961: (which could actually update it, if recovering from a group 0 1962: exception!) 1963: 1.1.1.2 root 1964: * ic/m68k/m68k-misc-auto.sh: The slow-executor fetch macros now call 1965: the fetch insns with the PC to fetch from. 1.1 root 1966: 1.1.1.2 root 1967: * ic/m68k/m68k-misc.c (tme_m68k_rte_finish): No longer do anything 1968: with the sequence at all, just redispatch it. 1969: (tme_m68k_sequence_fill): Now set the sequence next-transfer to one, 1970: to force a restart in case later code doesn't. 1971: (tme_m68k_insn_buffer_xfer): The insn buffer is kept in host byte 1972: order, not big-endian byte order. 1973: 1974: * libtme/threads-sjlj.c: No longer track and relock a mutex that was 1975: held when tme_sjlj_cond_wait_yield was called; the thread itself will 1976: relock the mutex when it is restarted. 1977: 1978: * machine/sun2/Makefile.am: Now build and link against the Multibus 1979: and BSD libraries. 1980: 1981: * machine/sun2/sun2-test.c (tme_memdup): Added. 1982: (connect_elements): Now start the new convention of initializing the 1983: new-connections lists to NULL and letting the new-connections 1984: functions add elements incrementally. 1.1 root 1985: (main): Now create the ec0 and bpf0 elements and add them to the 1.1.1.2 root 1986: machine. 1.1 root 1987: 1.1.1.2 root 1988: * tme/common.h: Added a macro for tme_dup and a prototype for 1989: tme_memdup. 1.1 root 1990: 1.1.1.2 root 1991: * tme/connection.h: Now define TME_CONNECTION_ETHERNET. 1992: 1993: * tme/threads.h: Fixed a bug where the tme_thread_write macro was 1994: defined to be the read syscall. 1.1 root 1995: 1996: Tue Apr 29 20:28:05 2003 Matthew Fredette <[email protected]> 1997: 1.1.1.2 root 1998: * AUTHORS: 1999: * COPYING: 2000: * NEWS: 2001: * README: Added. 2002: 2003: * generic/bus-device.c generic/bus-el.c host/posix/posix-serial.c 2004: ic/z8530.c ic/m68k/m68k-misc.c machine/sun2/sun2-mainbus.c: 2005: 2006: In all connections_new functions, add the new connection 2007: possibilities to the list rooted at *_conns, instead of always 2008: replacing the list. 2009: 2010: * generic/bus-el.c host/posix/posix-memory.c ic/am9513.c 2011: ic/m68k/m68k-execute.c ic/m68k/m68k-insns-auto.sh 2012: ic/m68k/m68k-insns.c machine/sun2/sun2-mainbus.c: 1.1 root 2013: 1.1.1.2 root 2014: Changes to silence -Wuninitialized. 2015: 2016: * generic/serial.c: 2017: * tme/generic/serial.h: Removed all instances of gen- in comments. 2018: 2019: * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Fixed bugs 2020: in scanning the input for various escape-like sequences, especially 2021: for the escaped break signal. 2022: 2023: * host/posix/posix-serial.c (_tme_posix_serial_th_reader): Simplified 2024: the code that decides to call out that we are readable. 1.1 root 2025: (_tme_posix_serial_ctrl): Always try to call out reads if the 1.1.1.2 root 2026: connection says it's readable, even if we already knew that. 2027: (_tme_posix_serial_read): Fixed a bug where we would clear everything 2028: *except* TME_SERIAL_CTRL_OK_READ, instead of clearing only that bit. 2029: (tme_host_posix_serial_new): Return EINVAL on bad arguments. 2030: 2031: * ic/Makefile.am: Now define DIST_SUBDIRS. 2032: 2033: * ic/z8530.c (_tme_z8530_callout): Fixed a bug where we would use an 2034: uninitialized chan variable to find WR9, which actually only exists in 2035: channel A anyways. 1.1 root 2036: (_tme_z8530_ctrl): Now always try to call out reads if the connection 1.1.1.2 root 2037: says it's readable. 2038: 2039: * libtme/threads-sjlj.c: Wrap all of the rwlock operations in 2040: !TME_NO_DEBUG_LOCKS. 2041: (tme_sjlj_threads_run): Changes to silence -Wuninitialized. 1.1 root 2042: 1.1.1.2 root 2043: * tme/Makefile.am: 2044: * tme/generic/Makefile.am: Now install roughly the correct files into 2045: the correct place. 1.1 root 2046: 1.1.1.2 root 2047: * tme/atomics.h: Fixed a bug where TME_ATOMIC_POINTER_TYPE was adding 2048: an extra *. 1.1 root 2049: 1.1.1.2 root 2050: * tme/element.h: Fixed bugs in the TME_NO_LOG versions of TME_LOG_X 2051: and TME_LOG_FINISH. 2052: 2053: Tue Apr 29 03:24:17 2003 Matthew Fredette <[email protected]> 2054: 2055: * TODO: 2056: * machine/sun2/sun2-test.c: Updated. 2057: 2058: * generic/bus-device.c: Support the new generic bus signal interface. 1.1 root 2059: (tme_bus_device_connection_score): 2060: (tme_bus_device_connection_make): 1.1.1.2 root 2061: (tme_bus_device_connection_break): These are now public. 1.1 root 2062: 1.1.1.2 root 2063: * generic/bus-el.c: Added support for the new generic bus signal 2064: interface. 2065: (_tme_bus_line_raise): Removed. 1.1 root 2066: (_tme_bus_signal): 1.1.1.2 root 2067: (_tme_bus_intack): Added. 1.1 root 2068: 1.1.1.2 root 2069: * generic/serial.c: Removed all uses of TME_ATOMIC. 2070: (tme_serial_buffer_copyout): Fixed a bug where we would overwrite 2071: data_flags with -1 early, resulting in our returning no data. 1.1 root 2072: 1.1.1.2 root 2073: * host/posix/posix-serial.c: Too much work to go into detail. 2074: Everything is at least sketched out. 1.1 root 2075: 2076: * ic/am9513.c (_tme_am9513_callout): 1.1.1.2 root 2077: (_tme_am9513_th_timer): Added. 2078: (_tme_am9513_bus_cycle): Now properly handle the Clear Toggle Output 2079: command, and log it correctly. Lock the new mutex on entry, call 2080: _tme_am9513_callout if needed before exit, and unlock the mutex on 2081: exit. 2082: (tme_ic_am9513_new): Start the new timer thread. 1.1 root 2083: 2084: * ic/z8530.c: Too many changes to go into detail. Highlights include 1.1.1.2 root 2085: a real bus cycle handler, real channels, real serial connections, real 2086: threads. Everything seems to be at least sketched out. 2087: 2088: * ic/z8530reg.h: Added. 2089: 2090: * ic/m68k/m68k-execute.c: Fixed a bug where we were using the return 2091: value of tme_mutex_trylock as a truth value. 2092: 2093: * ic/m68k/m68k-misc.c: Changed to support the new generic bus signal 2094: interface and the new m68k bus interrupt interface. 2095: 2096: * libtme/threads-sjlj.c (tme_sjlj_threads_run): Fixed a bug where we 2097: wouldn't lock the mutex before returning from a condition wait. Fixed 2098: a bug where we would block in select(2) instead of calling it with a 2099: zero timeout. 2100: (tme_sjlj_cond_wait_yield): Remember the mutex the thread had locked 2101: so it can be relocked when the thread resumes. 2102: (tme_sjlj_select_yield): Fixed bugs where we would treat the nfds 2103: argument as the maximum fd, instead of the maximum fd plus one. Fixed 2104: a bug where we couldn't handle NULL descriptor sets. 1.1 root 2105: (tme_sjlj_read_yield): 2106: (tme_sjlj_write_yield): 2107: (tme_sjlj_read_yield): 2108: (tme_sjlj_rwlock_init): 2109: (tme_sjlj_rwlock_lock): 1.1.1.2 root 2110: (tme_sjlj_rwlock_unlock): Added. 1.1 root 2111: 1.1.1.2 root 2112: * machine/sun2/sun2-impl.h: Now track the interrupts asserted in the 2113: system, and the last ipl asserted to the CPU. 1.1 root 2114: 2115: * machine/sun2/sun2-mainbus.c (_tme_sun2_line_reset): 2116: (_tme_sun2_line_halt): 1.1.1.2 root 2117: (_tme_sun2_line_interrupt): Removed. 1.1 root 2118: (_tme_sun2_bus_signal): 1.1.1.2 root 2119: (_tme_sun2_bus_intack): Added. 2120: (_tme_sun2_power): Use the generic bus signal interface to reset 2121: everything. 2122: (tme_machine_sun2_clock_new): Store how the Am9513 output pins are 2123: connected to bus interrupt lines. 2124: 2125: * machine/sun2/sun2-mmu.c (_tme_sun2_multibus_fault_handler): Added a 2126: hack to avoid an mbmem bus error when accessed through virtual 2127: 0xffffffff, which apparently happens in the PROM NMI routine when it 2128: polls the keyboard, even if it didn't probe a keyboard. 2129: 2130: * tme/element.h: Fixed various const to _tme_const. 2131: 2132: * tme/threads.h: Redid the setjmp/longjmp rwlock operations. Added 2133: various new function prototypes and macros. 2134: 2135: * tme/generic/bus-device.h: Support the new generic bus signal 2136: interface. The tme_bus_device_connection_score, 2137: tme_bus_device_connection_make, and tme_bus_device_connection_break 2138: functions are now public. Fixed a const to _tme_const. 2139: 2140: * tme/generic/bus.h: Added the new generic bus signal and interrupt 2141: acknowledge interfaces. Fixed various const to _tme_const. 2142: 2143: * tme/generic/serial.h: Now define TME_SERIAL_CTRL_OK_READ. Removed 2144: the write method from a serial connection. All data transfer happens 2145: with reads, with control signals to indicate when reads are OK. 2146: Removed the TME_ATOMIC use in struct tme_serial_buffer. 1.1 root 2147: (tme_serial_buffer_is_empty): 1.1.1.2 root 2148: (tme_serial_buffer_is_full): Added. 2149: 2150: * tme/ic/am9513.h: struct tme_am9513_socket now holds the basic clock 2151: provided to the chip, and a mapping of its output pins to bus signals. 2152: Fixed a const to _tme_const. 2153: 2154: * tme/ic/m68k.h: Now define some m68k IPL constant macros. Add the 2155: new m68k bus interrupt method. Fixed various const to _tme_const. 2156: 2157: * tme/ic/z8530.h: Made the channel letters lowercase in structure 2158: member names. Fixed a const to _tme_const. 2159: 2160: Sat Apr 26 21:46:16 2003 Matthew Fredette <[email protected]> 2161: 2162: * Makefile.am TODO configure.in generic/Makefile.am 2163: generic/bus-device.c generic/bus-el.c generic/bus.c generic/serial.c 2164: host/posix/posix-memory.c host/posix/posix-serial.c ic/am9513.c 2165: ic/z8530.c ic/i386/i386-decode.c ic/i386/i386-misc-auto-make.sh 2166: ic/i386/i386-opmaps-make.sh ic/i386/i386-save.c 2167: ic/i386/i386-uinsns-auto-make.sh ic/i386/i386-uinsns.c 2168: ic/i386/i386.h tme/generic/Makefile.am tme/generic/bus-device.h 2169: tme/generic/bus.h tme/generic/ic.h tme/generic/serial.h 2170: tme/ic/am9513.h tme/ic/z8530.h: 2171: 2172: Added. 2173: 2174: * bus/Makefile.am host/posix/Makefile.am ic/m68k/Makefile.am 2175: machine/Makefile.am machine/sun/Makefile.am machine/sun2/Makefile.am 2176: machine/sun2/sun2-test.c: 1.1 root 2177: 1.1.1.2 root 2178: Updated. 1.1 root 2179: 1.1.1.2 root 2180: * bus/bus-device.c bus/bus.c tme/bus-device.h tme/bus.h tme/ic.h: 2181: 2182: Removed. 2183: 2184: * host/posix/memory.c: Renamed to posix-memory.c. 2185: 2186: * ic/m68k/m68k-execute.c: Under _TME_M68K_EXECUTE_FAST, at the 2187: beginning of each instruction we do have to check if our ITLB has been 2188: invalidated, as it might have been by some random (control) memory 2189: cycle we just did. 2190: Fixed bugs in the predecrement and postincrement EA handlers. 2191: 2192: * ic/m68k/m68k-impl.h: 2193: * machine/sun2/sun2-impl.h: Now include <tme/generic/ic.h>. 2194: 2195: * ic/m68k/m68k-impl.h: Added support for logging. 2196: 2197: * ic/m68k/m68k-insns-auto.sh: Fixed a serious movem bug where we would 2198: start at bit 1 in the mask, and not bit 0. 2199: In all memory transfer functions, log the transfer. Made the bus 2200: cycle functions "work correctly". Fixed bugs in the generated divide 2201: instructions. 2202: 2203: * ic/m68k/m68k-insns.c (tme_m68k_swap): Fixed a bug where this 2204: wouldn't work on big-endian systems. 1.1 root 2205: (tme_m68k_link): 1.1.1.2 root 2206: (tme_m68k_unlk): Fixed serious bugs where we simply didn't do what 2207: these instructions are supposed to do. 1.1 root 2208: 1.1.1.2 root 2209: * ic/m68k/m68k-iset.txt: On the 68010 and up, the move_from_sr and 2210: move_from_ccr instructions don't read memory before writing it. Fixed 2211: bugs in the encoding of the register bit-shifting with a register 2212: count instructions. 2213: 2214: * ic/m68k/m68k-misc.c (tme_m68k_idle): Use the renamed 2215: tme_cond_wait_yield function. 2216: (tme_m68k_new): Store the element in the IC. 2217: (tme_m68k_go_slow): Use the TME_M68K_TLB_OK_FAST_READ to check for a 2218: bad TLB entry. 2219: (tme_m68k_exception_process): Don't insist on there being exceptions 2220: to process. CPU-specific exception processors may handle them all, 2221: yet still use this function to redispatch. 2222: (_tme_m68k_execute_hook): Added. 1.1 root 2223: 2224: * libtme/threads-sjlj.c (_tme_sjlj_then): 2225: (_tme_sjlj_timeout): 2226: (tme_sjlj_sleep_yield): 1.1.1.2 root 2227: (tme_sjlj_select_yield): Added. 2228: (tme_sjlj_threads_run): Cleaned up the threads dispatcher to support 2229: threads waiting on classic select(2) fd sets, 2230: (tme_sjlj_cond_wait_yield): Renamed from tme_sjlj_cond_wait. 2231: (tme_sjlj_sleep): This function no longer yields. 2232: 2233: * machine/sun/sun-mmu.c: Added some logging. 2234: Disabled the explicit SEGINV support, for now. It appears that the 2235: hardware MMU doesn't have a notion of an invalid PMEG. Now call the 2236: post-MMU TLB fillers with the PTE struct and the virtual address. 2237: 2238: * machine/sun2/sun2-control.c (_tme_sun2_control_cycle_handler): Don't 2239: bother to fill the segmap register unless this is a read. 1.1 root 2240: 1.1.1.2 root 2241: * machine/sun2/sun2-impl.h: Now include <tme/generic/bus.h>. Added 2242: some support for logging. 2243: 2244: * machine/sun2/sun2-mainbus.c: Added some support for logging. 1.1 root 2245: (tme_machine_sun2_clock_new): 1.1.1.2 root 2246: (tme_machine_sun2_zs_new): Added. 1.1 root 2247: 2248: * machine/sun2/sun2-mmu.c: Too much to go into detail. Highlights: 1.1.1.2 root 2249: Added some logging support. 2250: Made the bus error behavior more correct. On the sun2, obio and obmem 2251: don't generate bus errors. Now the post-MMU TLB filler takes the 2252: original PTE entry and the original virtual address. 2253: 2254: * tme/connection.h: Now define TME_CONNECTION_SERIAL. 2255: 2256: * tme/element.h: Added logging support. 2257: 1.1 root 2258: * tme/ic.h: Now include <tme/generic/bus.h> 1.1.1.2 root 2259: 2260: * tme/threads.h: Defined more of the tme threads API. 2261: 2262: * tme/ic/m68k.h: Now include <tme/generic/bus.h>. 2263: 2264: * tme/machine/sun.h: Added support for logging. 2265: Changed the interface to pass the whole PTE struct to the post-MMU TLB 2266: fillers. 1.1 root 2267: 2268: Sat Apr 26 14:44:07 2003 Matthew Fredette <[email protected]> 2269: 1.1.1.2 root 2270: * bus/bus.c (tme_bus_cycle_xfer): Fixed a bug where we used 2271: cycle_writer to get the reader's port size. When indexing bus router 2272: arrays, we have to subtract out the participant's least port lane, 2273: since the arrays don't include information for lanes not connected to 2274: the participant. 2275: 2276: Wed Apr 23 19:31:01 2003 Matthew Fredette <[email protected]> 2277: 2278: * bus/Makefile.am bus/bus-device.c bus/bus.c host/Makefile.am 2279: host/posix/Makefile.am host/posix/memory.c ic/Makefile.am 2280: ic/m68k/m68k-impl.h libtme/Makefile.am libtme/threads-sjlj.c 2281: machine/sun/Makefile.am machine/sun/sun-mmu.c 2282: machine/sun2/Makefile.am machine/sun2/sun2-control.c 2283: machine/sun2/sun2-impl.h machine/sun2/sun2-mainbus.c 2284: machine/sun2/sun2-mmu.c machine/sun2/sun2-test.c tme/Makefile.am 2285: tme/atomics.h tme/bus-device.h tme/bus.h tme/common.h 2286: tme/connection.h tme/element.h tme/ic.h tme/threads.h 2287: tme/ic/Makefile.am tme/ic/m68k.h tme/machine/Makefile.am 2288: tme/machine/sun.h: 2289: 2290: Added. 2291: 1.1 root 2292: * ic/m68k/m68010.c (_tme_m68010_exception): 1.1.1.2 root 2293: (_tme_m68010_rte): Added. 1.1 root 2294: 1.1.1.2 root 2295: * ic/m68k/m68k-bus-auto.sh: Now generates the combined input/output 2296: bus routers. 2297: 2298: * ic/m68k/m68k-execute.c: 2299: * ic/m68k/m68k-insns.c: 2300: * ic/m68k/m68k-misc.c: Although I hate doing this, "too many changes 2301: to list." 2302: 2303: * ic/m68k/m68k-insns-auto.sh: Some minor copyright and cosmetic fixes. 2304: Updated the bus cycle functions to support the latest generic bus 2305: cycle idea. 2306: 2307: * ic/m68k/m68k-iset-expand.pl: When the EA is an immediate, just emit 2308: the immediate information and skip the EA information - we don't want 2309: to use the EA path in this case. 2310: 2311: * ic/m68k/m68k-iset.txt: moveq is now its own insn. 2312: 2313: * ic/m68k/m68k-misc-auto.sh: Copyright sweep. 2314: 2315: * ic/m68k/m68k-opmap-make.pl: Fixed some random bugs, and correctly 2316: handle the case where EA and immediate operand must be undefined for a 2317: pattern, to avoid using the EA and immediate operand in any root 2318: entry. 2319: 2320: * ic/m68k/m68k.h: Removed. 1.1 root 2321: 2322: Sun Apr 20 21:33:05 2003 Matthew Fredette <[email protected]> 2323: 1.1.1.2 root 2324: * ic/m68k/m68k-bus-auto.sh: Added. 1.1 root 2325: 2326: Fri Apr 18 04:56:36 2003 Matthew Fredette <[email protected]> 2327: 1.1.1.2 root 2328: * ic/m68k/m68k-insns-auto.sh: Added support for generating the moveq32 2329: insn. Cleaned up and fixed some bugs in the bus cycle functions. 1.1 root 2330: 1.1.1.2 root 2331: * ic/m68k/m68k-misc-auto.sh: Cleaned up the set of registers that we 2332: define. Added better locking support to the instruction fetch macros. 1.1 root 2333: 2334: Tue Apr 15 13:32:37 2003 Matthew Fredette <[email protected]> 2335: 1.1.1.2 root 2336: * ic/m68k/m68k-insns-auto.sh: Unfortunately, too much work to list in 2337: detail. Improved the arithmetic function flag-setting code to compile 2338: well on i386 with gcc -O2. Added many special-purpose memory read and 2339: write functions, and finally introduced the general bus-cycle read and 2340: write functions. Added many new instructions, including multiply and 2341: divide. 1.1 root 2342: 2343: Sat Apr 05 18:47:38 2003 Matthew Fredette <[email protected]> 2344: 1.1.1.2 root 2345: * machine/Makefile.am: Added. 1.1 root 2346: 1.1.1.2 root 2347: Tue Apr 01 20:13:40 2003 Matthew Fredette <[email protected]> 1.1 root 2348: 1.1.1.2 root 2349: * ic/m68k/Makefile.am: Build decoders for the 68000, 68010, and 68020. 2350: * ic/m68k/m68k-iset-expand.pl: Added a very basic preprocessor to 2351: support generating different instruction sets for different CPUs. Now 2352: whenever an instruction wants the EA, its operand is eax.32 even if 2353: the known EA is address register indirect. 1.1 root 2354: 1.1.1.2 root 2355: * ic/m68k/m68k-iset.txt: This should be the complete integer 2356: instruction set for the 68000, 68010, 68020, and 68030. 1.1 root 2357: 1.1.1.2 root 2358: * ic/m68k/m68k-opmap-make.pl: Added comments, and reworked to support 2359: compiling instruction sets for different CPUs together, reusing 2360: submaps and opcode maps whenever possible. 1.1 root 2361: 1.1.1.2 root 2362: * ic/m68k/m68k.h: Before the -impl.h split. 1.1 root 2363: 2364: Sun Mar 30 22:04:15 2003 Matthew Fredette <[email protected]> 2365: 1.1.1.2 root 2366: * ic/m68k/Makefile.am ic/m68k/m68010.c ic/m68k/m68k-execute.c 2367: ic/m68k/m68k-insns-auto.sh ic/m68k/m68k-insns.c 2368: ic/m68k/m68k-iset-expand.pl ic/m68k/m68k-iset.txt 2369: ic/m68k/m68k-misc-auto.sh ic/m68k/m68k-misc.c 2370: ic/m68k/m68k-opmap-make.pl ic/m68k/m68k.h: 1.1 root 2371: 1.1.1.2 root 2372: Added.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.