1 Wed Jan 29 12:32:41 1997 Michael Meissner <meissner@tiktok.cygnus.com>
3 * configure.in (sim_callback): If the gdb is post 4.16, configure
4 callback support from the common directory.
5 * configure: Regenerate.
7 * Makefile.in (BUILT_SRC_WO_CONFIG): Add targ-vals.{h,def} and
9 (GDB_OBJ): Add callback support configured in.
10 (gentmap,targ-vals.def): Build from common directory.
11 (targ-vals.h,targ-map.c): Build by running gentmap.
12 (callback.o): Build from source in common directory.
13 (targ-map.o): Add dependency.
14 (clean): Remove gentmap.
16 Thu Jan 23 09:07:26 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
18 * hw_trace.c (hw_trace_init_data): Delete. The trace options need
19 to be initialized independant of the rest of the simulation
20 initalization. Otherwize a trace option explictly set from gdb
21 could be overridden by hw_trace.
23 * psim.c (psim_options): Clarify reason why the trace ioctl occures.
25 * FIXME: The trace code is too scattered - hw_trace.c, psim.c,
26 debug.c. It could be much simpler.
28 Thu Jan 23 09:07:26 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
30 * Some devices support removable media. Add hooks to the disk
31 device so that it supports this.
33 * device.c (device_add_string_array_property,
34 device_find_string_array_property): New functions, manipulate
35 properties containing an array of strings.
36 (device_find_string_property): Allow a string array.
37 (device_init_static_properties): Update.
38 (device_init_runtime_properties): Update.
40 * hw_disk.c (hw_disk_ioctl): Add ioctl for changing the disk
41 media. If no file image is specified, use the next one in the
43 (hw_disk_init_address): Change the file property so that it is a
44 string array - use the first entry for the initial file image.
46 * tree.c (print_string_aray_property): New function - print a
48 (print_properties): Adjust.
49 (print_string): Write a string, handling double quotes.
51 * device.h: Define an ioctl to `change-media' with an optional new
54 * hw_disk.c: Allow floppy disk devices to be specified.
56 * psim.c (psim_command): New function, parse more complex psim
57 commands such as "change-media" and "trace".
58 * sim_calls.c (sim_do_command): Use.
60 Wed Jan 22 09:38:33 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
62 * For expressions like (RA == 0) that are entered in to the cache
63 as RA_is_0. If possible generate the result of the expression so
64 that the compiler gets a better chance of eliminating dead
67 * gen-icache.c (print_icache_extraction): For a cache entry of
68 the form <name>_is_<const> where it is a boolean field, generate
69 the result of the expression instead of the expression its self.
70 (print_icache_body): Remove code that was looking for *_is_0 and
71 then generating corresponding definitions.
73 * gen-icache.c (print_icache_struct): If there is no cache, do not
74 output expressions in idecode.h file.
76 * gen-icache.c (print_icache_body): Output them here.
78 * ppc-opcode-complex: Clarify constant values for SPR==LR register
81 * ppc-cache-rules (RA_is_0, SPR_is_256): Two new cache entries.
83 Wed Jan 22 12:24:52 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
85 * The code that put values in and extracted values from the cache
86 was too compilicated. The cache table did not allow values to be
87 computed from cache entries. #defines could only be used when a
88 cache was present, remove the restriction.
90 * ld-cache.h, ld-cache.c: Add a new cache entry type - SCRATCH. A
91 scratch variable is defined when a cache entry is beinf
92 filled. Change the definition of a COMPUTE variable to be defined
93 when the cache entry is being used.
94 * gen-icache.c: Update.
96 * ld-cache.h, ld-cache.c: Change field names so that their meaning
97 is more obvious. old_name->field_name, new_name->derived_name.
98 * gen-icache.c: Update
100 * gen-icache.h, gen-icache.c (print_icache_body): Make the three
101 different types of cache code - put into cache, extract from
102 cache, no cache - an explicit argument to print_icache_body.
103 * gen-icache.c (print_icache_extraction): Ditto.
105 * gen-semantics.c (print_c_semantic): Update use.
106 * gen-idecode.c (print_jump_insn): Update use.
107 * gen-icache.c (print_icache_function): Update use.
109 * igen.c (main): Change 'R' option so that it does not force the
112 * configure.in (enable-sim-icache): Clarify description. Make
113 #define one of the defaults regardless of the cache. Probably
114 should revamp and add a separate option.
116 Tue Jan 21 13:26:10 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
118 * pk_disklabel.c (block_is_fdisk): Tidy up traces - use dos
120 (pk_disklabel_create_instance): Partition 1..4 are valid - not
122 (is_iso9660): New function, verify a CD9660 File system.
123 (pk_disklabel_create_instance): Start expanding so that active
124 partition selection is supported.
126 Mon Jan 20 11:20:15 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
128 * The cap object was retaining a reference to the instance of a
129 device after it was deleted. Instead add and remove cap's from the
130 cap db as they are created and deleted. This ensuring that a
131 capibility is only used during the lifetime of the corresponding
134 * cap.h, cap.c: Correct cap type - was signed32 should be
137 * cap.c (cap_add, cap_remove): New methods for cap object that
138 allow the explicit addition and removal of internal objects that
141 * cap.c (cap_init): Rewrite. Verify that the only objects
142 remaining in the cap data base are those that were entered first.
143 Thse objects will be the permenant ones.
144 * device.c (device_init_address): Remember to initialize the cap
147 * device.c (device_create_instance_from): Explicitly add device
148 instances to the cap database. Simplify create code.
149 (device_instance_delete): Explicitly remove device instances from
152 * device.c (device_create_from): Explicitly add a device to the
155 * device.c (device_create_from): Always set the cap members.
157 * hw_disk.c: Output the instance when tracing.
159 Sun Jan 19 16:44:29 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
161 * tree.c (split_device_specifier): Add support for aliases when
162 looking up a device. Now needs a device as an argument.
163 (split_property_specifier): Ditto.
165 Sun Jan 19 15:28:23 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
167 * The memory "claim" and "release" methods take an address and
168 size as arguments. These may be multi cell values. Initially fix
169 the memory code so that they check/detect this. Leave the
170 adjustment of any clients to later.
172 * hw_memory.c (hw_memory_instance_claim,
173 hw_memory_instance_release): Handle multi-cell memory devices.
175 * hw_memory.c (hw_memory_instance_claim): Be tolerant towards the
176 release of memory regions that were not claimed.
178 Fri Jan 17 12:01:07 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
180 * device.h, device.c (device_instance_call_method): Correct return
181 type - can return either 0 or -1, hence should be a signed type.
182 * device_table.h: Ditto.
184 * hw_memory.c (hw_memory_instance_claim,
185 hw_memory_instance_release): Update.
186 * hw_disk.c (hw_disk_max_transfer, hw_disk_block_size,
187 hw_disk_nr_blocks): Ditto.
189 Fri Jan 17 11:50:13 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
191 * emul_chirp.c (chirp_emul_claim): Implement using the "claim"
192 method belonging to "/chosen/memory".
193 (chirm_emul_release): Ditto.
195 * Makefile.in (LIB_INLINE_SRC): Remove emul_* from list of files
196 that are inlined. These modules are called via a table and are
199 * hw_init.c (update_for_binary_section): Fix failure to allocate
200 memory used by the binary in real-mode executions. If "claim"
201 property is present, allocate memory from the "/chosen/memory"
204 * emul_chirp.c (emul_chirp_create): Specify that memory should be
205 claimed when loading a real image.
207 * hw_memory.c (hw_memory_instance_claim): Don't page align memory
210 * hw_memory.c (hw_memory_instance_release): Avoid infinite loop
211 when merging adjacent memory chunks.
213 Thu Jan 16 08:51:25 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
215 * vm.h (vm_data_map_read_buffer, vm_data_map_write_buffer): Add
216 optional PROCESSOR & CIA args so that this routine also abort an
219 * vm_n.h (vm_data_map_read_N, vm_data_map_write_N): For a
220 miss-aligned access when a transfer fails abort.
222 * emul_bugapi.c (emul_bugapi_do_write): Use emul_read_buffer
223 instead of the vm_read_buffer.
224 * emul_netbsd.c (do_write): Ditto.
225 * emul_unix.c (do_unix_write): Ditto.
227 Wed Jan 15 14:38:25 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
229 * configure.in (--enable-sim-jump): Default is NULL and not -E.
230 * configure: Regenerate.
232 * basics.h (__attribute__): Enable attributes if GCC >= 2.6.
233 (UNUSED): Only enable UNUSED if GCC >= 2.7.
235 * gen-icache.c (print_icache_extraction): Print UNUSED macro
236 instead of explicit __unused__ attribute.
237 (print_icache_body): Ditto.
238 * idecode_expression.h (FPSCR_BEGIN): Use UNUSED.
240 Wed Jan 15 13:54:50 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
242 * cpu.h, cpu.c (cpu_synchronize_context): Add CIA argument as
245 * vm.c (vm_synchronize_context): Add PROCESSOR and CIA as
246 arguments so that there is a reference point for recovery.
247 (vm_synchronize_context): Pass processor+cia for errors.
248 (om_unpack_sr): Ditto.
249 (om_unpack_srs): Ditto.
250 * vm.c (vm_create): Review error messages.
252 * vm.c: Include "cpu.h" so that cpu_error is visible.
254 * ppc-instructions (Return From Interrupt): Pass CIA.
255 (Instruction Synchronize): Ditto.
256 * psim.c (psim_init): Ditto.
258 Wed Jan 15 12:25:11 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
260 * cpu.h, cpu.c (cpu_error): Aborts simulation with error message,
261 but also saves current processor state.
263 * basics.h: Move #include <stdarg.h> to here from device_table.h.
265 * interrupts.c (perform_oea_interrupt): Use. No longer loose CIA
266 when simulation aborted.
267 (program_interrupt): Ditto.
268 (floating_point_unavailable_interrupt): Ditto.
269 (alignment_interrupt): Ditto.
270 (floating_point_assist_interrupt): Ditto.
271 (perform_oea_interrupt): Ditto.
272 (machine_check_interrupt): Ditto.
274 Tue Jan 14 12:19:10 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
276 * ppc-instructions (Move from Special Purpose Register): Support
279 Mon Jan 13 16:58:12 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
281 * debug.h, debug.c: Add "interrupts" trace option.
283 * interrupts.c (data_storage_interrupt): Add tracing.
284 (machine_check_interrupt): Ditto.
285 (instruction_storage_interrupt): Ditto.
286 (alignment_interrupt): Ditto.
287 (program_interrupt): Ditto.
288 (floating_point_unavailable_interrupt): Ditto.
289 (system_call_interrupt): Ditto.
290 (floating_point_assist_interrupt): Ditto.
291 (deliver_hardware_interrupt): Ditto.
293 * interrupts.c (program_interrupt): For UEA mode, halt the
294 processor - so that the current state is saved - instead of
296 (floating_point_unavailable_interrupt): Ditto.
297 (floating_point_assist_interrupt): Ditto.
299 Thu Jan 2 09:10:41 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
301 * interrupts.c (perform_oea_interrupt): Halt rather than abort on
304 Wed Jan 1 22:54:52 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
306 * ppc-instructions (Store Multiple Word, Load Multiple Word):
309 * tree.c (print_properties): For an array consider printing it out
312 * hw_memory.c (hw_memory_init_address): If an "available" property
313 is present, use that to initialize the available memory instead of
314 using the reg property.
316 * emul_generic.c (emul_add_tree_hardware): Add "available"
317 property to memory device.
319 Fri Dec 20 13:19:07 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
321 * ppc-instructions (Rotate Left Word then AND with Mask): Enable.
323 * device.c (device_instance_call_method): Was only looking at the
326 * hw_disk.c (hw_disk_nr_blocks): Implement #blocks method.
327 (hw_disk_block_size): Implement block-size method.
328 (hw_disk_max_transfer): Implement max-transfer method.
330 * hw_phb.c (hw_phb_init_address): Reinit the rest of the PHB.
332 * emul_chirp.c (chirp_emul_instance_to_path): Recover from an
334 (chirp_emul_instance_to_package): Ditto.
335 (chirp_emul_method): Ditto.
336 (chirp_emul_read): Ditto.
337 (chirp_emul_write): Ditto.
338 (chirp_emul_close): Ditto.
339 (chirp_emul_seek): Ditto.
340 (chirp_emul_package_to_path): Ditto (for phandle).
341 (chirp_emul_package_to_path): Return the length.
343 * psim.c (psim_merge_device_file): Allow continuation lines.
345 Thu Dec 19 11:09:43 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
347 * emul_chirp.c (chirp_emul_boot): Implement. Well report the new
350 * emul_chirp.c (chirp_emul_exit): Correct type of args struct
351 members - *_cell not host dependant int.
353 Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
355 * interrupts.c (perform_oea_interrupt): Print additional
356 information if a double interrupt is encountered.
358 Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
360 * psim.c (psim_merge_device_file): Tolerate an incorrect file-name
361 being specified with the -f option.
362 (psim_merge_device_file): Correct check for end of string.
364 Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
366 * emul_chirp.c (chirp_emul_peer): Was falling off the end of the
367 list of devices. Return zero to the client instead.
368 * emul_chirp.c (chirp_emul_child): Ditto
369 * emul_chirp.c (chirp_emul_parent): Ditto
371 * device.c (device_root): Assert assumption about the device being
374 Tue Dec 17 15:12:38 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
376 * emul_chirp.c (emul_chirp_create): Add description property to
377 each significant node in the device tree.
378 * emul_bugapi.c (emul_bugapi_create): Ditto.
380 Fri Dec 13 14:30:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
382 * main.c (sim_io_read_stdin): For a single byte STDIO read, use a
383 tempoary two byte buffer. Single byte read with fgets will not
385 * main.c: Include errno.h.
386 (sim_io_read_stdin): For non-STDIO, make it work.
388 * emul_chirp.c (chirp_emul_read): Return the correct error status.
390 Fri Dec 13 14:30:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
392 * std-config.h (WITH_STDIO): Don't hard-wire the STDIO mechanism.
393 Instead have each emulation default it to DO_USE_STDIO.
395 * emul_generic.c (emul_add_tree_options): Select the STDIO I/O
396 mechanism as the default if enabled or if nothing selected.
398 * sim_calls.c (sim_io_read_stdin): Passify GCC's desire for a
400 (sim_io_write_stdout): Ditto.
401 (sim_io_write_stderr): Ditto.
402 * main.c (sim_io_write_stdout): Ditto.
403 (sim_io_write_stderr): Ditto.
404 (sim_io_read_stdin): Ditto.
406 Tue Dec 10 10:31:48 1996 Michael Meissner <meissner@tiktok.cygnus.com>
408 * emul_chirp.c (emul_chirp_instruction_call): Make *printf calls
410 * vm.c (om_effective_to_virtual): Ditto.
411 * events.c (event_queue_schedule{,_after_signal}): Ditto.
412 (event_queue_{deschedule,process}): Ditto.
413 * hw_htab.c (htab_decode_hash_table): Ditto.
414 (htab_map_{page,binary}): Ditto.
415 * hw_opic.c (hw_opic_init_data): Ditto.
416 (handle_interrupt): Ditto.
417 (do_processor_init_register_{read,write}): Ditto.
418 (write_vector_priority_register): Ditto.
419 ({read,write}_destination_register): Ditto.
420 (do_suprious_vector_register_{read,write}): Ditto.
421 (do_current_task_priority_register_N_{read,write}): Ditto.
422 (do_timer_frequency_reporting_register_{read,write}): Ditto.
423 (do_timer_N_{current,base}_count_register_{read,write}): Ditto.
424 (do_ipi_N_dispatch_register_write): Ditto.
425 (do_vendor_identification_register_read): Ditto.
426 (do_feature_reporting_register_N_read): Ditto.
427 (do_global_configuration_register_N_{read,write}): Ditto.
428 * hw_phb.c (hw_phb_attach_address): Ditto.
429 (hw_phb_unit_decode): Ditto.
430 (hw_phb_address_to_attach_address): Ditto.
431 (hw_phb_io_{read,write}_buffer): Ditto.
432 * hw_ide.c (setup_fifo): Ditto.
434 * sim_calls.c ({defs,callback,remote-sim}.h): Find gdb include
435 files via -I<dir> instead of using "../../gdb/" prefixes.
437 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
439 * debug.h: Add tracing for the pal device.
442 * emul_chirp.c (chirp_emul_getprop): More tracing.
444 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
446 * device.h, device.c (device_find_ihandle_runtime_property): New
447 function. Reverse of add_ihandle_runtime property.
448 (device_init_runtime_properties): Use it.
450 * device.c (find_property_entry): New function returns the
451 internal property spec.
452 (device_set_property): Use.
453 (device_find_property): Use.
455 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
457 * psim.c (psim_merge_device_file): Strip newline from device
460 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
462 * hw_htab.c (htab_map_binary): For overlapping text / data maps
463 merge the two. Also check that the merge is safe.
465 * emul_chirp.c (emul_chirp_create): Add a description property to
466 the pte's so that they are easier to identify.
468 (emul_chirp_create): Don't specify a load address for the CHRP
469 image. Always use the values specified by the executable.
471 * hw_htab.c (htab_map_page): Abort if a duplicate map is
474 Mon Dec 9 12:08:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
476 * hw_htab.c (htab_map_page): Formatting.
478 * emul_chirp.c (emul_chirp_instruction_call): Check for a NULL
479 method name when handling the client call. Also check for other
482 * emul_chirp.c (emul_chirp_create): Allow real-mode?, real-base,
485 Mon Dec 9 12:08:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
487 * os_emul.c (os_emul_create): Use tree find property instead of
488 device find property - sigh.
490 Thu Dec 5 10:46:42 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
492 * 961205: Release snapshot 961205.
494 Thu Dec 5 10:46:42 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
496 * configure.in (hostbitsize, bitsize): Fix typo in error message -
497 cannot contain a comma.
498 (sim-warnings): Check for more potential errors.
500 * psim.c (psim_usage): Add -f <file> option. Specifies a file
501 containing device tree specifications that should be merged into
504 * configure.in: Sort options.
507 Wed Dec 4 13:57:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
509 * psim.c (psim_usage): Add -n option - specify number of
512 * emul_chirp.c: Add description.
513 * emul_bugapi.c: Ditto.
514 * emul_unix.c: Ditto.
515 * emul_netbsd.c: Ditto.
517 Fri Nov 29 11:12:22 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
519 * hw_pal.c (hw_pal_attach_address): New function, if an attach is
520 encountered, assume that it is the single disk.
521 * hw_pal.c: Add generic device/size decode methods.
523 * hw_nvram.c (hw_nvram_init_address): Use the first nonzero reg
524 property entry when determining the nvram size.
526 * hw_core.c: Add generic address/size decode methods.
528 * emul_chirp.c (emul_chirp_instruction_call): Return and trace
529 nonzero status from client functions.
531 * main.c (error): Always include a cariage return when writing out
534 Wed Nov 20 00:36:55 1996 Doug Evans <dje@canuck.cygnus.com>
536 * sim_calls.c (sim_resume): Reset sim_should_run if single
539 Thu Nov 28 13:19:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
541 * emul_bugapi.c (emul_bugapi_do_diskio): Add support for multiple
544 * emul_generic.c (emul_add_tree_hardware): Drop the dummy eeprom.
545 Attach the pal - for I/O - as a pseudo device haning from the
548 * emul_bugapi.c (emul_bugapi_create): Add a small memory device to
549 the device tree at the address of the hi-mem interrupt vector
550 addreses. Used by bugapi to establish its trap instructions.
552 * debug.h: Add a new macro DITRACE for tracing device instances.
554 * debug.h: Extend the DTRACE macro so that it can also tests for
555 device specific tracint.
557 * device.h, device.c (device_trace): Add method to determine
558 device specific tracing.
559 (device_init_address): Set the devices tracing level.
561 Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
563 * tree.h, tree.c (tree_device): New files - separate out the
564 device parser and other tree operations from the device.
566 * inline.h, inline.c (INLINE_TREE): Add.
567 * device.h, device.c (device_tree_add_parsed): Delete.
568 * Makefile.in (tree.c): Add rules for new file.
569 * Makefile.in: Better order the emul_* files.
571 * emul_generic.c (emul_add_tree_hardware): Update.
572 * emul_netbsd.c (emul_netbsd_create): Update.
573 * emul_unix.c (emul_unix_create): Ditto.
574 * emul_chirp.c (emul_chirp_create): Ditto.
575 * emul_bugapi.c (emul_bugapi_create): Ditto.
576 * psim.c (psim_tree): Ditto.
579 * emul_generic.h: Include tree.h
580 * Makefile.in: Add to EMUL_GENERIC_H dependencies.
582 * device.h, device.c (device_root): New function - returns the
586 * device.h, device.c (device_clean): New function, clean up device
587 ready for next simulation run. This includes things like deleting
588 interrupt edges and properties created during the simulation and
589 also scrubbing any pre-defined properties.
590 * tree.c (tree_init): Use.
592 * device.h, device.c (device_init_static_properties): New
593 function. Initialize any static predefined properties. By static
594 we mean those that have values that can be determined before the
595 device tree initialization has started.
596 * tree.c (tree_init): Use.
598 * device.h, device.c (device_init_address): Add code to
599 check/verify the devices #address-cells and #size-cells.
600 (device_add_integer_property): Delete corresponding code.
601 (device_nr_address_cells, device_nr_data_cells): Check for
602 property when returning value.
604 * device.h, device.c (device_init_runtime_properties): New
605 function. Initialize those properties that are not `static'. At
606 present the only such property is the ihandle.
607 * tree.c (tree_init): Use.
609 * device.h, device.c (reg, ranges): Rework these so that they use
610 an array of the fundamental type - single reg or single range
613 * device.h, device.c (device_add_ihandle_runtime_property):
614 Re-implement the adding of an ihandle during tree construction so
615 that it better fits in with device initialization.
617 Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
619 * device.h, device.c (device_ioctl): Add additional argument -
620 request - so that the caller must always specify the type of
623 * device_table.h: Update.
624 * hw_trace.c (hw_trace_ioctl): Ditto.
625 * hw_vm.c (hw_vm_ioctl_callback): Ditto.
626 * hw_init.c (hw_stack_ioctl_callback): Ditto.
627 * psim.c (psim_options): Ditto.
629 Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
631 * BUGS: Updated a bit.
633 Wed Nov 20 14:06:37 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
635 * hw_opic.c: Finish - third round.
637 Wed Nov 20 12:02:08 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
639 * hw_glue.c (hw_glue_io_read_buffer_callback): Fix miscalc of glue
641 (hw_glue_io_write_buffer_callback): Ditto.
643 Tue Nov 19 21:17:08 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
645 * events.c (event_queue_process): Was incorrectly consuming future
646 events on the queue when they should be left alone.
648 * debug.h, debug.c (events): Add support for event queue tracing.
649 * events.c: Add event tracing.
651 * debug.h, debug.c: Order device trace options.
653 Fri Nov 15 15:23:39 1996 Michael Meissner <meissner@tiktok.cygnus.com>
655 * pk_disklabel.c (pk_disklabel_create_instance): Fix up some
656 warnings generated by GCC.
658 Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
660 * sim-endian.h: Add LE versions of byte swap macros. Needed for
661 PCI devices which are little-endian.
663 * sim-endian-n.h (endian_le2h_N, endian_h2le_N): Ditto
665 Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
667 * hw_iobus.c (hw_iobus_attach_address_callback): Change the iobus
668 so that it is implementing a 1-1 address map.
670 * emul_generic.c (emul_add_tree_hardware): Adjust.
672 * emul_generic.c (emul_add_tree_hardware): Don't add the nvram as
675 Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
677 * device.c (split_find_device): Be tolerant of missing unit
680 Fri Nov 15 16:49:49 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
682 * basics.h (port_direction): New type, specify the direction of
685 * device.h, device.c (device_interrupt_decode): Include
686 specification of port direction in operations.
687 (device_interrupt_encode): Ditto.
689 * device_table.h: Add a direction field to the interrupt port
692 * device.c (device_tree_add_parsed): Specify port direction.
694 Thu Nov 14 21:38:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
696 * hw_opic.c: Finish - second round.
698 Thu Nov 7 00:18:59 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
700 * hw_htab.c (htab_init_data_callback): Allow the virtual-address
701 to be specified as an array which allows 64bit addresses.
703 * device.c (device_find_integer_array_property): New function.
704 Simplify the querying of elements of an integer array.
705 (device_add_integer_property, device_find_integer_property):
706 Update to correctly use the cell type.
708 * vm.c (om_unpack_sr): Clarify shifting comment.
709 (om_pte_0_masked_vsid): Ditto. Add 64bit version.
711 * emul_chirp.c (emul_chirp_create): Initialize the segment
714 * vm.c (om_effective_to_virtual): Trace segment register use.
716 * hw_htab.c (htab_map_page): Print out the pteg base address to
717 simplify cross checking between vm and the htab.
718 (htab_decode_hash_table): Use device_error instead of error.
719 (htab_map_page): Ditto.
720 (htab_dma_binary): Ditto.
721 (htab_map_binary): Ditto.
722 (htab_init_data_callback): Ditto.
724 Wed Nov 6 20:20:58 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
726 * interrupts.h: Clarify what the optional instruction program
727 interrupt is - a subset of illegal instruction program interrupt.
729 * interrupts.c (program_interrupt): For UEA mode, clarify what an
730 optional instruction program interrupt is.
731 (program_interrupt): For OEA mode, as per spec, generate an
732 illegal instruction program interrupt when an optional instruction
735 * gen-semantics.c (print_semantic_body): Delete code
736 differentiating between an unimplemented floating point and normal
737 instruction. Instead, such a case can be handled explicitly.
739 * ppc-instructions (store floating-point as integer word indexed):
741 (Floating Convert to Integer Doubleword): Make the floating point
742 assist interrupt explicit.
743 (Floating Convert To Integer Doubleword with round towards Zero):
745 (Floating Convert To Integer Word): Ditto
746 (Move From FPSCR): Ditto.
747 (Move to Condition Register from FPSCR): Ditto.
748 (Move To FPSCR Fields): Ditto.
749 (Move To FPSCR Field Immediate): Ditto.
750 (Move To FPSCR Bit 0): Ditto.
751 (Move To FPSCR Bit 1): Ditto.
753 Mon Nov 4 12:49:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
755 * corefile.c (core_map_read_buffer, core_map_write_buffer): Avoid
756 breaking up transfers.
758 * corefile.c: Adjust arguments so that the client server
759 relationship is clarified.
761 * hw_glue.c (hw_glue_init_address): Update so it can be attached
764 * hw_disk.c (hw_disk_instance_write): Add more checks to disk IO -
765 looking for things like overflow/underflow.
767 Sun Nov 3 18:45:20 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
769 * emul_generic.c (emul_add_tree_hardware): Hang the disk off the
770 PAL device instead of the IOBUS. The disk must be attached to a
773 * hw_disk.c (hw_disk_init_address): Just use the unit address
774 directly in the attach - the rest isn't relevant.
776 Sat Nov 2 21:48:57 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
778 * configure.in (sim-hardware, sim-packages): Allow additional
779 hardware and packages to be prefixed as well as appended.
781 * Makefile.in (tmp-hw, tmp-pk): Retain the user specified order of
782 packages when building them. Consequently, a user can override a
783 standard device by prefixing their own version.
785 * Makefile.in (hw_opic.o, hw_pci.o, hw_ide.o): Add dependencies.
787 Fri Nov 1 14:42:57 1996 Michael Meissner <meissner@tiktok.cygnus.com>
789 * mon.c (_cpu_mon): Add fields for counting 1, 2, 4, and 8 byte
791 (mon_{read,write}): Count 1, 2, 4, and 8 byte reads/writes.
792 (mon_print_info): Correct typo regarding # of unaligned reads and
793 writes. Print out how many 1, 2, 4, and 8 byte reads/writes there
796 Tue Oct 29 17:55:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
798 * configure.in (AC_CHECK_FUNCS): Add access.
799 * config{.in,ure}: Regenerate.
801 * emul_unix.c (do_unix_nop): System call that always succeeds.
802 (do_unix_access): Support access system call.
803 (solaris_descriptors): Make sigaltstack and sigaction nops.
804 ({solaris,linux}_descriptors): Add support for access.
806 Tue, 8 Oct 18:42:26 1996 Jason Molenda <crash@cygnus.co.jp>
808 * Makefile.in (clean): Move config.log to distclean.
810 Fri Nov 1 16:44:28 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
812 * corefile-n.h (core_map_write_N): Improve abort messages.
814 * device.h, device.c (device_attach_address): Remove unused name
816 (device_detach_address): Ditto.
817 * device_table.h, device_table.c: Update.
818 * hw_iobus.c (hw_iobus_attach_address_callback): Ditto.
819 * hw_nvram.c (hw_nvram_init_address): Ditto.
820 * hw_memory.c (hw_memory_init_address): Ditto.
821 * hw_vm.c (hw_vm_init_address_callback): Ditto.
822 (hw_vm_attach_address): Ditto.
823 (hw_vm_add_space): Ditto.
824 * hw_init.c (update_for_binary_section): Ditto.
825 * hw_core.c (hw_core_attach_address_callback): Ditto.
827 * hw_iobus.c (hw_iobus_attach_address_callback): Rewrite to handle
828 configurable parent busses.
830 Wed Oct 30 18:46:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
832 * device_table.c (generic_device_size_to_attach_size): Provide
833 limited support for multi-cell sizes.
834 (generic_device_address_to_attach_address): Ditto for addresses.
836 Tue Oct 29 02:01:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
838 * device.c (device_add_integer_property): Check for setting of
839 #address-cells and #size-cells properties. For these, update the
840 corresponding device values.
841 (device_nr_address_cells, device_nr_size_cells): Use the value
842 from the device instead of the property.
844 * hw_core.c: Use generic address and size conversions for the top
847 * hw_memory.c (hw_memory_init_address): Tolerate case where
848 #address and #size cells is greater than 1.
850 * device.c (device_tree_print_device): Clean out printing of
853 * device.c (split_device_specifier): Don't detect comments here -
854 "#" can be a valid prefix - eg #size-cells.
856 * psim.c (psim_merge_device_file): Suppress comments and blank
859 * emul_generic.c (emul_add_tree_hardware): Fix typo of incorrect
860 pal unit address. Add the property /#address-cells to the root of
863 * device.c (device_template_create_device): Check that the unit
864 address was successfully parsed.
866 * device_table.c (generic_device_unit_decode): Rewrite to better
867 handle multi-cell addresses.
868 (generic_device_unit_encode): Ditto.
870 * emul_generic.c (emul_add_tree_hardware): "reg" properties no
871 longer need the explicit array type - the parser takes care of it.
873 * pk_disklabel.c (pk_disklabel_create_instance): Add NULL return
876 Mon Oct 28 22:55:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
878 * hw_ide.c: New file. Model of a basic IDE interface attached to
881 * configure.in (hardware): Add the ide device to the default
883 * configure: Regenerate.
885 * debug.h, debug.c: Add tracing option for the IDE device.
887 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
889 * hw_phb.c, hw_phb.h: New files - implement a PHB.
891 * configure.in (hardware): Add the phb to the list of devices to
894 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
896 * hw_com.c: Review description.
899 * hw_eeprom.c: Ditto.
903 * hw_com.c: Update event handling.
905 * hw_disk.c: Implement tracing.
907 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
909 * device_table.c (generic_device_init_address): Use
910 assigned-addresses property in preference to any other reg
913 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
915 * device.h, device.c (device_find_ranges_property): New function.
916 Simplify the manipulation of "ranges" properties.
918 * device.c (device_add_parsed): Extend to include support for the
921 * device.c (device_add_parsed): Add assigned-addresses to the list
922 of reg type properties.
924 * device.c (device_tree_print_device): Add code to format and
925 print a ranges property.
927 * device.h, device.c (device_nr_address_cells,
928 device_nr_size_cells): New functions. Determine the values of the
929 standard properties #address-cells and #size-cells. Both of which
930 are optional and have default values of two and one respectfuly.
931 Previously, code that determined #address-cells was incorrectly
932 using a value of one.
934 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
936 * debug.h, debug.c: Sort debug options, Add entries for the
939 Fri Oct 18 12:12:21 1996 Michael Meissner <meissner@tiktok.cygnus.com>
941 * ppc-instructions (Floating Select): Add support for fsel unless
942 model is 601. Allow user to filter out instruction unless -Fs is
944 (Store Floating-Point as Integer Word Indexed): Raise optional
945 instruction program abort. Allow user to filter out instruction
946 unless -Fs is passed to igen.
947 (Floating Square Root{, Single}): Ditto.
948 (Floating Reciprocal Estimate Single): Ditto.
949 (Floating Reciprocal Square Root Estimate): Ditto.
951 * configure.in (--enable-sim-filter): If not passed, pass 32,f,s
953 * configure: Regenerate.
955 * interrupts.h (program_interrupt_reasons): Add
956 optional_instruction_program_interrupt.
958 * interrupts.c (program_interrupt): Call error with more detailed
959 information on program interrupts, particularly in user mode. Add
960 support for optional_instruction_program_interrupt.
962 Wed Sep 25 10:20:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
964 * hw_glue.c: New device. Hooks for manipulating interrupt ports.
966 * debug.h, debug.c (trace_glue_device): Add tracing support for
967 the interrupt glue logic device.
969 * configure.in (hardware): Add glue device.
970 * configure: Regenerate.
972 Tue Sep 24 20:55:38 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
974 * device.c (device_tree_parse_integer_property): New function,
975 parse a list of integers as an array property.
976 (device_tree_add_parsed): Call it.
978 * device.c (device_tree_parse_string_property): New function,
979 parse a list of strings as a string property (with embeded
980 null's). For moment, don't try to implement a complext string
982 (device_tree_add_parsed): Call it.
984 Tue Sep 24 16:30:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
986 * hw_opic.c: New file. OpenPIC interrupt controller.
988 * configure.in (hardware): Add opic device.
989 * configure: re-generate.
991 * hw_pic.c: Delete, replaced with hw_opic.c.
993 * debug.h, debug.c: Add debug option for OpenPIC device. -
996 Tue Sep 24 16:30:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
998 * Makefile.in (psim.o, idecode.o): Since idecode and not psim is
999 now the file that does all the inlining.
1001 * Makefile.in (LIB_SRC, LIB_INLINE_SRC, idecode.o): Break out the
1002 library source code that could be involved in an inlining. Make
1003 idecode.o only dependant on the inlined library source code.
1005 * Makefile.in (LIB_OBJ): Put options last on the list so that it
1008 * std-config.h (DEVICE_INLINE): Only inline locals when the
1009 default is to inline.
1011 Mon Sep 23 00:37:49 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1013 * hw_htab.c (htab_sum_binary): Determine the real-base for the
1016 * hw_htab.c (htab_map_binary): Depending on the value of the
1017 load-base, either map the program in as a contiguous section or as
1018 separate sections controled by th binaries lma values.
1019 (htab_init_data_callback): Ditto.
1021 Sun Sep 22 15:56:22 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1023 * emul_generic.c (emul_add_tree_options): Remove load-base option.
1025 * emul_chirp.c (map_over_chirp_note): Add load_base field to note
1026 struct. Don't require the load_base field to be present - just
1027 issue warning - it is a recent addition.
1028 (emul_chirp_create): Support both virtual and physical modes.
1030 * emul_chirp.c (emul_chirp_create): Add a stack initialization
1031 property so that any arguments specified on the command line can
1032 be passed on to user programs.
1034 * hw_init.c (create_ppc_chirp_bootargs): Add support for chirp
1035 argument passing to the pseudo device stack.
1037 Sat Sep 21 19:39:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1039 * device.c (device_error): Make it more tolerant to incomplete
1042 * hw_init.c (hw_data_init_data_callback): Extend the data device
1043 so that it can perform initialization operations either dma or a
1044 more complex instance open, seek, write operation.
1045 * hw_init.c: Update the description of the data device to reflect
1048 Sat Sep 21 00:13:02 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1050 * device.c (device_event_queue_schedule,
1051 device_event_queue_deschedule, device_event_queue_time): Have the
1052 device object export the event operations. Making these available
1053 from the device object should hopefully simplify writing device
1056 Fri Sep 20 14:04:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1058 * configure.in (sim-hardware): Add eeprom device to default build.
1060 * hw_eeprom.c: Rewrite so it works.
1062 * debug.h, debug.c: Add tracing support for the eeprom and com
1065 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1067 * debug.h: Add disklabel-package and disk-device trace options.
1068 debug.h (PTRACE): Add macro to simplify tracing in packages.
1070 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1072 * device.c (device_create_instance_from): Tighten up loop
1073 searching for device instances.
1074 (device_instance_delete): Ditto.
1075 (device_instance_delete): Only leaf instances need to be removed
1076 from a devices list of active instances.
1078 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1080 * hw_disk.c: Add the cdrom as an alias.
1082 * pk_disklabel.c (disklabel_delete): Implement, remembering to
1083 delete the raw disk instance while we're at it.
1085 * pk_disklabel.c (pk_disklabel_create_instance): Implement a
1086 little bit more - still a long way to go.
1088 * pk_disklabel.c (disklabel_write, disklabel_read): Remember the
1089 new head position after a read or write.
1091 Thu Sep 19 13:05:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1093 * emul_chirp.c (chirp_emul_read): Allow reads to be longer then
1094 the internal buffer.
1096 Thu Sep 19 13:05:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1098 * emul_chirp.c (chirp_read_t2h_args): Call memset-0 with the args
1099 in the correct order.
1101 * emul_chirp.c (chirp_emul_call_method): Correct computation for
1102 the address of the first stack argument passed in from the client
1105 Wed Sep 18 19:33:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1107 * words.h: Add new types signed_cell and unsigned_cell which
1108 correspond to the signed and unsigned IEEE 1275 memory locations.
1109 * device.h, device.c, emul_chirp.c: Where refering to an IEEE 1275
1110 memory cell, replace uses of unsigned32 with unsigned_cell.
1111 * device_table.h: Ditto.
1113 * sim-endian.h: Add new macros H2BE_cell and BE2H_cell which
1114 convert cell sized values to from big endian.
1115 * device.c, emul_chirp.c: Where refering to IEEE 1275 memory cells
1116 use these new macros.
1118 Tue Sep 17 15:57:44 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1120 * device.c (device_tree_add_parsed): Detect and report an
1121 interrupt being attached to an invalid device. Was dumping core.
1123 Mon Sep 16 23:09:12 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1125 * device.h, device.c (device_address_to_attach_address,
1126 device_size_to_attach_size): New functions. Convert a devices
1127 unit address or unit size structure into a form suitable for
1128 passing on to the attach and detach functions.
1129 * device_table.h: Add extra methods to device table.
1131 * device.h, device.c (device_find_reg_property): New function.
1132 For a reg type property, return the selected address + size
1133 tupple, along with a positive success status. Add a reg_property
1134 to the list of property types.
1135 * (device_tree_add_parsed): Make array properties with the name
1136 reg or alternate-reg of type reg_property.
1138 * hw_memory.c (hw_memory_init_address): Rewrite to use new
1139 find_reg_property method.
1140 * hw_nvram.c (hw_nvram_init_address): Ditto.
1142 * device.c (device_tree_print_device): Add code to print out a reg
1145 * device_table.c (generic_device_address_to_attach_address,
1146 generic_device_size_to_attach_size ): New functions. Generic
1147 functions for converting between unit and attach address or size.
1149 * device_table.c (generic_device_init_address): Rewrite to use the
1150 new find_reg and address convert functions. Look for both reg and
1151 alternate-reg properties.
1153 Mon Sep 16 23:09:12 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1155 * hw_com.c: New file. A '550 serial device that can quickly be
1156 attached to any bus.
1157 * configure.in (enable-sim-hardware): Add the com device.
1158 * configure: re-generate.
1160 Thu Sep 12 17:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1162 * device.c (device_tree_verify_reg_unit_address): New
1163 function. Check that the unit address as specified by the reg
1164 property correctly corresponds to any unit address previously
1165 specified by the devices name.
1166 (device_tree_add_parsed): When adding a reg property, verify
1167 that the unit-address - first value of property - correctly
1168 matches any previous value specified when creating the device
1171 Thu Sep 12 17:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1173 * mon.c (mon_event): Remove assertion that an unsigned is >= 0.
1175 Fri Aug 16 12:05:24 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1177 * device.c (device_full_name): Cast strdup to char *, since AIX
1178 3.2.5 mistakenly declares the function to be const char *.
1179 (device_create_from): Ditto.
1180 (device_create_instance_from): Ditto.
1181 (device_add_property): Ditto.
1183 Tue Aug 13 11:40:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1185 * debug.c (trace_option): For -t all, do not set the
1186 trace_dump_device_tree flag, so that the simulator is run.
1188 Tue Aug 13 11:40:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1190 * Makefile.in (options.o): Depend on defines.h.
1191 (defines.h): New rule, go through config.h and make strings of all
1192 of the #define HAVE_xxx macros.
1193 (distclean): Remove defines.h.
1195 * options.c (print_options): Print whether many of the
1196 configuration macros are defined.
1198 * main.c (main): If -t options and no filename, just print the
1199 options, and don't print the usage message.
1201 Mon Aug 12 18:42:37 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1203 * configure.in: Test whether /dev/zero works on the system, and if
1204 it does, define HAVE_DEVZERO.
1205 * configure: Regenerate.
1207 * emul_generic.c (emul_add_tree_hardware): Do not add /iobus/disk
1208 if we don't have a working /dev/zero on the system.
1210 * emul_bugapi.c (emul_bugapi_init): If HAVE_DEVZERO is not
1211 defined, don't add disk support.
1212 (emul_bugapi_do_diskio): Ditto.
1213 (emul_bugapi_instruction_call): Ditto.
1215 Wed Aug 7 14:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1217 * emul_unix.c (HAVE_TCGETATTR): If HAVE_TERMIOS_STRUCTURE is not
1218 defined, make sure HAVE_TCGETATTR is #undef'ed
1220 Wed Aug 7 14:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1222 * std-config.h (REGPARM): Only define REGPARM attributes if using
1223 GNU C. Test for __i686__ in case GCC ever defines it. If not on
1224 a x86 platform, define REGPARM as nothing.
1226 * sim-endian.h (WITH_HOST_BYTE_ORDER): Test for i686 and __i686__
1229 Wed Aug 7 20:19:55 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1231 * ld-decode.h, ld-decode.c: Rename goto_gen to the more correct
1233 * gen-idecode.c: Ditto.
1235 * gen-idecode.c (print_idecode_table): Comment out check for
1236 switch/table combination until a bug with it is fixed.
1238 * ppc-opcode-goto: New file. Like complex and flat but uses
1239 goto-switch instead of padded-switch for the tables.
1241 * gen-idecode.c (print_goto_switch_name): New function.
1242 (print_goto_switch_table_leaf): New function.
1243 (print_goto_switch_break): New function.
1244 (print_goto_switch_table): New function. Prints a jump table
1245 that can be jumped into instead of a switch statement.
1247 * gen-idecode.c (*switch_*): As an option output a switch that is
1248 implemented using a jump table but only if the switch is not
1251 Tue Aug 6 09:28:22 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1253 * configure.in (--enable-sim-{hardware,packages}): Fix typos.
1254 * configure: Regenerate.
1256 * device.c (device_instance_call_method): Fixup format message in
1257 error case. Return 0 in case of error to shut up compiler
1260 Wed Aug 7 00:17:37 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1262 * device_table.c (generic_device_unit_decode): Require a comma
1263 between elements of a unit address.
1265 * device.c (device_tree_print_device): For reg, alternate-reg and
1266 ranges properties use special print functions.
1267 (device_print_ranges_property): Print formatted ranges property.
1268 (device_print_reg_property): Print formatted reg property.
1270 Tue Aug 6 21:35:18 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1272 * device.c (device_tree_add_parsed): For reg, ranges and
1273 alternate-reg properties use a special parser.
1274 (device_tree_parse_reg_property): New function to parse a reg
1276 (device_tree_parse_ranges_property): New function to parse a
1278 (device_encode_unit): Wrapper for encode_unit callback.
1279 (device_decoce_unit): Wrapper for decode_unit callback.
1281 Wed Jul 31 00:02:30 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1283 * device_table.h (device_instance_callbacks): Relace the claim and
1284 release methods with a more general table mapping from method-name
1287 * device.c (device_instance_call_method): New function. Implement
1288 the OpenBoot call-method client interface. Attempts to locate the
1289 instances method in the callback table.
1290 (device_instance_claim, device_instance_release): Delete.
1291 Replaced with call-method and a lookup table.
1293 * emul_chirp.c (chirp_emul_call_method): Use the new device
1294 instance call method and let that handle a client claim call.
1296 * hw_htab.c (claim_memory): Wrapper function to call the memory
1297 devices "claim" method using the new device-instance call-method
1298 interface. Replaces the previous direct calls to claim.
1299 (htab_map_region): Use claim_memory.
1300 (htab_init_data_callback): Ditto.
1302 * hw_memory.c (hw_memory_instance_claim): Update function
1303 interface so that it is compatible with call-method.
1304 (hw_memory_instance_release): Ditto.
1305 (hw_memory_instance_methods): New table of memory specific
1306 methods claim and release. Add to the hw_memory_callback
1309 Tue Jul 30 21:26:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1311 * psim.c (psim_init): Back out of change to initial value of
1314 Tue Jul 30 21:12:24 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1316 * sim_callbacks.h (sim_io_printf_filtered): Replace
1317 printf_filtered with a local simulator specific version. Add
1318 #define printf_filtered to simplify updating of existing code.
1320 * sim_callbacks.h (sim_io_write_stdout, sim_io_read_stdin,
1321 sim_io_write_stderr): New functions. Read / write to the
1322 simulations stdin and stdout and stderr interfaces. Merge in code
1323 from hw_pal that previously handled async I/O.
1324 (sim_io_flush_stdoutput): Rename flush_stdoutput. Add #define
1325 flush_stdoutput to simplify updating of existing code.
1327 * hw_pal.c (scan_hw_pal, write_hw_pal,
1328 hw_pal_instance_write_callback): Use the new sim_io functions.
1330 * main.c: Implement standalone versions of the new sim_io
1331 functions. Include support for async I/O.
1332 * sim_calls.c: Ditto. This time using the gdb callback table.
1334 * std-config.h (CURRENT_STDIO, current_stdio): New macro. Set up
1335 stdio configuration so that it works in the same way as the rest
1337 * psim.c (psim_create): Initialize current_stdio from the device
1339 * emul_generic.c (emul_add_tree_options): Enter a default value
1340 for use-stdio in the device tree.
1342 Fri Jul 26 19:43:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1344 * gen-idecode.c (print_jump): Was always generating a jump back to
1345 idecode. Only necessary at tail of semantic code.
1346 (print_jump): Was always setting the processor's cia, even during
1347 startup when the processor was still undefined.
1348 (print_jump): For safety, restart smp loop when cpu_nr >= nr_cpus,
1351 * options.c (print_options): Add printing of WITH_REGPARM and
1354 * std-config.h (WITH_REGPARM, WITH_STDCALL): Provide default
1355 (disabled) values if not defined.
1357 Fri Jul 26 00:36:35 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1359 * ppc-cache-rules (cache): Change RS and RB to cache instead of
1360 compute. The block move instructions use them.
1362 * idecode_expression.h (FPSCR_SET): New macro, set specific FPSCR
1364 (CR_FIELD): New macro, extract specific CR register.
1365 (FPSCR_FIELD): New macro, extract specific FPSCR register.
1367 * registers.h (GPR): New macro, simplify accesses to GPR[i].
1369 * bits.c (INSERTED): Covert INSERTED macro into a function.
1370 (EXTRACTED): Conditionally compile on correct bit size macro.
1372 * bits.h (BIT8): New macro, set a single bit in an 8 bit byte.
1374 * ppc-instructions: With hints from Paul Martin, type in missing
1375 some instruction semantics. Leave disabled for the moment.
1376 (Load Multiple Word): Ditto.
1377 (Store Multiple Word): Ditto.
1378 (Load String Word Immediate): Ditto.
1379 (Load String Word Indexed): Ditto.
1380 (Store String Word Immedate): Ditto.
1381 (Store String Word Indexed): Ditto.
1382 (Move to Condition Register from XER): Ditto.
1383 (Move From Condition Register): Ditto.
1384 (Move From FPSCR): Ditto.
1385 (Move to Condition Register from FPSCR): Ditto.
1386 (Move To FPSCR Field Immediate): Ditto.
1387 (Move To FPSCR Fields): Ditto.
1388 (Move To FPSCR Bit 0): Ditto.
1389 (Move To FPSCR Bit 1): Ditto.
1391 Thu Jul 25 22:10:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1393 * std-config.h (SEMANTICS_INLINE): By default, mask out the
1394 inlining of semantic functions from DEFAULT_INLINE. Almost all
1395 configurations call the semantic code via a pointer so there is
1398 * std-config.h (ICACHE_INLINE): Ditto.
1400 Thu Jul 25 20:07:30 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1402 * configure.in (sim_regparm): Add configuration option for
1403 enabling GCC's regparm attribute.
1404 * (sim_stdcall): Add configuration option for enabling GCC's
1407 * Makefile.in (REGPARM_CFLAGS): Pass regparam configuration onto
1409 * (STDCALL_CFLAGS): Pass stdcall configuration onto compilations.
1411 * std-config.h (REGPARM): Extend construction of REGPARM macro so
1412 that it can include __stdcall__ function attribute.
1414 Wed Jul 24 19:04:20 1996 Andrew Cagney <cagney@sawnoff>
1416 * options.c (print_options): Include SUPPORT_INLINE in information
1419 * gen-idecode.c (print_run_until_stop_body): Only generate loop
1420 termination test if creating idecode_run_until_stop. Push the
1421 loop termination test back into each alternative branch.
1423 Wed Jul 24 15:47:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1425 * gen-icache.c (print_icache_function): Have the cache function
1426 always update the cache_entries semantic and address fields.
1428 * gen-idecode.c (print_idecode_switch_illegal): Include a break
1429 when generating illegal instructions. This was commented out
1430 which is a hangover from looking a at switch statements generated
1431 using indirect jumps.
1433 Tue Jul 23 20:57:01 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1435 * igen.c (print_my_defines): Replaces print_define_my_index.
1436 Print both a definition for MY_INDEX and MY_PREFIX.
1437 * gen-icache.c (print_icache_function): Adjust.
1438 * gen-idecode.c (print_jump_insn): Adjust.
1439 * gen-semantics.c (print_c_semantic): Adjust.
1441 * gen-support.c (gen_support_h): Add optional include to created
1442 support.h so that, like cpu, it is optionally inlined for all
1443 modules that include it.
1444 * inline.h, inline.c: Adjust so that support.[hc] is handled the
1447 * idecode_fields.h (LABEL, GOTO): Macro's that create a unique
1448 name for a lable and then branch to it.
1450 * ppc-instructions (convert_to_integer, Floating Round to
1451 Single-Precision, Floating Convert from Integer Doubleword): Use
1452 LABEL and GOTO instead of the recently added switch statements.
1454 Wed Jul 24 14:02:42 1996 Andrew Cagney <cagney@sawnoff.highland.com.au>
1456 * gen-idecode.c (print_run_until_stop_body): Too many rparen in
1459 Tue Jul 23 20:57:01 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1461 * configure.in (--enable-sim-line-nr): Typo - sim_line-nr.
1462 * (--enable-sim-inline): Reorder patern matching of arguments so
1463 that SUPPORT=ALL_INLINE is reconized as *=* and not *_INLINE.
1465 * configure: rebuild.
1467 Mon Jul 22 23:25:08 1996 Andrew Cagney <cagney@highland.com.au>
1469 * configure.in (--enable-sim-hardware, --enable-sim-packages): New
1470 configuration options. Let the user specify the packages or
1471 hardware devices that are to be included in the build. Makes it
1472 possible for user packages to be specified.
1474 * Makefile.in (tmp-pk, tmp-hw): Just use the list of packages and
1475 hardware instead of checking it using ls. configure.in should
1476 have taken care of any problems.
1477 (HW_SRC, HW_OBJ, PACKAGE_SRC, PACKAGE_OBJ): Set by configure.
1479 Mon Jul 22 22:38:59 1996 Andrew Cagney <cagney@highland.com.au>
1481 * psim.c (psim_options): Enter the argument to the memory size
1482 option directly into the device tree. Was using atol() which is
1483 dangerously non portable.
1485 Mon Jul 22 22:17:08 1996 Andrew Cagney <cagney@highland.com.au>
1487 * configure.in (icache): Extend icache flag to include an insn
1488 option. If specifyed the insn - aka instruction - is included in
1489 the instruction cache. Make this the default.
1490 * configure: re-generate.
1492 * igen.c (main), igen.h: Add option -S - inSn - for specifying
1493 that the instruction should be included in the icache.
1495 * gen-icache.c (print_icache_body): If enabled, output code to put
1496 the instruction into the icache.
1497 (print_icache_struct): If enabled, add insn to the icache struct.
1499 Mon Jul 22 20:46:12 1996 Andrew Cagney <cagney@highland.com.au>
1501 * Makefile.in (BUILD_CFLAGS): Include -g when building the
1504 Mon Jul 22 20:00:25 1996 Andrew Cagney <cagney@highland.com.au>
1506 * emul_generic.c (emul_add_tree_options): Was incorrectly setting
1507 the strict-alignment option when hardwired for non-strict
1510 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1512 * gen-semantics.c: Make the my_index variable a macro MY_INDEX.
1514 * ppc-instructions: Adjust so that references are to MY_INDEX and
1517 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1519 * gen-idecode.c: Output the complete run_until_stop function
1520 instead of just the code to handle a single instruction issue.
1521 * : Have the generated idecode.c include inline.c (instead of psim.c).
1523 * std-config.h: Change psim.c so that it isn't inlined (as this is
1526 * psim.c (run_until_stop): Delete the old run_until_stop function
1527 instead calling the idecode_run and idecode_run_until_stop
1528 functions that gen-idecode.c is now creating.
1530 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1532 * dgen.c: Maintenance - update to use new features found in lf.c.
1534 * filter_filename.c (filter_filename): Maintenance - make the
1537 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1539 * debug.c (TRACE, ITRACE, DTRACE): Have GCC instead of CPP
1540 eliminate trace statements.
1542 * debug.c: Change trace format so that it is consistent
1543 (file:line-nr) with CC's error output.
1545 * gen-itable.c (itable_c_insn): Add the source file name and
1546 source line number to the instruction's informational entry.
1548 * debug.c (ITRACE): Use the itable (and my_index) to get the
1549 current instructions name and source line number.
1551 * gen-semantics.c, gen-icache.c: Adjust generated ITRACE calls to
1552 match new interface.
1554 * emul_bugapi.c (emul_bugapi_instruction_call): Adjust
1555 corresponding call to ITRACE so that it still matches.
1557 * idecode_expression.h (ALU_END, CR0_COMPARE): Use TRACE instead
1558 of ITRACE. The CPP line directives would have previously set the
1559 line-nr and file name so ITRACE isn't needed.
1561 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1563 * gen-idecode.c (print_jump_until_stop_body): New function and
1564 idecode generation option. Instead of generating and calling
1565 separate functions containing the semantic and icache code
1566 generate a single monolythic function and use goto's (and GCC's
1567 indirect jump) to move between code blocks.
1569 * Makefile.in: Add sim_jump flag to those passed to igen.
1571 * configure.in: New option --enable-sim-jump (default disabled)
1573 * ppc-instructions: Eliminate any uses of labels and goto's.
1574 These result in duplicate declarations when a single flat function
1577 * ppc-opcode-jump: New file. Set of opcode rules useful when
1578 testing jumping idecodes.
1580 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1582 * gen-idecode.c: Optionally include the semantic code for an
1583 instruction in the function that is doing the decoding.
1585 * igen.c: Add option (-C) to generate semantics in the instruction
1588 * configure.in (--enable-sim-icache): Accept an option list such
1589 as 1024,define. Add a new choice to the list - semantic - which
1590 will cause igen to generate instruction decode functions that
1591 include the corresponding semantic code.
1593 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1595 * configure.in: New option --enable-sim-line-nr (default enabled).
1596 Enable/disable the inclusion of CPP line directives in the
1597 generated files. Such directives refer back to the source files
1598 used when generating the simulator code.
1600 * Makefile.in (sim_line_nr): Pass to igen.
1602 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1604 * igen.c (main): Revamp the options so that more letters are
1607 * configure.in: Adjust to match igen's revamped options
1609 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1611 * Makefile.in (pk.h, hw.h): Rewrite depenencies for hw.h (etc) so
1612 that they use the same technique as igen (ie a dummy targets
1613 tmp-pk and tmp-hw are created).
1615 Mon Jun 24 22:28:00 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1617 * Makefile.in (BUILD_CFLAGS): Include WARNING_CFLAGS.
1619 Wed Jun 19 21:45:28 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1621 * ld-cache.[hc], ld-decode.[hc], ld-insn.[hc]: New files. Separate
1622 out the loading of each of the tables from the rest of igen.
1623 * Makefile.in: Adjust.
1626 * gen-icache.[hc], gen-idecode.[hc], gen-itable.[hc],
1627 gen-model.[hc], gen-semantics.[hc]: New files. Separate out the
1628 code creating each separate set of generated files.
1629 * Makefile.in: Adjust.
1632 * gen-support.[ch]: New files. Output the support functions (found
1633 in the ppc-instructions file) into a separate file.
1635 * inline.h, inline.c: Add.
1636 * std-config.h: Add.
1638 * ld-cache.c: Re-design the cache table format.
1639 * ppc-cache-rules: Update to new format.
1641 * ld-decode.c: Re-design the decode table format.
1642 * ppc-opcode-simple: Update to new format
1643 * ppc-opcode-complex: Ditto
1644 * ppc-opcode-flat: Ditto
1646 * filter.h, filter.c: New files. Separate the opcode filter table
1647 reading code from the rest of igen.c. Re-design the filter so that
1648 it works inclusivly not exclusivly.
1649 * igen.c: Remove the opcode filter table loading code.
1650 * Makefile.in (filter.o): Adjust
1651 * configure.in: Adjust filter flag so that default includes 32bit
1653 * ppc-instructions: Clean up filter fields so that only in use
1654 entries are specifed (ie delete `be').
1656 * misc.c (name2i, i2name): New function. Map between a string and
1659 Mon Jun 17 20:08:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1661 * sim_calls.c (sim_close): If simulator not created, skip printing
1664 Mon Jun 17 20:08:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1666 * registers.c (register_description): Typo, insns not insn.
1668 * ppc-instructions (model_get_number_of_stalls): New model function,
1669 returns number of stalls for the specified processor.
1670 * psim.c (psim_read_register): Add call to new function
1671 model_get_number_of_stalls().
1673 * ppc-instructions (model_get_number_of_cycles): New model function,
1674 returns number of stalls for the specified processor.
1675 * psim.c (psim_read_register): Add call to new function
1676 model_get_number_of_cycles().
1678 Fri Jun 14 00:11:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1680 * device_table.h: Don't pass the parent device into a devices
1681 create function. This makes the create function consistent with
1683 * device.c (device_template_create_device): Ditto
1684 * hw_pal.c (hw_pal_create): Ditto
1685 * hw_core.c (hw_core_create): Ditto
1686 * hw_vm.c (hw_vm_create): Ditto
1687 * hw_disk.c (hw_disk_create): Ditto
1688 * hw_nvram.c (hw_nvram_create): Ditto
1689 * hw_memory.c (hw_memory_create): Ditto
1690 * hw_cpu.c (hw_cpu_create): Ditto.
1692 * device.c (split_find_device): Allow a null initial parent device.
1693 (device_template_create_device): Ditto.
1695 * device.c (device_create_from): Make local (static) only used
1697 * device_table.h: typedef device_callbacks moved here (from
1698 device.h) where it belongs.
1700 * hw_core.c: New file. Implements just the core device using the
1703 * corefile.c: Moved all core device functions into the new
1704 hw_core.c file. core_device_create() disapears.
1706 * psim.c (psim_tree): Use device_tree_add_parsed() to create the
1709 Thu Jun 13 00:09:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1711 * hw_init.c: Correct typo in comment.
1713 * corefile.c (core_init): Remove any remaining references to a
1715 (core_map_find_mapping): Ditto.
1717 Wed Jun 12 22:30:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1719 * corefile.c (core_init): Make function global so that other
1720 devices are able to use the full core object.
1722 * corefile.c (core_create, core_from_device): Break core_create
1723 into two functions. The first creates a core object, the second
1724 returns the core object associated with a core device.
1726 * corefile.c (core_device_create): Use core_create to make the
1729 * psim.c (psim_create): Use core_from_device() instead of
1732 * device.c (device_template_create_device): Make static as only
1733 needed by functions internal to device.c.
1735 Fri Jun 7 23:47:18 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1737 * ppc-opcode-test-2: Remove description of fields.
1738 * ppc-opcode-complex: Ditto
1739 * ppc-opcode-flat: Ditto
1740 * ppc-opcode-simple: Ditto
1741 * ppc-opcode-stupid: Ditto
1742 * ppc-opcode-test-1: Ditto
1743 * ppc-cache-rules: Ditto
1745 * igen.c: Add description of files as a comment at the front.
1747 Wed Jun 26 12:50:33 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1749 * configure.in: Check for whether the termios and termio
1750 structures are really defined, and whether or not, they define the
1752 * configure: Regenerate.
1754 * Makefile.in ({,TERMIO_}CFLAGS): Add TERMIO_CFLAGS options set by
1757 * emul_unix.c: Various changes to allow for building on systems
1758 with different termio and termios structures. If host has both
1759 termio and termios, just use termios. No longer include
1762 Wed Jun 26 12:26:55 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
1764 * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
1765 INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
1767 * configure.in (AC_PREREQ): autoconf 2.5 or higher.
1768 (AC_PROG_INSTALL): Added.
1769 * configure: Rebuilt.
1771 Wed Jun 5 23:53:42 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1773 * corefile.h: Rewrite documentation so that it can be extracted and
1774 converted into texinfo (and hence ready for translation into html,
1778 Thu Jun 6 09:52:37 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1780 * hw_disk.c (SEEK_SET): If SEEK_SET is not defined, define as 0.
1782 Wed Jun 5 11:46:52 1996 Andrew Cagney <cagney@puddin>
1784 * hw_disk.c: Include <unistd.h> if available. Under SunOS, that
1785 is the source of SEEK_SET.
1787 Wed Jun 5 01:39:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1789 * psim.c (psim_options): Correct type of dummy arguments being
1790 passed to a device_ioctl call.
1792 * hw_init.c (hw_data_init_data_callback): Adjust printf arguments.
1793 (write_stack_arguments): Ditto.
1794 * hw_trace.c: Instance callback entry no longer a table.
1796 Wed Jun 5 01:39:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1798 * emul_unix.c (do_unix_umask): Cast printf argument.
1799 (convert_to_linux_termios): Use LINUX_VSWTC not LINUX_VSWCH
1801 Mon Jun 3 15:02:04 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1803 * hw_init.c (update_for_binary_section): Abort if we find an
1804 .interp section, which indicates the need for shared libraries to
1807 Mon Jun 3 15:02:04 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1809 * emul_unix.c (do_unix_{time,gettimeofday,getrusage}): Add support
1810 for time, gettimeofday, and getrusage system calls.
1811 ({solaris,linux}_descriptors): Add new system calls.
1812 (do_get{,e}{uid,gid}): Use gid_t/uid_t types.
1813 (do_get{,p}pid): Use pic_t types.
1815 * configure.in (AC_TYPE_{GETGROUPS,SIGNAL}): Define.
1816 (AC_TYPE_{MODE,OFF,PID,SIZE,UID}_T): Define.
1817 * config{.in,ure}: Regenerate.
1819 Mon Jun 3 23:19:57 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1821 * emul_netbsd.c (emul_netbsd_create): Use the more specific names
1822 `ppc-elf' and `ppc-xcoff' for the stack-type.
1823 * emul_unix.c (emul_unix_create): Ditto.
1824 * emul_bugapi.c (emul_bugapi_create): Ditto.
1825 * hw_init.c: Reconize the new names.
1827 * emul_unix.c (do_unix_break): Adjust so that the updated ioctl
1828 call is used (no system parameter).
1830 Sun Jun 2 11:21:17 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1832 * emul_unix.{h,c}: New files to provide Solaris and Linux system
1835 * Makefile.in (LIB_{SRC,OBJ}): Add emul_unix.{c,o}.
1836 (os_emul.o): Depend on emul_unix.h.
1837 (emul_unix.o): New dependency.
1839 * configure.in (--enable-sim-alignment): Add 0|default to mean set
1840 alignment to 0, which means use appropriate alignment for mode.
1841 (AC_CHECK_FUNCS): Add new functions needed by emul_unix.c.
1842 (AC_CHECK_HEADERS): Add new include files needed by emul_unix.c.
1843 * config.in: Regenerate.
1844 * configure: Regenerate.
1846 * emul_generic.c (emul_write2_status): New function to return
1847 results in r3 and r4 for Solaris system calls.
1848 (emul_do_system_call): If the system call is not support, but
1849 there is a string for the system call name, print out the string
1850 instead of the system call number.
1852 * emul_generic.h (emul_write2_status): Declare it.
1854 * emul_netbsd.c: Use /* */ around comment on #endif.
1856 * os_emul.c: Include emul_unix.h.
1857 (os_emulations): Add emulations for Solaris, and Linux.
1859 * psim.c (psim_usage): Add message about solaris, linux
1862 Thu May 30 00:00:10 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1864 * hw_iobus.c: Tidy up notes so that they can be auto-extracted.
1866 * README: Correct PSIM's title
1868 Wed May 29 23:50:26 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1870 * basics.h: New global type object_disposition, used to indicate
1871 the status of objects when things are restarted.
1873 Fri May 17 17:28:52 1996 Andrew Cagney <cagney@benjimen.highland.com.au>
1875 * device_table.h: Change the interrupt descriptor structure so
1876 that it includes an additional member - an upper bound on the
1877 interrupts by that name.
1879 * device.c (device_interrupt_decode): Allow a range of interrupt
1880 ports (eg rst0 .. rst6) if the port descriptors bound is non zero.
1882 * device.c (device_tree_print_device): Include a list of valid
1883 interrupt ports when listing supported devices.
1885 * device.h, device.c (device_child_interrupt_*): Delete. Not used.
1887 * emul_generic.c (emul_add_tree_hardware): Modify the creation of
1888 the interrupt net so that it uses int0 .. intN.
1890 Tue May 14 23:03:53 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1892 * device.h, device.c (device_ioctl): Drop the system argument.
1893 Devices can not obtain this using the device_system() call.
1894 * device_table.h: Adjust accordingly.
1895 * hw_*.c: Adjust accordingly.
1896 * emul_netbsd.c (do_break): Adjust call to vm device accordingly.
1897 * psim.c (psim_options): Use a device_ioctl call to force the
1898 hw_trace device to update the trace options.
1899 * hw_trace.c: Replace the init function with an ioctl call. Adjust
1902 * psim.c (psim_init): Re-order initialization so that the
1903 os-emulation is initialized after the device tree. Without this,
1904 os-emul's are not able to create instances or access properties
1905 that contain an instance handle.
1907 * device.h, device.c (device_add_*_property): Make these functions
1908 internal to device.c. The user has access to the more generic
1909 device_tree_add_parsed function. Differentiate between the initial
1910 and current value for each property.
1911 * (clean_device_properties): New function that deletes any
1912 properties created after the start of a simulation and restores
1913 the initial value of any others (ignoring ihandles).
1914 * (init_device_properties): (Re)Initialize any properties that
1915 contain ihandles. create
1917 * (device_tree_init): Include calls to clean the device tree's
1918 properties and then initialize them. Document this in the device.h
1921 Mon May 6 17:36:15 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1923 * interrupts.c (decrementer_interrupt): Always pend a decrementer
1924 interrupt even if it is not yet possible to deliver it.
1926 Wed May 1 12:26:51 1996 Andrew Cagney <cagney@benjimen>
1928 * mon.h, mon.c (mon_get_number_of_insns): Make this externally
1929 visable adjusting the arguments so that the interface is correct.
1930 (mon_print_info): Adjust calls.
1932 * registers.h, registers.c (register_description): Add phony
1933 cycle, insn and stall registers.
1935 * psim.c (psim_read_register): Return nr of instructions for given
1938 Tue Apr 30 22:09:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1940 * hw_htab.c: New file. Extract contents from disk_table.c.
1941 Contains a device that, during initialization will create a
1942 PowerPC htab in memory.
1943 * hw_register.c: New file. Extract contents from disk_table.c.
1944 Contains a device that, during initialization, will parse its
1945 property list and use that to initialize various processor
1946 registers (not target specific).
1947 * hw_vm.c: New file. Extract contents from disk_table.c. Contains
1948 a device that handles accesses to invalid virtual memory addresses
1950 * hw_init.c: New file. Extract contents from disk_table.c. Misc
1951 devices that can initialize memory from a file.
1952 * hw_trace.c: New file. Extract contents from disk_table.c.
1953 Configure trace options from property values.
1955 * Makefile.in (hw_htab.o, hw_register.o, hw_vm.o, hw_init.o,
1956 hw_trace.c): Add new device files.
1958 * device_table.c: Remove above code, now in separate independant
1961 Fri Apr 26 00:00:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1963 * hw_disk.c: New file. Disk and CDROM device.
1965 * Makefile.in (hw_disk.o): Add device hw_disk.c.
1967 * pk_disklabel.c: New file. Implement the miss-named disk-label
1970 * Makefile.in (pk.h): Create the file pk.h that contains a list of all
1973 * Makefile.in (hw.h, hw.c): Add dependancy on Makefile so that
1974 they are re-created when the makefile is updated.
1976 * emul_generic.c (emul_add_tree_hardware): Add a disk device
1977 (below the iobus) to the device tree. Include an ihandle of
1978 the disk as /chosen/disk.
1980 * emul_bugapi.c (emul_bugapi_create): Don't initialize the input,
1981 output and (new) disk handles yet.
1982 * (emul_bugapi_init): Initialize the input, output (and just added)
1984 * (emul_bugapi_do_diskio): New. Performs disk i/o (well at least
1985 what I think the behavour is).
1986 * emul_bugapi.c (emul_bugapi_instruction_call): Add hook to disk
1987 i/o bug call. For RETURN call, exit using gpr[3]'s status even
1988 though this isn't part of the spec - makes it possible for machine
1989 code to signal the aporting of a simulation run.
1991 * emul_chirp.c (chirp_emul_call_method): Add support for the
1992 claim/release methods.
1993 * (chirp_emul_exit): Add an optional exit status argument to
1994 the exit method. Makes it possible for chirp emul simulations
1995 to abort upon an error.
1996 * device.h, device.c (device_instance_claim,
1997 device_instance_release): New methods for claiming and releasing
1999 * hw_memory.c: add claim and release memory methods.
2000 * hw_*: Use the claim memory method when allocating physical
2003 Thu Apr 18 23:38:10 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2005 * hw_nvram.c (hw_nvram_update_clock): Use the current not previous
2006 time when updating the clock.
2008 * hw_nvram.c: Tidy up documentation
2010 Fri May 24 10:08:10 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2012 * configure.in (AC_STRUCT_ST_{BLKSIZE,BLOCKS,RDEV}): Use these
2013 macros to determine whether or not the appropriate st_<xxx> fields
2014 exist in the stat structure.
2015 (AC_CHECK_FUNCS): Check for all unix system calls used, except for
2016 the real basic ones like open, read, write, etc.
2017 * config{.in,ure}: Regenerate.
2019 * emul_netbsd.c: Add support for missing system calls, and/or
2020 missing stat fields.
2021 (MAXPATHLEN): Undefine if including unistd.h, since sys/param.h
2024 * hw_pal.c (WITH_STDIO): Redefine if O_NDELAY, F_GETFL, or F_SETFL
2026 (scan_hw_pal): Do not cause syntax error if O_NDELAY, F_GETFL, or
2027 F_SETFL not defined.
2029 Tue May 21 17:24:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2031 * emul_netbsd.c (write_stat): Don't convert st_blocks unless the
2034 Thu May 16 10:56:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2036 * configure.in (AC_CHECK_HEADERS): Add sys/ioctl.h.
2037 * config{.in,ure}: Regenerate.
2038 * emul_netbsd.c: If HAVE_SYS_IOCTL_H is not defined, don't include
2041 Tue May 7 17:28:12 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2043 * hw_pal.c (hw_pal_instance_read_callback): Remove unused
2046 * misc.c ({,target_}a2i): Rewrite to not use strtoul.
2048 * Makefile.in ({spreg,misc}.o): Add dependency on .c file.
2049 ({i,d}gen): Don't link in liberity. Use BUILD_LIBS instead of
2052 Mon May 6 11:31:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2054 * hw_pal.c (hw_pal_instance_read_callback): If using stdio, use
2055 fgets to read line. If not using stdio, do a simple blocking read
2058 Fri May 3 15:07:42 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2060 * Makefile.in: Correctly build simulator for build machine != host
2063 Tue Apr 30 18:46:05 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2065 * configure.in (--enable-hostendian): Rework so the default uses
2066 the AC_C_BIGENDIAN results. Only run AC_C_BIGENDIAN if not cross
2068 * configure: Regenerate.
2070 * sim-endian.h: Add more tests for host endian to support more
2071 platforms in a cross compilation environment.
2073 Wed Apr 17 14:38:06 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2075 * hw_pal.c ({scan,write}_hw_pal): If WITH_STDIO == DO_USE_STDIO,
2076 use stdio, instead of unpended read/printf_filtered.
2077 (hw_pal_instance_write_callback): If WITH_STDIO == DO_USE_STDIO,
2078 flush stdout after writing the characters.
2080 * options.c (print_options): Print out WITH_STDIO.
2082 * Makefile.in (STDIO_CFLAGS): Pass on result of @sim_stdio@
2083 configuration variable.
2084 (CONFIG_CFLAGS): Include STDIO_CFLAGS.
2085 (hw.{c,h}): Allow for source dir != build dir, and for HW_SRC
2086 files to contain directory pieces.
2088 * std-config.h (DO{,NT}_USE_STDIO): New flags for whether we
2089 should use stdio for console input.
2090 (WITH_STDIO): If not defined, define as DONT_USE_STDIO.
2092 * configure.in (--enable-sim-stdio): Add new switch to control
2093 whether stdio is used for console I/O.
2094 * configure: Regenerate.
2096 * interrupts.c (external_interrupt): Declare it to be
2097 INLINE_INTERRUPTS, not INLINE_CPU.
2099 Mon Apr 15 23:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2101 * events.c (insert_event_entry): Allow events to be scheduled
2102 *NOW* (at delta time 0). Add assertions to clarify behavour of
2105 * events.c (update_time_from_event): New function. Calculates the
2106 number of ticks from the next event. Use this.
2108 Sun Apr 14 21:39:45 1996 Andrew Cagney <cagney@highland.com.au>
2110 * emul_netbsd.c (do_break): Return 0 if success (instead of
2113 * device_table.c (vm_ioctl_callback): Don't return adjusted break
2116 Sun Apr 14 21:32:41 1996 Andrew Cagney <cagney@highland.com.au>
2118 * device_table.h: Change type of the device ioctl so that it
2119 returns an int (status).
2120 * device.h (device_ioctl): Ditto.
2121 * device.c (device_ioctl): Ditto.
2123 * device_table.c (stack_ioctl_callback): Return 0 status.
2124 (vm_ioctl_callback): Ditto
2126 Sat Apr 13 00:00:24 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2128 * emul_netbsd.c (do_read): Correctly set the return value.
2131 (do_geteuid): Ditto.
2133 (do_getegid): Ditto.
2135 (do_sigprocmask): Ditto.
2138 (do_gettimeofday): Ditto.
2139 (do_getrusage): Ditto.
2143 (do___sysctl): Ditto.
2145 Fri Apr 12 20:56:47 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2147 * device_table.c (vm_ioctl_callback): Don't access the processor
2148 registers directly, instead leave it to the caller to handle this.
2150 * emul_netbsd.c (do_break): Which calls vm_ioctl_callback to
2151 perform a break. Pass in the new break value and set the
2152 registers according to the result.
2154 * emul_generic.c (emul_write_status): Change so that r3 contains
2155 either status or errno and failure is indicated by SO.
2157 Thu Apr 4 23:03:38 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2159 * emul_bugapi.c (emul_bugapi_create): More strict check of OEA
2162 Thu Apr 4 20:58:05 1996 Andrew Cagney <cagney@highland.com.au>
2164 * interrupts.h (interrupts): New structure contains state of
2167 * cpu.c (cpu_interrupts): New function. Pending interrupt status
2168 in the cpu and grant access to it. Add interrupts to cpu
2171 Fri Mar 29 22:09:25 1996 Andrew Cagney <cagney@highland.com.au>
2173 * device.c (device_tree_add_parsed): Check that the creation of a
2174 device instance worked before using it.
2176 * psim.c (psim_halt): Remove cia argument from psim_halt. This
2177 function does not save the CIA so do not pass it in.
2179 Fri Mar 29 21:30:56 1996 Andrew Cagney <cagney@highland.com.au>
2181 * hw_pal.c (hw_pal): Merge the halt and icu and console devices
2182 found in device_table.c into a single hack pal.
2184 * device_table.c (halt, icu, console): Delete.
2186 * Makefile.in (hw_pal.o): New dependency.
2188 * emul_generic.c (emul_add_tree_hardware): Re-arange device tree
2189 so that it uses the pal instead of the icu/halt/console devices.
2190 Wire the pal's interrupt ports up to the cpu nodes.
2192 Fri Mar 29 20:17:17 1996 Andrew Cagney <cagney@highland.com.au>
2194 * hw_iobus.c (hw_iobus_attach_address_callback): Move from
2195 device_table.c to here.
2197 * Makefile.in (hw_iobus.o): New dependency.
2199 Fri Mar 29 12:17:58 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2201 * emul_bugapi.c (_os_emul_data): Add fields for output, input.
2202 (emul_bugapi_create): Create input, output from /chosen/stdin and
2204 (emul_bugapi_do_{read,write}): Switch to use device_instance
2206 (emul_bugapi_instruction_call): Change calls to
2207 emul_bugapi_do_{read,write} to pass device instance argument.
2209 Tue Mar 26 14:57:58 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2211 * igen.c (idecode_switch_end): Fix 2/26 change so that an extra
2212 default is not written out if a default was already written.
2214 * psim.c (psim_{read,write}_register): Use sizeof unsigned_8 to
2215 size cooked_buf, not sizeof natural_word, since floating point
2216 registers are 8 bytes.
2218 Mon Mar 25 22:07:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2220 * configure: Regenerate with autoconf 2.9.
2222 Thu Mar 21 00:14:26 1996 Andrew Cagney <cagney@highland.com.au>
2224 * device_table.h: Always include string headers.
2226 Thu Mar 21 00:06:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2228 * main.c (error): Be careful to not try to print out statistics
2229 when the simulation was never created.
2231 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2233 * basics.h: Move the event queue's definition to here so that it
2234 can be refered to globally with out importing all of events.h.
2236 * psim.h, psim.c (psim_event_queue): New function. Grant access
2237 to the simulation event queue. Will make this the single point of
2238 access (there is after all only one event queue in the
2241 * cpu.c (cpu_create): Use psim_event_queue to obtain the event
2242 queue instead of it being passed in. No longer allow access to
2243 the cpu's copy of the event queue.
2245 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2247 * events.h, events.c (event_handler): Remove event_queue from
2248 arguments passed to an event handler. That argument is redundant
2249 - the `data' should refer to a data structure that contains the
2250 event queue if queing is needed.
2252 * cpu.c (cpu_decrement_event): adjust
2254 * events.c (event_queue_process): adjust
2256 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2258 * device.h, device.c (device_system): New, returns a handle for
2259 the system given the device.
2261 * device.c (device_address_init): Store a pointer back to the
2262 system in each devices node.
2264 * device_table.h: Don't pass `system' into each device when it is
2265 being initialized, this is now available using device_system(me).
2267 * device.c (device_address_init, device_data_init): Adjust.
2269 * hw_cpu.c, hw_nvram.c, hw_memory.c, hw_eeprom.c, device_table.c:
2272 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2274 * interrupts.c (decrementer_interrupt, external_interrupt):
2275 Remember that an interrupt wasn't delivered so that it can be
2278 * interrupts.c (check_masked_interrupt): New function. (re)
2279 checks for the posibility that a recent change to the MSR may have
2280 made it possible to deliver an interrupt that was previously
2281 masked be the EE bit.
2283 * ppc-instructions (mtmsr, mfmsr, rfi): Check for posibility of
2284 a pending interrupt being delivered using check_masked_interrupt().
2286 * cpu.c (cpu_decrement_event): Just call decrementer_interrupt()
2287 leaving it to that module to handle both interrupt synchronization
2290 * cpu.c (struct _cpu): remove variables that were going to record
2291 pending decrementer and external interrupts.
2293 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2295 * hw_cpu.c, hw_cpu.h: New files. Implement a device that sits
2296 between the interrupt controller and the simulators internal
2297 processor model. Maps device interrupts onto the processor
2298 interrupt function calls.
2300 Mon Mar 4 06:06:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2302 * hw_nvram.c: NVRAM device that includes a real-time clock that is
2303 updated each second.
2305 Mon Mar 4 04:18:50 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2307 * device.h (attach_type): Remove attach_default type address
2308 spaces. Will replace with levels of callback memory.
2310 * corefile.h, corefile.c (new_core_mapping), corefile.c
2311 (core_map_attach): Replace default attach with a layerd callback
2314 Sun Mar 3 03:58:46 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2316 * device.c (split_property_specifier): ensure that only a single
2318 (split_value): New function, parses the value part of a device
2321 * device.c (device_tree_add_parsed): Use the interrupt conversion
2322 functions to determine the interrupt port numbers.
2324 * device_table.h: Add table that maps between an interrupts
2325 symbolic name and its port number.
2327 * device.h, device.c (device_interrupt_decode,
2328 device_interrupt_encode): new functions use the recently added
2329 interrupt port name/number tables to perform conversion.
2331 Sun Mar 3 03:23:59 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2333 * device.h, device.c (device_set_array_property,
2334 device_set_boolean_property, device_set_ihandle_property,
2335 device_set_integer_property, device_set_string_property): New
2336 functions - allow the value of a given property to be changed.
2338 * device.h, device.c: Re-order declaration and definition of
2341 Sun Mar 3 03:10:22 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2343 * device.c (device_tree_print_device, device_tree_add_parsed):
2344 Remove references to phandle properties.
2346 Wed Feb 28 00:43:07 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2348 * Makefile.in (corefile.o): missing dependency on device_table.h
2351 Tue Feb 27 23:59:35 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2353 * device_table.h: Revamp device init callbacks so that they are a
2355 * device.c (device_init_data, device_init_address): If an init
2356 callback is NULL assume it should do nothing.
2357 * device_table.c (ignore_device_init, unimp_device_init): delete
2359 * device_table.c, hw_memory.c: adjust.
2363 * (device_instance): ditto.
2365 * (address nee config_address): ditto.
2366 * (interrupt): ditto.
2368 Mon Feb 26 21:11:20 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2370 * igen.c (idecode_switch_end): Output a default entry when the
2371 switch statement is perfect. Firstly stops GCC complaining about
2372 an incomplete switch and secondly it will be eliminated by a good
2375 Mon Feb 26 22:47:15 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2377 * Makefile.in (hw.h, hw.c): New targets. Create from the list of
2378 hw_*.c files. hw.h declares a device descriptor table for each hw
2379 device while hw.c lists those tables in a form suitable for the
2380 construction of a top leveltable in device_table.c.
2382 * Makefile.in (device_table.o): now depends on hw.c a generated
2385 * device_table.c (device_table): Re-arange the table of devices so
2386 that two levels are possible. Make use of hw.c.
2387 * device_table.h: ditto.
2389 * device.c (device_template_create_device): Handle new two level
2390 device lookup table.
2391 * device.c (device_usage): ditto.
2393 Mon Feb 26 22:24:00 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2395 * device_table.c: Delete the memory device (moved to hw_memory.c).
2397 * hw_memory.c: New file. Just an OpenBoot memory device.
2399 Wed Jan 17 21:47:34 1996 Andrew Cagney <cagney@highland.com.au>
2401 * device.c (device_init_address): New. Split initialization into
2402 two stages, address and address spaces
2403 * device.c (device_init_data): New. ... and data or other work.
2404 With out this, devices try to modify memory before it as been
2407 * device.c (device_tree_init): Update to perform staged
2410 * device.c (device_init): Delete.
2412 Wed Jan 17 21:43:09 1996 Andrew Cagney <cagney@highland.com.au>
2414 * device_table.c (data_*): Rewrite to make heaver use of property
2415 nodes. Allow initialization by different data types.
2416 * device_table.c (htab_* pte_*): Rewrite to use properties.
2418 * emul_chirp.c (emul_chirp_create): Use
2419 * emul_bugapi.c (emul_bugapi_create): Ditto
2420 * emul_netbsd.c (emul_netbsd_create): Ditto
2422 Wed Jan 17 21:24:50 1996 Andrew Cagney <cagney@highland.com.au>
2424 * emul_generic.c (emul_add_tree_options): Annotate existing tree
2425 with options that haven't yet been specified.
2426 * emul_generic.c (emul_add_tree_hardware): Annotate existing tree
2427 with demo devices and properties.
2429 * emul_chirp.c (emul_chirp_create): Update to use new
2430 device_tree_add_parsed call and additional information now
2431 included in the device tree. Use emul_add_tree* functions to add
2432 any missing details.
2433 * emul_bugapi.c (emul_bugapi_create): Ditto
2434 * emul_netbsd.c (emul_netbsd_create): Ditto
2436 Wed Jan 17 21:18:27 1996 Andrew Cagney <cagney@highland.com.au>
2438 * device.c (device_instance_create): New. Create/delete and
2439 operate on instances of a device.
2440 * device.c (device_instance_delete): Ditto
2441 * device.c (device_instance_read): Ditto
2442 * device.c (device_instance_write): Ditto
2443 * device.c (device_instance_seek): Ditto
2444 * device.c (device_instance_data): Ditto
2445 * device.c (device_instance_name): Ditto
2446 * device.c (device_instance_path): Ditto
2448 * emul_chirp.c (chirp_emul_open): Implement using device_instance.
2449 * emul_chirp.c (chirp_emul_close): Ditto
2450 * emul_chirp.c (chirp_emul_read): Ditto
2451 * emul_chirp.c (chirp_emul_write): Ditto
2452 * emul_chirp.c (chirp_emul_seek): Ditto
2454 * emul_chirp.c (chirp_read_t2h_args): Read arguments from device.
2455 Being careful to convert all from target to host byte order.
2456 * emul_chirp.c (chirp_write_h2t_args): Converse.
2458 Wed Jan 17 20:07:15 1996 Andrew Cagney <cagney@highland.com.au>
2460 * device.c (device_tree_add_parsed): New. Rewrite code to add
2461 devices to the device tree so that a single printf style function
2464 * device.c (device_tree_add_*): Delete. Replaced by above.
2466 * device.c (split_device_specifier): Functions to manipulate a
2467 device specifier (path) breaking it into its components
2468 * device.c (split_property_specifier): Ditto
2469 * device.c (split_device_name): Ditto
2470 * device.c (split_find_device): Ditto
2472 * device.c (scan_*): Delete
2474 * device.c (device_tree_find_device): Rewrite to use above.
2475 * device.c (device_add_property): Ditto
2477 Wed Jan 17 19:51:56 1996 Andrew Cagney <cagney@highland.com.au>
2479 * psim.c(psim_options): Parse the psim options, installing their
2480 value in the device tree. Options are now first entered into a
2481 device tree and then extracted out again when needed. This allows
2482 greater flexability in configuration.
2484 * psim.c (psim_tree): Returns a basic device tree ready for
2485 parsing by psim_options.
2486 * psim.c (psim_usage): New. Give usage to varing levels of detail
2487 according to the verbosity. In turn output device and trace
2490 * main.c (main): Update to use new system
2491 * sim_calls.c (sim_open, sim_do_command): Ditto
2493 * psim.c (psim_options): Add `r' option - ram size.
2494 * psim.c (psim_options): Add `o' option - openboot tree entry.
2495 * psim.c (psim_options): Add `h'/`H' options - more help.
2497 * debug.c (trace_usage): Add more detailed help.
2498 * device.c (device_usage): New. Output help including a list of
2499 the devices currently available in the device table.
2500 * device_table.c: Add usage operator to each device.
2502 * corefile.c (core_create, core_device_create): Adjust so that the
2503 core device is created earlier for psim_tree(). Core can later be
2506 * psim.c (psim_create): Update to handle above way of creating
2507 things. Extract all information from the device tree.
2509 * device_tree.c (trace_*): New device node, its properties are
2510 used to set the value of the trace options. Init this device (in
2511 psim_options) when ever the options are updated.
2513 Wed Jan 17 19:46:07 1996 Andrew Cagney <cagney@highland.com.au>
2515 * debug.h: Add trace_print_info, trace_print_device_tree and
2516 trace_dump_device_tree. The first is a replacement for the
2517 variable `print_info' found in main.c and sim_calls.c. The latter
2518 two enable the dumping of the entire device tree.
2520 * debug.c: Add to trace_description table.
2522 * main.c (main): Use above trace instead of local variable
2523 * sim_calls.c (sim_close): Ditto
2525 * device.c (device_tree_print_device): New. Prints the device
2526 tree in a format that is consistent with what can be parsed by the
2527 device tree load from file code.
2529 * psim.c (psim_create): Dump device tree if enabled. If nump
2530 selected, exit psim immediatly.
2532 Wed Jan 17 19:36:52 1996 Andrew Cagney <cagney@highland.com.au>
2534 * corefile-n.h (core_map_read_N): When mapping from an address to
2535 a device, do not subtract the devices base. The device its self
2536 can do this. Brings the behavour into line with OpenBoot.
2537 * corefile-n.h (core_map_write_N): Ditto
2538 * corefile.c (core_map_read_buffer): Ditto
2539 * corefile.c (core_map_write_buffer): Ditto
2541 * device_table.c (console_io_read_buffer_callback): Adjust to
2542 handle biased address.
2543 * device_table.c (console_io_write_buffer_callback): Ditto
2545 Wed Jan 17 18:36:09 1996 Andrew Cagney <cagney@highland.com.au>
2547 * device.c (attach_device_interrupt_edge): New. Interrupt model
2548 did not allow interrupts to be wired up as a general net (edges).
2549 Re-implement so that interrupt events can be passed to multiple
2550 controllers and interrupt controllers can further propogate
2553 * device.c (attach_device_interrupt_edge) : New, Ditto
2554 * device.c (detach_device_interrupt_edge) : New, Ditto
2555 * device.c (clean_device_interrupt_edges) : New, Ditto
2556 * device.c (device_interrupt_event) : New, Ditto
2557 * device.c (device_interrupt_attach) : New, Ditto
2558 * device.c (device_interrupt_detach) : New, Ditto
2559 * device.c (device_child_interrupt_attach) : New, Ditto
2560 * device.c (device_child_interrupt_detach) : New, Ditto
2562 * device.c (device_attach_interrupt) : Delete old
2563 * device.c (device_detach_interrupt) : Delete old
2564 * device.c (device_interrupt) : Delete old
2565 * device.c (device_interrupt_ack) : Delete old
2567 * device_table.c (unimp_*) : Update to match
2569 * device_table.c (icu_io_write_buffer_callback) : Update to use
2571 * device_table.c (icu_interrupt_event_callback) : Ditto
2573 Wed Jan 17 18:18:40 1996 Andrew Cagney <cagney@highland.com.au>
2575 * device.c (external_to_device) : New function that provides a
2576 standard mapping between a devices internal representation (a
2577 pointer) and its external (or what is passed to a client)
2578 representation (a phandle). Implement using the cap object
2579 attached to the root node.
2581 * device.c (device_to_external) : Ditto
2582 * device.c (external_to_device_instance) : Ditto but for ihandle
2583 and device instance.
2584 * device.c (device_instance_to_external) : Ditto
2586 * Makefile (device.o): Add dependency on cap.
2588 * emul_chirp.c (struct _emul_chirp_data) : Elimate use of cap. Code
2589 needing to translate between internal and external representations
2590 changed to use the external_to_device et.al. device operations.
2591 * emul_chirp.c (chirp_emul_*) : Ditto
2593 * Makefile (emul_chirp.o): Remove dependency on cap
2595 Sat Jan 6 10:13:26 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2597 * emul_chirp.c (map_over_chirp_note): Tighten up (and fix) checks
2598 on OpenBoot note section.
2600 Fri Jan 5 20:28:53 1996 Andrew Cagney <cagney@hignland.com.au>
2602 * emul_generic.c (emul_write_buffer): Use vm faulting byte
2603 read/write calls for buffer transfers. This will cause a fault to
2604 occure if the transfer fails. CHRP catches the fault while the
2605 others suffer the consequences.
2606 (emul_read_buffer): Ditto.
2607 (emul_write_word): Ditto.
2608 (emul_read_word): Ditto.
2609 (emul_read_string): Ditto.
2611 Fri Jan 5 18:55:34 1996 Andrew Cagney <cagney@highland.com.au>
2613 * emul_chirp.c (emul_chirp_create, emul_chirp_instruction_call),
2614 emul_generic (emul_blr_instruction): Use a real blr instruction to
2615 return from a client service call.
2617 * emul_chirp.c (services): Add all OpenBoot services to table.
2619 * emul_generic.h, emul_bugapi.c (emul_bugapi_create), emul_chirp.c
2620 (emul_chirp_create) : Use names instead of numbers for
2621 instructions being stored in memory.
2623 Fri Jan 5 18:52:28 1996 Andrew Cagney <cagney@highland.com.au>
2625 * Makefile.in (maintainer-clean): Remove .log, core and *.core
2626 (From NetBSD) files.
2628 Wed May 29 22:57:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2630 * ChangeLog.00, ChangeLog: ChangeLog from gdb-4.16 becomes