12004-07-26 Andrew Cagney <cagney@gnu.org> 2 3 Problem from Olaf Hering <olh@suse.de>. 4 * Makefile.in (install, installdirs): Add DESTDIR. 5 62004-07-06 Jim Blandy <jimb@redhat.com> 7 8 * Makefile.in: Update all dependency information. 9 (BASICS_H, CPU_H, IDECODE_H, PSIM_H, REGISTERS_H, DEVICE_TABLE_H) 10 (EMUL_GENERIC_H): Values updated. 11 (ACCONFIG_H, ALTIVEC_EXPRESSION_H, ALTIVEC_REGISTERS_H) 12 (ANSIDECL_H, BFD_H, BITS_H, CAP_H, COMMON_SIM_BASE_H) 13 (COMMON_SIM_BASICS_H, COMMON_SIM_FPU_H, COMMON_SIM_INLINE_H) 14 (COMMON_SIM_SIGNAL_H, CONFIG_H, COREFILE_H, COREFILE_N_H, DEBUG_H) 15 (DEFINES_H, DEFS_H, DEVICE_H, E500_EXPRESSION_H, E500_REGISTERS_H) 16 (EMUL_BUGAPI_H, EMUL_CHIRP_H, EMUL_NETBSD_H, EMUL_UNIX_H, EVENTS_H) 17 (FILTER_FILENAME_H, FILTER_H, GDB_CALLBACK_H, GDB_REMOTE_SIM_H) 18 (GEN_ICACHE_H, GEN_IDECODE_H, GEN_ITABLE_H, GEN_MODEL_H) 19 (GEN_SEMANTICS_H, GEN_SUPPORT_H, HW_CPU_H, HW_H, HW_PHB_H) 20 (ICACHE_H, IDECODE_BRANCH_H, IDECODE_EXPRESSION_H) 21 (IDECODE_FIELDS_H, IGEN_H, INLINE_H, INTERRUPTS_H, ITABLE_H) 22 (LD_CACHE_H, LD_DECODE_H, LD_INSN_H, LF_H, MISC_H, MODEL_H, MON_H) 23 (OPTIONS_H, OS_EMUL_H, PK_H, PPC_CONFIG_H, SEMANTICS_H) 24 (SIM_CALLBACKS_H, SIM_ENDIAN_H, SIM_ENDIAN_N_H, SIM_MAIN_H) 25 (SPREG_H, STD_CONFIG_H, SUPPORT_H, TABLE_H, TARG_VALS_H, TCONFIG_H) 26 (TREE_H, VM_H, VM_N_H, WORDS_H): New variables. 27 (callback.o, cap.o, corefile.o, debug.o, device.o, device_table.o) 28 (dgen.o, emul_bugapi.o, emul_chirp.o, emul_netbsd.o, emul_unix.o) 29 (events.o, filter.o, filter_filename.o, filter_host.o) 30 (gen-icache.o, gen-idecode.o, gen-itable.o, gen-model.o) 31 (gen-semantics.o, gen-support.o, hw_core.o, hw_cpu.o, hw_disk.o) 32 (hw_htab.o, hw_init.o, hw_phb.o, hw_register.o, icache.o) 33 (idecode.o, igen.o, interrupts.o, itable.o, ld-cache.o) 34 (ld-decode.o, ld-insn.o, lf.o, main.o, misc.o, model.o, mon.o) 35 (options.o, os_emul.o, pk_disklabel.o, psim.o, registers.o) 36 (semantics.o, sim-endian.o, sim-fpu.o, sim_calls.o, spreg.o) 37 (support.o, table.o, targ-map.o, tree.o, vm.o): Update dependencies. 38 392004-06-28 Jim Blandy <jimb@redhat.com> 40 41 * e500_registers.h (EVR): Cast the 32-bit value of the GPR to an 42 unsigned type before or-ing it with a 64-bit value. 43 442004-06-15 Alan Modra <amodra@bigpond.net.au> 45 46 * hw_htab.c (htab_sum_binary(bfd): Use bfd_get_section_size 47 instead of bfd_get_section_size_before_reloc. 48 (htab_dma_binary(bfd): Likewise. 49 * hw_init.c (update_for_binary_section(bfd): Likewise. 50 512004-05-10 Daniel Jacobowitz <dan@debian.org> 52 53 * configure.in (sim_fpu_cflags): Add -I../common. 54 * configure: Regenerated. 55 562004-01-27 Andrew Cagney <cagney@redhat.com> 57 58 * ppc-instructions: Update copyright. 59 (convert_to_integer): Add trailing ";" to label. 60 612003-10-16 Michael Snyder <msnyder@redhat.com> 62 63 * emul_netbsd.c: Only a comment may follow an #endif. 64 652003-10-15 Michael Snyder <msnyder@redhat.com> 66 67 * Makefile.in (sim_calls.o): No longer depends on gdb/tm.h. 68 692003-06-22 Andrew Cagney <cagney@redhat.com> 70 71 Written by matthew green <mrg@redhat.com>, with fixes from Aldy 72 Hernandez <aldyh@redhat.com>, Jim Wilson <wilson@redhat.com>, and 73 Nick Clifton <nickc@redhat.com>. 74 75 * ppc-instructions: Include altivec.igen and e500.igen. 76 (model_busy, model_data): Add vr_busy and vscr_busy. 77 (model_trace_release): Trace vr_busy and vscr_busy. 78 (model_new_cycle): Update vr_busy and vscr_busy. 79 (model_make_busy): Update vr_busy and vscr_busy. 80 * registers.c (register_description): Add Altivec and e500 81 registers. 82 * psim.c (psim_read_register, psim_read_register): Handle Altivec 83 and e500 registers. 84 * ppc-spr-table (SPEFSCR): Add VRSAVE and SPEFSCR registers. 85 * configure.in (sim_filter): When *altivec* add "av". When *spe* 86 or *simd* add e500. 87 (sim_float): When *altivec* define WITH_ALTIVEC. When *spe* add 88 WITH_E500. 89 * configure: Re-generate. 90 * e500.igen, altivec.igen: New files. 91 * e500_expression.h, altivec_expression.h: New files. 92 * idecode_expression.h: Update copyright. Include 93 "e500_expression.h" and "altivec_expression.h". 94 * e500_registers.h, altivec_registers.h: New files. 95 * registers.h: Update copyright. Include "e500_registers.h" and 96 "altivec_registers.h". 97 (registers): Add Altivec and e500 specific registers. 98 * Makefile.in (IDECODE_H): Add "idecode_e500.h" and 99 "idecode_altivec.h". 100 (REGISTERS_H): Add "e500_registers.h" and "altivec_registers.h". 101 (tmp-igen): Add dependencies on altivec.igen and e500.igen . 102 1032003-06-22 Andrew Cagney <cagney@redhat.com> 104 105 Problems reported by Joshua LeVasseur. 106 * emul_chirp.c: Update copyright. 107 (chirp_emul_nextprop): Return the first property. 108 * hw_htab.c: Update copyright. 109 (htab_decode_hash_table): Fix check for htab size. 110 1112003-06-21 Andrew Cagney <cagney@redhat.com> 112 113 * interrupts.c: Update copyright. 114 (external_interrupt): Fix test for already pending interrupt. 115 Problem found by Joshua LeVasseur. 116 117 * ppc-instructions: Add missing +8 line. Found by blofeldus at 118 yahoo.com. 119 1202003-06-21 Andrew Cagney <cagney@redhat.com> 121 122 From Ian Lance Taylor <ian@airs.com>: * hw_nvram.c 123 (hw_nvram_init_address): Correct call to memset--swap second and 124 third arguments. 125 1262003-06-21 Andrew Cagney <cagney@redhat.com> 127 128 * hw_com.c (hw_com_device_init_data): Check that the output, and 129 not input file opened. Pointed out by masahino tky3.3web.ne.jp. 130 1312003-06-20 Andrew Cagney <cagney@redhat.com> 132 133 * sim_calls.c (sim_create_inferior): Assert that 134 psim_write_register succeeded. 135 (sim_fetch_register, sim_store_register): Make "regname" constant. 136 Delete Altivec hack. Return result from psim_read_register / 137 psim_write_register. 138 * psim.h (psim_read_register, psim_write_register): Change return 139 type to int. Update comments. 140 * psim.c: Update copyright. 141 (psim_stack): Assert that the psim_read_register worked. 142 (psim_read_register, psim_read_register): Return the register's 143 size. Allocate the cooked buffer dynamically. 144 * hw_register.c: Update copyright. 145 (do_register_init): Check that psim_write_register succeeded. 146 * hw_init.c: Update copyright. 147 (create_ppc_elf_stack_frame, create_ppc_aix_stack_frame): Assert 148 that the register transfer worked. 149 1502003-06-19 Andrew Cagney <cagney@redhat.com> 151 152 * ld-insn.h: Update copyright. 153 (cache_fields): Define. 154 (insn_table_fields): Add insn_field_6 and insn_field_7. 155 (load_insn_table): Pass in the "cache_rules". 156 * ld-insn.c: Update copyright. 157 (load_insn_table): Add parameter "cache_rules". Handle "cache", 158 "computed" and "scratch" fields. 159 (main): Pass "cache_rules" to load_insn_table. 160 * ld-cache.h: Update copyright. 161 (append_cache_table): Declare. 162 * ld-cache.c: Update copyright. 163 (append_cache_table): New function. 164 (load_cache_table): Call. 165 * gen-model.c: Include "ld-cache.h". 166 * gen-itable.c: Include "ld-cache.h". 167 * igen.c: Move #include "ld-cache.h" to earlier. Update 168 copyright. 169 (main): Permit a NULL "cache_rules". Pass address of 170 "cache_rules" to load_insn_table. 171 * Makefile.in (tmp-ld-insn): Add "ld-cache.o". 172 (tmp-igen): Do not include ppc-cache-rules. 173 (gen-itable.o, gen-model.o): Add "ld-cache.h". 174 * ppc-cache-rules: Delete file. 175 * ppc-instructions: Add cache rules. 176 1772003-06-19 Andrew Cagney <cagney@redhat.com> 178 179 * Makefile.in (ICACHE_CFLAGS, SEMANTICS_CFLAGS): Delete. 180 (SIM_FPU_FLAGS): Define. 181 (icache.o): Delete explicit compile command. 182 (semantics.o, idecode.o): Delete explicit compile command. 183 (NOWARN_CFLAGS, STD_CFLAGS): Append SIM_FPU_CFLAGS. 184 * gen-support.c (gen_support_c): Generate #include of 185 "sim-inline.h" and "sim-fpu.h", but conditional on 186 HAVE_COMMON_FPU. 187 * gen-idecode.c (gen_idecode_c): Ditto. 188 * igen.c (gen_icache_c, gen_semantics_c): Wrap #include of 189 "sim-inline.h" and "sim-fpu.h" in HAVE_COMMON_FPU conditional. 190 Move to before "support.h". 191 * Makefile.in, gen-support.c, gen-idecode.c, igen.c: Update 192 copyright. 193 1942003-05-16 Ian Lance Taylor <ian@airs.com> 195 196 * Makefile.in (various): Use $(SHELL) whenever we invoke 197 move-if-change. 198 1992003-02-27 Andrew Cagney <cagney@redhat.com> 200 201 * sim_calls.c (sim_open, sim_create_inferior): Rename _bfd to bfd. 202 2032002-09-27 Andrew Cagney <ac131313@redhat.com> 204 205 * hw_disk.c (hw_disk_init_address): Set device type to "block", 206 not "disk". 207 2082002-06-22 Andrew Cagney <ac131313@redhat.com> 209 210 * Makefile.in (INTL_SRC): Define. 211 (INTL_CFLAGS): Define. 212 (INTL_DIR): Define. 213 (STD_CFLAGS): Add INTL_CFLAGS. 214 2152002-06-17 Elena Zannoni <ezannoni@redhat.com> 216 217 * psim.c (psim_options): Don't choke when gdb invokes us with 218 the --architecture option, just ignore it. 219 2202002-06-16 Andrew Cagney <ac131313@redhat.com> 221 222 * configure: Regenerated to track ../common/aclocal.m4 changes. 223 2242002-06-08 Andrew Cagney <cagney@redhat.com> 225 226 * main.c: Include "gdb/callback.h" and "gdb/remote-sim.h". 227 * sim_calls.c: Ditto. 228 2292002-05-30 DJ Delorie <dj@redhat.com> 230 231 * lf.c (lf_print__gnu_copyleft): Convert multiline strings to 232 compatible format. 233 * gen-idecode.c (print_run_until_stop_body): Likewise. 234 * gen-model.c (gen_model_c): Likewise. 235 2362002-04-15 Elena Zannoni <ezannoni@redhat.com> 237 238 * sim_calls.c (sim_fetch_register, sim_store_register): Return -1 for 239 AltiVec registers as a temporary stopgap. 240 2412002-03-24 David O'Brien <obrien@FreeBSD.org> 242 243 * ppc/hw_disk.c: Export a disk device property. 244 2452002-03-23 Andrew Cagney <ac131313@redhat.com> 246 247 From 2001-12-09 Julien Ducourthial <jducourt@noos.fr>: 248 * ppc-instructions (lswx): Do the register control with the 249 register count. Initialize the right register in the loop. 250 (mtfsfi) : Correct prefix for the instruction. 251 2522002-02-24 Andrew Cagney <ac131313@redhat.com> 253 254 From wiz at danbala: 255 * std-config.h: Fix grammar and typos. Update copyright. 256 Fix PR gdb/287. 257 2582002-01-12 matthew green <mrg@redhat.com> 259 260 * Makefile.in (tmp-igen): Pass -I $(srcdir) to igen. 261 * igen.c (main): Change -I to add include paths for :include: 262 files. 263 Implement -G as per sim/igen, with just gen-icache=N support. 264 Call load_insn_table() with the built include path. 265 266 * ld-insn.c (parse_include_entry): New. Load an :include: file. 267 (load_insn_table): New `includes' argument. Look for :include: 268 entries and call parse_include_entry() for them. 269 (main): Adjust load_insn_table() call. 270 * ld-insn.h (model_include_fields): New enum. 271 (load_insn_table): Update prototype. 272 * table.c (struct _open_table, struct _table): Rework 273 structures to handle included files. 274 (table_push): Move the guts of table_open() here. 275 276 * table.c (struct _open table, struct table): Make table object an 277 indirect ptr to the current table file. 278 (current_line, new_table_entry, next_line): Make file arg type 279 open_table. 280 (table_open): Use table_push. 281 (table_entry_read): Point variable file at current table, at eof, pop 282 last open table. 283 284 * misc.h (NZALLOC): New macro. From sim/igen. 285 286 * table.h, table.c (table_push): New function. 287 2882002-01-04 matthew green <mrg@redhat.com> 289 290 * bits.c (LSMASKED64): New inline function. 291 (LSEXTRACTED64): Likewise. 292 * bits.h (_LSB_POS, _LSMASKn, LSMASK64): New macros from 293 sim/common/sim-bits.h 294 (LSMASKED64, LSEXTRACTED64): New functions definitions. 295 * Makefile.in (sim-bits.o): Remove target. 296 297 * main.c (zalloc): Fix typo in error message. 298 2992001-12-16 Andrew Cagney <ac131313@redhat.com> 300 301 * configure.in (sim_fpu): Don't add sim-bits.o. 302 * configure: Re-generate. 303 3042001-12-15 matthew green <mrg@redhat.com> 305 306 * main.c: Include "defs.h", "bfd.h", "callback.h" and "remote-sim.h". 307 (sim_io_error): New function. 308 * sim_calls.c: (sim_io_error): New function. 309 3102001-12-14 matthew green <mrg@redhat.com> 311 312 * Makefile.in (LIB_OBJ): Add @sim_fpu@. 313 (ICACHE_CFLAGS, SEMANTICS_CFLAGS): New variables. 314 (icache.o, semantics.o): Add new ICACHE_FLAGS & SEMANTICS_FLAGS. 315 (sim-fpu.o, sim-bits.o, tconfig.h): New targets. 316 * configure.in: Rename INLINE_LOCALS to PSIM_INLINE_LOCALS. Add a 317 check for sim/common/sim-fpu.c. Output sim_fpu and sim_fpu_cflags. 318 * configure: Regenerate. 319 * device.h (device_find_integer_array_property): Match function definition. 320 * gen-icache.c (print_icache_internal_function_declaration): Rename 321 INLINE_ICACHE to PSIM_INLINE_ICACHE. 322 * gen-idecode.c (print_idecode_run_function_header): Rename INLINE_IDECODE 323 to PSIM_INLINE_IDECODE. 324 * gen-semantics.c (print_semantic_function_header): Rename 325 EXTERN_SEMANTICS to PSIM_EXTERN_SEMANTICS. 326 * gen-support.c (print_support_function_name): Rename INLINE_SUPPORT to 327 PSIM_INLINE_SUPPORT. 328 * igen.c (print_function_name): Also escape `(' and `)'. 329 (gen_semantics_h): Rename EXTERN_SEMANTICS to PSIM_EXTERN_SEMANTICS. 330 (gen_semantics_c): Likewise. Also output includes for "sim-fpu.h" 331 * inline.h (INLINE_SIM_ENDIAN): Renamed INLINE_PSIM_ENDIAN. 332 (EXTERN_SIM_ENDIAN): Renamed EXTERN_PSIM_ENDIAN. 333 (STATIC_INLINE_SIM_ENDIAN): Renamed STATIC_INLINE_PSIM_ENDIAN. 334 (INLINE_LOCALS): Renamed PSIM_INLINE_LOCALS. 335 (EXTERN_SUPPORT): Renamed PSIM_EXTERN_SUPPORT. 336 (INLINE_SUPPORT): Renamed PSIM_INLINE_SUPPORT. 337 (EXTERN_SEMANTICS): Renamed PSIM_EXTERN_SEMANTICS. 338 (INLINE_SEMANTICS): Renamed PSIM_INLINE_SEMANTICS. 339 (EXTERN_IDECODE): Renamed PSIM_EXTERN_IDECODE. 340 (INLINE_IDECODE): Renamed PSIM_INLINE_IDECODE. 341 (EXTERN_ICACHE): Renamed PSIM_EXTERN_ICACHE. 342 (INLINE_ICACHE): Renamed PSIM_INLINE_ICACHE. 343 * options.c (options_inline): Fix names. 344 * sim-endian-n.h: Change INLINE_SIM_ENDIAN to INLINE_PSIM_ENDIAN. 345 * sim-endian.h: Likewise. 346 * sim-main.h: New file. 347 * std-config.h: Rename INLINE_LOCALS to PSIM_INLINE_LOCALS. 348 3492001-12-01 Andrew Cagney <ac131313@redhat.com> 350 351 From Mark Peek. 352 * ppc-spr-table: Add SDA and PIR. 353 3542001-10-29 Andrew Cagney <ac131313@redhat.com> 355 356 * tree.c (parse_size): Assert #size-cells > 0. 357 (parse_address): Ditto for #address-cells. 358 (parse_reg_property): Only parse the size when #size-cells is 359 non-zero. 360 3612001-10-25 Andrew Cagney <ac131313@redhat.com> 362 363 * emul_generic.c (OEA_MEMORY_SIZE): Increase to 4mb. 364 * hw_htab.c (htab_map_binary): Don't try to map the text section 365 when it is empty. 366 * emul_chirp.c (map_over_chirp_note): Default load-base to -1 not 367 CHIRP_LOAD_BASE. 368 (emul_chirp_create): Map in the interrupt table. 369 3702001-07-16 Daniel Jacobowitz <drow@mvista.com> 371 372 * Makefile.in: Add dependencies on $(CPU_H). 373 374Wed Mar 7 10:45:12 HST 2001 Glen Nakamura <gen@lava.net> 375 376 * hw_init.c (dma_file): Fixed problem with loading last 1KB of 377 file. 378 3792001-03-04 Andrew Cagney <ac131313@redhat.com> 380 381 * emul_netbsd.c [WITH_NetBSD_HOST]: Include <sys/mount.h> and 382 <errno.h>. 383 (do_stat): Only do SYS test when SYS_stat defined. 384 (do_sigprocmask): Ditto for SYS_sigprocmask. 385 (do_fstat): Ditto for SYS_fstat. 386 (do_getdirentries): Ditto for SYS_getdirentries. 387 (do_lstat): Ditto for SYS_lstat. 388 3892001-01-15 Geoffrey Keating <geoffk@redhat.com> 390 391 * emul_netbsd.c (do_open): Translate the flag parameter to the 392 open syscall to the numbers supported by the host. 393 3942000-12-12 Geoffrey Keating <geoffk@redhat.com> 395 396 * sim-endian.h: Don't have parameters on macro definitions which 397 are simply renaming functions, to permit use of XCONCAT2 in both 398 the macro name and the arguments in a use of such a definition. 399 4002000-11-15 Jim Blandy <jimb@redhat.com> 401 402 * sim_calls.c: Doc fix. 403 (sim_fetch_register, sim_store_register): Call 404 gdbarch_register_name directly, instead of going through 405 REGISTER_NAME macro. 406 4072000-10-24 Geoff Keating <geoffk@cygnus.com> 408 409 * ppc-instructions (lfsux): Correct XO field of lfsux instruction. 410 411Tue May 23 21:39:23 2000 Andrew Cagney <cagney@b1.cygnus.com> 412 413 * configure: Regenerated to track ../common/aclocal.m4 changes. 414 415Fri Apr 28 15:59:27 2000 Andrew Cagney <cagney@b1.cygnus.com> 416 417 * events.c (event_queue_process): Call update_time_from_event 418 every time an event is removed from the queue. 419 (update_time_from_event): Delete assertion that a negative 420 time_from_event implies an empty event queue. 421 422Fri Apr 28 15:53:54 2000 Andrew Cagney <cagney@b1.cygnus.com> 423 424 * interrupts.c (deliver_hardware_interrupt): Print time trace in 425 decimal. 426 * events.c (event_queue_process): Cleanup trace message. 427 (update_time_from_event): Trace full event queue. 428 4292000-03-25 Geoff Keating <geoffk@cygnus.com> 430 431 * ppc-instructions (Disabled_Exponent_Underflow): Increment 432 the exponent when denormalizing. 433 434Thu Sep 2 18:15:53 1999 Andrew Cagney <cagney@b1.cygnus.com> 435 436 * configure: Regenerated to track ../common/aclocal.m4 changes. 437 4381999-05-08 Felix Lee <flee@cygnus.com> 439 440 * configure.in: Use AC_EXEEXT instead of AM_EXEEXT. 441 * configure: Regenerated to track ../common/aclocal.m4 changes. 442 4431999-04-02 Keith Seitz <keiths@cygnus.com> 444 445 * sim_calls.c (POLL_QUIT_INTERVAL): Define. Used to tweak 446 the frequency at which the poll_quit callback is called. 447 (poll_quit_count): New global. 448 (sim_io_poll_quit): Only call the poll_quit callback 449 after the specified POLL_QUIT_INTERVAL. 450 4511999-02-22 Jim Lemke <jlemke@cygnus.com> 452 453 * dc-complex: Force expansion on all bits of field BO. 454 Previously, the least-significant (prediction) bit was ignored. 455 * ppc-instructions (conditional branches): Implement mpc860c0 option. 456 * igen.c (gen_semantics_[ch]): Setup for mpc860c0 option. 457 * psim.c (is_num, psim_options): Added parsing for mpc860c0 option. 458 * interrupts.h: Added "mpc860c0_instruction_program_interrupt". 459 * interrupts.c (program_interrupt): Added handling for above interrupt. 460 4611999-02-01 Jim Blandy <jimb@zwingli.cygnus.com> 462 463 Make the simulator compatible with the MPC750. It would be nicer 464 to make this a real multi-sim, but that's more work than we have 465 time for. 466 * emul_generic.c (emul_add_tree_options): Only require strict 467 alignment if it was explicitly requested at configuration time. 468 Don't make it the default for little-endian machines. 469 * ppc-spr-table (UMMCR0, UMMCR1, UPMC1, UPMC2, USIA, UPMC3, UPMC4, 470 MMCR0, PMC1, PMC2, SIA, MMCR1, PMC3, PMC4, L2CR, ICTC, THRM1, 471 THRM2, THRM3): Plop in the MPC750 SPR registers. 472 (DABR): This is weird. This was HID5, but the PPC spec says this 473 should be DABR; why did some random processor use it for something 474 else? The HID5 entry dates back to the original checkin of the 475 simulator code in 1995, so remove it. 476 * sim_calls.c (register_names): Delete this; since the user can 477 now change GDB's list of register names dynamically, we can't 478 pretend there's a static mapping here. 479 (sim_fetch_register, sim_store_register): Call GDB's REGISTER_NAME 480 function to get the register name. That ought to be accurate. 481 However, we're changing a compile-time dependency (using the 482 REGISTER_NAMES macro) into a link- and run-time dependency 483 (calling REGISTER_NAME, which happens to be a function call on the 484 PPC). 485 4861999-01-22 Jim Lemke <jlemke@cygnus.com> 487 488 * igen.c(gen_semantics_[ch]): setup/use of new option 489 (-o mpc860c0[=n]). 490 interrupts.[ch](mpc860c0_instruction_program_interrupt): added. 491 ppc-instructions(the four branch insn groups): detect problematic br's. 492 psim.c(is_num - added, psim_options): Parse and init new option. 493 These changes are currently under #ifdef WITH_OPTION_MPC860C0. 494 4951998-12-01 Ken Raeburn <raeburn@cygnus.com> 496 497 * hw_nvram.c (hw_nvram_bcd): Force value to fit in 0..99. 498 499Fri Nov 20 12:17:28 1998 Andrew Cagney <cagney@b1.cygnus.com> 500 501 * main.c (sim_io_poll_quit): Stub function. 502 503 * events.c (SIM_EVENTS_POLL_RATE): Define. 504 (sim_events_poll): Copy function from common/sim-events.c. 505 (event_queue_init): Copy scheduling of sim_events_poll from same. 506 507 * sim_callbacks.h, sim_calls.c (sim_io_poll_quit): New function, 508 poll the external environment. 509 5101998-11-19 Michael Meissner <meissner@cygnus.com> 511 512 * ppc-instructions (is_{NaN,inf}): Use unsigned64 to get the 513 fractional type, so that quiet NaN's aren't treated like 514 Infinities. 515 516Mon Sep 28 09:42:45 1998 Drew Moseley <dmoseley@cygnus.com> 517 518 * table.c (table_open): For cygwin hosts, we need to use the 519 return value from the read routine as the number of bytes to 520 process. This apparently is due to text-mode vs binary-mode. If 521 the mounts are done text-mode, then the size returnedby fstat() 522 may be different than the number of bytes "read" in text mode. 523 524Sun Oct 4 00:50:47 1998 Felix Lee <flee@cygnus.com> 525 526 * emul_netbsd.c (do_open): fix order-of-evaluation problem. 527 (do_close): ditto. 528 (do_fstat): ditto. 529 (do_lstat): ditto. 530 5311998-09-03 Michael Meissner <meissner@cygnus.com> 532 533 * emul_{netbsd,unix}.c: Update copyright year. 534 535Mon Jun 29 10:57:36 1998 Michael Snyder <msnyder@cleaver.cygnus.com> 536 537 * sim_calls.c (sim_fetch_register, sim_store_register): 538 return zero when nothing to do. 539 5401998-06-26 Michael Meissner <meissner@cygnus.com> 541 542 * configure.in (AC_CHECK_HEADERS): Don't check for sys/mount.h. 543 * configure: Regenerate. 544 * emul_{netbsd,unix}.c (toplevel): No longer try to include 545 sys/mount.h. It conflicts on Linux when gnu libc2 is used. 546 547Tue May 12 12:10:33 PDT 1998 James Ingham <jingham@leda.cygnus.com> 548 549 * Makefile.in: The run target depended on a target psim$(EXEEXT), 550 but there was no such target, only plain psim. So I changed the 551 run target to depend on psim. 552 553Sat May 2 01:10:12 1998 Stu Grossman <grossman@babylon-5.cygnus.com> 554 555 * aclocal.m4: Remove defs of AM_EXEEXT and AM_CYGWIN32. These are 556 now defined in ../common/aclocal.m4, and the double definition causes 557 problems with AC_SUBST of EXEEXT. 558 * configure: Regenerate. 559 560Wed Apr 29 15:44:52 1998 Geoffrey Noer <noer@cygnus.com> 561 562 * aclocal.m4: new file for AM_EXEEXT macro 563 * configure.in: call AM_EXEEXT 564 * configure: regenerate with autoconf 2.12.1. 565 * Makefile.in: add EXEEXT support 566 567Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche> 568 569 * configure: Regenerated to track ../common/aclocal.m4 changes. 570 * config.in: Ditto. 571 572Sun Apr 26 15:19:51 1998 Tom Tromey <tromey@cygnus.com> 573 574 * acconfig.h: New file. 575 * configure.in: Reverted change of Apr 24; use sinclude again. 576 Don't call AC_C_CROSS. 577 578Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche> 579 580 * configure: Regenerated to track ../common/aclocal.m4 changes. 581 * config.in: Ditto. 582 583Fri Apr 24 11:18:46 1998 Tom Tromey <tromey@cygnus.com> 584 585 * Makefile.in (top_builddir): New macro. 586 (INTLLIBS): New macro. 587 (INTLDEPS): Likewise. 588 (psim): Depend on INTLDEPS; link against INTLLIBS. 589 * configure.in: Call CY_GNU_GETTEXT. 590 591Wed Apr 22 14:28:48 1998 Michael Meissner <meissner@cygnus.com> 592 593 * configure: Regenerate with autoconf 2.12.1. 594 595Fri Mar 13 09:25:58 1998 Andrew Cagney <cagney@b1.cygnus.com> 596 597 * psim.c (psim_read_register, psim_write_register): Handle updates 598 for FPSCR. 599 600 * registers.c (register_description): Reconize "FPSCR". 601 602 * emul_netbsd.c (emul_netbsd_create): When FP available, enable 603 MSR FP exception mode. Do not enable FPSCR bits. 604 * emul_unix.c (emul_unix_create): Ditto. 605 606Tue Feb 17 12:48:58 1998 Andrew Cagney <cagney@b1.cygnus.com> 607 608 * sim_calls.c (sim_store_register, sim_fetch_register): Pass in 609 length parameter. Return -1. 610 611Mon Feb 9 14:13:14 1998 Andrew Cagney <cagney@b1.cygnus.com> 612 613 * ppc-instructions (fdiv, fdivs): Check for divide by zero. 614 (is_invalid_zero_divide, invalid_zero_divide_operation): New 615 functions. 616 617Wed Dec 10 17:38:28 1997 Andrew Cagney <cagney@b1.cygnus.com> 618 619 * sim_calls.c (sim_load): Do not parse PROG using buildargv, use 620 raw value instead. 621 6221997-11-05 Felix Lee <flee@cygnus.com> 623 624 * emul_chirp.c: #ifdef HAVE_UNISTD_H 625 626Wed Oct 15 08:50:54 1997 Andrew Cagney <cagney@b1.cygnus.com> 627 628 * corefile.c (core_attach): Pad out allocated memory regions so 629 that they are always correctly aligned. 630 (struct _core_mapping, core_map_attach, core_init, 631 new_core_mapping): Change free_buffer to type void*. 632 633Mon Oct 6 18:09:26 1997 Michael Meissner <meissner@cygnus.com> 634 635 * sim_calls.c (zfree): Call free correctly. 636 637Mon Sep 29 10:05:01 1997 Andrew Cagney <cagney@b1.cygnus.com> 638 639 * sim_calls.c (zfree): Use free, not mfree. 640 (sim_io_flush_stdoutput): Replace gdb_flush with callback -> 641 flush_stdout. 642 643Fri Sep 26 09:50:29 1997 Andrew Cagney <cagney@b1.cygnus.com> 644 645 * ppc-instructions (sraw, slw, srw): From Charles Lefurgy, Fix 646 mask extracting shift amount. Correctly condition for setting XER 647 in sraw. 648 (ldhau): From Johannes Reisinger, update rA after load. 649 650Tue Sep 9 22:13:23 1997 Felix Lee <flee@cygnus.com> 651 652 * basics.h (CONCAT*): token-pasting macros, if ALMOST_STDC, 653 for MSVC. 654 * words.h: __int64 instead of long long for MSVC. 655 656Wed Aug 27 10:24:15 1997 Andrew Cagney <cagney@b1.cygnus.com> 657 658 * sim_calls.c (sim_create_inferior): Check the simulator was 659 initialized before creating inferior. 660 661 * idecode_expression.h (ALU_END): From Charles Lefurgy - Extract 662 sign bit using 64 bit and not a 32 bit mask. 663 664Wed Aug 27 10:15:48 1997 Andrew Cagney <cagney@b1.cygnus.com> 665 666 * sim_calls.c (sim_load): From Ian Lance Taylor - free argv after 667 it has been used, not before. 668 669Tue Aug 26 10:41:35 1997 Andrew Cagney <cagney@b1.cygnus.com> 670 671 * sim_calls.c (sim_kill): Delete. 672 (sim_create_inferior): Add ABFD argument. 673 (entry_point): Delete variable. 674 (sim_load): Move setting of PC from here. 675 (sim_create_inferior): To here. 676 677Mon Aug 25 16:17:06 1997 Andrew Cagney <cagney@b1.cygnus.com> 678 679 * sim_calls.c (sim_open): Add ABFD argument. 680 681Thu Jul 3 10:18:06 1997 Andrew Cagney <cagney@b1.cygnus.com> 682 683 * ppc-instructions (PPC_INSN_INT): From Michael Thies - Monitoring 684 CR register updates dependant on RC value had logic backwards. 685 686 * ppc-instructions (Load String Word Immediate): From Brad Parker 687 - sense of wrap test in check for overwriting RA wrong. 688 (Load String Word Indexed): Ditto. 689 690 * configure.in: From Erik Landry - set sim_default_model not 691 sim_model for sim-default-model option. 692 * configure: Regenerate. 693 694 * interrupts.c (check_masked_interrupts): Schedule a hardware 695 interrupt delivery when FP interrupts get enabled. 696 (program_interrupt): Generate FP exceptions instead of aborting. 697 (deliver_hardware_interrupt): Deliver a FP exception if so 698 enabled. 699 700 * registers.h: Add definition of fpscr_vx_bits. 701 702 * idecode_expression.h (FPSCR_END): Always update FEX and VX bits 703 in FPSCR. 704 (FPSCR_END): Explicitly check for possible floating point 705 exception conditions. 706 (FPSCR_BEGIN): Simplify. 707 708 * ppc-instructions (Move From FPSCR): Enable. 709 (Move To FPSCR Bit 1): Ditto. 710 (Move To FPSCR Bit 0): Ditto. 711 (Move To FPSCR Field Immediate): Ditto. 712 (Move to Condition Register from FPSCR): Simplify. 713 (invalid_arithemetic_operation): Generate a QNaN when invalid 714 operation exception disabled. 715 716Tue May 20 10:22:50 1997 Andrew Cagney <cagney@b1.cygnus.com> 717 718 * sim_calls.c (sim_open): Add callback argument. 719 (sim_set_callbacks): Delete. 720 721Tue Apr 22 22:36:57 1997 Mike Meissner <meissner@cygnus.com> 722 723 * sim_callbacks.h (error): Make declaration match gdb's. 724 * main.c (error): Ditto. 725 726Fri Apr 18 17:03:09 1997 Andrew Cagney <cagney@b1.cygnus.com> 727 728 * sim_calls.c (sim_stop_reason): Simplify. Was running implies 729 stopped/SIGINT. Exit implies a status code. 730 731 * psim.c (cntrl_c_simulation): From main.c. Event function that 732 halts the simulator. 733 (psim_stop): New. Asynchronously schedule a stop simulator event. 734 (psim_run_until_stop): Delete. Made redundant by psim_stop. 735 736 * main.c (cntrl_c): Update. 737 (cntrl_c_simulation): Moved to psim.c. 738 739 * sim_calls.c (sim_stop): New function. Use psim_stop which 740 schedules a stop event. 741 (sim_resume): Drop SIGINT handler, now in gdb/main.c. 742 (sim_resume): Use psim_run as stop variable no longer needed. 743 744Fri Apr 18 17:03:08 1997 Andrew Cagney <cagney@b1.cygnus.com> 745 746 * psim.c (psim_options): Handle -E option correctly. 747 (psim_usage): Document. 748 749Thu Apr 17 03:28:03 1997 Doug Evans <dje@canuck.cygnus.com> 750 751 * psim.c (psim_options): Ignore -E option (sets endianness). 752 * sim_calls.c: #include bfd.h. 753 (entry_point): New static local. 754 (sim_load): Return SIM_RC. New arg abfd. Set start address from bfd. 755 (sim_create_inferior): Return SIM_RC. Delete arg start_address. 756 757Tue Apr 15 14:57:18 1997 Ian Lance Taylor <ian@cygnus.com> 758 759 * Makefile.in (INSTALL): Set to @INSTALL@. 760 (INSTALL_XFORM, INSTALL_XFORM1): Remove. 761 (install): Depend upon installdirs. Use $(program_transform_name) 762 directly, rather than using $(INSTALL_XFORM). 763 (installdirs): New target. 764 765Fri Apr 4 17:54:36 1997 Jim Wilson <wilson@cygnus.com> 766 767 * Makefile.in (tmp-hw, tmp-pk): Use for loop to eliminate duplicates 768 rather than the non-portable cat -n. 769 770Mon Apr 14 16:29:51 1997 Ian Lance Taylor <ian@cygnus.com> 771 772 * Makefile.in (INSTALL): Change install.sh to install-sh. 773 774Tue Apr 1 18:15:14 1997 Jim Wilson <wilson@cygnus.com> 775 776 * ppc-instructions: Change milhwu to mulhwu. 777 778Wed Apr 2 15:38:08 1997 Doug Evans <dje@canuck.cygnus.com> 779 780 * sim_calls.c (sim_open): New arg `kind'. 781 782Wed Apr 2 14:51:17 1997 Ian Lance Taylor <ian@cygnus.com> 783 784 * COPYING: Update FSF address. 785 786Tue Mar 25 16:17:59 1997 Andrew Cagney <cagney@kremvax.cygnus.com> 787 788 * main.c (sim_io_read_stdin): Only compile unbuffered IO code if 789 all the required features are supported by the host OS. 790 791Tue Mar 25 12:13:02 1997 Andrew Cagney <cagney@kremvax.cygnus.com> 792 793 * emul_bugapi.c (emul_bugapi_create): Guard against NULL images. 794 795 * configure.in (enable-sim-endain): Correct typo in usage (from 796 Erik Landry <landry@ENGR.ORST.EDU>). 797 * configure: Re-generate. 798 799Fri Mar 14 18:23:02 1997 Andrew Cagney <cagney@kremvax.cygnus.com> 800 801 * Makefile.in (targ-vals.def): Re-do rule so that it works with 802 FreeBSD's make. Didn't like $<. 803 804Thu Mar 13 12:55:48 1997 Doug Evans <dje@canuck.cygnus.com> 805 806 * sim_calls.c (sim_open): New SIM_DESC result. Argument is now 807 in argv form. 808 (other sim_*): New SIM_DESC argument. 809 810Thu Feb 13 10:35:14 1997 Andrew Cagney <cagney@phydeaux.cygnus.com> 811 812 * ppc-opcode-simple-array, ppc-opcode-simple-goto, 813 ppc-opcode-simple-switch, ppc-opcode-complex-array, 814 ppc-opcode-complex-goto, ppc-opcode-complex-switch, 815 ppc-opcode-jump, ppc-opcode-goto, ppc-opcode-flat: Delete, 816 superseeded by --sim-decode-mechanism option. 817 818 * ppc-opcode-simple, dc-simple: Rename to be 8.3 819 * ppc-opcode-complex, dc-complex: Ditto. 820 * ppc-opcode-stupid, dc-stupid: Ditto. 821 * ppc-opcode-test-1, dc-test.01: Ditto. 822 * ppc-opcode-test-2, dc-test.02: Ditto. 823 824 * configure.in (--enable-sim-opcode): Change prefix to dc- instead 825 of ppc-opcode-. 826 827Wed Feb 12 19:33:45 1997 Andrew Cagney <cagney@phydeaux.cygnus.com> 828 829 * Many of the ppc-opcode-* files are identical baring the type of 830 lookup table. Instead of having multiple tables, igen can do this 831 via an additional option. 832 833 * ld-decode.h, ld-decode.c (force_decode_gen_type): New function, 834 allow the type of generated table specified in the decode file to 835 be overridden. 836 837 * ld-decode.c (load_decode_table): Allow the table type to be 838 overridden. 839 840 * igen.c (main): Add -T <mechanism> option so that an overriding 841 instruction decode mechanism can be specified. 842 843 * configure.in: New option --sim-decode-mechanism to control 844 igen's new -T <mechanism> flag. 845 * Makefile.in (IGEN_FLAGS): Add IGEN_IDECODE_MECHANISM set by the 846 configure script. 847 * configure: Regenerate. 848 849Tue Feb 11 13:49:10 1997 Michael Meissner <meissner@tiktok.cygnus.com> 850 851 * events.c (event_queue_create): Don't use NULL to initialize an 852 integer field. 853 (even_queue_{init,schedule_after_signal,tick}): Conditionalize use 854 of sigprocmask to appropriate autoconf test. 855 856 * main.c ({cntrl_c,main}): Use RETSIGTYPE for signal return type, 857 don't assume void. 858 * sim_calls.c (sim_{ctrl_c,resume}): Ditto. 859 860 * Makefile.in (callback.o): Define HAVE_CONFIG_H, so callback.c 861 includes our config.h. 862 863Tue Feb 4 13:42:59 1997 Doug Evans <dje@canuck.cygnus.com> 864 865 * configure.in: Fix typo in test for callback.c. 866 * configure: Regenerated. 867 868Fri Feb 7 10:04:25 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 869 870 * emul_chirp.c (emul_chirp_create): Handle a virtbase of -1 being 871 found in the device tree. 872 873Wed Feb 5 10:56:27 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 874 875 * Property create/initialization still wasn't correctly ordered. 876 Should be delaying everything related to ihandle creation until 877 after the rest of the tree has been established. 878 879 * device.c (device_find_ihandle_runtime_property): Update. 880 (device_add_ihandle_runtime_property): Update. 881 882 * tree.c (parse_ihandle_property): Delay lookup of the device to 883 be opened until the ihandle initialization phase. 884 * tree.c (print_properties): Update. 885 886Wed Feb 5 10:56:27 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 887 888 * gen-icache.c (print_icache_extraction): Add a reason parameter. 889 Augment each extracted field with a comment citing the codes 890 origin. Should simplify tracking down incorrect cache 891 extractions. 892 893Tue Feb 4 17:44:51 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 894 895 * gen-icache.c: Generalize code handling XXX_is_NNN so that it 896 works for normal and boolean table entries. 897 898 * psim.c (psim_write_memory): last_cpu == -1 or nr_cpus is now 899 valid. Handle this just like *_{read,write}_register now handles 900 it. 901 902Mon Feb 3 17:18:16 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 903 904 * events.c (insert_event_entry): Correct loop termination 905 assertions. 906 907Fri Jan 31 16:20:26 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 908 909 * psim.c (psim_options): Add new option -c for max-iterations or 910 count. 911 (psim_usage): Document. 912 (psim_max_iterations_exceeded): New function, abort simulation if 913 max iterations exceeded. 914 915 * gen-idecode.c: Re-work the table lookup code so that it assumes 916 that the entry is a leaf by default. Simplify the boolean table 917 entry code so that it involves a mask + test instead of shift + 918 shift + mask + test. 919 920 * gen-idecode.c: Correct generated igen body so that it no drops 921 or doubles clock interrupts. 922 923 924Thu Jan 30 11:23:20 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 925 926 * Makefile.in (BUILT_SRC_WO_CONFIG): Change targ-vals.* to 927 @sim_targ_vals@ 928 929 * configure.in (sim_callback, sim_targ_vals): Set sim_targ_valls 930 if common callback is present. 931 932Wed Jan 29 12:32:41 1997 Michael Meissner <meissner@tiktok.cygnus.com> 933 934 * configure.in (sim_callback): If the gdb is post 4.16, configure 935 callback support from the common directory. 936 * configure: Regenerate. 937 938 * Makefile.in (BUILT_SRC_WO_CONFIG): Add targ-vals.{h,def} and 939 targ-map.c. 940 (GDB_OBJ): Add callback support configured in. 941 (gentmap,targ-vals.def): Build from common directory. 942 (targ-vals.h,targ-map.c): Build by running gentmap. 943 (callback.o): Build from source in common directory. 944 (targ-map.o): Add dependency. 945 (clean): Remove gentmap. 946 947Wed Jan 29 12:14:19 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 948 949 * igen wasn't aborting if the opcode table contained no valid 950 fields. 951 952 * misc.c (name2i): Possibly abort if an invalid name is 953 encountered. 954 * ld-decode.c: Abort if the table type isn't found. 955 956Wed Jan 29 12:14:19 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 957 958 * When performance monitoring is disabled, it is still possible to 959 determine the simulation speed by looking at the number of elapsed 960 ticks recorded by the event queue. 961 962 * psim.c (psim_write_register, psim_read_register): Force the cpu 963 to zero when it is either of `-1' or `nr_cpus'. In both cases the 964 next cpu would be zero any way. 965 966 * mon.c (mon_print_info): If possible, print the system cycle 967 performance. This is an indication of the number of instructions 968 per second. 969 970Wed Jan 29 12:14:19 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 971 972 * The code to allow an event queue to be updated during a signal 973 was missing. For main.c, a cntrl-c simulation termination wasn't 974 handled cleanly. 975 976 * The simulation would not correctly restart if an event requested 977 that the simulation be halted. 978 979 * psim.c (psim_options): Add hack to -i option to optionally 980 include a level vis -i2. 981 (psim_usage): Document. 982 983 * main.c (cntrl_c, cntrl_c_simulation): New functions. When a 984 cntrl-c occures schedule an event to halt the simulation. 985 (main): Catch CNTRL-C signals with the function cntrl_c. 986 987 * events.c (event_queue_process): Mask interrupts while 988 manipulating the async event queue. 989 (event_queue_init): Ditto. 990 (event_queue_schedule_after_signal): Ditto. 991 992 * events.c (event_queue_process): Mark the event queue as being in 993 the processing state when processing has started. Adjust code 994 so that it is tolerant of halts. 995 (event_queue_init): Start the event queue out with processing 996 false. 997 (event_queue_tick): Check that processing isn't still being 998 performed. 999 1000 * gen-idecode.c (print_run_until_stop_body): Call 1001 event_queue_process_events to clear possibly pending events before 1002 starting a simulation run. Re-arange main loop so that simulator 1003 is correctly restarted when an event halts the simulation. 1004 1005 * psim.c (psim_halt): Handle an event halting the simulation. 1006 * psim.c (psim_init): Adjust initial cpu - == -1 - to match 1007 reworked idecode. 1008 1009Wed Jan 29 12:14:19 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1010 1011 * ppc-opcode-complex: Correct typo - was expanding ORA instead of 1012 RA. Based on instruction frequency stats, expand additional 1013 instructions. 1014 * ppc-instructions: Change all `RA == 0' to RA_is_0. 1015 1016 * ppc-opcode-stupid: Move all but the basic table in -complex into 1017 here. Update to new format. 1018 1019 * Makefile.in (tmp-defines): New target. Force defines.h to always 1020 be built. Hence get ppc-opcode-goto to build. 1021 1022Tue Jan 28 13:00:19 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1023 1024 * hw_com.c (hw_com_instance_read, hw_com_instance_write): 1025 Implement. 1026 1027Thu Jan 23 09:07:26 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1028 1029 * hw_trace.c (hw_trace_init_data): Delete. The trace options need 1030 to be initialized independant of the rest of the simulation 1031 initalization. Otherwize a trace option explictly set from gdb 1032 could be overridden by hw_trace. 1033 1034 * psim.c (psim_options): Clarify reason why the trace ioctl occures. 1035 1036 * FIXME: The trace code is too scattered - hw_trace.c, psim.c, 1037 debug.c. It could be much simpler. 1038 1039Thu Jan 23 09:07:26 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1040 1041 * Some devices support removable media. Add hooks to the disk 1042 device so that it supports this. 1043 1044 * device.c (device_add_string_array_property, 1045 device_find_string_array_property): New functions, manipulate 1046 properties containing an array of strings. 1047 (device_find_string_property): Allow a string array. 1048 (device_init_static_properties): Update. 1049 (device_init_runtime_properties): Update. 1050 1051 * hw_disk.c (hw_disk_ioctl): Add ioctl for changing the disk 1052 media. If no file image is specified, use the next one in the 1053 image property list. 1054 (hw_disk_init_address): Change the file property so that it is a 1055 string array - use the first entry for the initial file image. 1056 1057 * tree.c (print_string_aray_property): New function - print a 1058 string array. 1059 (print_properties): Adjust. 1060 (print_string): Write a string, handling double quotes. 1061 1062 * device.h: Define an ioctl to `change-media' with an optional new 1063 media image. 1064 1065 * hw_disk.c: Allow floppy disk devices to be specified. 1066 1067 * psim.c (psim_command): New function, parse more complex psim 1068 commands such as "change-media" and "trace". 1069 * sim_calls.c (sim_do_command): Use. 1070 1071Wed Jan 22 09:38:33 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1072 1073 * For expressions like (RA == 0) that are entered in to the cache 1074 as RA_is_0. If possible generate the result of the expression so 1075 that the compiler gets a better chance of eliminating dead 1076 branches. 1077 1078 * gen-icache.c (print_icache_extraction): For a cache entry of 1079 the form <name>_is_<const> where it is a boolean field, generate 1080 the result of the expression instead of the expression its self. 1081 (print_icache_body): Remove code that was looking for *_is_0 and 1082 then generating corresponding definitions. 1083 1084 * gen-icache.c (print_icache_struct): If there is no cache, do not 1085 output expressions in idecode.h file. 1086 1087 * gen-icache.c (print_icache_body): Output them here. 1088 1089 * ppc-opcode-complex: Clarify constant values for SPR==LR register 1090 expansion. 1091 1092 * ppc-cache-rules (RA_is_0, SPR_is_256): Two new cache entries. 1093 1094Wed Jan 22 12:24:52 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1095 1096 * The code that put values in and extracted values from the cache 1097 was too compilicated. The cache table did not allow values to be 1098 computed from cache entries. #defines could only be used when a 1099 cache was present, remove the restriction. 1100 1101 * ld-cache.h, ld-cache.c: Add a new cache entry type - SCRATCH. A 1102 scratch variable is defined when a cache entry is beinf 1103 filled. Change the definition of a COMPUTE variable to be defined 1104 when the cache entry is being used. 1105 * gen-icache.c: Update. 1106 1107 * ld-cache.h, ld-cache.c: Change field names so that their meaning 1108 is more obvious. old_name->field_name, new_name->derived_name. 1109 * gen-icache.c: Update 1110 1111 * gen-icache.h, gen-icache.c (print_icache_body): Make the three 1112 different types of cache code - put into cache, extract from 1113 cache, no cache - an explicit argument to print_icache_body. 1114 * gen-icache.c (print_icache_extraction): Ditto. 1115 1116 * gen-semantics.c (print_c_semantic): Update use. 1117 * gen-idecode.c (print_jump_insn): Update use. 1118 * gen-icache.c (print_icache_function): Update use. 1119 1120 * igen.c (main): Change 'R' option so that it does not force the 1121 cache. 1122 1123 * configure.in (enable-sim-icache): Clarify description. Make 1124 #define one of the defaults regardless of the cache. Probably 1125 should revamp and add a separate option. 1126 1127Tue Jan 21 13:26:10 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1128 1129 * pk_disklabel.c (block_is_fdisk): Tidy up traces - use dos 1130 partition numbering. 1131 (pk_disklabel_create_instance): Partition 1..4 are valid - not 1132 1..3. 1133 (is_iso9660): New function, verify a CD9660 File system. 1134 (pk_disklabel_create_instance): Start expanding so that active 1135 partition selection is supported. 1136 1137Mon Jan 20 11:20:15 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1138 1139 * The cap object was retaining a reference to the instance of a 1140 device after it was deleted. Instead add and remove cap's from the 1141 cap db as they are created and deleted. This ensuring that a 1142 capibility is only used during the lifetime of the corresponding 1143 object. 1144 1145 * cap.h, cap.c: Correct cap type - was signed32 should be 1146 signed_cell. 1147 1148 * cap.c (cap_add, cap_remove): New methods for cap object that 1149 allow the explicit addition and removal of internal objects that 1150 the cap knows about. 1151 1152 * cap.c (cap_init): Rewrite. Verify that the only objects 1153 remaining in the cap data base are those that were entered first. 1154 Thse objects will be the permenant ones. 1155 * device.c (device_init_address): Remember to initialize the cap 1156 database. 1157 1158 * device.c (device_create_instance_from): Explicitly add device 1159 instances to the cap database. Simplify create code. 1160 (device_instance_delete): Explicitly remove device instances from 1161 the cap database. 1162 1163 * device.c (device_create_from): Explicitly add a device to the 1164 cap data base. 1165 1166 * device.c (device_create_from): Always set the cap members. 1167 1168 * hw_disk.c: Output the instance when tracing. 1169 1170Sun Jan 19 16:44:29 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1171 1172 * tree.c (split_device_specifier): Add support for aliases when 1173 looking up a device. Now needs a device as an argument. 1174 (split_property_specifier): Ditto. 1175 1176Sun Jan 19 15:28:23 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1177 1178 * The memory "claim" and "release" methods take an address and 1179 size as arguments. These may be multi cell values. Initially fix 1180 the memory code so that they check/detect this. Leave the 1181 adjustment of any clients to later. 1182 1183 * hw_memory.c (hw_memory_instance_claim, 1184 hw_memory_instance_release): Handle multi-cell memory devices. 1185 1186 * hw_memory.c (hw_memory_instance_claim): Be tolerant towards the 1187 release of memory regions that were not claimed. 1188 1189Fri Jan 17 12:01:07 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1190 1191 * device.h, device.c (device_instance_call_method): Correct return 1192 type - can return either 0 or -1, hence should be a signed type. 1193 * device_table.h: Ditto. 1194 1195 * hw_memory.c (hw_memory_instance_claim, 1196 hw_memory_instance_release): Update. 1197 * hw_disk.c (hw_disk_max_transfer, hw_disk_block_size, 1198 hw_disk_nr_blocks): Ditto. 1199 1200Fri Jan 17 11:50:13 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1201 1202 * emul_chirp.c (chirp_emul_claim): Implement using the "claim" 1203 method belonging to "/chosen/memory". 1204 (chirm_emul_release): Ditto. 1205 1206 * Makefile.in (LIB_INLINE_SRC): Remove emul_* from list of files 1207 that are inlined. These modules are called via a table and are 1208 not made inline. 1209 1210 * hw_init.c (update_for_binary_section): Fix failure to allocate 1211 memory used by the binary in real-mode executions. If "claim" 1212 property is present, allocate memory from the "/chosen/memory" 1213 device. 1214 1215 * emul_chirp.c (emul_chirp_create): Specify that memory should be 1216 claimed when loading a real image. 1217 1218 * hw_memory.c (hw_memory_instance_claim): Don't page align memory 1219 allocations. 1220 1221 * hw_memory.c (hw_memory_instance_release): Avoid infinite loop 1222 when merging adjacent memory chunks. 1223 1224Thu Jan 16 08:51:25 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1225 1226 * vm.h (vm_data_map_read_buffer, vm_data_map_write_buffer): Add 1227 optional PROCESSOR & CIA args so that this routine also abort an 1228 access. 1229 1230 * vm_n.h (vm_data_map_read_N, vm_data_map_write_N): For a 1231 miss-aligned access when a transfer fails abort. 1232 1233 * emul_bugapi.c (emul_bugapi_do_write): Use emul_read_buffer 1234 instead of the vm_read_buffer. 1235 * emul_netbsd.c (do_write): Ditto. 1236 * emul_unix.c (do_unix_write): Ditto. 1237 1238Wed Jan 15 14:38:25 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1239 1240 * configure.in (--enable-sim-jump): Default is NULL and not -E. 1241 * configure: Regenerate. 1242 1243 * basics.h (__attribute__): Enable attributes if GCC >= 2.6. 1244 (UNUSED): Only enable UNUSED if GCC >= 2.7. 1245 1246 * gen-icache.c (print_icache_extraction): Print UNUSED macro 1247 instead of explicit __unused__ attribute. 1248 (print_icache_body): Ditto. 1249 * idecode_expression.h (FPSCR_BEGIN): Use UNUSED. 1250 1251Wed Jan 15 13:54:50 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1252 1253 * cpu.h, cpu.c (cpu_synchronize_context): Add CIA argument as 1254 reference point. 1255 1256 * vm.c (vm_synchronize_context): Add PROCESSOR and CIA as 1257 arguments so that there is a reference point for recovery. 1258 (vm_synchronize_context): Pass processor+cia for errors. 1259 (om_unpack_sr): Ditto. 1260 (om_unpack_srs): Ditto. 1261 * vm.c (vm_create): Review error messages. 1262 1263 * vm.c: Include "cpu.h" so that cpu_error is visible. 1264 1265 * ppc-instructions (Return From Interrupt): Pass CIA. 1266 (Instruction Synchronize): Ditto. 1267 * psim.c (psim_init): Ditto. 1268 1269Wed Jan 15 12:25:11 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1270 1271 * cpu.h, cpu.c (cpu_error): Aborts simulation with error message, 1272 but also saves current processor state. 1273 1274 * basics.h: Move #include <stdarg.h> to here from device_table.h. 1275 1276 * interrupts.c (perform_oea_interrupt): Use. No longer loose CIA 1277 when simulation aborted. 1278 (program_interrupt): Ditto. 1279 (floating_point_unavailable_interrupt): Ditto. 1280 (alignment_interrupt): Ditto. 1281 (floating_point_assist_interrupt): Ditto. 1282 (perform_oea_interrupt): Ditto. 1283 (machine_check_interrupt): Ditto. 1284 1285Tue Jan 14 12:19:10 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1286 1287 * ppc-instructions (Move from Special Purpose Register): Support 1288 move from DEC. 1289 1290Mon Jan 13 16:58:12 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1291 1292 * debug.h, debug.c: Add "interrupts" trace option. 1293 1294 * interrupts.c (data_storage_interrupt): Add tracing. 1295 (machine_check_interrupt): Ditto. 1296 (instruction_storage_interrupt): Ditto. 1297 (alignment_interrupt): Ditto. 1298 (program_interrupt): Ditto. 1299 (floating_point_unavailable_interrupt): Ditto. 1300 (system_call_interrupt): Ditto. 1301 (floating_point_assist_interrupt): Ditto. 1302 (deliver_hardware_interrupt): Ditto. 1303 1304 * interrupts.c (program_interrupt): For UEA mode, halt the 1305 processor - so that the current state is saved - instead of 1306 aborting. 1307 (floating_point_unavailable_interrupt): Ditto. 1308 (floating_point_assist_interrupt): Ditto. 1309 1310Thu Jan 2 09:10:41 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1311 1312 * interrupts.c (perform_oea_interrupt): Halt rather than abort on 1313 a double interrupt. 1314 1315Wed Jan 1 22:54:52 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1316 1317 * ppc-instructions (Store Multiple Word, Load Multiple Word): 1318 Enable. 1319 1320 * tree.c (print_properties): For an array consider printing it out 1321 as an integer array. 1322 1323 * hw_memory.c (hw_memory_init_address): If an "available" property 1324 is present, use that to initialize the available memory instead of 1325 using the reg property. 1326 1327 * emul_generic.c (emul_add_tree_hardware): Add "available" 1328 property to memory device. 1329 1330Fri Dec 20 13:19:07 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1331 1332 * ppc-instructions (Rotate Left Word then AND with Mask): Enable. 1333 1334 * device.c (device_instance_call_method): Was only looking at the 1335 first method. 1336 1337 * hw_disk.c (hw_disk_nr_blocks): Implement #blocks method. 1338 (hw_disk_block_size): Implement block-size method. 1339 (hw_disk_max_transfer): Implement max-transfer method. 1340 1341 * hw_phb.c (hw_phb_init_address): Reinit the rest of the PHB. 1342 1343 * emul_chirp.c (chirp_emul_instance_to_path): Recover from an 1344 invalid ihandle. 1345 (chirp_emul_instance_to_package): Ditto. 1346 (chirp_emul_method): Ditto. 1347 (chirp_emul_read): Ditto. 1348 (chirp_emul_write): Ditto. 1349 (chirp_emul_close): Ditto. 1350 (chirp_emul_seek): Ditto. 1351 (chirp_emul_package_to_path): Ditto (for phandle). 1352 (chirp_emul_package_to_path): Return the length. 1353 1354 * psim.c (psim_merge_device_file): Allow continuation lines. 1355 1356Thu Dec 19 11:09:43 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1357 1358 * emul_chirp.c (chirp_emul_boot): Implement. Well report the new 1359 string and exit. 1360 1361 * emul_chirp.c (chirp_emul_exit): Correct type of args struct 1362 members - *_cell not host dependant int. 1363 1364Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1365 1366 * interrupts.c (perform_oea_interrupt): Print additional 1367 information if a double interrupt is encountered. 1368 1369Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1370 1371 * psim.c (psim_merge_device_file): Tolerate an incorrect file-name 1372 being specified with the -f option. 1373 (psim_merge_device_file): Correct check for end of string. 1374 1375Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1376 1377 * emul_chirp.c (chirp_emul_peer): Was falling off the end of the 1378 list of devices. Return zero to the client instead. 1379 * emul_chirp.c (chirp_emul_child): Ditto 1380 * emul_chirp.c (chirp_emul_parent): Ditto 1381 1382 * device.c (device_root): Assert assumption about the device being 1383 valid. 1384 1385Tue Dec 17 15:12:38 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1386 1387 * emul_chirp.c (emul_chirp_create): Add description property to 1388 each significant node in the device tree. 1389 * emul_bugapi.c (emul_bugapi_create): Ditto. 1390 1391Fri Dec 13 14:30:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1392 1393 * main.c (sim_io_read_stdin): For a single byte STDIO read, use a 1394 tempoary two byte buffer. Single byte read with fgets will not 1395 work. 1396 * main.c: Include errno.h. 1397 (sim_io_read_stdin): For non-STDIO, make it work. 1398 1399 * emul_chirp.c (chirp_emul_read): Return the correct error status. 1400 1401Fri Dec 13 14:30:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1402 1403 * std-config.h (WITH_STDIO): Don't hard-wire the STDIO mechanism. 1404 Instead have each emulation default it to DO_USE_STDIO. 1405 1406 * emul_generic.c (emul_add_tree_options): Select the STDIO I/O 1407 mechanism as the default if enabled or if nothing selected. 1408 1409 * sim_calls.c (sim_io_read_stdin): Passify GCC's desire for a 1410 return value. 1411 (sim_io_write_stdout): Ditto. 1412 (sim_io_write_stderr): Ditto. 1413 * main.c (sim_io_write_stdout): Ditto. 1414 (sim_io_write_stderr): Ditto. 1415 (sim_io_read_stdin): Ditto. 1416 1417Tue Dec 10 10:31:48 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1418 1419 * emul_chirp.c (emul_chirp_instruction_call): Make *printf calls 1420 type correct. 1421 * vm.c (om_effective_to_virtual): Ditto. 1422 * events.c (event_queue_schedule{,_after_signal}): Ditto. 1423 (event_queue_{deschedule,process}): Ditto. 1424 * hw_htab.c (htab_decode_hash_table): Ditto. 1425 (htab_map_{page,binary}): Ditto. 1426 * hw_opic.c (hw_opic_init_data): Ditto. 1427 (handle_interrupt): Ditto. 1428 (do_processor_init_register_{read,write}): Ditto. 1429 (write_vector_priority_register): Ditto. 1430 ({read,write}_destination_register): Ditto. 1431 (do_suprious_vector_register_{read,write}): Ditto. 1432 (do_current_task_priority_register_N_{read,write}): Ditto. 1433 (do_timer_frequency_reporting_register_{read,write}): Ditto. 1434 (do_timer_N_{current,base}_count_register_{read,write}): Ditto. 1435 (do_ipi_N_dispatch_register_write): Ditto. 1436 (do_vendor_identification_register_read): Ditto. 1437 (do_feature_reporting_register_N_read): Ditto. 1438 (do_global_configuration_register_N_{read,write}): Ditto. 1439 * hw_phb.c (hw_phb_attach_address): Ditto. 1440 (hw_phb_unit_decode): Ditto. 1441 (hw_phb_address_to_attach_address): Ditto. 1442 (hw_phb_io_{read,write}_buffer): Ditto. 1443 * hw_ide.c (setup_fifo): Ditto. 1444 1445 * sim_calls.c ({defs,callback,remote-sim}.h): Find gdb include 1446 files via -I<dir> instead of using "../../gdb/" prefixes. 1447 1448Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1449 1450 * debug.h: Add tracing for the pal device. 1451 * hw_pal.c: Update. 1452 1453 * emul_chirp.c (chirp_emul_getprop): More tracing. 1454 1455Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1456 1457 * device.h, device.c (device_find_ihandle_runtime_property): New 1458 function. Reverse of add_ihandle_runtime property. 1459 (device_init_runtime_properties): Use it. 1460 1461 * device.c (find_property_entry): New function returns the 1462 internal property spec. 1463 (device_set_property): Use. 1464 (device_find_property): Use. 1465 1466Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1467 1468 * psim.c (psim_merge_device_file): Strip newline from device 1469 specs. 1470 1471Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1472 1473 * hw_htab.c (htab_map_binary): For overlapping text / data maps 1474 merge the two. Also check that the merge is safe. 1475 1476 * emul_chirp.c (emul_chirp_create): Add a description property to 1477 the pte's so that they are easier to identify. 1478 1479 (emul_chirp_create): Don't specify a load address for the CHRP 1480 image. Always use the values specified by the executable. 1481 1482 * hw_htab.c (htab_map_page): Abort if a duplicate map is 1483 encountered. 1484 1485Mon Dec 9 12:08:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1486 1487 * hw_htab.c (htab_map_page): Formatting. 1488 1489 * emul_chirp.c (emul_chirp_instruction_call): Check for a NULL 1490 method name when handling the client call. Also check for other 1491 bad call arguments. 1492 1493 * emul_chirp.c (emul_chirp_create): Allow real-mode?, real-base, 1494 etc to be overriden. 1495 1496Mon Dec 9 12:08:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1497 1498 * os_emul.c (os_emul_create): Use tree find property instead of 1499 device find property - sigh. 1500 1501Thu Dec 5 10:46:42 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1502 1503 * 961205: Release snapshot 961205. 1504 1505Thu Dec 5 10:46:42 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1506 1507 * configure.in (hostbitsize, bitsize): Fix typo in error message - 1508 cannot contain a comma. 1509 (sim-warnings): Check for more potential errors. 1510 1511 * psim.c (psim_usage): Add -f <file> option. Specifies a file 1512 containing device tree specifications that should be merged into 1513 the device tree. 1514 1515 * configure.in: Sort options. 1516 * configure: Rebuild 1517 1518Wed Dec 4 13:57:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1519 1520 * psim.c (psim_usage): Add -n option - specify number of 1521 processors. 1522 1523 * emul_chirp.c: Add description. 1524 * emul_bugapi.c: Ditto. 1525 * emul_unix.c: Ditto. 1526 * emul_netbsd.c: Ditto. 1527 1528Fri Nov 29 11:12:22 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1529 1530 * hw_pal.c (hw_pal_attach_address): New function, if an attach is 1531 encountered, assume that it is the single disk. 1532 * hw_pal.c: Add generic device/size decode methods. 1533 1534 * hw_nvram.c (hw_nvram_init_address): Use the first nonzero reg 1535 property entry when determining the nvram size. 1536 1537 * hw_core.c: Add generic address/size decode methods. 1538 1539 * emul_chirp.c (emul_chirp_instruction_call): Return and trace 1540 nonzero status from client functions. 1541 1542 * main.c (error): Always include a cariage return when writing out 1543 errors. 1544 1545Wed Nov 20 00:36:55 1996 Doug Evans <dje@canuck.cygnus.com> 1546 1547 * sim_calls.c (sim_resume): Reset sim_should_run if single 1548 stepping. 1549 1550Thu Nov 28 13:19:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au> 1551 1552 * emul_bugapi.c (emul_bugapi_do_diskio): Add support for multiple 1553 optional disks. 1554 1555 * emul_generic.c (emul_add_tree_hardware): Drop the dummy eeprom. 1556 Attach the pal - for I/O - as a pseudo device haning from the 1557 firmware sub tree. 1558 1559 * emul_bugapi.c (emul_bugapi_create): Add a small memory device to 1560 the device tree at the address of the hi-mem interrupt vector 1561 addreses. Used by bugapi to establish its trap instructions. 1562 1563 * debug.h: Add a new macro DITRACE for tracing device instances. 1564 1565 * debug.h: Extend the DTRACE macro so that it can also tests for 1566 device specific tracint. 1567 1568 * device.h, device.c (device_trace): Add method to determine 1569 device specific tracing. 1570 (device_init_address): Set the devices tracing level. 1571 1572Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1573 1574 * tree.h, tree.c (tree_device): New files - separate out the 1575 device parser and other tree operations from the device. 1576 1577 * inline.h, inline.c (INLINE_TREE): Add. 1578 * device.h, device.c (device_tree_add_parsed): Delete. 1579 * Makefile.in (tree.c): Add rules for new file. 1580 * Makefile.in: Better order the emul_* files. 1581 1582 * emul_generic.c (emul_add_tree_hardware): Update. 1583 * emul_netbsd.c (emul_netbsd_create): Update. 1584 * emul_unix.c (emul_unix_create): Ditto. 1585 * emul_chirp.c (emul_chirp_create): Ditto. 1586 * emul_bugapi.c (emul_bugapi_create): Ditto. 1587 * psim.c (psim_tree): Ditto. 1588 * hw_init.c: Ditto. 1589 1590 * emul_generic.h: Include tree.h 1591 * Makefile.in: Add to EMUL_GENERIC_H dependencies. 1592 1593 * device.h, device.c (device_root): New function - returns the 1594 root of the tree. 1595 * corefile.c: Use. 1596 1597 * device.h, device.c (device_clean): New function, clean up device 1598 ready for next simulation run. This includes things like deleting 1599 interrupt edges and properties created during the simulation and 1600 also scrubbing any pre-defined properties. 1601 * tree.c (tree_init): Use. 1602 1603 * device.h, device.c (device_init_static_properties): New 1604 function. Initialize any static predefined properties. By static 1605 we mean those that have values that can be determined before the 1606 device tree initialization has started. 1607 * tree.c (tree_init): Use. 1608 1609 * device.h, device.c (device_init_address): Add code to 1610 check/verify the devices #address-cells and #size-cells. 1611 (device_add_integer_property): Delete corresponding code. 1612 (device_nr_address_cells, device_nr_data_cells): Check for 1613 property when returning value. 1614 1615 * device.h, device.c (device_init_runtime_properties): New 1616 function. Initialize those properties that are not `static'. At 1617 present the only such property is the ihandle. 1618 * tree.c (tree_init): Use. 1619 1620 * device.h, device.c (reg, ranges): Rework these so that they use 1621 an array of the fundamental type - single reg or single range 1622 entry. 1623 1624 * device.h, device.c (device_add_ihandle_runtime_property): 1625 Re-implement the adding of an ihandle during tree construction so 1626 that it better fits in with device initialization. 1627 1628Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1629 1630 * device.h, device.c (device_ioctl): Add additional argument - 1631 request - so that the caller must always specify the type of 1632 the ioctl request. 1633 1634 * device_table.h: Update. 1635 * hw_trace.c (hw_trace_ioctl): Ditto. 1636 * hw_vm.c (hw_vm_ioctl_callback): Ditto. 1637 * hw_init.c (hw_stack_ioctl_callback): Ditto. 1638 * psim.c (psim_options): Ditto. 1639 1640Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1641 1642 * BUGS: Updated a bit. 1643 1644Wed Nov 20 14:06:37 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1645 1646 * hw_opic.c: Finish - third round. 1647 1648Wed Nov 20 12:02:08 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1649 1650 * hw_glue.c (hw_glue_io_read_buffer_callback): Fix miscalc of glue 1651 reg index. 1652 (hw_glue_io_write_buffer_callback): Ditto. 1653 1654Tue Nov 19 21:17:08 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1655 1656 * events.c (event_queue_process): Was incorrectly consuming future 1657 events on the queue when they should be left alone. 1658 1659 * debug.h, debug.c (events): Add support for event queue tracing. 1660 * events.c: Add event tracing. 1661 1662 * debug.h, debug.c: Order device trace options. 1663 1664Fri Nov 15 15:23:39 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1665 1666 * pk_disklabel.c (pk_disklabel_create_instance): Fix up some 1667 warnings generated by GCC. 1668 1669Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1670 1671 * sim-endian.h: Add LE versions of byte swap macros. Needed for 1672 PCI devices which are little-endian. 1673 1674 * sim-endian-n.h (endian_le2h_N, endian_h2le_N): Ditto 1675 1676Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1677 1678 * hw_iobus.c (hw_iobus_attach_address_callback): Change the iobus 1679 so that it is implementing a 1-1 address map. 1680 1681 * emul_generic.c (emul_add_tree_hardware): Adjust. 1682 1683 * emul_generic.c (emul_add_tree_hardware): Don't add the nvram as 1684 a default. 1685 1686Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1687 1688 * device.c (split_find_device): Be tolerant of missing unit 1689 addresses. 1690 1691Fri Nov 15 16:49:49 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1692 1693 * basics.h (port_direction): New type, specify the direction of 1694 any `port'. 1695 1696 * device.h, device.c (device_interrupt_decode): Include 1697 specification of port direction in operations. 1698 (device_interrupt_encode): Ditto. 1699 1700 * device_table.h: Add a direction field to the interrupt port 1701 table. 1702 1703 * device.c (device_tree_add_parsed): Specify port direction. 1704 1705Thu Nov 14 21:38:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1706 1707 * hw_opic.c: Finish - second round. 1708 1709Thu Nov 7 00:18:59 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1710 1711 * hw_htab.c (htab_init_data_callback): Allow the virtual-address 1712 to be specified as an array which allows 64bit addresses. 1713 1714 * device.c (device_find_integer_array_property): New function. 1715 Simplify the querying of elements of an integer array. 1716 (device_add_integer_property, device_find_integer_property): 1717 Update to correctly use the cell type. 1718 1719 * vm.c (om_unpack_sr): Clarify shifting comment. 1720 (om_pte_0_masked_vsid): Ditto. Add 64bit version. 1721 1722 * emul_chirp.c (emul_chirp_create): Initialize the segment 1723 registers. 1724 1725 * vm.c (om_effective_to_virtual): Trace segment register use. 1726 1727 * hw_htab.c (htab_map_page): Print out the pteg base address to 1728 simplify cross checking between vm and the htab. 1729 (htab_decode_hash_table): Use device_error instead of error. 1730 (htab_map_page): Ditto. 1731 (htab_dma_binary): Ditto. 1732 (htab_map_binary): Ditto. 1733 (htab_init_data_callback): Ditto. 1734 1735Wed Nov 6 20:20:58 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1736 1737 * interrupts.h: Clarify what the optional instruction program 1738 interrupt is - a subset of illegal instruction program interrupt. 1739 1740 * interrupts.c (program_interrupt): For UEA mode, clarify what an 1741 optional instruction program interrupt is. 1742 (program_interrupt): For OEA mode, as per spec, generate an 1743 illegal instruction program interrupt when an optional instruction 1744 is encountered. 1745 1746 * gen-semantics.c (print_semantic_body): Delete code 1747 differentiating between an unimplemented floating point and normal 1748 instruction. Instead, such a case can be handled explicitly. 1749 1750 * ppc-instructions (store floating-point as integer word indexed): 1751 Mark as optional. 1752 (Floating Convert to Integer Doubleword): Make the floating point 1753 assist interrupt explicit. 1754 (Floating Convert To Integer Doubleword with round towards Zero): 1755 Ditto. 1756 (Floating Convert To Integer Word): Ditto 1757 (Move From FPSCR): Ditto. 1758 (Move to Condition Register from FPSCR): Ditto. 1759 (Move To FPSCR Fields): Ditto. 1760 (Move To FPSCR Field Immediate): Ditto. 1761 (Move To FPSCR Bit 0): Ditto. 1762 (Move To FPSCR Bit 1): Ditto. 1763 1764Mon Nov 4 12:49:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1765 1766 * corefile.c (core_map_read_buffer, core_map_write_buffer): Avoid 1767 breaking up transfers. 1768 1769 * corefile.c: Adjust arguments so that the client server 1770 relationship is clarified. 1771 1772 * hw_glue.c (hw_glue_init_address): Update so it can be attached 1773 to a PCI bus. 1774 1775 * hw_disk.c (hw_disk_instance_write): Add more checks to disk IO - 1776 looking for things like overflow/underflow. 1777 1778Sun Nov 3 18:45:20 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1779 1780 * emul_generic.c (emul_add_tree_hardware): Hang the disk off the 1781 PAL device instead of the IOBUS. The disk must be attached to a 1782 logical bus. 1783 1784 * hw_disk.c (hw_disk_init_address): Just use the unit address 1785 directly in the attach - the rest isn't relevant. 1786 1787Sat Nov 2 21:48:57 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1788 1789 * configure.in (sim-hardware, sim-packages): Allow additional 1790 hardware and packages to be prefixed as well as appended. 1791 1792 * Makefile.in (tmp-hw, tmp-pk): Retain the user specified order of 1793 packages when building them. Consequently, a user can override a 1794 standard device by prefixing their own version. 1795 1796 * Makefile.in (hw_opic.o, hw_pci.o, hw_ide.o): Add dependencies. 1797 1798Fri Nov 1 14:42:57 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1799 1800 * mon.c (_cpu_mon): Add fields for counting 1, 2, 4, and 8 byte 1801 reads and writes. 1802 (mon_{read,write}): Count 1, 2, 4, and 8 byte reads/writes. 1803 (mon_print_info): Correct typo regarding # of unaligned reads and 1804 writes. Print out how many 1, 2, 4, and 8 byte reads/writes there 1805 are. 1806 1807Tue Oct 29 17:55:43 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1808 1809 * configure.in (AC_CHECK_FUNCS): Add access. 1810 * config{.in,ure}: Regenerate. 1811 1812 * emul_unix.c (do_unix_nop): System call that always succeeds. 1813 (do_unix_access): Support access system call. 1814 (solaris_descriptors): Make sigaltstack and sigaction nops. 1815 ({solaris,linux}_descriptors): Add support for access. 1816 1817Tue, 8 Oct 18:42:26 1996 Jason Molenda <crash@cygnus.co.jp> 1818 1819 * Makefile.in (clean): Move config.log to distclean. 1820 1821Fri Nov 1 16:44:28 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1822 1823 * corefile-n.h (core_map_write_N): Improve abort messages. 1824 1825 * device.h, device.c (device_attach_address): Remove unused name 1826 parameter. 1827 (device_detach_address): Ditto. 1828 * device_table.h, device_table.c: Update. 1829 * hw_iobus.c (hw_iobus_attach_address_callback): Ditto. 1830 * hw_nvram.c (hw_nvram_init_address): Ditto. 1831 * hw_memory.c (hw_memory_init_address): Ditto. 1832 * hw_vm.c (hw_vm_init_address_callback): Ditto. 1833 (hw_vm_attach_address): Ditto. 1834 (hw_vm_add_space): Ditto. 1835 * hw_init.c (update_for_binary_section): Ditto. 1836 * hw_core.c (hw_core_attach_address_callback): Ditto. 1837 1838 * hw_iobus.c (hw_iobus_attach_address_callback): Rewrite to handle 1839 configurable parent busses. 1840 1841Wed Oct 30 18:46:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1842 1843 * device_table.c (generic_device_size_to_attach_size): Provide 1844 limited support for multi-cell sizes. 1845 (generic_device_address_to_attach_address): Ditto for addresses. 1846 1847Tue Oct 29 02:01:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1848 1849 * device.c (device_add_integer_property): Check for setting of 1850 #address-cells and #size-cells properties. For these, update the 1851 corresponding device values. 1852 (device_nr_address_cells, device_nr_size_cells): Use the value 1853 from the device instead of the property. 1854 1855 * hw_core.c: Use generic address and size conversions for the top 1856 bus. 1857 1858 * hw_memory.c (hw_memory_init_address): Tolerate case where 1859 #address and #size cells is greater than 1. 1860 1861 * device.c (device_tree_print_device): Clean out printing of 1862 properties. 1863 1864 * device.c (split_device_specifier): Don't detect comments here - 1865 "#" can be a valid prefix - eg #size-cells. 1866 1867 * psim.c (psim_merge_device_file): Suppress comments and blank 1868 lines here. 1869 1870 * emul_generic.c (emul_add_tree_hardware): Fix typo of incorrect 1871 pal unit address. Add the property /#address-cells to the root of 1872 the tree. 1873 1874 * device.c (device_template_create_device): Check that the unit 1875 address was successfully parsed. 1876 1877 * device_table.c (generic_device_unit_decode): Rewrite to better 1878 handle multi-cell addresses. 1879 (generic_device_unit_encode): Ditto. 1880 1881 * emul_generic.c (emul_add_tree_hardware): "reg" properties no 1882 longer need the explicit array type - the parser takes care of it. 1883 1884 * pk_disklabel.c (pk_disklabel_create_instance): Add NULL return 1885 to keep GCC happy. 1886 1887Mon Oct 28 22:55:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1888 1889 * hw_ide.c: New file. Model of a basic IDE interface attached to 1890 a PCI bus. 1891 1892 * configure.in (hardware): Add the ide device to the default 1893 configuration. 1894 * configure: Regenerate. 1895 1896 * debug.h, debug.c: Add tracing option for the IDE device. 1897 1898Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1899 1900 * hw_phb.c, hw_phb.h: New files - implement a PHB. 1901 1902 * configure.in (hardware): Add the phb to the list of devices to 1903 build by default. 1904 1905Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1906 1907 * hw_com.c: Review description. 1908 * hw_disk.c: Ditto. 1909 * hw_htab.c: Ditto. 1910 * hw_eeprom.c: Ditto. 1911 * hw_init.c: Ditto. 1912 * hw_cpu.c: Ditto. 1913 1914 * hw_com.c: Update event handling. 1915 1916 * hw_disk.c: Implement tracing. 1917 1918Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1919 1920 * device_table.c (generic_device_init_address): Use 1921 assigned-addresses property in preference to any other reg 1922 property. 1923 1924Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1925 1926 * device.h, device.c (device_find_ranges_property): New function. 1927 Simplify the manipulation of "ranges" properties. 1928 1929 * device.c (device_add_parsed): Extend to include support for the 1930 ranges property. 1931 1932 * device.c (device_add_parsed): Add assigned-addresses to the list 1933 of reg type properties. 1934 1935 * device.c (device_tree_print_device): Add code to format and 1936 print a ranges property. 1937 1938 * device.h, device.c (device_nr_address_cells, 1939 device_nr_size_cells): New functions. Determine the values of the 1940 standard properties #address-cells and #size-cells. Both of which 1941 are optional and have default values of two and one respectfuly. 1942 Previously, code that determined #address-cells was incorrectly 1943 using a value of one. 1944 1945Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1946 1947 * debug.h, debug.c: Sort debug options, Add entries for the 1948 comming PHB device. 1949 1950Fri Oct 18 12:12:21 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1951 1952 * ppc-instructions (Floating Select): Add support for fsel unless 1953 model is 601. Allow user to filter out instruction unless -Fs is 1954 passed to igen. 1955 (Store Floating-Point as Integer Word Indexed): Raise optional 1956 instruction program abort. Allow user to filter out instruction 1957 unless -Fs is passed to igen. 1958 (Floating Square Root{, Single}): Ditto. 1959 (Floating Reciprocal Estimate Single): Ditto. 1960 (Floating Reciprocal Square Root Estimate): Ditto. 1961 1962 * configure.in (--enable-sim-filter): If not passed, pass 32,f,s 1963 to igen. 1964 * configure: Regenerate. 1965 1966 * interrupts.h (program_interrupt_reasons): Add 1967 optional_instruction_program_interrupt. 1968 1969 * interrupts.c (program_interrupt): Call error with more detailed 1970 information on program interrupts, particularly in user mode. Add 1971 support for optional_instruction_program_interrupt. 1972 1973Wed Sep 25 10:20:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1974 1975 * hw_glue.c: New device. Hooks for manipulating interrupt ports. 1976 1977 * debug.h, debug.c (trace_glue_device): Add tracing support for 1978 the interrupt glue logic device. 1979 1980 * configure.in (hardware): Add glue device. 1981 * configure: Regenerate. 1982 1983Tue Sep 24 20:55:38 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1984 1985 * device.c (device_tree_parse_integer_property): New function, 1986 parse a list of integers as an array property. 1987 (device_tree_add_parsed): Call it. 1988 1989 * device.c (device_tree_parse_string_property): New function, 1990 parse a list of strings as a string property (with embeded 1991 null's). For moment, don't try to implement a complext string 1992 parser. 1993 (device_tree_add_parsed): Call it. 1994 1995Tue Sep 24 16:30:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 1996 1997 * hw_opic.c: New file. OpenPIC interrupt controller. 1998 1999 * configure.in (hardware): Add opic device. 2000 * configure: re-generate. 2001 2002 * hw_pic.c: Delete, replaced with hw_opic.c. 2003 2004 * debug.h, debug.c: Add debug option for OpenPIC device. - 2005 opic-device. 2006 2007Tue Sep 24 16:30:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2008 2009 * Makefile.in (psim.o, idecode.o): Since idecode and not psim is 2010 now the file that does all the inlining. 2011 2012 * Makefile.in (LIB_SRC, LIB_INLINE_SRC, idecode.o): Break out the 2013 library source code that could be involved in an inlining. Make 2014 idecode.o only dependant on the inlined library source code. 2015 2016 * Makefile.in (LIB_OBJ): Put options last on the list so that it 2017 is compiled last. 2018 2019 * std-config.h (DEVICE_INLINE): Only inline locals when the 2020 default is to inline. 2021 2022Mon Sep 23 00:37:49 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2023 2024 * hw_htab.c (htab_sum_binary): Determine the real-base for the 2025 binary. 2026 2027 * hw_htab.c (htab_map_binary): Depending on the value of the 2028 load-base, either map the program in as a contiguous section or as 2029 separate sections controled by th binaries lma values. 2030 (htab_init_data_callback): Ditto. 2031 2032Sun Sep 22 15:56:22 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2033 2034 * emul_generic.c (emul_add_tree_options): Remove load-base option. 2035 2036 * emul_chirp.c (map_over_chirp_note): Add load_base field to note 2037 struct. Don't require the load_base field to be present - just 2038 issue warning - it is a recent addition. 2039 (emul_chirp_create): Support both virtual and physical modes. 2040 2041 * emul_chirp.c (emul_chirp_create): Add a stack initialization 2042 property so that any arguments specified on the command line can 2043 be passed on to user programs. 2044 2045 * hw_init.c (create_ppc_chirp_bootargs): Add support for chirp 2046 argument passing to the pseudo device stack. 2047 2048Sat Sep 21 19:39:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2049 2050 * device.c (device_error): Make it more tolerant to incomplete 2051 devices. 2052 2053 * hw_init.c (hw_data_init_data_callback): Extend the data device 2054 so that it can perform initialization operations either dma or a 2055 more complex instance open, seek, write operation. 2056 * hw_init.c: Update the description of the data device to reflect 2057 this. 2058 2059Sat Sep 21 00:13:02 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2060 2061 * device.c (device_event_queue_schedule, 2062 device_event_queue_deschedule, device_event_queue_time): Have the 2063 device object export the event operations. Making these available 2064 from the device object should hopefully simplify writing device 2065 models. 2066 2067Fri Sep 20 14:04:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2068 2069 * configure.in (sim-hardware): Add eeprom device to default build. 2070 2071 * hw_eeprom.c: Rewrite so it works. 2072 2073 * debug.h, debug.c: Add tracing support for the eeprom and com 2074 devices. 2075 2076Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2077 2078 * debug.h: Add disklabel-package and disk-device trace options. 2079 debug.h (PTRACE): Add macro to simplify tracing in packages. 2080 2081Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2082 2083 * device.c (device_create_instance_from): Tighten up loop 2084 searching for device instances. 2085 (device_instance_delete): Ditto. 2086 (device_instance_delete): Only leaf instances need to be removed 2087 from a devices list of active instances. 2088 2089Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2090 2091 * hw_disk.c: Add the cdrom as an alias. 2092 2093 * pk_disklabel.c (disklabel_delete): Implement, remembering to 2094 delete the raw disk instance while we're at it. 2095 2096 * pk_disklabel.c (pk_disklabel_create_instance): Implement a 2097 little bit more - still a long way to go. 2098 2099 * pk_disklabel.c (disklabel_write, disklabel_read): Remember the 2100 new head position after a read or write. 2101 2102Thu Sep 19 13:05:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2103 2104 * emul_chirp.c (chirp_emul_read): Allow reads to be longer then 2105 the internal buffer. 2106 2107Thu Sep 19 13:05:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2108 2109 * emul_chirp.c (chirp_read_t2h_args): Call memset-0 with the args 2110 in the correct order. 2111 2112 * emul_chirp.c (chirp_emul_call_method): Correct computation for 2113 the address of the first stack argument passed in from the client 2114 program. 2115 2116Wed Sep 18 19:33:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2117 2118 * words.h: Add new types signed_cell and unsigned_cell which 2119 correspond to the signed and unsigned IEEE 1275 memory locations. 2120 * device.h, device.c, emul_chirp.c: Where refering to an IEEE 1275 2121 memory cell, replace uses of unsigned32 with unsigned_cell. 2122 * device_table.h: Ditto. 2123 2124 * sim-endian.h: Add new macros H2BE_cell and BE2H_cell which 2125 convert cell sized values to from big endian. 2126 * device.c, emul_chirp.c: Where refering to IEEE 1275 memory cells 2127 use these new macros. 2128 2129Tue Sep 17 15:57:44 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2130 2131 * device.c (device_tree_add_parsed): Detect and report an 2132 interrupt being attached to an invalid device. Was dumping core. 2133 2134Mon Sep 16 23:09:12 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2135 2136 * device.h, device.c (device_address_to_attach_address, 2137 device_size_to_attach_size): New functions. Convert a devices 2138 unit address or unit size structure into a form suitable for 2139 passing on to the attach and detach functions. 2140 * device_table.h: Add extra methods to device table. 2141 2142 * device.h, device.c (device_find_reg_property): New function. 2143 For a reg type property, return the selected address + size 2144 tupple, along with a positive success status. Add a reg_property 2145 to the list of property types. 2146 * (device_tree_add_parsed): Make array properties with the name 2147 reg or alternate-reg of type reg_property. 2148 2149 * hw_memory.c (hw_memory_init_address): Rewrite to use new 2150 find_reg_property method. 2151 * hw_nvram.c (hw_nvram_init_address): Ditto. 2152 2153 * device.c (device_tree_print_device): Add code to print out a reg 2154 property. 2155 2156 * device_table.c (generic_device_address_to_attach_address, 2157 generic_device_size_to_attach_size ): New functions. Generic 2158 functions for converting between unit and attach address or size. 2159 2160 * device_table.c (generic_device_init_address): Rewrite to use the 2161 new find_reg and address convert functions. Look for both reg and 2162 alternate-reg properties. 2163 2164Mon Sep 16 23:09:12 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2165 2166 * hw_com.c: New file. A '550 serial device that can quickly be 2167 attached to any bus. 2168 * configure.in (enable-sim-hardware): Add the com device. 2169 * configure: re-generate. 2170 2171Thu Sep 12 17:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2172 2173 * device.c (device_tree_verify_reg_unit_address): New 2174 function. Check that the unit address as specified by the reg 2175 property correctly corresponds to any unit address previously 2176 specified by the devices name. 2177 (device_tree_add_parsed): When adding a reg property, verify 2178 that the unit-address - first value of property - correctly 2179 matches any previous value specified when creating the device 2180 node. 2181 2182Thu Sep 12 17:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2183 2184 * mon.c (mon_event): Remove assertion that an unsigned is >= 0. 2185 2186Fri Aug 16 12:05:24 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2187 2188 * device.c (device_full_name): Cast strdup to char *, since AIX 2189 3.2.5 mistakenly declares the function to be const char *. 2190 (device_create_from): Ditto. 2191 (device_create_instance_from): Ditto. 2192 (device_add_property): Ditto. 2193 2194Tue Aug 13 11:40:14 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2195 2196 * debug.c (trace_option): For -t all, do not set the 2197 trace_dump_device_tree flag, so that the simulator is run. 2198 2199Tue Aug 13 11:40:14 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2200 2201 * Makefile.in (options.o): Depend on defines.h. 2202 (defines.h): New rule, go through config.h and make strings of all 2203 of the #define HAVE_xxx macros. 2204 (distclean): Remove defines.h. 2205 2206 * options.c (print_options): Print whether many of the 2207 configuration macros are defined. 2208 2209 * main.c (main): If -t options and no filename, just print the 2210 options, and don't print the usage message. 2211 2212Mon Aug 12 18:42:37 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2213 2214 * configure.in: Test whether /dev/zero works on the system, and if 2215 it does, define HAVE_DEVZERO. 2216 * configure: Regenerate. 2217 2218 * emul_generic.c (emul_add_tree_hardware): Do not add /iobus/disk 2219 if we don't have a working /dev/zero on the system. 2220 2221 * emul_bugapi.c (emul_bugapi_init): If HAVE_DEVZERO is not 2222 defined, don't add disk support. 2223 (emul_bugapi_do_diskio): Ditto. 2224 (emul_bugapi_instruction_call): Ditto. 2225 2226Wed Aug 7 14:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2227 2228 * emul_unix.c (HAVE_TCGETATTR): If HAVE_TERMIOS_STRUCTURE is not 2229 defined, make sure HAVE_TCGETATTR is #undef'ed 2230 2231Wed Aug 7 14:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2232 2233 * std-config.h (REGPARM): Only define REGPARM attributes if using 2234 GNU C. Test for __i686__ in case GCC ever defines it. If not on 2235 a x86 platform, define REGPARM as nothing. 2236 2237 * sim-endian.h (WITH_HOST_BYTE_ORDER): Test for i686 and __i686__ 2238 also. 2239 2240Wed Aug 7 20:19:55 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2241 2242 * ld-decode.h, ld-decode.c: Rename goto_gen to the more correct 2243 goto_switch_gen. 2244 * gen-idecode.c: Ditto. 2245 2246 * gen-idecode.c (print_idecode_table): Comment out check for 2247 switch/table combination until a bug with it is fixed. 2248 2249 * ppc-opcode-goto: New file. Like complex and flat but uses 2250 goto-switch instead of padded-switch for the tables. 2251 2252 * gen-idecode.c (print_goto_switch_name): New function. 2253 (print_goto_switch_table_leaf): New function. 2254 (print_goto_switch_break): New function. 2255 (print_goto_switch_table): New function. Prints a jump table 2256 that can be jumped into instead of a switch statement. 2257 2258 * gen-idecode.c (*switch_*): As an option output a switch that is 2259 implemented using a jump table but only if the switch is not 2260 boolean. 2261 2262Tue Aug 6 09:28:22 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2263 2264 * configure.in (--enable-sim-{hardware,packages}): Fix typos. 2265 * configure: Regenerate. 2266 2267 * device.c (device_instance_call_method): Fixup format message in 2268 error case. Return 0 in case of error to shut up compiler 2269 warnings. 2270 2271Wed Aug 7 00:17:37 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2272 2273 * device_table.c (generic_device_unit_decode): Require a comma 2274 between elements of a unit address. 2275 2276 * device.c (device_tree_print_device): For reg, alternate-reg and 2277 ranges properties use special print functions. 2278 (device_print_ranges_property): Print formatted ranges property. 2279 (device_print_reg_property): Print formatted reg property. 2280 2281Tue Aug 6 21:35:18 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2282 2283 * device.c (device_tree_add_parsed): For reg, ranges and 2284 alternate-reg properties use a special parser. 2285 (device_tree_parse_reg_property): New function to parse a reg 2286 property. 2287 (device_tree_parse_ranges_property): New function to parse a 2288 ranges property. 2289 (device_encode_unit): Wrapper for encode_unit callback. 2290 (device_decoce_unit): Wrapper for decode_unit callback. 2291 2292Wed Jul 31 00:02:30 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2293 2294 * device_table.h (device_instance_callbacks): Relace the claim and 2295 release methods with a more general table mapping from method-name 2296 to method-function. 2297 2298 * device.c (device_instance_call_method): New function. Implement 2299 the OpenBoot call-method client interface. Attempts to locate the 2300 instances method in the callback table. 2301 (device_instance_claim, device_instance_release): Delete. 2302 Replaced with call-method and a lookup table. 2303 2304 * emul_chirp.c (chirp_emul_call_method): Use the new device 2305 instance call method and let that handle a client claim call. 2306 2307 * hw_htab.c (claim_memory): Wrapper function to call the memory 2308 devices "claim" method using the new device-instance call-method 2309 interface. Replaces the previous direct calls to claim. 2310 (htab_map_region): Use claim_memory. 2311 (htab_init_data_callback): Ditto. 2312 2313 * hw_memory.c (hw_memory_instance_claim): Update function 2314 interface so that it is compatible with call-method. 2315 (hw_memory_instance_release): Ditto. 2316 (hw_memory_instance_methods): New table of memory specific 2317 methods claim and release. Add to the hw_memory_callback 2318 table. 2319 2320Tue Jul 30 21:26:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2321 2322 * psim.c (psim_init): Back out of change to initial value of 2323 system->last_cpu. 2324 2325Tue Jul 30 21:12:24 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2326 2327 * sim_callbacks.h (sim_io_printf_filtered): Replace 2328 printf_filtered with a local simulator specific version. Add 2329 #define printf_filtered to simplify updating of existing code. 2330 2331 * sim_callbacks.h (sim_io_write_stdout, sim_io_read_stdin, 2332 sim_io_write_stderr): New functions. Read / write to the 2333 simulations stdin and stdout and stderr interfaces. Merge in code 2334 from hw_pal that previously handled async I/O. 2335 (sim_io_flush_stdoutput): Rename flush_stdoutput. Add #define 2336 flush_stdoutput to simplify updating of existing code. 2337 2338 * hw_pal.c (scan_hw_pal, write_hw_pal, 2339 hw_pal_instance_write_callback): Use the new sim_io functions. 2340 2341 * main.c: Implement standalone versions of the new sim_io 2342 functions. Include support for async I/O. 2343 * sim_calls.c: Ditto. This time using the gdb callback table. 2344 2345 * std-config.h (CURRENT_STDIO, current_stdio): New macro. Set up 2346 stdio configuration so that it works in the same way as the rest 2347 of the simulation. 2348 * psim.c (psim_create): Initialize current_stdio from the device 2349 tree. 2350 * emul_generic.c (emul_add_tree_options): Enter a default value 2351 for use-stdio in the device tree. 2352 2353Fri Jul 26 19:43:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2354 2355 * gen-idecode.c (print_jump): Was always generating a jump back to 2356 idecode. Only necessary at tail of semantic code. 2357 (print_jump): Was always setting the processor's cia, even during 2358 startup when the processor was still undefined. 2359 (print_jump): For safety, restart smp loop when cpu_nr >= nr_cpus, 2360 not just equal. 2361 2362 * options.c (print_options): Add printing of WITH_REGPARM and 2363 WITH_STDCALL. 2364 2365 * std-config.h (WITH_REGPARM, WITH_STDCALL): Provide default 2366 (disabled) values if not defined. 2367 2368Fri Jul 26 00:36:35 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2369 2370 * ppc-cache-rules (cache): Change RS and RB to cache instead of 2371 compute. The block move instructions use them. 2372 2373 * idecode_expression.h (FPSCR_SET): New macro, set specific FPSCR 2374 register. 2375 (CR_FIELD): New macro, extract specific CR register. 2376 (FPSCR_FIELD): New macro, extract specific FPSCR register. 2377 2378 * registers.h (GPR): New macro, simplify accesses to GPR[i]. 2379 2380 * bits.c (INSERTED): Covert INSERTED macro into a function. 2381 (EXTRACTED): Conditionally compile on correct bit size macro. 2382 2383 * bits.h (BIT8): New macro, set a single bit in an 8 bit byte. 2384 2385 * ppc-instructions: With hints from Paul Martin, type in missing 2386 some instruction semantics. Leave disabled for the moment. 2387 (Load Multiple Word): Ditto. 2388 (Store Multiple Word): Ditto. 2389 (Load String Word Immediate): Ditto. 2390 (Load String Word Indexed): Ditto. 2391 (Store String Word Immedate): Ditto. 2392 (Store String Word Indexed): Ditto. 2393 (Move to Condition Register from XER): Ditto. 2394 (Move From Condition Register): Ditto. 2395 (Move From FPSCR): Ditto. 2396 (Move to Condition Register from FPSCR): Ditto. 2397 (Move To FPSCR Field Immediate): Ditto. 2398 (Move To FPSCR Fields): Ditto. 2399 (Move To FPSCR Bit 0): Ditto. 2400 (Move To FPSCR Bit 1): Ditto. 2401 2402Thu Jul 25 22:10:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2403 2404 * std-config.h (SEMANTICS_INLINE): By default, mask out the 2405 inlining of semantic functions from DEFAULT_INLINE. Almost all 2406 configurations call the semantic code via a pointer so there is 2407 little benefit. 2408 2409 * std-config.h (ICACHE_INLINE): Ditto. 2410 2411Thu Jul 25 20:07:30 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2412 2413 * configure.in (sim_regparm): Add configuration option for 2414 enabling GCC's regparm attribute. 2415 * (sim_stdcall): Add configuration option for enabling GCC's 2416 stdcall attribute. 2417 2418 * Makefile.in (REGPARM_CFLAGS): Pass regparam configuration onto 2419 compilations. 2420 * (STDCALL_CFLAGS): Pass stdcall configuration onto compilations. 2421 2422 * std-config.h (REGPARM): Extend construction of REGPARM macro so 2423 that it can include __stdcall__ function attribute. 2424 2425Wed Jul 24 19:04:20 1996 Andrew Cagney <cagney@sawnoff> 2426 2427 * options.c (print_options): Include SUPPORT_INLINE in information 2428 dump. 2429 2430 * gen-idecode.c (print_run_until_stop_body): Only generate loop 2431 termination test if creating idecode_run_until_stop. Push the 2432 loop termination test back into each alternative branch. 2433 2434Wed Jul 24 15:47:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2435 2436 * gen-icache.c (print_icache_function): Have the cache function 2437 always update the cache_entries semantic and address fields. 2438 2439 * gen-idecode.c (print_idecode_switch_illegal): Include a break 2440 when generating illegal instructions. This was commented out 2441 which is a hangover from looking a at switch statements generated 2442 using indirect jumps. 2443 2444Tue Jul 23 20:57:01 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2445 2446 * igen.c (print_my_defines): Replaces print_define_my_index. 2447 Print both a definition for MY_INDEX and MY_PREFIX. 2448 * gen-icache.c (print_icache_function): Adjust. 2449 * gen-idecode.c (print_jump_insn): Adjust. 2450 * gen-semantics.c (print_c_semantic): Adjust. 2451 2452 * gen-support.c (gen_support_h): Add optional include to created 2453 support.h so that, like cpu, it is optionally inlined for all 2454 modules that include it. 2455 * inline.h, inline.c: Adjust so that support.[hc] is handled the 2456 same as cpu.[hc]. 2457 2458 * idecode_fields.h (LABEL, GOTO): Macro's that create a unique 2459 name for a lable and then branch to it. 2460 2461 * ppc-instructions (convert_to_integer, Floating Round to 2462 Single-Precision, Floating Convert from Integer Doubleword): Use 2463 LABEL and GOTO instead of the recently added switch statements. 2464 2465Wed Jul 24 14:02:42 1996 Andrew Cagney <cagney@sawnoff.highland.com.au> 2466 2467 * gen-idecode.c (print_run_until_stop_body): Too many rparen in 2468 generated code. 2469 2470Tue Jul 23 20:57:01 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2471 2472 * configure.in (--enable-sim-line-nr): Typo - sim_line-nr. 2473 * (--enable-sim-inline): Reorder patern matching of arguments so 2474 that SUPPORT=ALL_INLINE is reconized as *=* and not *_INLINE. 2475 2476 * configure: rebuild. 2477 2478Mon Jul 22 23:25:08 1996 Andrew Cagney <cagney@highland.com.au> 2479 2480 * configure.in (--enable-sim-hardware, --enable-sim-packages): New 2481 configuration options. Let the user specify the packages or 2482 hardware devices that are to be included in the build. Makes it 2483 possible for user packages to be specified. 2484 2485 * Makefile.in (tmp-pk, tmp-hw): Just use the list of packages and 2486 hardware instead of checking it using ls. configure.in should 2487 have taken care of any problems. 2488 (HW_SRC, HW_OBJ, PACKAGE_SRC, PACKAGE_OBJ): Set by configure. 2489 2490Mon Jul 22 22:38:59 1996 Andrew Cagney <cagney@highland.com.au> 2491 2492 * psim.c (psim_options): Enter the argument to the memory size 2493 option directly into the device tree. Was using atol() which is 2494 dangerously non portable. 2495 2496Mon Jul 22 22:17:08 1996 Andrew Cagney <cagney@highland.com.au> 2497 2498 * configure.in (icache): Extend icache flag to include an insn 2499 option. If specifyed the insn - aka instruction - is included in 2500 the instruction cache. Make this the default. 2501 * configure: re-generate. 2502 2503 * igen.c (main), igen.h: Add option -S - inSn - for specifying 2504 that the instruction should be included in the icache. 2505 2506 * gen-icache.c (print_icache_body): If enabled, output code to put 2507 the instruction into the icache. 2508 (print_icache_struct): If enabled, add insn to the icache struct. 2509 2510Mon Jul 22 20:46:12 1996 Andrew Cagney <cagney@highland.com.au> 2511 2512 * Makefile.in (BUILD_CFLAGS): Include -g when building the 2513 generators. 2514 2515Mon Jul 22 20:00:25 1996 Andrew Cagney <cagney@highland.com.au> 2516 2517 * emul_generic.c (emul_add_tree_options): Was incorrectly setting 2518 the strict-alignment option when hardwired for non-strict 2519 alignment. 2520 2521Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2522 2523 * gen-semantics.c: Make the my_index variable a macro MY_INDEX. 2524 2525 * ppc-instructions: Adjust so that references are to MY_INDEX and 2526 not my_index. 2527 2528Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2529 2530 * gen-idecode.c: Output the complete run_until_stop function 2531 instead of just the code to handle a single instruction issue. 2532 * : Have the generated idecode.c include inline.c (instead of psim.c). 2533 2534 * std-config.h: Change psim.c so that it isn't inlined (as this is 2535 no longer needed). 2536 2537 * psim.c (run_until_stop): Delete the old run_until_stop function 2538 instead calling the idecode_run and idecode_run_until_stop 2539 functions that gen-idecode.c is now creating. 2540 2541Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2542 2543 * dgen.c: Maintenance - update to use new features found in lf.c. 2544 2545 * filter_filename.c (filter_filename): Maintenance - make the 2546 string constant. 2547 2548Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2549 2550 * debug.c (TRACE, ITRACE, DTRACE): Have GCC instead of CPP 2551 eliminate trace statements. 2552 2553 * debug.c: Change trace format so that it is consistent 2554 (file:line-nr) with CC's error output. 2555 2556 * gen-itable.c (itable_c_insn): Add the source file name and 2557 source line number to the instruction's informational entry. 2558 2559 * debug.c (ITRACE): Use the itable (and my_index) to get the 2560 current instructions name and source line number. 2561 2562 * gen-semantics.c, gen-icache.c: Adjust generated ITRACE calls to 2563 match new interface. 2564 2565 * emul_bugapi.c (emul_bugapi_instruction_call): Adjust 2566 corresponding call to ITRACE so that it still matches. 2567 2568 * idecode_expression.h (ALU_END, CR0_COMPARE): Use TRACE instead 2569 of ITRACE. The CPP line directives would have previously set the 2570 line-nr and file name so ITRACE isn't needed. 2571 2572Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2573 2574 * gen-idecode.c (print_jump_until_stop_body): New function and 2575 idecode generation option. Instead of generating and calling 2576 separate functions containing the semantic and icache code 2577 generate a single monolythic function and use goto's (and GCC's 2578 indirect jump) to move between code blocks. 2579 2580 * Makefile.in: Add sim_jump flag to those passed to igen. 2581 2582 * configure.in: New option --enable-sim-jump (default disabled) 2583 2584 * ppc-instructions: Eliminate any uses of labels and goto's. 2585 These result in duplicate declarations when a single flat function 2586 is being create. 2587 2588 * ppc-opcode-jump: New file. Set of opcode rules useful when 2589 testing jumping idecodes. 2590 2591Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2592 2593 * gen-idecode.c: Optionally include the semantic code for an 2594 instruction in the function that is doing the decoding. 2595 2596 * igen.c: Add option (-C) to generate semantics in the instruction 2597 decode functions. 2598 2599 * configure.in (--enable-sim-icache): Accept an option list such 2600 as 1024,define. Add a new choice to the list - semantic - which 2601 will cause igen to generate instruction decode functions that 2602 include the corresponding semantic code. 2603 2604Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2605 2606 * configure.in: New option --enable-sim-line-nr (default enabled). 2607 Enable/disable the inclusion of CPP line directives in the 2608 generated files. Such directives refer back to the source files 2609 used when generating the simulator code. 2610 2611 * Makefile.in (sim_line_nr): Pass to igen. 2612 2613Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2614 2615 * igen.c (main): Revamp the options so that more letters are 2616 available. 2617 2618 * configure.in: Adjust to match igen's revamped options 2619 2620Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2621 2622 * Makefile.in (pk.h, hw.h): Rewrite depenencies for hw.h (etc) so 2623 that they use the same technique as igen (ie a dummy targets 2624 tmp-pk and tmp-hw are created). 2625 2626Mon Jun 24 22:28:00 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2627 2628 * Makefile.in (BUILD_CFLAGS): Include WARNING_CFLAGS. 2629 2630Wed Jun 19 21:45:28 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2631 2632 * ld-cache.[hc], ld-decode.[hc], ld-insn.[hc]: New files. Separate 2633 out the loading of each of the tables from the rest of igen. 2634 * Makefile.in: Adjust. 2635 * igen.c: Adjust. 2636 2637 * gen-icache.[hc], gen-idecode.[hc], gen-itable.[hc], 2638 gen-model.[hc], gen-semantics.[hc]: New files. Separate out the 2639 code creating each separate set of generated files. 2640 * Makefile.in: Adjust. 2641 * igen.c: Adjust. 2642 2643 * gen-support.[ch]: New files. Output the support functions (found 2644 in the ppc-instructions file) into a separate file. 2645 * Makefile.in: Add. 2646 * inline.h, inline.c: Add. 2647 * std-config.h: Add. 2648 2649 * ld-cache.c: Re-design the cache table format. 2650 * ppc-cache-rules: Update to new format. 2651 2652 * ld-decode.c: Re-design the decode table format. 2653 * ppc-opcode-simple: Update to new format 2654 * ppc-opcode-complex: Ditto 2655 * ppc-opcode-flat: Ditto 2656 2657 * filter.h, filter.c: New files. Separate the opcode filter table 2658 reading code from the rest of igen.c. Re-design the filter so that 2659 it works inclusivly not exclusivly. 2660 * igen.c: Remove the opcode filter table loading code. 2661 * Makefile.in (filter.o): Adjust 2662 * configure.in: Adjust filter flag so that default includes 32bit 2663 and floating point. 2664 * ppc-instructions: Clean up filter fields so that only in use 2665 entries are specifed (ie delete `be'). 2666 2667 * misc.c (name2i, i2name): New function. Map between a string and 2668 an integer value. 2669 2670Mon Jun 17 20:08:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2671 2672 * sim_calls.c (sim_close): If simulator not created, skip printing 2673 of run information. 2674 2675Mon Jun 17 20:08:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2676 2677 * registers.c (register_description): Typo, insns not insn. 2678 2679 * ppc-instructions (model_get_number_of_stalls): New model function, 2680 returns number of stalls for the specified processor. 2681 * psim.c (psim_read_register): Add call to new function 2682 model_get_number_of_stalls(). 2683 2684 * ppc-instructions (model_get_number_of_cycles): New model function, 2685 returns number of stalls for the specified processor. 2686 * psim.c (psim_read_register): Add call to new function 2687 model_get_number_of_cycles(). 2688 2689Fri Jun 14 00:11:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2690 2691 * device_table.h: Don't pass the parent device into a devices 2692 create function. This makes the create function consistent with 2693 the documentation. 2694 * device.c (device_template_create_device): Ditto 2695 * hw_pal.c (hw_pal_create): Ditto 2696 * hw_core.c (hw_core_create): Ditto 2697 * hw_vm.c (hw_vm_create): Ditto 2698 * hw_disk.c (hw_disk_create): Ditto 2699 * hw_nvram.c (hw_nvram_create): Ditto 2700 * hw_memory.c (hw_memory_create): Ditto 2701 * hw_cpu.c (hw_cpu_create): Ditto. 2702 2703 * device.c (split_find_device): Allow a null initial parent device. 2704 (device_template_create_device): Ditto. 2705 2706 * device.c (device_create_from): Make local (static) only used 2707 within device.c. 2708 * device_table.h: typedef device_callbacks moved here (from 2709 device.h) where it belongs. 2710 2711 * hw_core.c: New file. Implements just the core device using the 2712 core object. 2713 2714 * corefile.c: Moved all core device functions into the new 2715 hw_core.c file. core_device_create() disapears. 2716 2717 * psim.c (psim_tree): Use device_tree_add_parsed() to create the 2718 core device. 2719 2720Thu Jun 13 00:09:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2721 2722 * hw_init.c: Correct typo in comment. 2723 2724 * corefile.c (core_init): Remove any remaining references to a 2725 default map. 2726 (core_map_find_mapping): Ditto. 2727 2728Wed Jun 12 22:30:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2729 2730 * corefile.c (core_init): Make function global so that other 2731 devices are able to use the full core object. 2732 2733 * corefile.c (core_create, core_from_device): Break core_create 2734 into two functions. The first creates a core object, the second 2735 returns the core object associated with a core device. 2736 2737 * corefile.c (core_device_create): Use core_create to make the 2738 core object. 2739 2740 * psim.c (psim_create): Use core_from_device() instead of 2741 core_create(). 2742 2743 * device.c (device_template_create_device): Make static as only 2744 needed by functions internal to device.c. 2745 2746Fri Jun 7 23:47:18 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2747 2748 * ppc-opcode-test-2: Remove description of fields. 2749 * ppc-opcode-complex: Ditto 2750 * ppc-opcode-flat: Ditto 2751 * ppc-opcode-simple: Ditto 2752 * ppc-opcode-stupid: Ditto 2753 * ppc-opcode-test-1: Ditto 2754 * ppc-cache-rules: Ditto 2755 2756 * igen.c: Add description of files as a comment at the front. 2757 2758Wed Jun 26 12:50:33 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2759 2760 * configure.in: Check for whether the termios and termio 2761 structures are really defined, and whether or not, they define the 2762 c_line field. 2763 * configure: Regenerate. 2764 2765 * Makefile.in ({,TERMIO_}CFLAGS): Add TERMIO_CFLAGS options set by 2766 configure. 2767 2768 * emul_unix.c: Various changes to allow for building on systems 2769 with different termio and termios structures. If host has both 2770 termio and termios, just use termios. No longer include 2771 sys/ioctl.h. 2772 2773Wed Jun 26 12:26:55 1996 Jason Molenda (crash@godzilla.cygnus.co.jp) 2774 2775 * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir, 2776 INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values. 2777 (docdir): Removed. 2778 * configure.in (AC_PREREQ): autoconf 2.5 or higher. 2779 (AC_PROG_INSTALL): Added. 2780 * configure: Rebuilt. 2781 2782Wed Jun 5 23:53:42 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2783 2784 * corefile.h: Rewrite documentation so that it can be extracted and 2785 converted into texinfo (and hence ready for translation into html, 2786 tex or nroff). 2787 * device.h: Ditto 2788 2789Thu Jun 6 09:52:37 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2790 2791 * hw_disk.c (SEEK_SET): If SEEK_SET is not defined, define as 0. 2792 2793Wed Jun 5 11:46:52 1996 Andrew Cagney <cagney@puddin> 2794 2795 * hw_disk.c: Include <unistd.h> if available. Under SunOS, that 2796 is the source of SEEK_SET. 2797 2798Wed Jun 5 01:39:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2799 2800 * psim.c (psim_options): Correct type of dummy arguments being 2801 passed to a device_ioctl call. 2802 2803 * hw_init.c (hw_data_init_data_callback): Adjust printf arguments. 2804 (write_stack_arguments): Ditto. 2805 * hw_trace.c: Instance callback entry no longer a table. 2806 2807Wed Jun 5 01:39:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2808 2809 * emul_unix.c (do_unix_umask): Cast printf argument. 2810 (convert_to_linux_termios): Use LINUX_VSWTC not LINUX_VSWCH 2811 2812Mon Jun 3 15:02:04 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2813 2814 * hw_init.c (update_for_binary_section): Abort if we find an 2815 .interp section, which indicates the need for shared libraries to 2816 be loaded. 2817 2818Mon Jun 3 15:02:04 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2819 2820 * emul_unix.c (do_unix_{time,gettimeofday,getrusage}): Add support 2821 for time, gettimeofday, and getrusage system calls. 2822 ({solaris,linux}_descriptors): Add new system calls. 2823 (do_get{,e}{uid,gid}): Use gid_t/uid_t types. 2824 (do_get{,p}pid): Use pic_t types. 2825 2826 * configure.in (AC_TYPE_{GETGROUPS,SIGNAL}): Define. 2827 (AC_TYPE_{MODE,OFF,PID,SIZE,UID}_T): Define. 2828 * config{.in,ure}: Regenerate. 2829 2830Mon Jun 3 23:19:57 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2831 2832 * emul_netbsd.c (emul_netbsd_create): Use the more specific names 2833 `ppc-elf' and `ppc-xcoff' for the stack-type. 2834 * emul_unix.c (emul_unix_create): Ditto. 2835 * emul_bugapi.c (emul_bugapi_create): Ditto. 2836 * hw_init.c: Reconize the new names. 2837 2838 * emul_unix.c (do_unix_break): Adjust so that the updated ioctl 2839 call is used (no system parameter). 2840 2841Sun Jun 2 11:21:17 1996 Michael Meissner <meissner@tiktok.cygnus.com> 2842 2843 * emul_unix.{h,c}: New files to provide Solaris and Linux system 2844 call emulations. 2845 2846 * Makefile.in (LIB_{SRC,OBJ}): Add emul_unix.{c,o}. 2847 (os_emul.o): Depend on emul_unix.h. 2848 (emul_unix.o): New dependency. 2849 2850 * configure.in (--enable-sim-alignment): Add 0|default to mean set 2851 alignment to 0, which means use appropriate alignment for mode. 2852 (AC_CHECK_FUNCS): Add new functions needed by emul_unix.c. 2853 (AC_CHECK_HEADERS): Add new include files needed by emul_unix.c. 2854 * config.in: Regenerate. 2855 * configure: Regenerate. 2856 2857 * emul_generic.c (emul_write2_status): New function to return 2858 results in r3 and r4 for Solaris system calls. 2859 (emul_do_system_call): If the system call is not support, but 2860 there is a string for the system call name, print out the string 2861 instead of the system call number. 2862 2863 * emul_generic.h (emul_write2_status): Declare it. 2864 2865 * emul_netbsd.c: Use /* */ around comment on #endif. 2866 2867 * os_emul.c: Include emul_unix.h. 2868 (os_emulations): Add emulations for Solaris, and Linux. 2869 2870 * psim.c (psim_usage): Add message about solaris, linux 2871 emulations. 2872 2873Thu May 30 00:00:10 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2874 2875 * hw_iobus.c: Tidy up notes so that they can be auto-extracted. 2876 2877 * README: Correct PSIM's title 2878 2879Wed May 29 23:50:26 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2880 2881 * basics.h: New global type object_disposition, used to indicate 2882 the status of objects when things are restarted. 2883 2884Fri May 17 17:28:52 1996 Andrew Cagney <cagney@benjimen.highland.com.au> 2885 2886 * device_table.h: Change the interrupt descriptor structure so 2887 that it includes an additional member - an upper bound on the 2888 interrupts by that name. 2889 2890 * device.c (device_interrupt_decode): Allow a range of interrupt 2891 ports (eg rst0 .. rst6) if the port descriptors bound is non zero. 2892 2893 * device.c (device_tree_print_device): Include a list of valid 2894 interrupt ports when listing supported devices. 2895 2896 * device.h, device.c (device_child_interrupt_*): Delete. Not used. 2897 2898 * emul_generic.c (emul_add_tree_hardware): Modify the creation of 2899 the interrupt net so that it uses int0 .. intN. 2900 2901Tue May 14 23:03:53 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2902 2903 * device.h, device.c (device_ioctl): Drop the system argument. 2904 Devices can not obtain this using the device_system() call. 2905 * device_table.h: Adjust accordingly. 2906 * hw_*.c: Adjust accordingly. 2907 * emul_netbsd.c (do_break): Adjust call to vm device accordingly. 2908 * psim.c (psim_options): Use a device_ioctl call to force the 2909 hw_trace device to update the trace options. 2910 * hw_trace.c: Replace the init function with an ioctl call. Adjust 2911 doc accordingly. 2912 2913 * psim.c (psim_init): Re-order initialization so that the 2914 os-emulation is initialized after the device tree. Without this, 2915 os-emul's are not able to create instances or access properties 2916 that contain an instance handle. 2917 2918 * device.h, device.c (device_add_*_property): Make these functions 2919 internal to device.c. The user has access to the more generic 2920 device_tree_add_parsed function. Differentiate between the initial 2921 and current value for each property. 2922 * (clean_device_properties): New function that deletes any 2923 properties created after the start of a simulation and restores 2924 the initial value of any others (ignoring ihandles). 2925 * (init_device_properties): (Re)Initialize any properties that 2926 contain ihandles. create 2927 2928 * (device_tree_init): Include calls to clean the device tree's 2929 properties and then initialize them. Document this in the device.h 2930 file. 2931 2932Mon May 6 17:36:15 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2933 2934 * interrupts.c (decrementer_interrupt): Always pend a decrementer 2935 interrupt even if it is not yet possible to deliver it. 2936 2937Wed May 1 12:26:51 1996 Andrew Cagney <cagney@benjimen> 2938 2939 * mon.h, mon.c (mon_get_number_of_insns): Make this externally 2940 visable adjusting the arguments so that the interface is correct. 2941 (mon_print_info): Adjust calls. 2942 2943 * registers.h, registers.c (register_description): Add phony 2944 cycle, insn and stall registers. 2945 2946 * psim.c (psim_read_register): Return nr of instructions for given 2947 processor. 2948 2949Tue Apr 30 22:09:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2950 2951 * hw_htab.c: New file. Extract contents from disk_table.c. 2952 Contains a device that, during initialization will create a 2953 PowerPC htab in memory. 2954 * hw_register.c: New file. Extract contents from disk_table.c. 2955 Contains a device that, during initialization, will parse its 2956 property list and use that to initialize various processor 2957 registers (not target specific). 2958 * hw_vm.c: New file. Extract contents from disk_table.c. Contains 2959 a device that handles accesses to invalid virtual memory addresses 2960 (in user mode). 2961 * hw_init.c: New file. Extract contents from disk_table.c. Misc 2962 devices that can initialize memory from a file. 2963 * hw_trace.c: New file. Extract contents from disk_table.c. 2964 Configure trace options from property values. 2965 2966 * Makefile.in (hw_htab.o, hw_register.o, hw_vm.o, hw_init.o, 2967 hw_trace.c): Add new device files. 2968 2969 * device_table.c: Remove above code, now in separate independant 2970 files. 2971 2972Fri Apr 26 00:00:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 2973 2974 * hw_disk.c: New file. Disk and CDROM device. 2975 2976 * Makefile.in (hw_disk.o): Add device hw_disk.c. 2977 2978 * pk_disklabel.c: New file. Implement the miss-named disk-label 2979 package. 2980 2981 * Makefile.in (pk.h): Create the file pk.h that contains a list of all 2982 the packages. 2983 2984 * Makefile.in (hw.h, hw.c): Add dependancy on Makefile so that 2985 they are re-created when the makefile is updated. 2986 2987 * emul_generic.c (emul_add_tree_hardware): Add a disk device 2988 (below the iobus) to the device tree. Include an ihandle of 2989 the disk as /chosen/disk. 2990 2991 * emul_bugapi.c (emul_bugapi_create): Don't initialize the input, 2992 output and (new) disk handles yet. 2993 * (emul_bugapi_init): Initialize the input, output (and just added) 2994 disk ihandles here. 2995 * (emul_bugapi_do_diskio): New. Performs disk i/o (well at least 2996 what I think the behavour is). 2997 * emul_bugapi.c (emul_bugapi_instruction_call): Add hook to disk 2998 i/o bug call. For RETURN call, exit using gpr[3]'s status even 2999 though this isn't part of the spec - makes it possible for machine 3000 code to signal the aporting of a simulation run. 3001 3002 * emul_chirp.c (chirp_emul_call_method): Add support for the 3003 claim/release methods. 3004 * (chirp_emul_exit): Add an optional exit status argument to 3005 the exit method. Makes it possible for chirp emul simulations 3006 to abort upon an error. 3007 * device.h, device.c (device_instance_claim, 3008 device_instance_release): New methods for claiming and releasing 3009 memory. 3010 * hw_memory.c: add claim and release memory methods. 3011 * hw_*: Use the claim memory method when allocating physical 3012 memory. 3013 3014Thu Apr 18 23:38:10 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3015 3016 * hw_nvram.c (hw_nvram_update_clock): Use the current not previous 3017 time when updating the clock. 3018 3019 * hw_nvram.c: Tidy up documentation 3020 3021Fri May 24 10:08:10 1996 Michael Meissner <meissner@tiktok.cygnus.com> 3022 3023 * configure.in (AC_STRUCT_ST_{BLKSIZE,BLOCKS,RDEV}): Use these 3024 macros to determine whether or not the appropriate st_<xxx> fields 3025 exist in the stat structure. 3026 (AC_CHECK_FUNCS): Check for all unix system calls used, except for 3027 the real basic ones like open, read, write, etc. 3028 * config{.in,ure}: Regenerate. 3029 3030 * emul_netbsd.c: Add support for missing system calls, and/or 3031 missing stat fields. 3032 (MAXPATHLEN): Undefine if including unistd.h, since sys/param.h 3033 might define it. 3034 3035 * hw_pal.c (WITH_STDIO): Redefine if O_NDELAY, F_GETFL, or F_SETFL 3036 are not defined. 3037 (scan_hw_pal): Do not cause syntax error if O_NDELAY, F_GETFL, or 3038 F_SETFL not defined. 3039 3040Tue May 21 17:24:45 1996 Michael Meissner <meissner@tiktok.cygnus.com> 3041 3042 * emul_netbsd.c (write_stat): Don't convert st_blocks unless the 3043 host is netbsd. 3044 3045Thu May 16 10:56:45 1996 Michael Meissner <meissner@tiktok.cygnus.com> 3046 3047 * configure.in (AC_CHECK_HEADERS): Add sys/ioctl.h. 3048 * config{.in,ure}: Regenerate. 3049 * emul_netbsd.c: If HAVE_SYS_IOCTL_H is not defined, don't include 3050 sys/ioctl.h. 3051 3052Tue May 7 17:28:12 1996 Michael Meissner <meissner@tiktok.cygnus.com> 3053 3054 * hw_pal.c (hw_pal_instance_read_callback): Remove unused 3055 variable. 3056 3057 * misc.c ({,target_}a2i): Rewrite to not use strtoul. 3058 3059 * Makefile.in ({spreg,misc}.o): Add dependency on .c file. 3060 ({i,d}gen): Don't link in liberity. Use BUILD_LIBS instead of 3061 LIBS. 3062 3063Mon May 6 11:31:43 1996 Michael Meissner <meissner@tiktok.cygnus.com> 3064 3065 * hw_pal.c (hw_pal_instance_read_callback): If using stdio, use 3066 fgets to read line. If not using stdio, do a simple blocking read 3067 of len bytes. 3068 3069Fri May 3 15:07:42 1996 Michael Meissner <meissner@tiktok.cygnus.com> 3070 3071 * Makefile.in: Correctly build simulator for build machine != host 3072 machine. 3073 3074Tue Apr 30 18:46:05 1996 Michael Meissner <meissner@tiktok.cygnus.com> 3075 3076 * configure.in (--enable-hostendian): Rework so the default uses 3077 the AC_C_BIGENDIAN results. Only run AC_C_BIGENDIAN if not cross 3078 compiling. 3079 * configure: Regenerate. 3080 3081 * sim-endian.h: Add more tests for host endian to support more 3082 platforms in a cross compilation environment. 3083 3084Wed Apr 17 14:38:06 1996 Michael Meissner <meissner@tiktok.cygnus.com> 3085 3086 * hw_pal.c ({scan,write}_hw_pal): If WITH_STDIO == DO_USE_STDIO, 3087 use stdio, instead of unpended read/printf_filtered. 3088 (hw_pal_instance_write_callback): If WITH_STDIO == DO_USE_STDIO, 3089 flush stdout after writing the characters. 3090 3091 * options.c (print_options): Print out WITH_STDIO. 3092 3093 * Makefile.in (STDIO_CFLAGS): Pass on result of @sim_stdio@ 3094 configuration variable. 3095 (CONFIG_CFLAGS): Include STDIO_CFLAGS. 3096 (hw.{c,h}): Allow for source dir != build dir, and for HW_SRC 3097 files to contain directory pieces. 3098 3099 * std-config.h (DO{,NT}_USE_STDIO): New flags for whether we 3100 should use stdio for console input. 3101 (WITH_STDIO): If not defined, define as DONT_USE_STDIO. 3102 3103 * configure.in (--enable-sim-stdio): Add new switch to control 3104 whether stdio is used for console I/O. 3105 * configure: Regenerate. 3106 3107 * interrupts.c (external_interrupt): Declare it to be 3108 INLINE_INTERRUPTS, not INLINE_CPU. 3109 3110Mon Apr 15 23:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3111 3112 * events.c (insert_event_entry): Allow events to be scheduled 3113 *NOW* (at delta time 0). Add assertions to clarify behavour of 3114 event queue. 3115 3116 * events.c (update_time_from_event): New function. Calculates the 3117 number of ticks from the next event. Use this. 3118 3119Sun Apr 14 21:39:45 1996 Andrew Cagney <cagney@highland.com.au> 3120 3121 * emul_netbsd.c (do_break): Return 0 if success (instead of 3122 adjusted break). 3123 3124 * device_table.c (vm_ioctl_callback): Don't return adjusted break 3125 (isn't needed). 3126 3127Sun Apr 14 21:32:41 1996 Andrew Cagney <cagney@highland.com.au> 3128 3129 * device_table.h: Change type of the device ioctl so that it 3130 returns an int (status). 3131 * device.h (device_ioctl): Ditto. 3132 * device.c (device_ioctl): Ditto. 3133 3134 * device_table.c (stack_ioctl_callback): Return 0 status. 3135 (vm_ioctl_callback): Ditto 3136 3137Sat Apr 13 00:00:24 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3138 3139 * emul_netbsd.c (do_read): Correctly set the return value. 3140 (do_getpid): Ditto. 3141 (do_getuid): Ditto. 3142 (do_geteuid): Ditto. 3143 (do_dup): Ditto. 3144 (do_getegid): Ditto. 3145 (do_getgid): Ditto. 3146 (do_sigprocmask): Ditto. 3147 (do_umask): Ditto. 3148 (do_dup2): Ditto. 3149 (do_gettimeofday): Ditto. 3150 (do_getrusage): Ditto. 3151 (do_fstat): Ditto. 3152 (do_stat): Ditto. 3153 (do_lseek): Ditto. 3154 (do___sysctl): Ditto. 3155 3156Fri Apr 12 20:56:47 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3157 3158 * device_table.c (vm_ioctl_callback): Don't access the processor 3159 registers directly, instead leave it to the caller to handle this. 3160 3161 * emul_netbsd.c (do_break): Which calls vm_ioctl_callback to 3162 perform a break. Pass in the new break value and set the 3163 registers according to the result. 3164 3165 * emul_generic.c (emul_write_status): Change so that r3 contains 3166 either status or errno and failure is indicated by SO. 3167 3168Thu Apr 4 23:03:38 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3169 3170 * emul_bugapi.c (emul_bugapi_create): More strict check of OEA 3171 address. 3172 3173Thu Apr 4 20:58:05 1996 Andrew Cagney <cagney@highland.com.au> 3174 3175 * interrupts.h (interrupts): New structure contains state of 3176 pending interrupts. 3177 3178 * cpu.c (cpu_interrupts): New function. Pending interrupt status 3179 in the cpu and grant access to it. Add interrupts to cpu 3180 structure. 3181 3182Fri Mar 29 22:09:25 1996 Andrew Cagney <cagney@highland.com.au> 3183 3184 * device.c (device_tree_add_parsed): Check that the creation of a 3185 device instance worked before using it. 3186 3187 * psim.c (psim_halt): Remove cia argument from psim_halt. This 3188 function does not save the CIA so do not pass it in. 3189 3190Fri Mar 29 21:30:56 1996 Andrew Cagney <cagney@highland.com.au> 3191 3192 * hw_pal.c (hw_pal): Merge the halt and icu and console devices 3193 found in device_table.c into a single hack pal. 3194 3195 * device_table.c (halt, icu, console): Delete. 3196 3197 * Makefile.in (hw_pal.o): New dependency. 3198 3199 * emul_generic.c (emul_add_tree_hardware): Re-arange device tree 3200 so that it uses the pal instead of the icu/halt/console devices. 3201 Wire the pal's interrupt ports up to the cpu nodes. 3202 3203Fri Mar 29 20:17:17 1996 Andrew Cagney <cagney@highland.com.au> 3204 3205 * hw_iobus.c (hw_iobus_attach_address_callback): Move from 3206 device_table.c to here. 3207 3208 * Makefile.in (hw_iobus.o): New dependency. 3209 3210Fri Mar 29 12:17:58 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3211 3212 * emul_bugapi.c (_os_emul_data): Add fields for output, input. 3213 (emul_bugapi_create): Create input, output from /chosen/stdin and 3214 /chosen/stdout. 3215 (emul_bugapi_do_{read,write}): Switch to use device_instance 3216 interface. 3217 (emul_bugapi_instruction_call): Change calls to 3218 emul_bugapi_do_{read,write} to pass device instance argument. 3219 3220Tue Mar 26 14:57:58 1996 Michael Meissner <meissner@tiktok.cygnus.com> 3221 3222 * igen.c (idecode_switch_end): Fix 2/26 change so that an extra 3223 default is not written out if a default was already written. 3224 3225 * psim.c (psim_{read,write}_register): Use sizeof unsigned_8 to 3226 size cooked_buf, not sizeof natural_word, since floating point 3227 registers are 8 bytes. 3228 3229Mon Mar 25 22:07:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3230 3231 * configure: Regenerate with autoconf 2.9. 3232 3233Thu Mar 21 00:14:26 1996 Andrew Cagney <cagney@highland.com.au> 3234 3235 * device_table.h: Always include string headers. 3236 3237Thu Mar 21 00:06:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3238 3239 * main.c (error): Be careful to not try to print out statistics 3240 when the simulation was never created. 3241 3242Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au> 3243 3244 * basics.h: Move the event queue's definition to here so that it 3245 can be refered to globally with out importing all of events.h. 3246 3247 * psim.h, psim.c (psim_event_queue): New function. Grant access 3248 to the simulation event queue. Will make this the single point of 3249 access (there is after all only one event queue in the 3250 simulation). 3251 3252 * cpu.c (cpu_create): Use psim_event_queue to obtain the event 3253 queue instead of it being passed in. No longer allow access to 3254 the cpu's copy of the event queue. 3255 3256Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au> 3257 3258 * events.h, events.c (event_handler): Remove event_queue from 3259 arguments passed to an event handler. That argument is redundant 3260 - the `data' should refer to a data structure that contains the 3261 event queue if queing is needed. 3262 3263 * cpu.c (cpu_decrement_event): adjust 3264 3265 * events.c (event_queue_process): adjust 3266 3267Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au> 3268 3269 * device.h, device.c (device_system): New, returns a handle for 3270 the system given the device. 3271 3272 * device.c (device_address_init): Store a pointer back to the 3273 system in each devices node. 3274 3275 * device_table.h: Don't pass `system' into each device when it is 3276 being initialized, this is now available using device_system(me). 3277 3278 * device.c (device_address_init, device_data_init): Adjust. 3279 3280 * hw_cpu.c, hw_nvram.c, hw_memory.c, hw_eeprom.c, device_table.c: 3281 Adjust. 3282 3283Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au> 3284 3285 * interrupts.c (decrementer_interrupt, external_interrupt): 3286 Remember that an interrupt wasn't delivered so that it can be 3287 tried again later. 3288 3289 * interrupts.c (check_masked_interrupt): New function. (re) 3290 checks for the posibility that a recent change to the MSR may have 3291 made it possible to deliver an interrupt that was previously 3292 masked be the EE bit. 3293 3294 * ppc-instructions (mtmsr, mfmsr, rfi): Check for posibility of 3295 a pending interrupt being delivered using check_masked_interrupt(). 3296 3297 * cpu.c (cpu_decrement_event): Just call decrementer_interrupt() 3298 leaving it to that module to handle both interrupt synchronization 3299 and masking. 3300 3301 * cpu.c (struct _cpu): remove variables that were going to record 3302 pending decrementer and external interrupts. 3303 3304Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au> 3305 3306 * hw_cpu.c, hw_cpu.h: New files. Implement a device that sits 3307 between the interrupt controller and the simulators internal 3308 processor model. Maps device interrupts onto the processor 3309 interrupt function calls. 3310 3311Mon Mar 4 06:06:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3312 3313 * hw_nvram.c: NVRAM device that includes a real-time clock that is 3314 updated each second. 3315 3316Mon Mar 4 04:18:50 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3317 3318 * device.h (attach_type): Remove attach_default type address 3319 spaces. Will replace with levels of callback memory. 3320 3321 * corefile.h, corefile.c (new_core_mapping), corefile.c 3322 (core_map_attach): Replace default attach with a layerd callback 3323 approach. 3324 3325Sun Mar 3 03:58:46 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3326 3327 * device.c (split_property_specifier): ensure that only a single 3328 property is found. 3329 (split_value): New function, parses the value part of a device 3330 spec. 3331 3332 * device.c (device_tree_add_parsed): Use the interrupt conversion 3333 functions to determine the interrupt port numbers. 3334 3335 * device_table.h: Add table that maps between an interrupts 3336 symbolic name and its port number. 3337 3338 * device.h, device.c (device_interrupt_decode, 3339 device_interrupt_encode): new functions use the recently added 3340 interrupt port name/number tables to perform conversion. 3341 3342Sun Mar 3 03:23:59 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3343 3344 * device.h, device.c (device_set_array_property, 3345 device_set_boolean_property, device_set_ihandle_property, 3346 device_set_integer_property, device_set_string_property): New 3347 functions - allow the value of a given property to be changed. 3348 3349 * device.h, device.c: Re-order declaration and definition of 3350 property functions. 3351 3352Sun Mar 3 03:10:22 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3353 3354 * device.c (device_tree_print_device, device_tree_add_parsed): 3355 Remove references to phandle properties. 3356 3357Wed Feb 28 00:43:07 1996 Andrew Cagney - aka Noid <cagney@highland.com.au> 3358 3359 * Makefile.in (corefile.o): missing dependency on device_table.h 3360 etc. 3361 3362Tue Feb 27 23:59:35 1996 Andrew Cagney - aka Noid <cagney@highland.com.au> 3363 3364 * device_table.h: Revamp device init callbacks so that they are a 3365 sub structure. 3366 * device.c (device_init_data, device_init_address): If an init 3367 callback is NULL assume it should do nothing. 3368 * device_table.c (ignore_device_init, unimp_device_init): delete 3369 as redundant. 3370 * device_table.c, hw_memory.c: adjust. 3371 3372 * (io): ditto. 3373 * (dma): ditto. 3374 * (device_instance): ditto. 3375 * (ioctl): ditto. 3376 * (address nee config_address): ditto. 3377 * (interrupt): ditto. 3378 3379Mon Feb 26 21:11:20 1996 Andrew Cagney - aka Noid <cagney@highland.com.au> 3380 3381 * igen.c (idecode_switch_end): Output a default entry when the 3382 switch statement is perfect. Firstly stops GCC complaining about 3383 an incomplete switch and secondly it will be eliminated by a good 3384 compiler any way. 3385 3386Mon Feb 26 22:47:15 1996 Andrew Cagney - aka Noid <cagney@highland.com.au> 3387 3388 * Makefile.in (hw.h, hw.c): New targets. Create from the list of 3389 hw_*.c files. hw.h declares a device descriptor table for each hw 3390 device while hw.c lists those tables in a form suitable for the 3391 construction of a top leveltable in device_table.c. 3392 3393 * Makefile.in (device_table.o): now depends on hw.c a generated 3394 table of hw. 3395 3396 * device_table.c (device_table): Re-arange the table of devices so 3397 that two levels are possible. Make use of hw.c. 3398 * device_table.h: ditto. 3399 3400 * device.c (device_template_create_device): Handle new two level 3401 device lookup table. 3402 * device.c (device_usage): ditto. 3403 3404Mon Feb 26 22:24:00 1996 Andrew Cagney - aka Noid <cagney@highland.com.au> 3405 3406 * device_table.c: Delete the memory device (moved to hw_memory.c). 3407 3408 * hw_memory.c: New file. Just an OpenBoot memory device. 3409 3410Wed Jan 17 21:47:34 1996 Andrew Cagney <cagney@highland.com.au> 3411 3412 * device.c (device_init_address): New. Split initialization into 3413 two stages, address and address spaces 3414 * device.c (device_init_data): New. ... and data or other work. 3415 With out this, devices try to modify memory before it as been 3416 attached. 3417 3418 * device.c (device_tree_init): Update to perform staged 3419 initialization. 3420 3421 * device.c (device_init): Delete. 3422 3423Wed Jan 17 21:43:09 1996 Andrew Cagney <cagney@highland.com.au> 3424 3425 * device_table.c (data_*): Rewrite to make heaver use of property 3426 nodes. Allow initialization by different data types. 3427 * device_table.c (htab_* pte_*): Rewrite to use properties. 3428 3429 * emul_chirp.c (emul_chirp_create): Use 3430 * emul_bugapi.c (emul_bugapi_create): Ditto 3431 * emul_netbsd.c (emul_netbsd_create): Ditto 3432 3433Wed Jan 17 21:24:50 1996 Andrew Cagney <cagney@highland.com.au> 3434 3435 * emul_generic.c (emul_add_tree_options): Annotate existing tree 3436 with options that haven't yet been specified. 3437 * emul_generic.c (emul_add_tree_hardware): Annotate existing tree 3438 with demo devices and properties. 3439 3440 * emul_chirp.c (emul_chirp_create): Update to use new 3441 device_tree_add_parsed call and additional information now 3442 included in the device tree. Use emul_add_tree* functions to add 3443 any missing details. 3444 * emul_bugapi.c (emul_bugapi_create): Ditto 3445 * emul_netbsd.c (emul_netbsd_create): Ditto 3446 3447Wed Jan 17 21:18:27 1996 Andrew Cagney <cagney@highland.com.au> 3448 3449 * device.c (device_instance_create): New. Create/delete and 3450 operate on instances of a device. 3451 * device.c (device_instance_delete): Ditto 3452 * device.c (device_instance_read): Ditto 3453 * device.c (device_instance_write): Ditto 3454 * device.c (device_instance_seek): Ditto 3455 * device.c (device_instance_data): Ditto 3456 * device.c (device_instance_name): Ditto 3457 * device.c (device_instance_path): Ditto 3458 3459 * emul_chirp.c (chirp_emul_open): Implement using device_instance. 3460 * emul_chirp.c (chirp_emul_close): Ditto 3461 * emul_chirp.c (chirp_emul_read): Ditto 3462 * emul_chirp.c (chirp_emul_write): Ditto 3463 * emul_chirp.c (chirp_emul_seek): Ditto 3464 3465 * emul_chirp.c (chirp_read_t2h_args): Read arguments from device. 3466 Being careful to convert all from target to host byte order. 3467 * emul_chirp.c (chirp_write_h2t_args): Converse. 3468 3469Wed Jan 17 20:07:15 1996 Andrew Cagney <cagney@highland.com.au> 3470 3471 * device.c (device_tree_add_parsed): New. Rewrite code to add 3472 devices to the device tree so that a single printf style function 3473 is used. 3474 3475 * device.c (device_tree_add_*): Delete. Replaced by above. 3476 3477 * device.c (split_device_specifier): Functions to manipulate a 3478 device specifier (path) breaking it into its components 3479 * device.c (split_property_specifier): Ditto 3480 * device.c (split_device_name): Ditto 3481 * device.c (split_find_device): Ditto 3482 3483 * device.c (scan_*): Delete 3484 3485 * device.c (device_tree_find_device): Rewrite to use above. 3486 * device.c (device_add_property): Ditto 3487 3488Wed Jan 17 19:51:56 1996 Andrew Cagney <cagney@highland.com.au> 3489 3490 * psim.c(psim_options): Parse the psim options, installing their 3491 value in the device tree. Options are now first entered into a 3492 device tree and then extracted out again when needed. This allows 3493 greater flexability in configuration. 3494 3495 * psim.c (psim_tree): Returns a basic device tree ready for 3496 parsing by psim_options. 3497 * psim.c (psim_usage): New. Give usage to varing levels of detail 3498 according to the verbosity. In turn output device and trace 3499 usage. 3500 3501 * main.c (main): Update to use new system 3502 * sim_calls.c (sim_open, sim_do_command): Ditto 3503 3504 * psim.c (psim_options): Add `r' option - ram size. 3505 * psim.c (psim_options): Add `o' option - openboot tree entry. 3506 * psim.c (psim_options): Add `h'/`H' options - more help. 3507 3508 * debug.c (trace_usage): Add more detailed help. 3509 * device.c (device_usage): New. Output help including a list of 3510 the devices currently available in the device table. 3511 * device_table.c: Add usage operator to each device. 3512 3513 * corefile.c (core_create, core_device_create): Adjust so that the 3514 core device is created earlier for psim_tree(). Core can later be 3515 created from it. 3516 3517 * psim.c (psim_create): Update to handle above way of creating 3518 things. Extract all information from the device tree. 3519 3520 * device_tree.c (trace_*): New device node, its properties are 3521 used to set the value of the trace options. Init this device (in 3522 psim_options) when ever the options are updated. 3523 3524Wed Jan 17 19:46:07 1996 Andrew Cagney <cagney@highland.com.au> 3525 3526 * debug.h: Add trace_print_info, trace_print_device_tree and 3527 trace_dump_device_tree. The first is a replacement for the 3528 variable `print_info' found in main.c and sim_calls.c. The latter 3529 two enable the dumping of the entire device tree. 3530 3531 * debug.c: Add to trace_description table. 3532 3533 * main.c (main): Use above trace instead of local variable 3534 * sim_calls.c (sim_close): Ditto 3535 3536 * device.c (device_tree_print_device): New. Prints the device 3537 tree in a format that is consistent with what can be parsed by the 3538 device tree load from file code. 3539 3540 * psim.c (psim_create): Dump device tree if enabled. If nump 3541 selected, exit psim immediatly. 3542 3543Wed Jan 17 19:36:52 1996 Andrew Cagney <cagney@highland.com.au> 3544 3545 * corefile-n.h (core_map_read_N): When mapping from an address to 3546 a device, do not subtract the devices base. The device its self 3547 can do this. Brings the behavour into line with OpenBoot. 3548 * corefile-n.h (core_map_write_N): Ditto 3549 * corefile.c (core_map_read_buffer): Ditto 3550 * corefile.c (core_map_write_buffer): Ditto 3551 3552 * device_table.c (console_io_read_buffer_callback): Adjust to 3553 handle biased address. 3554 * device_table.c (console_io_write_buffer_callback): Ditto 3555 3556Wed Jan 17 18:36:09 1996 Andrew Cagney <cagney@highland.com.au> 3557 3558 * device.c (attach_device_interrupt_edge): New. Interrupt model 3559 did not allow interrupts to be wired up as a general net (edges). 3560 Re-implement so that interrupt events can be passed to multiple 3561 controllers and interrupt controllers can further propogate 3562 interrupt events. 3563 3564 * device.c (attach_device_interrupt_edge) : New, Ditto 3565 * device.c (detach_device_interrupt_edge) : New, Ditto 3566 * device.c (clean_device_interrupt_edges) : New, Ditto 3567 * device.c (device_interrupt_event) : New, Ditto 3568 * device.c (device_interrupt_attach) : New, Ditto 3569 * device.c (device_interrupt_detach) : New, Ditto 3570 * device.c (device_child_interrupt_attach) : New, Ditto 3571 * device.c (device_child_interrupt_detach) : New, Ditto 3572 3573 * device.c (device_attach_interrupt) : Delete old 3574 * device.c (device_detach_interrupt) : Delete old 3575 * device.c (device_interrupt) : Delete old 3576 * device.c (device_interrupt_ack) : Delete old 3577 3578 * device_table.c (unimp_*) : Update to match 3579 3580 * device_table.c (icu_io_write_buffer_callback) : Update to use 3581 interface. 3582 * device_table.c (icu_interrupt_event_callback) : Ditto 3583 3584Wed Jan 17 18:18:40 1996 Andrew Cagney <cagney@highland.com.au> 3585 3586 * device.c (external_to_device) : New function that provides a 3587 standard mapping between a devices internal representation (a 3588 pointer) and its external (or what is passed to a client) 3589 representation (a phandle). Implement using the cap object 3590 attached to the root node. 3591 3592 * device.c (device_to_external) : Ditto 3593 * device.c (external_to_device_instance) : Ditto but for ihandle 3594 and device instance. 3595 * device.c (device_instance_to_external) : Ditto 3596 3597 * Makefile (device.o): Add dependency on cap. 3598 3599 * emul_chirp.c (struct _emul_chirp_data) : Elimate use of cap. Code 3600 needing to translate between internal and external representations 3601 changed to use the external_to_device et.al. device operations. 3602 * emul_chirp.c (chirp_emul_*) : Ditto 3603 3604 * Makefile (emul_chirp.o): Remove dependency on cap 3605 3606Sat Jan 6 10:13:26 1996 Andrew Cagney - aka Noid <cagney@highland.com.au> 3607 3608 * emul_chirp.c (map_over_chirp_note): Tighten up (and fix) checks 3609 on OpenBoot note section. 3610 3611Fri Jan 5 20:28:53 1996 Andrew Cagney <cagney@hignland.com.au> 3612 3613 * emul_generic.c (emul_write_buffer): Use vm faulting byte 3614 read/write calls for buffer transfers. This will cause a fault to 3615 occure if the transfer fails. CHRP catches the fault while the 3616 others suffer the consequences. 3617 (emul_read_buffer): Ditto. 3618 (emul_write_word): Ditto. 3619 (emul_read_word): Ditto. 3620 (emul_read_string): Ditto. 3621 3622Fri Jan 5 18:55:34 1996 Andrew Cagney <cagney@highland.com.au> 3623 3624 * emul_chirp.c (emul_chirp_create, emul_chirp_instruction_call), 3625 emul_generic (emul_blr_instruction): Use a real blr instruction to 3626 return from a client service call. 3627 3628 * emul_chirp.c (services): Add all OpenBoot services to table. 3629 3630 * emul_generic.h, emul_bugapi.c (emul_bugapi_create), emul_chirp.c 3631 (emul_chirp_create) : Use names instead of numbers for 3632 instructions being stored in memory. 3633 3634Fri Jan 5 18:52:28 1996 Andrew Cagney <cagney@highland.com.au> 3635 3636 * Makefile.in (maintainer-clean): Remove .log, core and *.core 3637 (From NetBSD) files. 3638 3639Wed May 29 22:57:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au> 3640 3641 * ChangeLog.00, ChangeLog: ChangeLog from gdb-4.16 becomes 3642 ChangeLog.00 3643 3644