build callback and targ-map from the common directory
[binutils-gdb.git] / sim / ppc / ChangeLog
1 Wed Jan 29 12:32:41 1997 Michael Meissner <meissner@tiktok.cygnus.com>
2
3 * configure.in (sim_callback): If the gdb is post 4.16, configure
4 callback support from the common directory.
5 * configure: Regenerate.
6
7 * Makefile.in (BUILT_SRC_WO_CONFIG): Add targ-vals.{h,def} and
8 targ-map.c.
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.
15
16 Thu Jan 23 09:07:26 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
17
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.
22
23 * psim.c (psim_options): Clarify reason why the trace ioctl occures.
24
25 * FIXME: The trace code is too scattered - hw_trace.c, psim.c,
26 debug.c. It could be much simpler.
27
28 Thu Jan 23 09:07:26 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
29
30 * Some devices support removable media. Add hooks to the disk
31 device so that it supports this.
32
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.
39
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
42 image property list.
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.
45
46 * tree.c (print_string_aray_property): New function - print a
47 string array.
48 (print_properties): Adjust.
49 (print_string): Write a string, handling double quotes.
50
51 * device.h: Define an ioctl to `change-media' with an optional new
52 media image.
53
54 * hw_disk.c: Allow floppy disk devices to be specified.
55
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.
59
60 Wed Jan 22 09:38:33 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
61
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
65 branches.
66
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.
72
73 * gen-icache.c (print_icache_struct): If there is no cache, do not
74 output expressions in idecode.h file.
75
76 * gen-icache.c (print_icache_body): Output them here.
77
78 * ppc-opcode-complex: Clarify constant values for SPR==LR register
79 expansion.
80
81 * ppc-cache-rules (RA_is_0, SPR_is_256): Two new cache entries.
82
83 Wed Jan 22 12:24:52 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
84
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.
89
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.
95
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
99
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.
104
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.
108
109 * igen.c (main): Change 'R' option so that it does not force the
110 cache.
111
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.
115
116 Tue Jan 21 13:26:10 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
117
118 * pk_disklabel.c (block_is_fdisk): Tidy up traces - use dos
119 partition numbering.
120 (pk_disklabel_create_instance): Partition 1..4 are valid - not
121 1..3.
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.
125
126 Mon Jan 20 11:20:15 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
127
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
132 object.
133
134 * cap.h, cap.c: Correct cap type - was signed32 should be
135 signed_cell.
136
137 * cap.c (cap_add, cap_remove): New methods for cap object that
138 allow the explicit addition and removal of internal objects that
139 the cap knows about.
140
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
145 database.
146
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
150 the cap database.
151
152 * device.c (device_create_from): Explicitly add a device to the
153 cap data base.
154
155 * device.c (device_create_from): Always set the cap members.
156
157 * hw_disk.c: Output the instance when tracing.
158
159 Sun Jan 19 16:44:29 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
160
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.
164
165 Sun Jan 19 15:28:23 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
166
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.
171
172 * hw_memory.c (hw_memory_instance_claim,
173 hw_memory_instance_release): Handle multi-cell memory devices.
174
175 * hw_memory.c (hw_memory_instance_claim): Be tolerant towards the
176 release of memory regions that were not claimed.
177
178 Fri Jan 17 12:01:07 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
179
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.
183
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.
188
189 Fri Jan 17 11:50:13 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
190
191 * emul_chirp.c (chirp_emul_claim): Implement using the "claim"
192 method belonging to "/chosen/memory".
193 (chirm_emul_release): Ditto.
194
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
197 not made inline.
198
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"
202 device.
203
204 * emul_chirp.c (emul_chirp_create): Specify that memory should be
205 claimed when loading a real image.
206
207 * hw_memory.c (hw_memory_instance_claim): Don't page align memory
208 allocations.
209
210 * hw_memory.c (hw_memory_instance_release): Avoid infinite loop
211 when merging adjacent memory chunks.
212
213 Thu Jan 16 08:51:25 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
214
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
217 access.
218
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.
221
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.
226
227 Wed Jan 15 14:38:25 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
228
229 * configure.in (--enable-sim-jump): Default is NULL and not -E.
230 * configure: Regenerate.
231
232 * basics.h (__attribute__): Enable attributes if GCC >= 2.6.
233 (UNUSED): Only enable UNUSED if GCC >= 2.7.
234
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.
239
240 Wed Jan 15 13:54:50 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
241
242 * cpu.h, cpu.c (cpu_synchronize_context): Add CIA argument as
243 reference point.
244
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.
251
252 * vm.c: Include "cpu.h" so that cpu_error is visible.
253
254 * ppc-instructions (Return From Interrupt): Pass CIA.
255 (Instruction Synchronize): Ditto.
256 * psim.c (psim_init): Ditto.
257
258 Wed Jan 15 12:25:11 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
259
260 * cpu.h, cpu.c (cpu_error): Aborts simulation with error message,
261 but also saves current processor state.
262
263 * basics.h: Move #include <stdarg.h> to here from device_table.h.
264
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.
273
274 Tue Jan 14 12:19:10 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
275
276 * ppc-instructions (Move from Special Purpose Register): Support
277 move from DEC.
278
279 Mon Jan 13 16:58:12 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
280
281 * debug.h, debug.c: Add "interrupts" trace option.
282
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.
292
293 * interrupts.c (program_interrupt): For UEA mode, halt the
294 processor - so that the current state is saved - instead of
295 aborting.
296 (floating_point_unavailable_interrupt): Ditto.
297 (floating_point_assist_interrupt): Ditto.
298
299 Thu Jan 2 09:10:41 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
300
301 * interrupts.c (perform_oea_interrupt): Halt rather than abort on
302 a double interrupt.
303
304 Wed Jan 1 22:54:52 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
305
306 * ppc-instructions (Store Multiple Word, Load Multiple Word):
307 Enable.
308
309 * tree.c (print_properties): For an array consider printing it out
310 as an integer array.
311
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.
315
316 * emul_generic.c (emul_add_tree_hardware): Add "available"
317 property to memory device.
318
319 Fri Dec 20 13:19:07 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
320
321 * ppc-instructions (Rotate Left Word then AND with Mask): Enable.
322
323 * device.c (device_instance_call_method): Was only looking at the
324 first method.
325
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.
329
330 * hw_phb.c (hw_phb_init_address): Reinit the rest of the PHB.
331
332 * emul_chirp.c (chirp_emul_instance_to_path): Recover from an
333 invalid ihandle.
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.
342
343 * psim.c (psim_merge_device_file): Allow continuation lines.
344
345 Thu Dec 19 11:09:43 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
346
347 * emul_chirp.c (chirp_emul_boot): Implement. Well report the new
348 string and exit.
349
350 * emul_chirp.c (chirp_emul_exit): Correct type of args struct
351 members - *_cell not host dependant int.
352
353 Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
354
355 * interrupts.c (perform_oea_interrupt): Print additional
356 information if a double interrupt is encountered.
357
358 Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
359
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.
363
364 Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
365
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
370
371 * device.c (device_root): Assert assumption about the device being
372 valid.
373
374 Tue Dec 17 15:12:38 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
375
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.
379
380 Fri Dec 13 14:30:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
381
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
384 work.
385 * main.c: Include errno.h.
386 (sim_io_read_stdin): For non-STDIO, make it work.
387
388 * emul_chirp.c (chirp_emul_read): Return the correct error status.
389
390 Fri Dec 13 14:30:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
391
392 * std-config.h (WITH_STDIO): Don't hard-wire the STDIO mechanism.
393 Instead have each emulation default it to DO_USE_STDIO.
394
395 * emul_generic.c (emul_add_tree_options): Select the STDIO I/O
396 mechanism as the default if enabled or if nothing selected.
397
398 * sim_calls.c (sim_io_read_stdin): Passify GCC's desire for a
399 return value.
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.
405
406 Tue Dec 10 10:31:48 1996 Michael Meissner <meissner@tiktok.cygnus.com>
407
408 * emul_chirp.c (emul_chirp_instruction_call): Make *printf calls
409 type correct.
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.
433
434 * sim_calls.c ({defs,callback,remote-sim}.h): Find gdb include
435 files via -I<dir> instead of using "../../gdb/" prefixes.
436
437 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
438
439 * debug.h: Add tracing for the pal device.
440 * hw_pal.c: Update.
441
442 * emul_chirp.c (chirp_emul_getprop): More tracing.
443
444 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
445
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.
449
450 * device.c (find_property_entry): New function returns the
451 internal property spec.
452 (device_set_property): Use.
453 (device_find_property): Use.
454
455 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
456
457 * psim.c (psim_merge_device_file): Strip newline from device
458 specs.
459
460 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
461
462 * hw_htab.c (htab_map_binary): For overlapping text / data maps
463 merge the two. Also check that the merge is safe.
464
465 * emul_chirp.c (emul_chirp_create): Add a description property to
466 the pte's so that they are easier to identify.
467
468 (emul_chirp_create): Don't specify a load address for the CHRP
469 image. Always use the values specified by the executable.
470
471 * hw_htab.c (htab_map_page): Abort if a duplicate map is
472 encountered.
473
474 Mon Dec 9 12:08:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
475
476 * hw_htab.c (htab_map_page): Formatting.
477
478 * emul_chirp.c (emul_chirp_instruction_call): Check for a NULL
479 method name when handling the client call. Also check for other
480 bad call arguments.
481
482 * emul_chirp.c (emul_chirp_create): Allow real-mode?, real-base,
483 etc to be overriden.
484
485 Mon Dec 9 12:08:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
486
487 * os_emul.c (os_emul_create): Use tree find property instead of
488 device find property - sigh.
489
490 Thu Dec 5 10:46:42 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
491
492 * 961205: Release snapshot 961205.
493
494 Thu Dec 5 10:46:42 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
495
496 * configure.in (hostbitsize, bitsize): Fix typo in error message -
497 cannot contain a comma.
498 (sim-warnings): Check for more potential errors.
499
500 * psim.c (psim_usage): Add -f <file> option. Specifies a file
501 containing device tree specifications that should be merged into
502 the device tree.
503
504 * configure.in: Sort options.
505 * configure: Rebuild
506
507 Wed Dec 4 13:57:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
508
509 * psim.c (psim_usage): Add -n option - specify number of
510 processors.
511
512 * emul_chirp.c: Add description.
513 * emul_bugapi.c: Ditto.
514 * emul_unix.c: Ditto.
515 * emul_netbsd.c: Ditto.
516
517 Fri Nov 29 11:12:22 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
518
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.
522
523 * hw_nvram.c (hw_nvram_init_address): Use the first nonzero reg
524 property entry when determining the nvram size.
525
526 * hw_core.c: Add generic address/size decode methods.
527
528 * emul_chirp.c (emul_chirp_instruction_call): Return and trace
529 nonzero status from client functions.
530
531 * main.c (error): Always include a cariage return when writing out
532 errors.
533
534 Wed Nov 20 00:36:55 1996 Doug Evans <dje@canuck.cygnus.com>
535
536 * sim_calls.c (sim_resume): Reset sim_should_run if single
537 stepping.
538
539 Thu Nov 28 13:19:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
540
541 * emul_bugapi.c (emul_bugapi_do_diskio): Add support for multiple
542 optional disks.
543
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
546 firmware sub tree.
547
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.
551
552 * debug.h: Add a new macro DITRACE for tracing device instances.
553
554 * debug.h: Extend the DTRACE macro so that it can also tests for
555 device specific tracint.
556
557 * device.h, device.c (device_trace): Add method to determine
558 device specific tracing.
559 (device_init_address): Set the devices tracing level.
560
561 Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
562
563 * tree.h, tree.c (tree_device): New files - separate out the
564 device parser and other tree operations from the device.
565
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.
570
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.
577 * hw_init.c: Ditto.
578
579 * emul_generic.h: Include tree.h
580 * Makefile.in: Add to EMUL_GENERIC_H dependencies.
581
582 * device.h, device.c (device_root): New function - returns the
583 root of the tree.
584 * corefile.c: Use.
585
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.
591
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.
597
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.
603
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.
608
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
611 entry.
612
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.
616
617 Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
618
619 * device.h, device.c (device_ioctl): Add additional argument -
620 request - so that the caller must always specify the type of
621 the ioctl request.
622
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.
628
629 Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
630
631 * BUGS: Updated a bit.
632
633 Wed Nov 20 14:06:37 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
634
635 * hw_opic.c: Finish - third round.
636
637 Wed Nov 20 12:02:08 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
638
639 * hw_glue.c (hw_glue_io_read_buffer_callback): Fix miscalc of glue
640 reg index.
641 (hw_glue_io_write_buffer_callback): Ditto.
642
643 Tue Nov 19 21:17:08 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
644
645 * events.c (event_queue_process): Was incorrectly consuming future
646 events on the queue when they should be left alone.
647
648 * debug.h, debug.c (events): Add support for event queue tracing.
649 * events.c: Add event tracing.
650
651 * debug.h, debug.c: Order device trace options.
652
653 Fri Nov 15 15:23:39 1996 Michael Meissner <meissner@tiktok.cygnus.com>
654
655 * pk_disklabel.c (pk_disklabel_create_instance): Fix up some
656 warnings generated by GCC.
657
658 Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
659
660 * sim-endian.h: Add LE versions of byte swap macros. Needed for
661 PCI devices which are little-endian.
662
663 * sim-endian-n.h (endian_le2h_N, endian_h2le_N): Ditto
664
665 Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
666
667 * hw_iobus.c (hw_iobus_attach_address_callback): Change the iobus
668 so that it is implementing a 1-1 address map.
669
670 * emul_generic.c (emul_add_tree_hardware): Adjust.
671
672 * emul_generic.c (emul_add_tree_hardware): Don't add the nvram as
673 a default.
674
675 Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
676
677 * device.c (split_find_device): Be tolerant of missing unit
678 addresses.
679
680 Fri Nov 15 16:49:49 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
681
682 * basics.h (port_direction): New type, specify the direction of
683 any `port'.
684
685 * device.h, device.c (device_interrupt_decode): Include
686 specification of port direction in operations.
687 (device_interrupt_encode): Ditto.
688
689 * device_table.h: Add a direction field to the interrupt port
690 table.
691
692 * device.c (device_tree_add_parsed): Specify port direction.
693
694 Thu Nov 14 21:38:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
695
696 * hw_opic.c: Finish - second round.
697
698 Thu Nov 7 00:18:59 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
699
700 * hw_htab.c (htab_init_data_callback): Allow the virtual-address
701 to be specified as an array which allows 64bit addresses.
702
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.
707
708 * vm.c (om_unpack_sr): Clarify shifting comment.
709 (om_pte_0_masked_vsid): Ditto. Add 64bit version.
710
711 * emul_chirp.c (emul_chirp_create): Initialize the segment
712 registers.
713
714 * vm.c (om_effective_to_virtual): Trace segment register use.
715
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.
723
724 Wed Nov 6 20:20:58 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
725
726 * interrupts.h: Clarify what the optional instruction program
727 interrupt is - a subset of illegal instruction program interrupt.
728
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
733 is encountered.
734
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.
738
739 * ppc-instructions (store floating-point as integer word indexed):
740 Mark as optional.
741 (Floating Convert to Integer Doubleword): Make the floating point
742 assist interrupt explicit.
743 (Floating Convert To Integer Doubleword with round towards Zero):
744 Ditto.
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.
752
753 Mon Nov 4 12:49:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
754
755 * corefile.c (core_map_read_buffer, core_map_write_buffer): Avoid
756 breaking up transfers.
757
758 * corefile.c: Adjust arguments so that the client server
759 relationship is clarified.
760
761 * hw_glue.c (hw_glue_init_address): Update so it can be attached
762 to a PCI bus.
763
764 * hw_disk.c (hw_disk_instance_write): Add more checks to disk IO -
765 looking for things like overflow/underflow.
766
767 Sun Nov 3 18:45:20 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
768
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
771 logical bus.
772
773 * hw_disk.c (hw_disk_init_address): Just use the unit address
774 directly in the attach - the rest isn't relevant.
775
776 Sat Nov 2 21:48:57 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
777
778 * configure.in (sim-hardware, sim-packages): Allow additional
779 hardware and packages to be prefixed as well as appended.
780
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.
784
785 * Makefile.in (hw_opic.o, hw_pci.o, hw_ide.o): Add dependencies.
786
787 Fri Nov 1 14:42:57 1996 Michael Meissner <meissner@tiktok.cygnus.com>
788
789 * mon.c (_cpu_mon): Add fields for counting 1, 2, 4, and 8 byte
790 reads and writes.
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
794 are.
795
796 Tue Oct 29 17:55:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
797
798 * configure.in (AC_CHECK_FUNCS): Add access.
799 * config{.in,ure}: Regenerate.
800
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.
805
806 Tue, 8 Oct 18:42:26 1996 Jason Molenda <crash@cygnus.co.jp>
807
808 * Makefile.in (clean): Move config.log to distclean.
809
810 Fri Nov 1 16:44:28 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
811
812 * corefile-n.h (core_map_write_N): Improve abort messages.
813
814 * device.h, device.c (device_attach_address): Remove unused name
815 parameter.
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.
826
827 * hw_iobus.c (hw_iobus_attach_address_callback): Rewrite to handle
828 configurable parent busses.
829
830 Wed Oct 30 18:46:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
831
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.
835
836 Tue Oct 29 02:01:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
837
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.
843
844 * hw_core.c: Use generic address and size conversions for the top
845 bus.
846
847 * hw_memory.c (hw_memory_init_address): Tolerate case where
848 #address and #size cells is greater than 1.
849
850 * device.c (device_tree_print_device): Clean out printing of
851 properties.
852
853 * device.c (split_device_specifier): Don't detect comments here -
854 "#" can be a valid prefix - eg #size-cells.
855
856 * psim.c (psim_merge_device_file): Suppress comments and blank
857 lines here.
858
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
861 the tree.
862
863 * device.c (device_template_create_device): Check that the unit
864 address was successfully parsed.
865
866 * device_table.c (generic_device_unit_decode): Rewrite to better
867 handle multi-cell addresses.
868 (generic_device_unit_encode): Ditto.
869
870 * emul_generic.c (emul_add_tree_hardware): "reg" properties no
871 longer need the explicit array type - the parser takes care of it.
872
873 * pk_disklabel.c (pk_disklabel_create_instance): Add NULL return
874 to keep GCC happy.
875
876 Mon Oct 28 22:55:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
877
878 * hw_ide.c: New file. Model of a basic IDE interface attached to
879 a PCI bus.
880
881 * configure.in (hardware): Add the ide device to the default
882 configuration.
883 * configure: Regenerate.
884
885 * debug.h, debug.c: Add tracing option for the IDE device.
886
887 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
888
889 * hw_phb.c, hw_phb.h: New files - implement a PHB.
890
891 * configure.in (hardware): Add the phb to the list of devices to
892 build by default.
893
894 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
895
896 * hw_com.c: Review description.
897 * hw_disk.c: Ditto.
898 * hw_htab.c: Ditto.
899 * hw_eeprom.c: Ditto.
900 * hw_init.c: Ditto.
901 * hw_cpu.c: Ditto.
902
903 * hw_com.c: Update event handling.
904
905 * hw_disk.c: Implement tracing.
906
907 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
908
909 * device_table.c (generic_device_init_address): Use
910 assigned-addresses property in preference to any other reg
911 property.
912
913 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
914
915 * device.h, device.c (device_find_ranges_property): New function.
916 Simplify the manipulation of "ranges" properties.
917
918 * device.c (device_add_parsed): Extend to include support for the
919 ranges property.
920
921 * device.c (device_add_parsed): Add assigned-addresses to the list
922 of reg type properties.
923
924 * device.c (device_tree_print_device): Add code to format and
925 print a ranges property.
926
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.
933
934 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
935
936 * debug.h, debug.c: Sort debug options, Add entries for the
937 comming PHB device.
938
939 Fri Oct 18 12:12:21 1996 Michael Meissner <meissner@tiktok.cygnus.com>
940
941 * ppc-instructions (Floating Select): Add support for fsel unless
942 model is 601. Allow user to filter out instruction unless -Fs is
943 passed to igen.
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.
950
951 * configure.in (--enable-sim-filter): If not passed, pass 32,f,s
952 to igen.
953 * configure: Regenerate.
954
955 * interrupts.h (program_interrupt_reasons): Add
956 optional_instruction_program_interrupt.
957
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.
961
962 Wed Sep 25 10:20:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
963
964 * hw_glue.c: New device. Hooks for manipulating interrupt ports.
965
966 * debug.h, debug.c (trace_glue_device): Add tracing support for
967 the interrupt glue logic device.
968
969 * configure.in (hardware): Add glue device.
970 * configure: Regenerate.
971
972 Tue Sep 24 20:55:38 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
973
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.
977
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
981 parser.
982 (device_tree_add_parsed): Call it.
983
984 Tue Sep 24 16:30:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
985
986 * hw_opic.c: New file. OpenPIC interrupt controller.
987
988 * configure.in (hardware): Add opic device.
989 * configure: re-generate.
990
991 * hw_pic.c: Delete, replaced with hw_opic.c.
992
993 * debug.h, debug.c: Add debug option for OpenPIC device. -
994 opic-device.
995
996 Tue Sep 24 16:30:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
997
998 * Makefile.in (psim.o, idecode.o): Since idecode and not psim is
999 now the file that does all the inlining.
1000
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.
1004
1005 * Makefile.in (LIB_OBJ): Put options last on the list so that it
1006 is compiled last.
1007
1008 * std-config.h (DEVICE_INLINE): Only inline locals when the
1009 default is to inline.
1010
1011 Mon Sep 23 00:37:49 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1012
1013 * hw_htab.c (htab_sum_binary): Determine the real-base for the
1014 binary.
1015
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.
1020
1021 Sun Sep 22 15:56:22 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1022
1023 * emul_generic.c (emul_add_tree_options): Remove load-base option.
1024
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.
1029
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.
1033
1034 * hw_init.c (create_ppc_chirp_bootargs): Add support for chirp
1035 argument passing to the pseudo device stack.
1036
1037 Sat Sep 21 19:39:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1038
1039 * device.c (device_error): Make it more tolerant to incomplete
1040 devices.
1041
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
1046 this.
1047
1048 Sat Sep 21 00:13:02 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1049
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
1054 models.
1055
1056 Fri Sep 20 14:04:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1057
1058 * configure.in (sim-hardware): Add eeprom device to default build.
1059
1060 * hw_eeprom.c: Rewrite so it works.
1061
1062 * debug.h, debug.c: Add tracing support for the eeprom and com
1063 devices.
1064
1065 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1066
1067 * debug.h: Add disklabel-package and disk-device trace options.
1068 debug.h (PTRACE): Add macro to simplify tracing in packages.
1069
1070 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1071
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.
1077
1078 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1079
1080 * hw_disk.c: Add the cdrom as an alias.
1081
1082 * pk_disklabel.c (disklabel_delete): Implement, remembering to
1083 delete the raw disk instance while we're at it.
1084
1085 * pk_disklabel.c (pk_disklabel_create_instance): Implement a
1086 little bit more - still a long way to go.
1087
1088 * pk_disklabel.c (disklabel_write, disklabel_read): Remember the
1089 new head position after a read or write.
1090
1091 Thu Sep 19 13:05:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1092
1093 * emul_chirp.c (chirp_emul_read): Allow reads to be longer then
1094 the internal buffer.
1095
1096 Thu Sep 19 13:05:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1097
1098 * emul_chirp.c (chirp_read_t2h_args): Call memset-0 with the args
1099 in the correct order.
1100
1101 * emul_chirp.c (chirp_emul_call_method): Correct computation for
1102 the address of the first stack argument passed in from the client
1103 program.
1104
1105 Wed Sep 18 19:33:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1106
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.
1112
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.
1117
1118 Tue Sep 17 15:57:44 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1119
1120 * device.c (device_tree_add_parsed): Detect and report an
1121 interrupt being attached to an invalid device. Was dumping core.
1122
1123 Mon Sep 16 23:09:12 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1124
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.
1130
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.
1137
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.
1141
1142 * device.c (device_tree_print_device): Add code to print out a reg
1143 property.
1144
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.
1148
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.
1152
1153 Mon Sep 16 23:09:12 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1154
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.
1159
1160 Thu Sep 12 17:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1161
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
1169 node.
1170
1171 Thu Sep 12 17:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1172
1173 * mon.c (mon_event): Remove assertion that an unsigned is >= 0.
1174
1175 Fri Aug 16 12:05:24 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1176
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.
1182
1183 Tue Aug 13 11:40:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1184
1185 * debug.c (trace_option): For -t all, do not set the
1186 trace_dump_device_tree flag, so that the simulator is run.
1187
1188 Tue Aug 13 11:40:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1189
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.
1194
1195 * options.c (print_options): Print whether many of the
1196 configuration macros are defined.
1197
1198 * main.c (main): If -t options and no filename, just print the
1199 options, and don't print the usage message.
1200
1201 Mon Aug 12 18:42:37 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1202
1203 * configure.in: Test whether /dev/zero works on the system, and if
1204 it does, define HAVE_DEVZERO.
1205 * configure: Regenerate.
1206
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.
1209
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.
1214
1215 Wed Aug 7 14:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1216
1217 * emul_unix.c (HAVE_TCGETATTR): If HAVE_TERMIOS_STRUCTURE is not
1218 defined, make sure HAVE_TCGETATTR is #undef'ed
1219
1220 Wed Aug 7 14:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1221
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.
1225
1226 * sim-endian.h (WITH_HOST_BYTE_ORDER): Test for i686 and __i686__
1227 also.
1228
1229 Wed Aug 7 20:19:55 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1230
1231 * ld-decode.h, ld-decode.c: Rename goto_gen to the more correct
1232 goto_switch_gen.
1233 * gen-idecode.c: Ditto.
1234
1235 * gen-idecode.c (print_idecode_table): Comment out check for
1236 switch/table combination until a bug with it is fixed.
1237
1238 * ppc-opcode-goto: New file. Like complex and flat but uses
1239 goto-switch instead of padded-switch for the tables.
1240
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.
1246
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
1249 boolean.
1250
1251 Tue Aug 6 09:28:22 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1252
1253 * configure.in (--enable-sim-{hardware,packages}): Fix typos.
1254 * configure: Regenerate.
1255
1256 * device.c (device_instance_call_method): Fixup format message in
1257 error case. Return 0 in case of error to shut up compiler
1258 warnings.
1259
1260 Wed Aug 7 00:17:37 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1261
1262 * device_table.c (generic_device_unit_decode): Require a comma
1263 between elements of a unit address.
1264
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.
1269
1270 Tue Aug 6 21:35:18 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1271
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
1275 property.
1276 (device_tree_parse_ranges_property): New function to parse a
1277 ranges property.
1278 (device_encode_unit): Wrapper for encode_unit callback.
1279 (device_decoce_unit): Wrapper for decode_unit callback.
1280
1281 Wed Jul 31 00:02:30 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1282
1283 * device_table.h (device_instance_callbacks): Relace the claim and
1284 release methods with a more general table mapping from method-name
1285 to method-function.
1286
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.
1292
1293 * emul_chirp.c (chirp_emul_call_method): Use the new device
1294 instance call method and let that handle a client claim call.
1295
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.
1301
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
1307 table.
1308
1309 Tue Jul 30 21:26:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1310
1311 * psim.c (psim_init): Back out of change to initial value of
1312 system->last_cpu.
1313
1314 Tue Jul 30 21:12:24 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1315
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.
1319
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.
1326
1327 * hw_pal.c (scan_hw_pal, write_hw_pal,
1328 hw_pal_instance_write_callback): Use the new sim_io functions.
1329
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.
1333
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
1336 of the simulation.
1337 * psim.c (psim_create): Initialize current_stdio from the device
1338 tree.
1339 * emul_generic.c (emul_add_tree_options): Enter a default value
1340 for use-stdio in the device tree.
1341
1342 Fri Jul 26 19:43:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1343
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,
1349 not just equal.
1350
1351 * options.c (print_options): Add printing of WITH_REGPARM and
1352 WITH_STDCALL.
1353
1354 * std-config.h (WITH_REGPARM, WITH_STDCALL): Provide default
1355 (disabled) values if not defined.
1356
1357 Fri Jul 26 00:36:35 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1358
1359 * ppc-cache-rules (cache): Change RS and RB to cache instead of
1360 compute. The block move instructions use them.
1361
1362 * idecode_expression.h (FPSCR_SET): New macro, set specific FPSCR
1363 register.
1364 (CR_FIELD): New macro, extract specific CR register.
1365 (FPSCR_FIELD): New macro, extract specific FPSCR register.
1366
1367 * registers.h (GPR): New macro, simplify accesses to GPR[i].
1368
1369 * bits.c (INSERTED): Covert INSERTED macro into a function.
1370 (EXTRACTED): Conditionally compile on correct bit size macro.
1371
1372 * bits.h (BIT8): New macro, set a single bit in an 8 bit byte.
1373
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.
1390
1391 Thu Jul 25 22:10:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1392
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
1396 little benefit.
1397
1398 * std-config.h (ICACHE_INLINE): Ditto.
1399
1400 Thu Jul 25 20:07:30 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1401
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
1405 stdcall attribute.
1406
1407 * Makefile.in (REGPARM_CFLAGS): Pass regparam configuration onto
1408 compilations.
1409 * (STDCALL_CFLAGS): Pass stdcall configuration onto compilations.
1410
1411 * std-config.h (REGPARM): Extend construction of REGPARM macro so
1412 that it can include __stdcall__ function attribute.
1413
1414 Wed Jul 24 19:04:20 1996 Andrew Cagney <cagney@sawnoff>
1415
1416 * options.c (print_options): Include SUPPORT_INLINE in information
1417 dump.
1418
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.
1422
1423 Wed Jul 24 15:47:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1424
1425 * gen-icache.c (print_icache_function): Have the cache function
1426 always update the cache_entries semantic and address fields.
1427
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.
1432
1433 Tue Jul 23 20:57:01 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1434
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.
1440
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
1445 same as cpu.[hc].
1446
1447 * idecode_fields.h (LABEL, GOTO): Macro's that create a unique
1448 name for a lable and then branch to it.
1449
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.
1453
1454 Wed Jul 24 14:02:42 1996 Andrew Cagney <cagney@sawnoff.highland.com.au>
1455
1456 * gen-idecode.c (print_run_until_stop_body): Too many rparen in
1457 generated code.
1458
1459 Tue Jul 23 20:57:01 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1460
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.
1464
1465 * configure: rebuild.
1466
1467 Mon Jul 22 23:25:08 1996 Andrew Cagney <cagney@highland.com.au>
1468
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.
1473
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.
1478
1479 Mon Jul 22 22:38:59 1996 Andrew Cagney <cagney@highland.com.au>
1480
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.
1484
1485 Mon Jul 22 22:17:08 1996 Andrew Cagney <cagney@highland.com.au>
1486
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.
1491
1492 * igen.c (main), igen.h: Add option -S - inSn - for specifying
1493 that the instruction should be included in the icache.
1494
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.
1498
1499 Mon Jul 22 20:46:12 1996 Andrew Cagney <cagney@highland.com.au>
1500
1501 * Makefile.in (BUILD_CFLAGS): Include -g when building the
1502 generators.
1503
1504 Mon Jul 22 20:00:25 1996 Andrew Cagney <cagney@highland.com.au>
1505
1506 * emul_generic.c (emul_add_tree_options): Was incorrectly setting
1507 the strict-alignment option when hardwired for non-strict
1508 alignment.
1509
1510 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1511
1512 * gen-semantics.c: Make the my_index variable a macro MY_INDEX.
1513
1514 * ppc-instructions: Adjust so that references are to MY_INDEX and
1515 not my_index.
1516
1517 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1518
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).
1522
1523 * std-config.h: Change psim.c so that it isn't inlined (as this is
1524 no longer needed).
1525
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.
1529
1530 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1531
1532 * dgen.c: Maintenance - update to use new features found in lf.c.
1533
1534 * filter_filename.c (filter_filename): Maintenance - make the
1535 string constant.
1536
1537 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1538
1539 * debug.c (TRACE, ITRACE, DTRACE): Have GCC instead of CPP
1540 eliminate trace statements.
1541
1542 * debug.c: Change trace format so that it is consistent
1543 (file:line-nr) with CC's error output.
1544
1545 * gen-itable.c (itable_c_insn): Add the source file name and
1546 source line number to the instruction's informational entry.
1547
1548 * debug.c (ITRACE): Use the itable (and my_index) to get the
1549 current instructions name and source line number.
1550
1551 * gen-semantics.c, gen-icache.c: Adjust generated ITRACE calls to
1552 match new interface.
1553
1554 * emul_bugapi.c (emul_bugapi_instruction_call): Adjust
1555 corresponding call to ITRACE so that it still matches.
1556
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.
1560
1561 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1562
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.
1568
1569 * Makefile.in: Add sim_jump flag to those passed to igen.
1570
1571 * configure.in: New option --enable-sim-jump (default disabled)
1572
1573 * ppc-instructions: Eliminate any uses of labels and goto's.
1574 These result in duplicate declarations when a single flat function
1575 is being create.
1576
1577 * ppc-opcode-jump: New file. Set of opcode rules useful when
1578 testing jumping idecodes.
1579
1580 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1581
1582 * gen-idecode.c: Optionally include the semantic code for an
1583 instruction in the function that is doing the decoding.
1584
1585 * igen.c: Add option (-C) to generate semantics in the instruction
1586 decode functions.
1587
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.
1592
1593 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1594
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.
1599
1600 * Makefile.in (sim_line_nr): Pass to igen.
1601
1602 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1603
1604 * igen.c (main): Revamp the options so that more letters are
1605 available.
1606
1607 * configure.in: Adjust to match igen's revamped options
1608
1609 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1610
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).
1614
1615 Mon Jun 24 22:28:00 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1616
1617 * Makefile.in (BUILD_CFLAGS): Include WARNING_CFLAGS.
1618
1619 Wed Jun 19 21:45:28 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1620
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.
1624 * igen.c: Adjust.
1625
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.
1630 * igen.c: Adjust.
1631
1632 * gen-support.[ch]: New files. Output the support functions (found
1633 in the ppc-instructions file) into a separate file.
1634 * Makefile.in: Add.
1635 * inline.h, inline.c: Add.
1636 * std-config.h: Add.
1637
1638 * ld-cache.c: Re-design the cache table format.
1639 * ppc-cache-rules: Update to new format.
1640
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
1645
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
1652 and floating point.
1653 * ppc-instructions: Clean up filter fields so that only in use
1654 entries are specifed (ie delete `be').
1655
1656 * misc.c (name2i, i2name): New function. Map between a string and
1657 an integer value.
1658
1659 Mon Jun 17 20:08:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1660
1661 * sim_calls.c (sim_close): If simulator not created, skip printing
1662 of run information.
1663
1664 Mon Jun 17 20:08:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1665
1666 * registers.c (register_description): Typo, insns not insn.
1667
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().
1672
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().
1677
1678 Fri Jun 14 00:11:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1679
1680 * device_table.h: Don't pass the parent device into a devices
1681 create function. This makes the create function consistent with
1682 the documentation.
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.
1691
1692 * device.c (split_find_device): Allow a null initial parent device.
1693 (device_template_create_device): Ditto.
1694
1695 * device.c (device_create_from): Make local (static) only used
1696 within device.c.
1697 * device_table.h: typedef device_callbacks moved here (from
1698 device.h) where it belongs.
1699
1700 * hw_core.c: New file. Implements just the core device using the
1701 core object.
1702
1703 * corefile.c: Moved all core device functions into the new
1704 hw_core.c file. core_device_create() disapears.
1705
1706 * psim.c (psim_tree): Use device_tree_add_parsed() to create the
1707 core device.
1708
1709 Thu Jun 13 00:09:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1710
1711 * hw_init.c: Correct typo in comment.
1712
1713 * corefile.c (core_init): Remove any remaining references to a
1714 default map.
1715 (core_map_find_mapping): Ditto.
1716
1717 Wed Jun 12 22:30:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1718
1719 * corefile.c (core_init): Make function global so that other
1720 devices are able to use the full core object.
1721
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.
1725
1726 * corefile.c (core_device_create): Use core_create to make the
1727 core object.
1728
1729 * psim.c (psim_create): Use core_from_device() instead of
1730 core_create().
1731
1732 * device.c (device_template_create_device): Make static as only
1733 needed by functions internal to device.c.
1734
1735 Fri Jun 7 23:47:18 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1736
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
1744
1745 * igen.c: Add description of files as a comment at the front.
1746
1747 Wed Jun 26 12:50:33 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1748
1749 * configure.in: Check for whether the termios and termio
1750 structures are really defined, and whether or not, they define the
1751 c_line field.
1752 * configure: Regenerate.
1753
1754 * Makefile.in ({,TERMIO_}CFLAGS): Add TERMIO_CFLAGS options set by
1755 configure.
1756
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
1760 sys/ioctl.h.
1761
1762 Wed Jun 26 12:26:55 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
1763
1764 * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
1765 INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
1766 (docdir): Removed.
1767 * configure.in (AC_PREREQ): autoconf 2.5 or higher.
1768 (AC_PROG_INSTALL): Added.
1769 * configure: Rebuilt.
1770
1771 Wed Jun 5 23:53:42 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1772
1773 * corefile.h: Rewrite documentation so that it can be extracted and
1774 converted into texinfo (and hence ready for translation into html,
1775 tex or nroff).
1776 * device.h: Ditto
1777
1778 Thu Jun 6 09:52:37 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1779
1780 * hw_disk.c (SEEK_SET): If SEEK_SET is not defined, define as 0.
1781
1782 Wed Jun 5 11:46:52 1996 Andrew Cagney <cagney@puddin>
1783
1784 * hw_disk.c: Include <unistd.h> if available. Under SunOS, that
1785 is the source of SEEK_SET.
1786
1787 Wed Jun 5 01:39:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1788
1789 * psim.c (psim_options): Correct type of dummy arguments being
1790 passed to a device_ioctl call.
1791
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.
1795
1796 Wed Jun 5 01:39:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1797
1798 * emul_unix.c (do_unix_umask): Cast printf argument.
1799 (convert_to_linux_termios): Use LINUX_VSWTC not LINUX_VSWCH
1800
1801 Mon Jun 3 15:02:04 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1802
1803 * hw_init.c (update_for_binary_section): Abort if we find an
1804 .interp section, which indicates the need for shared libraries to
1805 be loaded.
1806
1807 Mon Jun 3 15:02:04 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1808
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.
1814
1815 * configure.in (AC_TYPE_{GETGROUPS,SIGNAL}): Define.
1816 (AC_TYPE_{MODE,OFF,PID,SIZE,UID}_T): Define.
1817 * config{.in,ure}: Regenerate.
1818
1819 Mon Jun 3 23:19:57 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1820
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.
1826
1827 * emul_unix.c (do_unix_break): Adjust so that the updated ioctl
1828 call is used (no system parameter).
1829
1830 Sun Jun 2 11:21:17 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1831
1832 * emul_unix.{h,c}: New files to provide Solaris and Linux system
1833 call emulations.
1834
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.
1838
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.
1845
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.
1851
1852 * emul_generic.h (emul_write2_status): Declare it.
1853
1854 * emul_netbsd.c: Use /* */ around comment on #endif.
1855
1856 * os_emul.c: Include emul_unix.h.
1857 (os_emulations): Add emulations for Solaris, and Linux.
1858
1859 * psim.c (psim_usage): Add message about solaris, linux
1860 emulations.
1861
1862 Thu May 30 00:00:10 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1863
1864 * hw_iobus.c: Tidy up notes so that they can be auto-extracted.
1865
1866 * README: Correct PSIM's title
1867
1868 Wed May 29 23:50:26 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1869
1870 * basics.h: New global type object_disposition, used to indicate
1871 the status of objects when things are restarted.
1872
1873 Fri May 17 17:28:52 1996 Andrew Cagney <cagney@benjimen.highland.com.au>
1874
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.
1878
1879 * device.c (device_interrupt_decode): Allow a range of interrupt
1880 ports (eg rst0 .. rst6) if the port descriptors bound is non zero.
1881
1882 * device.c (device_tree_print_device): Include a list of valid
1883 interrupt ports when listing supported devices.
1884
1885 * device.h, device.c (device_child_interrupt_*): Delete. Not used.
1886
1887 * emul_generic.c (emul_add_tree_hardware): Modify the creation of
1888 the interrupt net so that it uses int0 .. intN.
1889
1890 Tue May 14 23:03:53 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1891
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
1900 doc accordingly.
1901
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.
1906
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
1916
1917 * (device_tree_init): Include calls to clean the device tree's
1918 properties and then initialize them. Document this in the device.h
1919 file.
1920
1921 Mon May 6 17:36:15 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1922
1923 * interrupts.c (decrementer_interrupt): Always pend a decrementer
1924 interrupt even if it is not yet possible to deliver it.
1925
1926 Wed May 1 12:26:51 1996 Andrew Cagney <cagney@benjimen>
1927
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.
1931
1932 * registers.h, registers.c (register_description): Add phony
1933 cycle, insn and stall registers.
1934
1935 * psim.c (psim_read_register): Return nr of instructions for given
1936 processor.
1937
1938 Tue Apr 30 22:09:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1939
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
1949 (in user mode).
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.
1954
1955 * Makefile.in (hw_htab.o, hw_register.o, hw_vm.o, hw_init.o,
1956 hw_trace.c): Add new device files.
1957
1958 * device_table.c: Remove above code, now in separate independant
1959 files.
1960
1961 Fri Apr 26 00:00:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1962
1963 * hw_disk.c: New file. Disk and CDROM device.
1964
1965 * Makefile.in (hw_disk.o): Add device hw_disk.c.
1966
1967 * pk_disklabel.c: New file. Implement the miss-named disk-label
1968 package.
1969
1970 * Makefile.in (pk.h): Create the file pk.h that contains a list of all
1971 the packages.
1972
1973 * Makefile.in (hw.h, hw.c): Add dependancy on Makefile so that
1974 they are re-created when the makefile is updated.
1975
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.
1979
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)
1983 disk ihandles here.
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.
1990
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
1998 memory.
1999 * hw_memory.c: add claim and release memory methods.
2000 * hw_*: Use the claim memory method when allocating physical
2001 memory.
2002
2003 Thu Apr 18 23:38:10 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2004
2005 * hw_nvram.c (hw_nvram_update_clock): Use the current not previous
2006 time when updating the clock.
2007
2008 * hw_nvram.c: Tidy up documentation
2009
2010 Fri May 24 10:08:10 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2011
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.
2018
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
2022 might define it.
2023
2024 * hw_pal.c (WITH_STDIO): Redefine if O_NDELAY, F_GETFL, or F_SETFL
2025 are not defined.
2026 (scan_hw_pal): Do not cause syntax error if O_NDELAY, F_GETFL, or
2027 F_SETFL not defined.
2028
2029 Tue May 21 17:24:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2030
2031 * emul_netbsd.c (write_stat): Don't convert st_blocks unless the
2032 host is netbsd.
2033
2034 Thu May 16 10:56:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2035
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
2039 sys/ioctl.h.
2040
2041 Tue May 7 17:28:12 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2042
2043 * hw_pal.c (hw_pal_instance_read_callback): Remove unused
2044 variable.
2045
2046 * misc.c ({,target_}a2i): Rewrite to not use strtoul.
2047
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
2050 LIBS.
2051
2052 Mon May 6 11:31:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2053
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
2056 of len bytes.
2057
2058 Fri May 3 15:07:42 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2059
2060 * Makefile.in: Correctly build simulator for build machine != host
2061 machine.
2062
2063 Tue Apr 30 18:46:05 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2064
2065 * configure.in (--enable-hostendian): Rework so the default uses
2066 the AC_C_BIGENDIAN results. Only run AC_C_BIGENDIAN if not cross
2067 compiling.
2068 * configure: Regenerate.
2069
2070 * sim-endian.h: Add more tests for host endian to support more
2071 platforms in a cross compilation environment.
2072
2073 Wed Apr 17 14:38:06 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2074
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.
2079
2080 * options.c (print_options): Print out WITH_STDIO.
2081
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.
2087
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.
2091
2092 * configure.in (--enable-sim-stdio): Add new switch to control
2093 whether stdio is used for console I/O.
2094 * configure: Regenerate.
2095
2096 * interrupts.c (external_interrupt): Declare it to be
2097 INLINE_INTERRUPTS, not INLINE_CPU.
2098
2099 Mon Apr 15 23:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2100
2101 * events.c (insert_event_entry): Allow events to be scheduled
2102 *NOW* (at delta time 0). Add assertions to clarify behavour of
2103 event queue.
2104
2105 * events.c (update_time_from_event): New function. Calculates the
2106 number of ticks from the next event. Use this.
2107
2108 Sun Apr 14 21:39:45 1996 Andrew Cagney <cagney@highland.com.au>
2109
2110 * emul_netbsd.c (do_break): Return 0 if success (instead of
2111 adjusted break).
2112
2113 * device_table.c (vm_ioctl_callback): Don't return adjusted break
2114 (isn't needed).
2115
2116 Sun Apr 14 21:32:41 1996 Andrew Cagney <cagney@highland.com.au>
2117
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.
2122
2123 * device_table.c (stack_ioctl_callback): Return 0 status.
2124 (vm_ioctl_callback): Ditto
2125
2126 Sat Apr 13 00:00:24 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2127
2128 * emul_netbsd.c (do_read): Correctly set the return value.
2129 (do_getpid): Ditto.
2130 (do_getuid): Ditto.
2131 (do_geteuid): Ditto.
2132 (do_dup): Ditto.
2133 (do_getegid): Ditto.
2134 (do_getgid): Ditto.
2135 (do_sigprocmask): Ditto.
2136 (do_umask): Ditto.
2137 (do_dup2): Ditto.
2138 (do_gettimeofday): Ditto.
2139 (do_getrusage): Ditto.
2140 (do_fstat): Ditto.
2141 (do_stat): Ditto.
2142 (do_lseek): Ditto.
2143 (do___sysctl): Ditto.
2144
2145 Fri Apr 12 20:56:47 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2146
2147 * device_table.c (vm_ioctl_callback): Don't access the processor
2148 registers directly, instead leave it to the caller to handle this.
2149
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.
2153
2154 * emul_generic.c (emul_write_status): Change so that r3 contains
2155 either status or errno and failure is indicated by SO.
2156
2157 Thu Apr 4 23:03:38 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2158
2159 * emul_bugapi.c (emul_bugapi_create): More strict check of OEA
2160 address.
2161
2162 Thu Apr 4 20:58:05 1996 Andrew Cagney <cagney@highland.com.au>
2163
2164 * interrupts.h (interrupts): New structure contains state of
2165 pending interrupts.
2166
2167 * cpu.c (cpu_interrupts): New function. Pending interrupt status
2168 in the cpu and grant access to it. Add interrupts to cpu
2169 structure.
2170
2171 Fri Mar 29 22:09:25 1996 Andrew Cagney <cagney@highland.com.au>
2172
2173 * device.c (device_tree_add_parsed): Check that the creation of a
2174 device instance worked before using it.
2175
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.
2178
2179 Fri Mar 29 21:30:56 1996 Andrew Cagney <cagney@highland.com.au>
2180
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.
2183
2184 * device_table.c (halt, icu, console): Delete.
2185
2186 * Makefile.in (hw_pal.o): New dependency.
2187
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.
2191
2192 Fri Mar 29 20:17:17 1996 Andrew Cagney <cagney@highland.com.au>
2193
2194 * hw_iobus.c (hw_iobus_attach_address_callback): Move from
2195 device_table.c to here.
2196
2197 * Makefile.in (hw_iobus.o): New dependency.
2198
2199 Fri Mar 29 12:17:58 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2200
2201 * emul_bugapi.c (_os_emul_data): Add fields for output, input.
2202 (emul_bugapi_create): Create input, output from /chosen/stdin and
2203 /chosen/stdout.
2204 (emul_bugapi_do_{read,write}): Switch to use device_instance
2205 interface.
2206 (emul_bugapi_instruction_call): Change calls to
2207 emul_bugapi_do_{read,write} to pass device instance argument.
2208
2209 Tue Mar 26 14:57:58 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2210
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.
2213
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.
2217
2218 Mon Mar 25 22:07:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2219
2220 * configure: Regenerate with autoconf 2.9.
2221
2222 Thu Mar 21 00:14:26 1996 Andrew Cagney <cagney@highland.com.au>
2223
2224 * device_table.h: Always include string headers.
2225
2226 Thu Mar 21 00:06:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2227
2228 * main.c (error): Be careful to not try to print out statistics
2229 when the simulation was never created.
2230
2231 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2232
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.
2235
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
2239 simulation).
2240
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.
2244
2245 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2246
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.
2251
2252 * cpu.c (cpu_decrement_event): adjust
2253
2254 * events.c (event_queue_process): adjust
2255
2256 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2257
2258 * device.h, device.c (device_system): New, returns a handle for
2259 the system given the device.
2260
2261 * device.c (device_address_init): Store a pointer back to the
2262 system in each devices node.
2263
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).
2266
2267 * device.c (device_address_init, device_data_init): Adjust.
2268
2269 * hw_cpu.c, hw_nvram.c, hw_memory.c, hw_eeprom.c, device_table.c:
2270 Adjust.
2271
2272 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2273
2274 * interrupts.c (decrementer_interrupt, external_interrupt):
2275 Remember that an interrupt wasn't delivered so that it can be
2276 tried again later.
2277
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.
2282
2283 * ppc-instructions (mtmsr, mfmsr, rfi): Check for posibility of
2284 a pending interrupt being delivered using check_masked_interrupt().
2285
2286 * cpu.c (cpu_decrement_event): Just call decrementer_interrupt()
2287 leaving it to that module to handle both interrupt synchronization
2288 and masking.
2289
2290 * cpu.c (struct _cpu): remove variables that were going to record
2291 pending decrementer and external interrupts.
2292
2293 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2294
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.
2299
2300 Mon Mar 4 06:06:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2301
2302 * hw_nvram.c: NVRAM device that includes a real-time clock that is
2303 updated each second.
2304
2305 Mon Mar 4 04:18:50 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2306
2307 * device.h (attach_type): Remove attach_default type address
2308 spaces. Will replace with levels of callback memory.
2309
2310 * corefile.h, corefile.c (new_core_mapping), corefile.c
2311 (core_map_attach): Replace default attach with a layerd callback
2312 approach.
2313
2314 Sun Mar 3 03:58:46 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2315
2316 * device.c (split_property_specifier): ensure that only a single
2317 property is found.
2318 (split_value): New function, parses the value part of a device
2319 spec.
2320
2321 * device.c (device_tree_add_parsed): Use the interrupt conversion
2322 functions to determine the interrupt port numbers.
2323
2324 * device_table.h: Add table that maps between an interrupts
2325 symbolic name and its port number.
2326
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.
2330
2331 Sun Mar 3 03:23:59 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2332
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.
2337
2338 * device.h, device.c: Re-order declaration and definition of
2339 property functions.
2340
2341 Sun Mar 3 03:10:22 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2342
2343 * device.c (device_tree_print_device, device_tree_add_parsed):
2344 Remove references to phandle properties.
2345
2346 Wed Feb 28 00:43:07 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2347
2348 * Makefile.in (corefile.o): missing dependency on device_table.h
2349 etc.
2350
2351 Tue Feb 27 23:59:35 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2352
2353 * device_table.h: Revamp device init callbacks so that they are a
2354 sub structure.
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
2358 as redundant.
2359 * device_table.c, hw_memory.c: adjust.
2360
2361 * (io): ditto.
2362 * (dma): ditto.
2363 * (device_instance): ditto.
2364 * (ioctl): ditto.
2365 * (address nee config_address): ditto.
2366 * (interrupt): ditto.
2367
2368 Mon Feb 26 21:11:20 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2369
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
2373 compiler any way.
2374
2375 Mon Feb 26 22:47:15 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2376
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.
2381
2382 * Makefile.in (device_table.o): now depends on hw.c a generated
2383 table of hw.
2384
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.
2388
2389 * device.c (device_template_create_device): Handle new two level
2390 device lookup table.
2391 * device.c (device_usage): ditto.
2392
2393 Mon Feb 26 22:24:00 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2394
2395 * device_table.c: Delete the memory device (moved to hw_memory.c).
2396
2397 * hw_memory.c: New file. Just an OpenBoot memory device.
2398
2399 Wed Jan 17 21:47:34 1996 Andrew Cagney <cagney@highland.com.au>
2400
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
2405 attached.
2406
2407 * device.c (device_tree_init): Update to perform staged
2408 initialization.
2409
2410 * device.c (device_init): Delete.
2411
2412 Wed Jan 17 21:43:09 1996 Andrew Cagney <cagney@highland.com.au>
2413
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.
2417
2418 * emul_chirp.c (emul_chirp_create): Use
2419 * emul_bugapi.c (emul_bugapi_create): Ditto
2420 * emul_netbsd.c (emul_netbsd_create): Ditto
2421
2422 Wed Jan 17 21:24:50 1996 Andrew Cagney <cagney@highland.com.au>
2423
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.
2428
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
2435
2436 Wed Jan 17 21:18:27 1996 Andrew Cagney <cagney@highland.com.au>
2437
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
2447
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
2453
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.
2457
2458 Wed Jan 17 20:07:15 1996 Andrew Cagney <cagney@highland.com.au>
2459
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
2462 is used.
2463
2464 * device.c (device_tree_add_*): Delete. Replaced by above.
2465
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
2471
2472 * device.c (scan_*): Delete
2473
2474 * device.c (device_tree_find_device): Rewrite to use above.
2475 * device.c (device_add_property): Ditto
2476
2477 Wed Jan 17 19:51:56 1996 Andrew Cagney <cagney@highland.com.au>
2478
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.
2483
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
2488 usage.
2489
2490 * main.c (main): Update to use new system
2491 * sim_calls.c (sim_open, sim_do_command): Ditto
2492
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.
2496
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.
2501
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
2504 created from it.
2505
2506 * psim.c (psim_create): Update to handle above way of creating
2507 things. Extract all information from the device tree.
2508
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.
2512
2513 Wed Jan 17 19:46:07 1996 Andrew Cagney <cagney@highland.com.au>
2514
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.
2519
2520 * debug.c: Add to trace_description table.
2521
2522 * main.c (main): Use above trace instead of local variable
2523 * sim_calls.c (sim_close): Ditto
2524
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.
2528
2529 * psim.c (psim_create): Dump device tree if enabled. If nump
2530 selected, exit psim immediatly.
2531
2532 Wed Jan 17 19:36:52 1996 Andrew Cagney <cagney@highland.com.au>
2533
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
2540
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
2544
2545 Wed Jan 17 18:36:09 1996 Andrew Cagney <cagney@highland.com.au>
2546
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
2551 interrupt events.
2552
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
2561
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
2566
2567 * device_table.c (unimp_*) : Update to match
2568
2569 * device_table.c (icu_io_write_buffer_callback) : Update to use
2570 interface.
2571 * device_table.c (icu_interrupt_event_callback) : Ditto
2572
2573 Wed Jan 17 18:18:40 1996 Andrew Cagney <cagney@highland.com.au>
2574
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.
2580
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
2585
2586 * Makefile (device.o): Add dependency on cap.
2587
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
2592
2593 * Makefile (emul_chirp.o): Remove dependency on cap
2594
2595 Sat Jan 6 10:13:26 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2596
2597 * emul_chirp.c (map_over_chirp_note): Tighten up (and fix) checks
2598 on OpenBoot note section.
2599
2600 Fri Jan 5 20:28:53 1996 Andrew Cagney <cagney@hignland.com.au>
2601
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.
2610
2611 Fri Jan 5 18:55:34 1996 Andrew Cagney <cagney@highland.com.au>
2612
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.
2616
2617 * emul_chirp.c (services): Add all OpenBoot services to table.
2618
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.
2622
2623 Fri Jan 5 18:52:28 1996 Andrew Cagney <cagney@highland.com.au>
2624
2625 * Makefile.in (maintainer-clean): Remove .log, core and *.core
2626 (From NetBSD) files.
2627
2628 Wed May 29 22:57:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2629
2630 * ChangeLog.00, ChangeLog: ChangeLog from gdb-4.16 becomes
2631 ChangeLog.00
2632