]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/ppc/ChangeLog
* psim.c (psim_options): Ignore -E option (sets endianness).
[thirdparty/binutils-gdb.git] / sim / ppc / ChangeLog
1 Thu Apr 17 03:28:03 1997 Doug Evans <dje@canuck.cygnus.com>
2
3 * psim.c (psim_options): Ignore -E option (sets endianness).
4 * sim_calls.c: #include bfd.h.
5 (entry_point): New static local.
6 (sim_load): Return SIM_RC. New arg abfd. Set start address from bfd.
7 (sim_create_inferior): Return SIM_RC. Delete arg start_address.
8
9 Tue Apr 15 14:57:18 1997 Ian Lance Taylor <ian@cygnus.com>
10
11 * Makefile.in (INSTALL): Set to @INSTALL@.
12 (INSTALL_XFORM, INSTALL_XFORM1): Remove.
13 (install): Depend upon installdirs. Use $(program_transform_name)
14 directly, rather than using $(INSTALL_XFORM).
15 (installdirs): New target.
16
17 Fri Apr 4 17:54:36 1997 Jim Wilson <wilson@cygnus.com>
18
19 * Makefile.in (tmp-hw, tmp-pk): Use for loop to eliminate duplicates
20 rather than the non-portable cat -n.
21
22 Mon Apr 14 16:29:51 1997 Ian Lance Taylor <ian@cygnus.com>
23
24 * Makefile.in (INSTALL): Change install.sh to install-sh.
25
26 Tue Apr 1 18:15:14 1997 Jim Wilson <wilson@cygnus.com>
27
28 * ppc-instructions: Change milhwu to mulhwu.
29
30 Wed Apr 2 15:38:08 1997 Doug Evans <dje@canuck.cygnus.com>
31
32 * sim_calls.c (sim_open): New arg `kind'.
33
34 Wed Apr 2 14:51:17 1997 Ian Lance Taylor <ian@cygnus.com>
35
36 * COPYING: Update FSF address.
37
38 Tue Mar 25 16:17:59 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
39
40 * main.c (sim_io_read_stdin): Only compile unbuffered IO code if
41 all the required features are supported by the host OS.
42
43 Tue Mar 25 12:13:02 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
44
45 * emul_bugapi.c (emul_bugapi_create): Guard against NULL images.
46
47 * configure.in (enable-sim-endain): Correct typo in usage (from
48 Erik Landry <landry@ENGR.ORST.EDU>).
49 * configure: Re-generate.
50
51 Fri Mar 14 18:23:02 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
52
53 * Makefile.in (targ-vals.def): Re-do rule so that it works with
54 FreeBSD's make. Didn't like $<.
55
56 Thu Mar 13 12:55:48 1997 Doug Evans <dje@canuck.cygnus.com>
57
58 * sim_calls.c (sim_open): New SIM_DESC result. Argument is now
59 in argv form.
60 (other sim_*): New SIM_DESC argument.
61
62 Thu Feb 13 10:35:14 1997 Andrew Cagney <cagney@phydeaux.cygnus.com>
63
64 * ppc-opcode-simple-array, ppc-opcode-simple-goto,
65 ppc-opcode-simple-switch, ppc-opcode-complex-array,
66 ppc-opcode-complex-goto, ppc-opcode-complex-switch,
67 ppc-opcode-jump, ppc-opcode-goto, ppc-opcode-flat: Delete,
68 superseeded by --sim-decode-mechanism option.
69
70 * ppc-opcode-simple, dc-simple: Rename to be 8.3
71 * ppc-opcode-complex, dc-complex: Ditto.
72 * ppc-opcode-stupid, dc-stupid: Ditto.
73 * ppc-opcode-test-1, dc-test.01: Ditto.
74 * ppc-opcode-test-2, dc-test.02: Ditto.
75
76 * configure.in (--enable-sim-opcode): Change prefix to dc- instead
77 of ppc-opcode-.
78
79 Wed Feb 12 19:33:45 1997 Andrew Cagney <cagney@phydeaux.cygnus.com>
80
81 * Many of the ppc-opcode-* files are identical baring the type of
82 lookup table. Instead of having multiple tables, igen can do this
83 via an additional option.
84
85 * ld-decode.h, ld-decode.c (force_decode_gen_type): New function,
86 allow the type of generated table specified in the decode file to
87 be overridden.
88
89 * ld-decode.c (load_decode_table): Allow the table type to be
90 overridden.
91
92 * igen.c (main): Add -T <mechanism> option so that an overriding
93 instruction decode mechanism can be specified.
94
95 * configure.in: New option --sim-decode-mechanism to control
96 igen's new -T <mechanism> flag.
97 * Makefile.in (IGEN_FLAGS): Add IGEN_IDECODE_MECHANISM set by the
98 configure script.
99 * configure: Regenerate.
100
101 Tue Feb 11 13:49:10 1997 Michael Meissner <meissner@tiktok.cygnus.com>
102
103 * events.c (event_queue_create): Don't use NULL to initialize an
104 integer field.
105 (even_queue_{init,schedule_after_signal,tick}): Conditionalize use
106 of sigprocmask to appropriate autoconf test.
107
108 * main.c ({cntrl_c,main}): Use RETSIGTYPE for signal return type,
109 don't assume void.
110 * sim_calls.c (sim_{ctrl_c,resume}): Ditto.
111
112 * Makefile.in (callback.o): Define HAVE_CONFIG_H, so callback.c
113 includes our config.h.
114
115 Tue Feb 4 13:42:59 1997 Doug Evans <dje@canuck.cygnus.com>
116
117 * configure.in: Fix typo in test for callback.c.
118 * configure: Regenerated.
119
120 Fri Feb 7 10:04:25 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
121
122 * emul_chirp.c (emul_chirp_create): Handle a virtbase of -1 being
123 found in the device tree.
124
125 Wed Feb 5 10:56:27 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
126
127 * Property create/initialization still wasn't correctly ordered.
128 Should be delaying everything related to ihandle creation until
129 after the rest of the tree has been established.
130
131 * device.c (device_find_ihandle_runtime_property): Update.
132 (device_add_ihandle_runtime_property): Update.
133
134 * tree.c (parse_ihandle_property): Delay lookup of the device to
135 be opened until the ihandle initialization phase.
136 * tree.c (print_properties): Update.
137
138 Wed Feb 5 10:56:27 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
139
140 * gen-icache.c (print_icache_extraction): Add a reason parameter.
141 Augment each extracted field with a comment citing the codes
142 origin. Should simplify tracking down incorrect cache
143 extractions.
144
145 Tue Feb 4 17:44:51 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
146
147 * gen-icache.c: Generalize code handling XXX_is_NNN so that it
148 works for normal and boolean table entries.
149
150 * psim.c (psim_write_memory): last_cpu == -1 or nr_cpus is now
151 valid. Handle this just like *_{read,write}_register now handles
152 it.
153
154 Mon Feb 3 17:18:16 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
155
156 * events.c (insert_event_entry): Correct loop termination
157 assertions.
158
159 Fri Jan 31 16:20:26 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
160
161 * psim.c (psim_options): Add new option -c for max-iterations or
162 count.
163 (psim_usage): Document.
164 (psim_max_iterations_exceeded): New function, abort simulation if
165 max iterations exceeded.
166
167 * gen-idecode.c: Re-work the table lookup code so that it assumes
168 that the entry is a leaf by default. Simplify the boolean table
169 entry code so that it involves a mask + test instead of shift +
170 shift + mask + test.
171
172 * gen-idecode.c: Correct generated igen body so that it no drops
173 or doubles clock interrupts.
174
175
176 Thu Jan 30 11:23:20 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
177
178 * Makefile.in (BUILT_SRC_WO_CONFIG): Change targ-vals.* to
179 @sim_targ_vals@
180
181 * configure.in (sim_callback, sim_targ_vals): Set sim_targ_valls
182 if common callback is present.
183
184 Wed Jan 29 12:32:41 1997 Michael Meissner <meissner@tiktok.cygnus.com>
185
186 * configure.in (sim_callback): If the gdb is post 4.16, configure
187 callback support from the common directory.
188 * configure: Regenerate.
189
190 * Makefile.in (BUILT_SRC_WO_CONFIG): Add targ-vals.{h,def} and
191 targ-map.c.
192 (GDB_OBJ): Add callback support configured in.
193 (gentmap,targ-vals.def): Build from common directory.
194 (targ-vals.h,targ-map.c): Build by running gentmap.
195 (callback.o): Build from source in common directory.
196 (targ-map.o): Add dependency.
197 (clean): Remove gentmap.
198
199 Wed Jan 29 12:14:19 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
200
201 * igen wasn't aborting if the opcode table contained no valid
202 fields.
203
204 * misc.c (name2i): Possibly abort if an invalid name is
205 encountered.
206 * ld-decode.c: Abort if the table type isn't found.
207
208 Wed Jan 29 12:14:19 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
209
210 * When performance monitoring is disabled, it is still possible to
211 determine the simulation speed by looking at the number of elapsed
212 ticks recorded by the event queue.
213
214 * psim.c (psim_write_register, psim_read_register): Force the cpu
215 to zero when it is either of `-1' or `nr_cpus'. In both cases the
216 next cpu would be zero any way.
217
218 * mon.c (mon_print_info): If possible, print the system cycle
219 performance. This is an indication of the number of instructions
220 per second.
221
222 Wed Jan 29 12:14:19 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
223
224 * The code to allow an event queue to be updated during a signal
225 was missing. For main.c, a cntrl-c simulation termination wasn't
226 handled cleanly.
227
228 * The simulation would not correctly restart if an event requested
229 that the simulation be halted.
230
231 * psim.c (psim_options): Add hack to -i option to optionally
232 include a level vis -i2.
233 (psim_usage): Document.
234
235 * main.c (cntrl_c, cntrl_c_simulation): New functions. When a
236 cntrl-c occures schedule an event to halt the simulation.
237 (main): Catch CNTRL-C signals with the function cntrl_c.
238
239 * events.c (event_queue_process): Mask interrupts while
240 manipulating the async event queue.
241 (event_queue_init): Ditto.
242 (event_queue_schedule_after_signal): Ditto.
243
244 * events.c (event_queue_process): Mark the event queue as being in
245 the processing state when processing has started. Adjust code
246 so that it is tolerant of halts.
247 (event_queue_init): Start the event queue out with processing
248 false.
249 (event_queue_tick): Check that processing isn't still being
250 performed.
251
252 * gen-idecode.c (print_run_until_stop_body): Call
253 event_queue_process_events to clear possibly pending events before
254 starting a simulation run. Re-arange main loop so that simulator
255 is correctly restarted when an event halts the simulation.
256
257 * psim.c (psim_halt): Handle an event halting the simulation.
258 * psim.c (psim_init): Adjust initial cpu - == -1 - to match
259 reworked idecode.
260
261 Wed Jan 29 12:14:19 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
262
263 * ppc-opcode-complex: Correct typo - was expanding ORA instead of
264 RA. Based on instruction frequency stats, expand additional
265 instructions.
266 * ppc-instructions: Change all `RA == 0' to RA_is_0.
267
268 * ppc-opcode-stupid: Move all but the basic table in -complex into
269 here. Update to new format.
270
271 * Makefile.in (tmp-defines): New target. Force defines.h to always
272 be built. Hence get ppc-opcode-goto to build.
273
274 Tue Jan 28 13:00:19 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
275
276 * hw_com.c (hw_com_instance_read, hw_com_instance_write):
277 Implement.
278
279 Thu Jan 23 09:07:26 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
280
281 * hw_trace.c (hw_trace_init_data): Delete. The trace options need
282 to be initialized independant of the rest of the simulation
283 initalization. Otherwize a trace option explictly set from gdb
284 could be overridden by hw_trace.
285
286 * psim.c (psim_options): Clarify reason why the trace ioctl occures.
287
288 * FIXME: The trace code is too scattered - hw_trace.c, psim.c,
289 debug.c. It could be much simpler.
290
291 Thu Jan 23 09:07:26 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
292
293 * Some devices support removable media. Add hooks to the disk
294 device so that it supports this.
295
296 * device.c (device_add_string_array_property,
297 device_find_string_array_property): New functions, manipulate
298 properties containing an array of strings.
299 (device_find_string_property): Allow a string array.
300 (device_init_static_properties): Update.
301 (device_init_runtime_properties): Update.
302
303 * hw_disk.c (hw_disk_ioctl): Add ioctl for changing the disk
304 media. If no file image is specified, use the next one in the
305 image property list.
306 (hw_disk_init_address): Change the file property so that it is a
307 string array - use the first entry for the initial file image.
308
309 * tree.c (print_string_aray_property): New function - print a
310 string array.
311 (print_properties): Adjust.
312 (print_string): Write a string, handling double quotes.
313
314 * device.h: Define an ioctl to `change-media' with an optional new
315 media image.
316
317 * hw_disk.c: Allow floppy disk devices to be specified.
318
319 * psim.c (psim_command): New function, parse more complex psim
320 commands such as "change-media" and "trace".
321 * sim_calls.c (sim_do_command): Use.
322
323 Wed Jan 22 09:38:33 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
324
325 * For expressions like (RA == 0) that are entered in to the cache
326 as RA_is_0. If possible generate the result of the expression so
327 that the compiler gets a better chance of eliminating dead
328 branches.
329
330 * gen-icache.c (print_icache_extraction): For a cache entry of
331 the form <name>_is_<const> where it is a boolean field, generate
332 the result of the expression instead of the expression its self.
333 (print_icache_body): Remove code that was looking for *_is_0 and
334 then generating corresponding definitions.
335
336 * gen-icache.c (print_icache_struct): If there is no cache, do not
337 output expressions in idecode.h file.
338
339 * gen-icache.c (print_icache_body): Output them here.
340
341 * ppc-opcode-complex: Clarify constant values for SPR==LR register
342 expansion.
343
344 * ppc-cache-rules (RA_is_0, SPR_is_256): Two new cache entries.
345
346 Wed Jan 22 12:24:52 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
347
348 * The code that put values in and extracted values from the cache
349 was too compilicated. The cache table did not allow values to be
350 computed from cache entries. #defines could only be used when a
351 cache was present, remove the restriction.
352
353 * ld-cache.h, ld-cache.c: Add a new cache entry type - SCRATCH. A
354 scratch variable is defined when a cache entry is beinf
355 filled. Change the definition of a COMPUTE variable to be defined
356 when the cache entry is being used.
357 * gen-icache.c: Update.
358
359 * ld-cache.h, ld-cache.c: Change field names so that their meaning
360 is more obvious. old_name->field_name, new_name->derived_name.
361 * gen-icache.c: Update
362
363 * gen-icache.h, gen-icache.c (print_icache_body): Make the three
364 different types of cache code - put into cache, extract from
365 cache, no cache - an explicit argument to print_icache_body.
366 * gen-icache.c (print_icache_extraction): Ditto.
367
368 * gen-semantics.c (print_c_semantic): Update use.
369 * gen-idecode.c (print_jump_insn): Update use.
370 * gen-icache.c (print_icache_function): Update use.
371
372 * igen.c (main): Change 'R' option so that it does not force the
373 cache.
374
375 * configure.in (enable-sim-icache): Clarify description. Make
376 #define one of the defaults regardless of the cache. Probably
377 should revamp and add a separate option.
378
379 Tue Jan 21 13:26:10 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
380
381 * pk_disklabel.c (block_is_fdisk): Tidy up traces - use dos
382 partition numbering.
383 (pk_disklabel_create_instance): Partition 1..4 are valid - not
384 1..3.
385 (is_iso9660): New function, verify a CD9660 File system.
386 (pk_disklabel_create_instance): Start expanding so that active
387 partition selection is supported.
388
389 Mon Jan 20 11:20:15 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
390
391 * The cap object was retaining a reference to the instance of a
392 device after it was deleted. Instead add and remove cap's from the
393 cap db as they are created and deleted. This ensuring that a
394 capibility is only used during the lifetime of the corresponding
395 object.
396
397 * cap.h, cap.c: Correct cap type - was signed32 should be
398 signed_cell.
399
400 * cap.c (cap_add, cap_remove): New methods for cap object that
401 allow the explicit addition and removal of internal objects that
402 the cap knows about.
403
404 * cap.c (cap_init): Rewrite. Verify that the only objects
405 remaining in the cap data base are those that were entered first.
406 Thse objects will be the permenant ones.
407 * device.c (device_init_address): Remember to initialize the cap
408 database.
409
410 * device.c (device_create_instance_from): Explicitly add device
411 instances to the cap database. Simplify create code.
412 (device_instance_delete): Explicitly remove device instances from
413 the cap database.
414
415 * device.c (device_create_from): Explicitly add a device to the
416 cap data base.
417
418 * device.c (device_create_from): Always set the cap members.
419
420 * hw_disk.c: Output the instance when tracing.
421
422 Sun Jan 19 16:44:29 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
423
424 * tree.c (split_device_specifier): Add support for aliases when
425 looking up a device. Now needs a device as an argument.
426 (split_property_specifier): Ditto.
427
428 Sun Jan 19 15:28:23 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
429
430 * The memory "claim" and "release" methods take an address and
431 size as arguments. These may be multi cell values. Initially fix
432 the memory code so that they check/detect this. Leave the
433 adjustment of any clients to later.
434
435 * hw_memory.c (hw_memory_instance_claim,
436 hw_memory_instance_release): Handle multi-cell memory devices.
437
438 * hw_memory.c (hw_memory_instance_claim): Be tolerant towards the
439 release of memory regions that were not claimed.
440
441 Fri Jan 17 12:01:07 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
442
443 * device.h, device.c (device_instance_call_method): Correct return
444 type - can return either 0 or -1, hence should be a signed type.
445 * device_table.h: Ditto.
446
447 * hw_memory.c (hw_memory_instance_claim,
448 hw_memory_instance_release): Update.
449 * hw_disk.c (hw_disk_max_transfer, hw_disk_block_size,
450 hw_disk_nr_blocks): Ditto.
451
452 Fri Jan 17 11:50:13 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
453
454 * emul_chirp.c (chirp_emul_claim): Implement using the "claim"
455 method belonging to "/chosen/memory".
456 (chirm_emul_release): Ditto.
457
458 * Makefile.in (LIB_INLINE_SRC): Remove emul_* from list of files
459 that are inlined. These modules are called via a table and are
460 not made inline.
461
462 * hw_init.c (update_for_binary_section): Fix failure to allocate
463 memory used by the binary in real-mode executions. If "claim"
464 property is present, allocate memory from the "/chosen/memory"
465 device.
466
467 * emul_chirp.c (emul_chirp_create): Specify that memory should be
468 claimed when loading a real image.
469
470 * hw_memory.c (hw_memory_instance_claim): Don't page align memory
471 allocations.
472
473 * hw_memory.c (hw_memory_instance_release): Avoid infinite loop
474 when merging adjacent memory chunks.
475
476 Thu Jan 16 08:51:25 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
477
478 * vm.h (vm_data_map_read_buffer, vm_data_map_write_buffer): Add
479 optional PROCESSOR & CIA args so that this routine also abort an
480 access.
481
482 * vm_n.h (vm_data_map_read_N, vm_data_map_write_N): For a
483 miss-aligned access when a transfer fails abort.
484
485 * emul_bugapi.c (emul_bugapi_do_write): Use emul_read_buffer
486 instead of the vm_read_buffer.
487 * emul_netbsd.c (do_write): Ditto.
488 * emul_unix.c (do_unix_write): Ditto.
489
490 Wed Jan 15 14:38:25 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
491
492 * configure.in (--enable-sim-jump): Default is NULL and not -E.
493 * configure: Regenerate.
494
495 * basics.h (__attribute__): Enable attributes if GCC >= 2.6.
496 (UNUSED): Only enable UNUSED if GCC >= 2.7.
497
498 * gen-icache.c (print_icache_extraction): Print UNUSED macro
499 instead of explicit __unused__ attribute.
500 (print_icache_body): Ditto.
501 * idecode_expression.h (FPSCR_BEGIN): Use UNUSED.
502
503 Wed Jan 15 13:54:50 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
504
505 * cpu.h, cpu.c (cpu_synchronize_context): Add CIA argument as
506 reference point.
507
508 * vm.c (vm_synchronize_context): Add PROCESSOR and CIA as
509 arguments so that there is a reference point for recovery.
510 (vm_synchronize_context): Pass processor+cia for errors.
511 (om_unpack_sr): Ditto.
512 (om_unpack_srs): Ditto.
513 * vm.c (vm_create): Review error messages.
514
515 * vm.c: Include "cpu.h" so that cpu_error is visible.
516
517 * ppc-instructions (Return From Interrupt): Pass CIA.
518 (Instruction Synchronize): Ditto.
519 * psim.c (psim_init): Ditto.
520
521 Wed Jan 15 12:25:11 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
522
523 * cpu.h, cpu.c (cpu_error): Aborts simulation with error message,
524 but also saves current processor state.
525
526 * basics.h: Move #include <stdarg.h> to here from device_table.h.
527
528 * interrupts.c (perform_oea_interrupt): Use. No longer loose CIA
529 when simulation aborted.
530 (program_interrupt): Ditto.
531 (floating_point_unavailable_interrupt): Ditto.
532 (alignment_interrupt): Ditto.
533 (floating_point_assist_interrupt): Ditto.
534 (perform_oea_interrupt): Ditto.
535 (machine_check_interrupt): Ditto.
536
537 Tue Jan 14 12:19:10 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
538
539 * ppc-instructions (Move from Special Purpose Register): Support
540 move from DEC.
541
542 Mon Jan 13 16:58:12 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
543
544 * debug.h, debug.c: Add "interrupts" trace option.
545
546 * interrupts.c (data_storage_interrupt): Add tracing.
547 (machine_check_interrupt): Ditto.
548 (instruction_storage_interrupt): Ditto.
549 (alignment_interrupt): Ditto.
550 (program_interrupt): Ditto.
551 (floating_point_unavailable_interrupt): Ditto.
552 (system_call_interrupt): Ditto.
553 (floating_point_assist_interrupt): Ditto.
554 (deliver_hardware_interrupt): Ditto.
555
556 * interrupts.c (program_interrupt): For UEA mode, halt the
557 processor - so that the current state is saved - instead of
558 aborting.
559 (floating_point_unavailable_interrupt): Ditto.
560 (floating_point_assist_interrupt): Ditto.
561
562 Thu Jan 2 09:10:41 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
563
564 * interrupts.c (perform_oea_interrupt): Halt rather than abort on
565 a double interrupt.
566
567 Wed Jan 1 22:54:52 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
568
569 * ppc-instructions (Store Multiple Word, Load Multiple Word):
570 Enable.
571
572 * tree.c (print_properties): For an array consider printing it out
573 as an integer array.
574
575 * hw_memory.c (hw_memory_init_address): If an "available" property
576 is present, use that to initialize the available memory instead of
577 using the reg property.
578
579 * emul_generic.c (emul_add_tree_hardware): Add "available"
580 property to memory device.
581
582 Fri Dec 20 13:19:07 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
583
584 * ppc-instructions (Rotate Left Word then AND with Mask): Enable.
585
586 * device.c (device_instance_call_method): Was only looking at the
587 first method.
588
589 * hw_disk.c (hw_disk_nr_blocks): Implement #blocks method.
590 (hw_disk_block_size): Implement block-size method.
591 (hw_disk_max_transfer): Implement max-transfer method.
592
593 * hw_phb.c (hw_phb_init_address): Reinit the rest of the PHB.
594
595 * emul_chirp.c (chirp_emul_instance_to_path): Recover from an
596 invalid ihandle.
597 (chirp_emul_instance_to_package): Ditto.
598 (chirp_emul_method): Ditto.
599 (chirp_emul_read): Ditto.
600 (chirp_emul_write): Ditto.
601 (chirp_emul_close): Ditto.
602 (chirp_emul_seek): Ditto.
603 (chirp_emul_package_to_path): Ditto (for phandle).
604 (chirp_emul_package_to_path): Return the length.
605
606 * psim.c (psim_merge_device_file): Allow continuation lines.
607
608 Thu Dec 19 11:09:43 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
609
610 * emul_chirp.c (chirp_emul_boot): Implement. Well report the new
611 string and exit.
612
613 * emul_chirp.c (chirp_emul_exit): Correct type of args struct
614 members - *_cell not host dependant int.
615
616 Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
617
618 * interrupts.c (perform_oea_interrupt): Print additional
619 information if a double interrupt is encountered.
620
621 Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
622
623 * psim.c (psim_merge_device_file): Tolerate an incorrect file-name
624 being specified with the -f option.
625 (psim_merge_device_file): Correct check for end of string.
626
627 Wed Dec 18 17:49:59 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
628
629 * emul_chirp.c (chirp_emul_peer): Was falling off the end of the
630 list of devices. Return zero to the client instead.
631 * emul_chirp.c (chirp_emul_child): Ditto
632 * emul_chirp.c (chirp_emul_parent): Ditto
633
634 * device.c (device_root): Assert assumption about the device being
635 valid.
636
637 Tue Dec 17 15:12:38 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
638
639 * emul_chirp.c (emul_chirp_create): Add description property to
640 each significant node in the device tree.
641 * emul_bugapi.c (emul_bugapi_create): Ditto.
642
643 Fri Dec 13 14:30:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
644
645 * main.c (sim_io_read_stdin): For a single byte STDIO read, use a
646 tempoary two byte buffer. Single byte read with fgets will not
647 work.
648 * main.c: Include errno.h.
649 (sim_io_read_stdin): For non-STDIO, make it work.
650
651 * emul_chirp.c (chirp_emul_read): Return the correct error status.
652
653 Fri Dec 13 14:30:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
654
655 * std-config.h (WITH_STDIO): Don't hard-wire the STDIO mechanism.
656 Instead have each emulation default it to DO_USE_STDIO.
657
658 * emul_generic.c (emul_add_tree_options): Select the STDIO I/O
659 mechanism as the default if enabled or if nothing selected.
660
661 * sim_calls.c (sim_io_read_stdin): Passify GCC's desire for a
662 return value.
663 (sim_io_write_stdout): Ditto.
664 (sim_io_write_stderr): Ditto.
665 * main.c (sim_io_write_stdout): Ditto.
666 (sim_io_write_stderr): Ditto.
667 (sim_io_read_stdin): Ditto.
668
669 Tue Dec 10 10:31:48 1996 Michael Meissner <meissner@tiktok.cygnus.com>
670
671 * emul_chirp.c (emul_chirp_instruction_call): Make *printf calls
672 type correct.
673 * vm.c (om_effective_to_virtual): Ditto.
674 * events.c (event_queue_schedule{,_after_signal}): Ditto.
675 (event_queue_{deschedule,process}): Ditto.
676 * hw_htab.c (htab_decode_hash_table): Ditto.
677 (htab_map_{page,binary}): Ditto.
678 * hw_opic.c (hw_opic_init_data): Ditto.
679 (handle_interrupt): Ditto.
680 (do_processor_init_register_{read,write}): Ditto.
681 (write_vector_priority_register): Ditto.
682 ({read,write}_destination_register): Ditto.
683 (do_suprious_vector_register_{read,write}): Ditto.
684 (do_current_task_priority_register_N_{read,write}): Ditto.
685 (do_timer_frequency_reporting_register_{read,write}): Ditto.
686 (do_timer_N_{current,base}_count_register_{read,write}): Ditto.
687 (do_ipi_N_dispatch_register_write): Ditto.
688 (do_vendor_identification_register_read): Ditto.
689 (do_feature_reporting_register_N_read): Ditto.
690 (do_global_configuration_register_N_{read,write}): Ditto.
691 * hw_phb.c (hw_phb_attach_address): Ditto.
692 (hw_phb_unit_decode): Ditto.
693 (hw_phb_address_to_attach_address): Ditto.
694 (hw_phb_io_{read,write}_buffer): Ditto.
695 * hw_ide.c (setup_fifo): Ditto.
696
697 * sim_calls.c ({defs,callback,remote-sim}.h): Find gdb include
698 files via -I<dir> instead of using "../../gdb/" prefixes.
699
700 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
701
702 * debug.h: Add tracing for the pal device.
703 * hw_pal.c: Update.
704
705 * emul_chirp.c (chirp_emul_getprop): More tracing.
706
707 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
708
709 * device.h, device.c (device_find_ihandle_runtime_property): New
710 function. Reverse of add_ihandle_runtime property.
711 (device_init_runtime_properties): Use it.
712
713 * device.c (find_property_entry): New function returns the
714 internal property spec.
715 (device_set_property): Use.
716 (device_find_property): Use.
717
718 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
719
720 * psim.c (psim_merge_device_file): Strip newline from device
721 specs.
722
723 Tue Dec 10 10:12:44 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
724
725 * hw_htab.c (htab_map_binary): For overlapping text / data maps
726 merge the two. Also check that the merge is safe.
727
728 * emul_chirp.c (emul_chirp_create): Add a description property to
729 the pte's so that they are easier to identify.
730
731 (emul_chirp_create): Don't specify a load address for the CHRP
732 image. Always use the values specified by the executable.
733
734 * hw_htab.c (htab_map_page): Abort if a duplicate map is
735 encountered.
736
737 Mon Dec 9 12:08:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
738
739 * hw_htab.c (htab_map_page): Formatting.
740
741 * emul_chirp.c (emul_chirp_instruction_call): Check for a NULL
742 method name when handling the client call. Also check for other
743 bad call arguments.
744
745 * emul_chirp.c (emul_chirp_create): Allow real-mode?, real-base,
746 etc to be overriden.
747
748 Mon Dec 9 12:08:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
749
750 * os_emul.c (os_emul_create): Use tree find property instead of
751 device find property - sigh.
752
753 Thu Dec 5 10:46:42 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
754
755 * 961205: Release snapshot 961205.
756
757 Thu Dec 5 10:46:42 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
758
759 * configure.in (hostbitsize, bitsize): Fix typo in error message -
760 cannot contain a comma.
761 (sim-warnings): Check for more potential errors.
762
763 * psim.c (psim_usage): Add -f <file> option. Specifies a file
764 containing device tree specifications that should be merged into
765 the device tree.
766
767 * configure.in: Sort options.
768 * configure: Rebuild
769
770 Wed Dec 4 13:57:31 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
771
772 * psim.c (psim_usage): Add -n option - specify number of
773 processors.
774
775 * emul_chirp.c: Add description.
776 * emul_bugapi.c: Ditto.
777 * emul_unix.c: Ditto.
778 * emul_netbsd.c: Ditto.
779
780 Fri Nov 29 11:12:22 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
781
782 * hw_pal.c (hw_pal_attach_address): New function, if an attach is
783 encountered, assume that it is the single disk.
784 * hw_pal.c: Add generic device/size decode methods.
785
786 * hw_nvram.c (hw_nvram_init_address): Use the first nonzero reg
787 property entry when determining the nvram size.
788
789 * hw_core.c: Add generic address/size decode methods.
790
791 * emul_chirp.c (emul_chirp_instruction_call): Return and trace
792 nonzero status from client functions.
793
794 * main.c (error): Always include a cariage return when writing out
795 errors.
796
797 Wed Nov 20 00:36:55 1996 Doug Evans <dje@canuck.cygnus.com>
798
799 * sim_calls.c (sim_resume): Reset sim_should_run if single
800 stepping.
801
802 Thu Nov 28 13:19:46 1996 Andrew Cagney <cagney@kremvax.tpgi.com.au>
803
804 * emul_bugapi.c (emul_bugapi_do_diskio): Add support for multiple
805 optional disks.
806
807 * emul_generic.c (emul_add_tree_hardware): Drop the dummy eeprom.
808 Attach the pal - for I/O - as a pseudo device haning from the
809 firmware sub tree.
810
811 * emul_bugapi.c (emul_bugapi_create): Add a small memory device to
812 the device tree at the address of the hi-mem interrupt vector
813 addreses. Used by bugapi to establish its trap instructions.
814
815 * debug.h: Add a new macro DITRACE for tracing device instances.
816
817 * debug.h: Extend the DTRACE macro so that it can also tests for
818 device specific tracint.
819
820 * device.h, device.c (device_trace): Add method to determine
821 device specific tracing.
822 (device_init_address): Set the devices tracing level.
823
824 Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
825
826 * tree.h, tree.c (tree_device): New files - separate out the
827 device parser and other tree operations from the device.
828
829 * inline.h, inline.c (INLINE_TREE): Add.
830 * device.h, device.c (device_tree_add_parsed): Delete.
831 * Makefile.in (tree.c): Add rules for new file.
832 * Makefile.in: Better order the emul_* files.
833
834 * emul_generic.c (emul_add_tree_hardware): Update.
835 * emul_netbsd.c (emul_netbsd_create): Update.
836 * emul_unix.c (emul_unix_create): Ditto.
837 * emul_chirp.c (emul_chirp_create): Ditto.
838 * emul_bugapi.c (emul_bugapi_create): Ditto.
839 * psim.c (psim_tree): Ditto.
840 * hw_init.c: Ditto.
841
842 * emul_generic.h: Include tree.h
843 * Makefile.in: Add to EMUL_GENERIC_H dependencies.
844
845 * device.h, device.c (device_root): New function - returns the
846 root of the tree.
847 * corefile.c: Use.
848
849 * device.h, device.c (device_clean): New function, clean up device
850 ready for next simulation run. This includes things like deleting
851 interrupt edges and properties created during the simulation and
852 also scrubbing any pre-defined properties.
853 * tree.c (tree_init): Use.
854
855 * device.h, device.c (device_init_static_properties): New
856 function. Initialize any static predefined properties. By static
857 we mean those that have values that can be determined before the
858 device tree initialization has started.
859 * tree.c (tree_init): Use.
860
861 * device.h, device.c (device_init_address): Add code to
862 check/verify the devices #address-cells and #size-cells.
863 (device_add_integer_property): Delete corresponding code.
864 (device_nr_address_cells, device_nr_data_cells): Check for
865 property when returning value.
866
867 * device.h, device.c (device_init_runtime_properties): New
868 function. Initialize those properties that are not `static'. At
869 present the only such property is the ihandle.
870 * tree.c (tree_init): Use.
871
872 * device.h, device.c (reg, ranges): Rework these so that they use
873 an array of the fundamental type - single reg or single range
874 entry.
875
876 * device.h, device.c (device_add_ihandle_runtime_property):
877 Re-implement the adding of an ihandle during tree construction so
878 that it better fits in with device initialization.
879
880 Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
881
882 * device.h, device.c (device_ioctl): Add additional argument -
883 request - so that the caller must always specify the type of
884 the ioctl request.
885
886 * device_table.h: Update.
887 * hw_trace.c (hw_trace_ioctl): Ditto.
888 * hw_vm.c (hw_vm_ioctl_callback): Ditto.
889 * hw_init.c (hw_stack_ioctl_callback): Ditto.
890 * psim.c (psim_options): Ditto.
891
892 Thu Nov 21 12:05:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
893
894 * BUGS: Updated a bit.
895
896 Wed Nov 20 14:06:37 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
897
898 * hw_opic.c: Finish - third round.
899
900 Wed Nov 20 12:02:08 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
901
902 * hw_glue.c (hw_glue_io_read_buffer_callback): Fix miscalc of glue
903 reg index.
904 (hw_glue_io_write_buffer_callback): Ditto.
905
906 Tue Nov 19 21:17:08 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
907
908 * events.c (event_queue_process): Was incorrectly consuming future
909 events on the queue when they should be left alone.
910
911 * debug.h, debug.c (events): Add support for event queue tracing.
912 * events.c: Add event tracing.
913
914 * debug.h, debug.c: Order device trace options.
915
916 Fri Nov 15 15:23:39 1996 Michael Meissner <meissner@tiktok.cygnus.com>
917
918 * pk_disklabel.c (pk_disklabel_create_instance): Fix up some
919 warnings generated by GCC.
920
921 Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
922
923 * sim-endian.h: Add LE versions of byte swap macros. Needed for
924 PCI devices which are little-endian.
925
926 * sim-endian-n.h (endian_le2h_N, endian_h2le_N): Ditto
927
928 Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
929
930 * hw_iobus.c (hw_iobus_attach_address_callback): Change the iobus
931 so that it is implementing a 1-1 address map.
932
933 * emul_generic.c (emul_add_tree_hardware): Adjust.
934
935 * emul_generic.c (emul_add_tree_hardware): Don't add the nvram as
936 a default.
937
938 Sun Nov 17 17:59:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
939
940 * device.c (split_find_device): Be tolerant of missing unit
941 addresses.
942
943 Fri Nov 15 16:49:49 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
944
945 * basics.h (port_direction): New type, specify the direction of
946 any `port'.
947
948 * device.h, device.c (device_interrupt_decode): Include
949 specification of port direction in operations.
950 (device_interrupt_encode): Ditto.
951
952 * device_table.h: Add a direction field to the interrupt port
953 table.
954
955 * device.c (device_tree_add_parsed): Specify port direction.
956
957 Thu Nov 14 21:38:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
958
959 * hw_opic.c: Finish - second round.
960
961 Thu Nov 7 00:18:59 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
962
963 * hw_htab.c (htab_init_data_callback): Allow the virtual-address
964 to be specified as an array which allows 64bit addresses.
965
966 * device.c (device_find_integer_array_property): New function.
967 Simplify the querying of elements of an integer array.
968 (device_add_integer_property, device_find_integer_property):
969 Update to correctly use the cell type.
970
971 * vm.c (om_unpack_sr): Clarify shifting comment.
972 (om_pte_0_masked_vsid): Ditto. Add 64bit version.
973
974 * emul_chirp.c (emul_chirp_create): Initialize the segment
975 registers.
976
977 * vm.c (om_effective_to_virtual): Trace segment register use.
978
979 * hw_htab.c (htab_map_page): Print out the pteg base address to
980 simplify cross checking between vm and the htab.
981 (htab_decode_hash_table): Use device_error instead of error.
982 (htab_map_page): Ditto.
983 (htab_dma_binary): Ditto.
984 (htab_map_binary): Ditto.
985 (htab_init_data_callback): Ditto.
986
987 Wed Nov 6 20:20:58 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
988
989 * interrupts.h: Clarify what the optional instruction program
990 interrupt is - a subset of illegal instruction program interrupt.
991
992 * interrupts.c (program_interrupt): For UEA mode, clarify what an
993 optional instruction program interrupt is.
994 (program_interrupt): For OEA mode, as per spec, generate an
995 illegal instruction program interrupt when an optional instruction
996 is encountered.
997
998 * gen-semantics.c (print_semantic_body): Delete code
999 differentiating between an unimplemented floating point and normal
1000 instruction. Instead, such a case can be handled explicitly.
1001
1002 * ppc-instructions (store floating-point as integer word indexed):
1003 Mark as optional.
1004 (Floating Convert to Integer Doubleword): Make the floating point
1005 assist interrupt explicit.
1006 (Floating Convert To Integer Doubleword with round towards Zero):
1007 Ditto.
1008 (Floating Convert To Integer Word): Ditto
1009 (Move From FPSCR): Ditto.
1010 (Move to Condition Register from FPSCR): Ditto.
1011 (Move To FPSCR Fields): Ditto.
1012 (Move To FPSCR Field Immediate): Ditto.
1013 (Move To FPSCR Bit 0): Ditto.
1014 (Move To FPSCR Bit 1): Ditto.
1015
1016 Mon Nov 4 12:49:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1017
1018 * corefile.c (core_map_read_buffer, core_map_write_buffer): Avoid
1019 breaking up transfers.
1020
1021 * corefile.c: Adjust arguments so that the client server
1022 relationship is clarified.
1023
1024 * hw_glue.c (hw_glue_init_address): Update so it can be attached
1025 to a PCI bus.
1026
1027 * hw_disk.c (hw_disk_instance_write): Add more checks to disk IO -
1028 looking for things like overflow/underflow.
1029
1030 Sun Nov 3 18:45:20 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1031
1032 * emul_generic.c (emul_add_tree_hardware): Hang the disk off the
1033 PAL device instead of the IOBUS. The disk must be attached to a
1034 logical bus.
1035
1036 * hw_disk.c (hw_disk_init_address): Just use the unit address
1037 directly in the attach - the rest isn't relevant.
1038
1039 Sat Nov 2 21:48:57 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1040
1041 * configure.in (sim-hardware, sim-packages): Allow additional
1042 hardware and packages to be prefixed as well as appended.
1043
1044 * Makefile.in (tmp-hw, tmp-pk): Retain the user specified order of
1045 packages when building them. Consequently, a user can override a
1046 standard device by prefixing their own version.
1047
1048 * Makefile.in (hw_opic.o, hw_pci.o, hw_ide.o): Add dependencies.
1049
1050 Fri Nov 1 14:42:57 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1051
1052 * mon.c (_cpu_mon): Add fields for counting 1, 2, 4, and 8 byte
1053 reads and writes.
1054 (mon_{read,write}): Count 1, 2, 4, and 8 byte reads/writes.
1055 (mon_print_info): Correct typo regarding # of unaligned reads and
1056 writes. Print out how many 1, 2, 4, and 8 byte reads/writes there
1057 are.
1058
1059 Tue Oct 29 17:55:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1060
1061 * configure.in (AC_CHECK_FUNCS): Add access.
1062 * config{.in,ure}: Regenerate.
1063
1064 * emul_unix.c (do_unix_nop): System call that always succeeds.
1065 (do_unix_access): Support access system call.
1066 (solaris_descriptors): Make sigaltstack and sigaction nops.
1067 ({solaris,linux}_descriptors): Add support for access.
1068
1069 Tue, 8 Oct 18:42:26 1996 Jason Molenda <crash@cygnus.co.jp>
1070
1071 * Makefile.in (clean): Move config.log to distclean.
1072
1073 Fri Nov 1 16:44:28 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1074
1075 * corefile-n.h (core_map_write_N): Improve abort messages.
1076
1077 * device.h, device.c (device_attach_address): Remove unused name
1078 parameter.
1079 (device_detach_address): Ditto.
1080 * device_table.h, device_table.c: Update.
1081 * hw_iobus.c (hw_iobus_attach_address_callback): Ditto.
1082 * hw_nvram.c (hw_nvram_init_address): Ditto.
1083 * hw_memory.c (hw_memory_init_address): Ditto.
1084 * hw_vm.c (hw_vm_init_address_callback): Ditto.
1085 (hw_vm_attach_address): Ditto.
1086 (hw_vm_add_space): Ditto.
1087 * hw_init.c (update_for_binary_section): Ditto.
1088 * hw_core.c (hw_core_attach_address_callback): Ditto.
1089
1090 * hw_iobus.c (hw_iobus_attach_address_callback): Rewrite to handle
1091 configurable parent busses.
1092
1093 Wed Oct 30 18:46:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1094
1095 * device_table.c (generic_device_size_to_attach_size): Provide
1096 limited support for multi-cell sizes.
1097 (generic_device_address_to_attach_address): Ditto for addresses.
1098
1099 Tue Oct 29 02:01:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1100
1101 * device.c (device_add_integer_property): Check for setting of
1102 #address-cells and #size-cells properties. For these, update the
1103 corresponding device values.
1104 (device_nr_address_cells, device_nr_size_cells): Use the value
1105 from the device instead of the property.
1106
1107 * hw_core.c: Use generic address and size conversions for the top
1108 bus.
1109
1110 * hw_memory.c (hw_memory_init_address): Tolerate case where
1111 #address and #size cells is greater than 1.
1112
1113 * device.c (device_tree_print_device): Clean out printing of
1114 properties.
1115
1116 * device.c (split_device_specifier): Don't detect comments here -
1117 "#" can be a valid prefix - eg #size-cells.
1118
1119 * psim.c (psim_merge_device_file): Suppress comments and blank
1120 lines here.
1121
1122 * emul_generic.c (emul_add_tree_hardware): Fix typo of incorrect
1123 pal unit address. Add the property /#address-cells to the root of
1124 the tree.
1125
1126 * device.c (device_template_create_device): Check that the unit
1127 address was successfully parsed.
1128
1129 * device_table.c (generic_device_unit_decode): Rewrite to better
1130 handle multi-cell addresses.
1131 (generic_device_unit_encode): Ditto.
1132
1133 * emul_generic.c (emul_add_tree_hardware): "reg" properties no
1134 longer need the explicit array type - the parser takes care of it.
1135
1136 * pk_disklabel.c (pk_disklabel_create_instance): Add NULL return
1137 to keep GCC happy.
1138
1139 Mon Oct 28 22:55:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1140
1141 * hw_ide.c: New file. Model of a basic IDE interface attached to
1142 a PCI bus.
1143
1144 * configure.in (hardware): Add the ide device to the default
1145 configuration.
1146 * configure: Regenerate.
1147
1148 * debug.h, debug.c: Add tracing option for the IDE device.
1149
1150 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1151
1152 * hw_phb.c, hw_phb.h: New files - implement a PHB.
1153
1154 * configure.in (hardware): Add the phb to the list of devices to
1155 build by default.
1156
1157 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1158
1159 * hw_com.c: Review description.
1160 * hw_disk.c: Ditto.
1161 * hw_htab.c: Ditto.
1162 * hw_eeprom.c: Ditto.
1163 * hw_init.c: Ditto.
1164 * hw_cpu.c: Ditto.
1165
1166 * hw_com.c: Update event handling.
1167
1168 * hw_disk.c: Implement tracing.
1169
1170 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1171
1172 * device_table.c (generic_device_init_address): Use
1173 assigned-addresses property in preference to any other reg
1174 property.
1175
1176 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1177
1178 * device.h, device.c (device_find_ranges_property): New function.
1179 Simplify the manipulation of "ranges" properties.
1180
1181 * device.c (device_add_parsed): Extend to include support for the
1182 ranges property.
1183
1184 * device.c (device_add_parsed): Add assigned-addresses to the list
1185 of reg type properties.
1186
1187 * device.c (device_tree_print_device): Add code to format and
1188 print a ranges property.
1189
1190 * device.h, device.c (device_nr_address_cells,
1191 device_nr_size_cells): New functions. Determine the values of the
1192 standard properties #address-cells and #size-cells. Both of which
1193 are optional and have default values of two and one respectfuly.
1194 Previously, code that determined #address-cells was incorrectly
1195 using a value of one.
1196
1197 Fri Oct 25 21:28:25 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1198
1199 * debug.h, debug.c: Sort debug options, Add entries for the
1200 comming PHB device.
1201
1202 Fri Oct 18 12:12:21 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1203
1204 * ppc-instructions (Floating Select): Add support for fsel unless
1205 model is 601. Allow user to filter out instruction unless -Fs is
1206 passed to igen.
1207 (Store Floating-Point as Integer Word Indexed): Raise optional
1208 instruction program abort. Allow user to filter out instruction
1209 unless -Fs is passed to igen.
1210 (Floating Square Root{, Single}): Ditto.
1211 (Floating Reciprocal Estimate Single): Ditto.
1212 (Floating Reciprocal Square Root Estimate): Ditto.
1213
1214 * configure.in (--enable-sim-filter): If not passed, pass 32,f,s
1215 to igen.
1216 * configure: Regenerate.
1217
1218 * interrupts.h (program_interrupt_reasons): Add
1219 optional_instruction_program_interrupt.
1220
1221 * interrupts.c (program_interrupt): Call error with more detailed
1222 information on program interrupts, particularly in user mode. Add
1223 support for optional_instruction_program_interrupt.
1224
1225 Wed Sep 25 10:20:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1226
1227 * hw_glue.c: New device. Hooks for manipulating interrupt ports.
1228
1229 * debug.h, debug.c (trace_glue_device): Add tracing support for
1230 the interrupt glue logic device.
1231
1232 * configure.in (hardware): Add glue device.
1233 * configure: Regenerate.
1234
1235 Tue Sep 24 20:55:38 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1236
1237 * device.c (device_tree_parse_integer_property): New function,
1238 parse a list of integers as an array property.
1239 (device_tree_add_parsed): Call it.
1240
1241 * device.c (device_tree_parse_string_property): New function,
1242 parse a list of strings as a string property (with embeded
1243 null's). For moment, don't try to implement a complext string
1244 parser.
1245 (device_tree_add_parsed): Call it.
1246
1247 Tue Sep 24 16:30:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1248
1249 * hw_opic.c: New file. OpenPIC interrupt controller.
1250
1251 * configure.in (hardware): Add opic device.
1252 * configure: re-generate.
1253
1254 * hw_pic.c: Delete, replaced with hw_opic.c.
1255
1256 * debug.h, debug.c: Add debug option for OpenPIC device. -
1257 opic-device.
1258
1259 Tue Sep 24 16:30:48 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1260
1261 * Makefile.in (psim.o, idecode.o): Since idecode and not psim is
1262 now the file that does all the inlining.
1263
1264 * Makefile.in (LIB_SRC, LIB_INLINE_SRC, idecode.o): Break out the
1265 library source code that could be involved in an inlining. Make
1266 idecode.o only dependant on the inlined library source code.
1267
1268 * Makefile.in (LIB_OBJ): Put options last on the list so that it
1269 is compiled last.
1270
1271 * std-config.h (DEVICE_INLINE): Only inline locals when the
1272 default is to inline.
1273
1274 Mon Sep 23 00:37:49 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1275
1276 * hw_htab.c (htab_sum_binary): Determine the real-base for the
1277 binary.
1278
1279 * hw_htab.c (htab_map_binary): Depending on the value of the
1280 load-base, either map the program in as a contiguous section or as
1281 separate sections controled by th binaries lma values.
1282 (htab_init_data_callback): Ditto.
1283
1284 Sun Sep 22 15:56:22 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1285
1286 * emul_generic.c (emul_add_tree_options): Remove load-base option.
1287
1288 * emul_chirp.c (map_over_chirp_note): Add load_base field to note
1289 struct. Don't require the load_base field to be present - just
1290 issue warning - it is a recent addition.
1291 (emul_chirp_create): Support both virtual and physical modes.
1292
1293 * emul_chirp.c (emul_chirp_create): Add a stack initialization
1294 property so that any arguments specified on the command line can
1295 be passed on to user programs.
1296
1297 * hw_init.c (create_ppc_chirp_bootargs): Add support for chirp
1298 argument passing to the pseudo device stack.
1299
1300 Sat Sep 21 19:39:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1301
1302 * device.c (device_error): Make it more tolerant to incomplete
1303 devices.
1304
1305 * hw_init.c (hw_data_init_data_callback): Extend the data device
1306 so that it can perform initialization operations either dma or a
1307 more complex instance open, seek, write operation.
1308 * hw_init.c: Update the description of the data device to reflect
1309 this.
1310
1311 Sat Sep 21 00:13:02 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1312
1313 * device.c (device_event_queue_schedule,
1314 device_event_queue_deschedule, device_event_queue_time): Have the
1315 device object export the event operations. Making these available
1316 from the device object should hopefully simplify writing device
1317 models.
1318
1319 Fri Sep 20 14:04:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1320
1321 * configure.in (sim-hardware): Add eeprom device to default build.
1322
1323 * hw_eeprom.c: Rewrite so it works.
1324
1325 * debug.h, debug.c: Add tracing support for the eeprom and com
1326 devices.
1327
1328 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1329
1330 * debug.h: Add disklabel-package and disk-device trace options.
1331 debug.h (PTRACE): Add macro to simplify tracing in packages.
1332
1333 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1334
1335 * device.c (device_create_instance_from): Tighten up loop
1336 searching for device instances.
1337 (device_instance_delete): Ditto.
1338 (device_instance_delete): Only leaf instances need to be removed
1339 from a devices list of active instances.
1340
1341 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1342
1343 * hw_disk.c: Add the cdrom as an alias.
1344
1345 * pk_disklabel.c (disklabel_delete): Implement, remembering to
1346 delete the raw disk instance while we're at it.
1347
1348 * pk_disklabel.c (pk_disklabel_create_instance): Implement a
1349 little bit more - still a long way to go.
1350
1351 * pk_disklabel.c (disklabel_write, disklabel_read): Remember the
1352 new head position after a read or write.
1353
1354 Thu Sep 19 13:05:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1355
1356 * emul_chirp.c (chirp_emul_read): Allow reads to be longer then
1357 the internal buffer.
1358
1359 Thu Sep 19 13:05:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1360
1361 * emul_chirp.c (chirp_read_t2h_args): Call memset-0 with the args
1362 in the correct order.
1363
1364 * emul_chirp.c (chirp_emul_call_method): Correct computation for
1365 the address of the first stack argument passed in from the client
1366 program.
1367
1368 Wed Sep 18 19:33:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1369
1370 * words.h: Add new types signed_cell and unsigned_cell which
1371 correspond to the signed and unsigned IEEE 1275 memory locations.
1372 * device.h, device.c, emul_chirp.c: Where refering to an IEEE 1275
1373 memory cell, replace uses of unsigned32 with unsigned_cell.
1374 * device_table.h: Ditto.
1375
1376 * sim-endian.h: Add new macros H2BE_cell and BE2H_cell which
1377 convert cell sized values to from big endian.
1378 * device.c, emul_chirp.c: Where refering to IEEE 1275 memory cells
1379 use these new macros.
1380
1381 Tue Sep 17 15:57:44 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1382
1383 * device.c (device_tree_add_parsed): Detect and report an
1384 interrupt being attached to an invalid device. Was dumping core.
1385
1386 Mon Sep 16 23:09:12 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1387
1388 * device.h, device.c (device_address_to_attach_address,
1389 device_size_to_attach_size): New functions. Convert a devices
1390 unit address or unit size structure into a form suitable for
1391 passing on to the attach and detach functions.
1392 * device_table.h: Add extra methods to device table.
1393
1394 * device.h, device.c (device_find_reg_property): New function.
1395 For a reg type property, return the selected address + size
1396 tupple, along with a positive success status. Add a reg_property
1397 to the list of property types.
1398 * (device_tree_add_parsed): Make array properties with the name
1399 reg or alternate-reg of type reg_property.
1400
1401 * hw_memory.c (hw_memory_init_address): Rewrite to use new
1402 find_reg_property method.
1403 * hw_nvram.c (hw_nvram_init_address): Ditto.
1404
1405 * device.c (device_tree_print_device): Add code to print out a reg
1406 property.
1407
1408 * device_table.c (generic_device_address_to_attach_address,
1409 generic_device_size_to_attach_size ): New functions. Generic
1410 functions for converting between unit and attach address or size.
1411
1412 * device_table.c (generic_device_init_address): Rewrite to use the
1413 new find_reg and address convert functions. Look for both reg and
1414 alternate-reg properties.
1415
1416 Mon Sep 16 23:09:12 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1417
1418 * hw_com.c: New file. A '550 serial device that can quickly be
1419 attached to any bus.
1420 * configure.in (enable-sim-hardware): Add the com device.
1421 * configure: re-generate.
1422
1423 Thu Sep 12 17:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1424
1425 * device.c (device_tree_verify_reg_unit_address): New
1426 function. Check that the unit address as specified by the reg
1427 property correctly corresponds to any unit address previously
1428 specified by the devices name.
1429 (device_tree_add_parsed): When adding a reg property, verify
1430 that the unit-address - first value of property - correctly
1431 matches any previous value specified when creating the device
1432 node.
1433
1434 Thu Sep 12 17:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1435
1436 * mon.c (mon_event): Remove assertion that an unsigned is >= 0.
1437
1438 Fri Aug 16 12:05:24 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1439
1440 * device.c (device_full_name): Cast strdup to char *, since AIX
1441 3.2.5 mistakenly declares the function to be const char *.
1442 (device_create_from): Ditto.
1443 (device_create_instance_from): Ditto.
1444 (device_add_property): Ditto.
1445
1446 Tue Aug 13 11:40:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1447
1448 * debug.c (trace_option): For -t all, do not set the
1449 trace_dump_device_tree flag, so that the simulator is run.
1450
1451 Tue Aug 13 11:40:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1452
1453 * Makefile.in (options.o): Depend on defines.h.
1454 (defines.h): New rule, go through config.h and make strings of all
1455 of the #define HAVE_xxx macros.
1456 (distclean): Remove defines.h.
1457
1458 * options.c (print_options): Print whether many of the
1459 configuration macros are defined.
1460
1461 * main.c (main): If -t options and no filename, just print the
1462 options, and don't print the usage message.
1463
1464 Mon Aug 12 18:42:37 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1465
1466 * configure.in: Test whether /dev/zero works on the system, and if
1467 it does, define HAVE_DEVZERO.
1468 * configure: Regenerate.
1469
1470 * emul_generic.c (emul_add_tree_hardware): Do not add /iobus/disk
1471 if we don't have a working /dev/zero on the system.
1472
1473 * emul_bugapi.c (emul_bugapi_init): If HAVE_DEVZERO is not
1474 defined, don't add disk support.
1475 (emul_bugapi_do_diskio): Ditto.
1476 (emul_bugapi_instruction_call): Ditto.
1477
1478 Wed Aug 7 14:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1479
1480 * emul_unix.c (HAVE_TCGETATTR): If HAVE_TERMIOS_STRUCTURE is not
1481 defined, make sure HAVE_TCGETATTR is #undef'ed
1482
1483 Wed Aug 7 14:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1484
1485 * std-config.h (REGPARM): Only define REGPARM attributes if using
1486 GNU C. Test for __i686__ in case GCC ever defines it. If not on
1487 a x86 platform, define REGPARM as nothing.
1488
1489 * sim-endian.h (WITH_HOST_BYTE_ORDER): Test for i686 and __i686__
1490 also.
1491
1492 Wed Aug 7 20:19:55 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1493
1494 * ld-decode.h, ld-decode.c: Rename goto_gen to the more correct
1495 goto_switch_gen.
1496 * gen-idecode.c: Ditto.
1497
1498 * gen-idecode.c (print_idecode_table): Comment out check for
1499 switch/table combination until a bug with it is fixed.
1500
1501 * ppc-opcode-goto: New file. Like complex and flat but uses
1502 goto-switch instead of padded-switch for the tables.
1503
1504 * gen-idecode.c (print_goto_switch_name): New function.
1505 (print_goto_switch_table_leaf): New function.
1506 (print_goto_switch_break): New function.
1507 (print_goto_switch_table): New function. Prints a jump table
1508 that can be jumped into instead of a switch statement.
1509
1510 * gen-idecode.c (*switch_*): As an option output a switch that is
1511 implemented using a jump table but only if the switch is not
1512 boolean.
1513
1514 Tue Aug 6 09:28:22 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1515
1516 * configure.in (--enable-sim-{hardware,packages}): Fix typos.
1517 * configure: Regenerate.
1518
1519 * device.c (device_instance_call_method): Fixup format message in
1520 error case. Return 0 in case of error to shut up compiler
1521 warnings.
1522
1523 Wed Aug 7 00:17:37 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1524
1525 * device_table.c (generic_device_unit_decode): Require a comma
1526 between elements of a unit address.
1527
1528 * device.c (device_tree_print_device): For reg, alternate-reg and
1529 ranges properties use special print functions.
1530 (device_print_ranges_property): Print formatted ranges property.
1531 (device_print_reg_property): Print formatted reg property.
1532
1533 Tue Aug 6 21:35:18 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1534
1535 * device.c (device_tree_add_parsed): For reg, ranges and
1536 alternate-reg properties use a special parser.
1537 (device_tree_parse_reg_property): New function to parse a reg
1538 property.
1539 (device_tree_parse_ranges_property): New function to parse a
1540 ranges property.
1541 (device_encode_unit): Wrapper for encode_unit callback.
1542 (device_decoce_unit): Wrapper for decode_unit callback.
1543
1544 Wed Jul 31 00:02:30 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1545
1546 * device_table.h (device_instance_callbacks): Relace the claim and
1547 release methods with a more general table mapping from method-name
1548 to method-function.
1549
1550 * device.c (device_instance_call_method): New function. Implement
1551 the OpenBoot call-method client interface. Attempts to locate the
1552 instances method in the callback table.
1553 (device_instance_claim, device_instance_release): Delete.
1554 Replaced with call-method and a lookup table.
1555
1556 * emul_chirp.c (chirp_emul_call_method): Use the new device
1557 instance call method and let that handle a client claim call.
1558
1559 * hw_htab.c (claim_memory): Wrapper function to call the memory
1560 devices "claim" method using the new device-instance call-method
1561 interface. Replaces the previous direct calls to claim.
1562 (htab_map_region): Use claim_memory.
1563 (htab_init_data_callback): Ditto.
1564
1565 * hw_memory.c (hw_memory_instance_claim): Update function
1566 interface so that it is compatible with call-method.
1567 (hw_memory_instance_release): Ditto.
1568 (hw_memory_instance_methods): New table of memory specific
1569 methods claim and release. Add to the hw_memory_callback
1570 table.
1571
1572 Tue Jul 30 21:26:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1573
1574 * psim.c (psim_init): Back out of change to initial value of
1575 system->last_cpu.
1576
1577 Tue Jul 30 21:12:24 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1578
1579 * sim_callbacks.h (sim_io_printf_filtered): Replace
1580 printf_filtered with a local simulator specific version. Add
1581 #define printf_filtered to simplify updating of existing code.
1582
1583 * sim_callbacks.h (sim_io_write_stdout, sim_io_read_stdin,
1584 sim_io_write_stderr): New functions. Read / write to the
1585 simulations stdin and stdout and stderr interfaces. Merge in code
1586 from hw_pal that previously handled async I/O.
1587 (sim_io_flush_stdoutput): Rename flush_stdoutput. Add #define
1588 flush_stdoutput to simplify updating of existing code.
1589
1590 * hw_pal.c (scan_hw_pal, write_hw_pal,
1591 hw_pal_instance_write_callback): Use the new sim_io functions.
1592
1593 * main.c: Implement standalone versions of the new sim_io
1594 functions. Include support for async I/O.
1595 * sim_calls.c: Ditto. This time using the gdb callback table.
1596
1597 * std-config.h (CURRENT_STDIO, current_stdio): New macro. Set up
1598 stdio configuration so that it works in the same way as the rest
1599 of the simulation.
1600 * psim.c (psim_create): Initialize current_stdio from the device
1601 tree.
1602 * emul_generic.c (emul_add_tree_options): Enter a default value
1603 for use-stdio in the device tree.
1604
1605 Fri Jul 26 19:43:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1606
1607 * gen-idecode.c (print_jump): Was always generating a jump back to
1608 idecode. Only necessary at tail of semantic code.
1609 (print_jump): Was always setting the processor's cia, even during
1610 startup when the processor was still undefined.
1611 (print_jump): For safety, restart smp loop when cpu_nr >= nr_cpus,
1612 not just equal.
1613
1614 * options.c (print_options): Add printing of WITH_REGPARM and
1615 WITH_STDCALL.
1616
1617 * std-config.h (WITH_REGPARM, WITH_STDCALL): Provide default
1618 (disabled) values if not defined.
1619
1620 Fri Jul 26 00:36:35 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1621
1622 * ppc-cache-rules (cache): Change RS and RB to cache instead of
1623 compute. The block move instructions use them.
1624
1625 * idecode_expression.h (FPSCR_SET): New macro, set specific FPSCR
1626 register.
1627 (CR_FIELD): New macro, extract specific CR register.
1628 (FPSCR_FIELD): New macro, extract specific FPSCR register.
1629
1630 * registers.h (GPR): New macro, simplify accesses to GPR[i].
1631
1632 * bits.c (INSERTED): Covert INSERTED macro into a function.
1633 (EXTRACTED): Conditionally compile on correct bit size macro.
1634
1635 * bits.h (BIT8): New macro, set a single bit in an 8 bit byte.
1636
1637 * ppc-instructions: With hints from Paul Martin, type in missing
1638 some instruction semantics. Leave disabled for the moment.
1639 (Load Multiple Word): Ditto.
1640 (Store Multiple Word): Ditto.
1641 (Load String Word Immediate): Ditto.
1642 (Load String Word Indexed): Ditto.
1643 (Store String Word Immedate): Ditto.
1644 (Store String Word Indexed): Ditto.
1645 (Move to Condition Register from XER): Ditto.
1646 (Move From Condition Register): Ditto.
1647 (Move From FPSCR): Ditto.
1648 (Move to Condition Register from FPSCR): Ditto.
1649 (Move To FPSCR Field Immediate): Ditto.
1650 (Move To FPSCR Fields): Ditto.
1651 (Move To FPSCR Bit 0): Ditto.
1652 (Move To FPSCR Bit 1): Ditto.
1653
1654 Thu Jul 25 22:10:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1655
1656 * std-config.h (SEMANTICS_INLINE): By default, mask out the
1657 inlining of semantic functions from DEFAULT_INLINE. Almost all
1658 configurations call the semantic code via a pointer so there is
1659 little benefit.
1660
1661 * std-config.h (ICACHE_INLINE): Ditto.
1662
1663 Thu Jul 25 20:07:30 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1664
1665 * configure.in (sim_regparm): Add configuration option for
1666 enabling GCC's regparm attribute.
1667 * (sim_stdcall): Add configuration option for enabling GCC's
1668 stdcall attribute.
1669
1670 * Makefile.in (REGPARM_CFLAGS): Pass regparam configuration onto
1671 compilations.
1672 * (STDCALL_CFLAGS): Pass stdcall configuration onto compilations.
1673
1674 * std-config.h (REGPARM): Extend construction of REGPARM macro so
1675 that it can include __stdcall__ function attribute.
1676
1677 Wed Jul 24 19:04:20 1996 Andrew Cagney <cagney@sawnoff>
1678
1679 * options.c (print_options): Include SUPPORT_INLINE in information
1680 dump.
1681
1682 * gen-idecode.c (print_run_until_stop_body): Only generate loop
1683 termination test if creating idecode_run_until_stop. Push the
1684 loop termination test back into each alternative branch.
1685
1686 Wed Jul 24 15:47:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1687
1688 * gen-icache.c (print_icache_function): Have the cache function
1689 always update the cache_entries semantic and address fields.
1690
1691 * gen-idecode.c (print_idecode_switch_illegal): Include a break
1692 when generating illegal instructions. This was commented out
1693 which is a hangover from looking a at switch statements generated
1694 using indirect jumps.
1695
1696 Tue Jul 23 20:57:01 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1697
1698 * igen.c (print_my_defines): Replaces print_define_my_index.
1699 Print both a definition for MY_INDEX and MY_PREFIX.
1700 * gen-icache.c (print_icache_function): Adjust.
1701 * gen-idecode.c (print_jump_insn): Adjust.
1702 * gen-semantics.c (print_c_semantic): Adjust.
1703
1704 * gen-support.c (gen_support_h): Add optional include to created
1705 support.h so that, like cpu, it is optionally inlined for all
1706 modules that include it.
1707 * inline.h, inline.c: Adjust so that support.[hc] is handled the
1708 same as cpu.[hc].
1709
1710 * idecode_fields.h (LABEL, GOTO): Macro's that create a unique
1711 name for a lable and then branch to it.
1712
1713 * ppc-instructions (convert_to_integer, Floating Round to
1714 Single-Precision, Floating Convert from Integer Doubleword): Use
1715 LABEL and GOTO instead of the recently added switch statements.
1716
1717 Wed Jul 24 14:02:42 1996 Andrew Cagney <cagney@sawnoff.highland.com.au>
1718
1719 * gen-idecode.c (print_run_until_stop_body): Too many rparen in
1720 generated code.
1721
1722 Tue Jul 23 20:57:01 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1723
1724 * configure.in (--enable-sim-line-nr): Typo - sim_line-nr.
1725 * (--enable-sim-inline): Reorder patern matching of arguments so
1726 that SUPPORT=ALL_INLINE is reconized as *=* and not *_INLINE.
1727
1728 * configure: rebuild.
1729
1730 Mon Jul 22 23:25:08 1996 Andrew Cagney <cagney@highland.com.au>
1731
1732 * configure.in (--enable-sim-hardware, --enable-sim-packages): New
1733 configuration options. Let the user specify the packages or
1734 hardware devices that are to be included in the build. Makes it
1735 possible for user packages to be specified.
1736
1737 * Makefile.in (tmp-pk, tmp-hw): Just use the list of packages and
1738 hardware instead of checking it using ls. configure.in should
1739 have taken care of any problems.
1740 (HW_SRC, HW_OBJ, PACKAGE_SRC, PACKAGE_OBJ): Set by configure.
1741
1742 Mon Jul 22 22:38:59 1996 Andrew Cagney <cagney@highland.com.au>
1743
1744 * psim.c (psim_options): Enter the argument to the memory size
1745 option directly into the device tree. Was using atol() which is
1746 dangerously non portable.
1747
1748 Mon Jul 22 22:17:08 1996 Andrew Cagney <cagney@highland.com.au>
1749
1750 * configure.in (icache): Extend icache flag to include an insn
1751 option. If specifyed the insn - aka instruction - is included in
1752 the instruction cache. Make this the default.
1753 * configure: re-generate.
1754
1755 * igen.c (main), igen.h: Add option -S - inSn - for specifying
1756 that the instruction should be included in the icache.
1757
1758 * gen-icache.c (print_icache_body): If enabled, output code to put
1759 the instruction into the icache.
1760 (print_icache_struct): If enabled, add insn to the icache struct.
1761
1762 Mon Jul 22 20:46:12 1996 Andrew Cagney <cagney@highland.com.au>
1763
1764 * Makefile.in (BUILD_CFLAGS): Include -g when building the
1765 generators.
1766
1767 Mon Jul 22 20:00:25 1996 Andrew Cagney <cagney@highland.com.au>
1768
1769 * emul_generic.c (emul_add_tree_options): Was incorrectly setting
1770 the strict-alignment option when hardwired for non-strict
1771 alignment.
1772
1773 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1774
1775 * gen-semantics.c: Make the my_index variable a macro MY_INDEX.
1776
1777 * ppc-instructions: Adjust so that references are to MY_INDEX and
1778 not my_index.
1779
1780 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1781
1782 * gen-idecode.c: Output the complete run_until_stop function
1783 instead of just the code to handle a single instruction issue.
1784 * : Have the generated idecode.c include inline.c (instead of psim.c).
1785
1786 * std-config.h: Change psim.c so that it isn't inlined (as this is
1787 no longer needed).
1788
1789 * psim.c (run_until_stop): Delete the old run_until_stop function
1790 instead calling the idecode_run and idecode_run_until_stop
1791 functions that gen-idecode.c is now creating.
1792
1793 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1794
1795 * dgen.c: Maintenance - update to use new features found in lf.c.
1796
1797 * filter_filename.c (filter_filename): Maintenance - make the
1798 string constant.
1799
1800 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1801
1802 * debug.c (TRACE, ITRACE, DTRACE): Have GCC instead of CPP
1803 eliminate trace statements.
1804
1805 * debug.c: Change trace format so that it is consistent
1806 (file:line-nr) with CC's error output.
1807
1808 * gen-itable.c (itable_c_insn): Add the source file name and
1809 source line number to the instruction's informational entry.
1810
1811 * debug.c (ITRACE): Use the itable (and my_index) to get the
1812 current instructions name and source line number.
1813
1814 * gen-semantics.c, gen-icache.c: Adjust generated ITRACE calls to
1815 match new interface.
1816
1817 * emul_bugapi.c (emul_bugapi_instruction_call): Adjust
1818 corresponding call to ITRACE so that it still matches.
1819
1820 * idecode_expression.h (ALU_END, CR0_COMPARE): Use TRACE instead
1821 of ITRACE. The CPP line directives would have previously set the
1822 line-nr and file name so ITRACE isn't needed.
1823
1824 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1825
1826 * gen-idecode.c (print_jump_until_stop_body): New function and
1827 idecode generation option. Instead of generating and calling
1828 separate functions containing the semantic and icache code
1829 generate a single monolythic function and use goto's (and GCC's
1830 indirect jump) to move between code blocks.
1831
1832 * Makefile.in: Add sim_jump flag to those passed to igen.
1833
1834 * configure.in: New option --enable-sim-jump (default disabled)
1835
1836 * ppc-instructions: Eliminate any uses of labels and goto's.
1837 These result in duplicate declarations when a single flat function
1838 is being create.
1839
1840 * ppc-opcode-jump: New file. Set of opcode rules useful when
1841 testing jumping idecodes.
1842
1843 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1844
1845 * gen-idecode.c: Optionally include the semantic code for an
1846 instruction in the function that is doing the decoding.
1847
1848 * igen.c: Add option (-C) to generate semantics in the instruction
1849 decode functions.
1850
1851 * configure.in (--enable-sim-icache): Accept an option list such
1852 as 1024,define. Add a new choice to the list - semantic - which
1853 will cause igen to generate instruction decode functions that
1854 include the corresponding semantic code.
1855
1856 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1857
1858 * configure.in: New option --enable-sim-line-nr (default enabled).
1859 Enable/disable the inclusion of CPP line directives in the
1860 generated files. Such directives refer back to the source files
1861 used when generating the simulator code.
1862
1863 * Makefile.in (sim_line_nr): Pass to igen.
1864
1865 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1866
1867 * igen.c (main): Revamp the options so that more letters are
1868 available.
1869
1870 * configure.in: Adjust to match igen's revamped options
1871
1872 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1873
1874 * Makefile.in (pk.h, hw.h): Rewrite depenencies for hw.h (etc) so
1875 that they use the same technique as igen (ie a dummy targets
1876 tmp-pk and tmp-hw are created).
1877
1878 Mon Jun 24 22:28:00 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1879
1880 * Makefile.in (BUILD_CFLAGS): Include WARNING_CFLAGS.
1881
1882 Wed Jun 19 21:45:28 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1883
1884 * ld-cache.[hc], ld-decode.[hc], ld-insn.[hc]: New files. Separate
1885 out the loading of each of the tables from the rest of igen.
1886 * Makefile.in: Adjust.
1887 * igen.c: Adjust.
1888
1889 * gen-icache.[hc], gen-idecode.[hc], gen-itable.[hc],
1890 gen-model.[hc], gen-semantics.[hc]: New files. Separate out the
1891 code creating each separate set of generated files.
1892 * Makefile.in: Adjust.
1893 * igen.c: Adjust.
1894
1895 * gen-support.[ch]: New files. Output the support functions (found
1896 in the ppc-instructions file) into a separate file.
1897 * Makefile.in: Add.
1898 * inline.h, inline.c: Add.
1899 * std-config.h: Add.
1900
1901 * ld-cache.c: Re-design the cache table format.
1902 * ppc-cache-rules: Update to new format.
1903
1904 * ld-decode.c: Re-design the decode table format.
1905 * ppc-opcode-simple: Update to new format
1906 * ppc-opcode-complex: Ditto
1907 * ppc-opcode-flat: Ditto
1908
1909 * filter.h, filter.c: New files. Separate the opcode filter table
1910 reading code from the rest of igen.c. Re-design the filter so that
1911 it works inclusivly not exclusivly.
1912 * igen.c: Remove the opcode filter table loading code.
1913 * Makefile.in (filter.o): Adjust
1914 * configure.in: Adjust filter flag so that default includes 32bit
1915 and floating point.
1916 * ppc-instructions: Clean up filter fields so that only in use
1917 entries are specifed (ie delete `be').
1918
1919 * misc.c (name2i, i2name): New function. Map between a string and
1920 an integer value.
1921
1922 Mon Jun 17 20:08:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1923
1924 * sim_calls.c (sim_close): If simulator not created, skip printing
1925 of run information.
1926
1927 Mon Jun 17 20:08:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1928
1929 * registers.c (register_description): Typo, insns not insn.
1930
1931 * ppc-instructions (model_get_number_of_stalls): New model function,
1932 returns number of stalls for the specified processor.
1933 * psim.c (psim_read_register): Add call to new function
1934 model_get_number_of_stalls().
1935
1936 * ppc-instructions (model_get_number_of_cycles): New model function,
1937 returns number of stalls for the specified processor.
1938 * psim.c (psim_read_register): Add call to new function
1939 model_get_number_of_cycles().
1940
1941 Fri Jun 14 00:11:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1942
1943 * device_table.h: Don't pass the parent device into a devices
1944 create function. This makes the create function consistent with
1945 the documentation.
1946 * device.c (device_template_create_device): Ditto
1947 * hw_pal.c (hw_pal_create): Ditto
1948 * hw_core.c (hw_core_create): Ditto
1949 * hw_vm.c (hw_vm_create): Ditto
1950 * hw_disk.c (hw_disk_create): Ditto
1951 * hw_nvram.c (hw_nvram_create): Ditto
1952 * hw_memory.c (hw_memory_create): Ditto
1953 * hw_cpu.c (hw_cpu_create): Ditto.
1954
1955 * device.c (split_find_device): Allow a null initial parent device.
1956 (device_template_create_device): Ditto.
1957
1958 * device.c (device_create_from): Make local (static) only used
1959 within device.c.
1960 * device_table.h: typedef device_callbacks moved here (from
1961 device.h) where it belongs.
1962
1963 * hw_core.c: New file. Implements just the core device using the
1964 core object.
1965
1966 * corefile.c: Moved all core device functions into the new
1967 hw_core.c file. core_device_create() disapears.
1968
1969 * psim.c (psim_tree): Use device_tree_add_parsed() to create the
1970 core device.
1971
1972 Thu Jun 13 00:09:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1973
1974 * hw_init.c: Correct typo in comment.
1975
1976 * corefile.c (core_init): Remove any remaining references to a
1977 default map.
1978 (core_map_find_mapping): Ditto.
1979
1980 Wed Jun 12 22:30:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1981
1982 * corefile.c (core_init): Make function global so that other
1983 devices are able to use the full core object.
1984
1985 * corefile.c (core_create, core_from_device): Break core_create
1986 into two functions. The first creates a core object, the second
1987 returns the core object associated with a core device.
1988
1989 * corefile.c (core_device_create): Use core_create to make the
1990 core object.
1991
1992 * psim.c (psim_create): Use core_from_device() instead of
1993 core_create().
1994
1995 * device.c (device_template_create_device): Make static as only
1996 needed by functions internal to device.c.
1997
1998 Fri Jun 7 23:47:18 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1999
2000 * ppc-opcode-test-2: Remove description of fields.
2001 * ppc-opcode-complex: Ditto
2002 * ppc-opcode-flat: Ditto
2003 * ppc-opcode-simple: Ditto
2004 * ppc-opcode-stupid: Ditto
2005 * ppc-opcode-test-1: Ditto
2006 * ppc-cache-rules: Ditto
2007
2008 * igen.c: Add description of files as a comment at the front.
2009
2010 Wed Jun 26 12:50:33 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2011
2012 * configure.in: Check for whether the termios and termio
2013 structures are really defined, and whether or not, they define the
2014 c_line field.
2015 * configure: Regenerate.
2016
2017 * Makefile.in ({,TERMIO_}CFLAGS): Add TERMIO_CFLAGS options set by
2018 configure.
2019
2020 * emul_unix.c: Various changes to allow for building on systems
2021 with different termio and termios structures. If host has both
2022 termio and termios, just use termios. No longer include
2023 sys/ioctl.h.
2024
2025 Wed Jun 26 12:26:55 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
2026
2027 * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
2028 INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
2029 (docdir): Removed.
2030 * configure.in (AC_PREREQ): autoconf 2.5 or higher.
2031 (AC_PROG_INSTALL): Added.
2032 * configure: Rebuilt.
2033
2034 Wed Jun 5 23:53:42 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2035
2036 * corefile.h: Rewrite documentation so that it can be extracted and
2037 converted into texinfo (and hence ready for translation into html,
2038 tex or nroff).
2039 * device.h: Ditto
2040
2041 Thu Jun 6 09:52:37 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2042
2043 * hw_disk.c (SEEK_SET): If SEEK_SET is not defined, define as 0.
2044
2045 Wed Jun 5 11:46:52 1996 Andrew Cagney <cagney@puddin>
2046
2047 * hw_disk.c: Include <unistd.h> if available. Under SunOS, that
2048 is the source of SEEK_SET.
2049
2050 Wed Jun 5 01:39:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2051
2052 * psim.c (psim_options): Correct type of dummy arguments being
2053 passed to a device_ioctl call.
2054
2055 * hw_init.c (hw_data_init_data_callback): Adjust printf arguments.
2056 (write_stack_arguments): Ditto.
2057 * hw_trace.c: Instance callback entry no longer a table.
2058
2059 Wed Jun 5 01:39:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2060
2061 * emul_unix.c (do_unix_umask): Cast printf argument.
2062 (convert_to_linux_termios): Use LINUX_VSWTC not LINUX_VSWCH
2063
2064 Mon Jun 3 15:02:04 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2065
2066 * hw_init.c (update_for_binary_section): Abort if we find an
2067 .interp section, which indicates the need for shared libraries to
2068 be loaded.
2069
2070 Mon Jun 3 15:02:04 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2071
2072 * emul_unix.c (do_unix_{time,gettimeofday,getrusage}): Add support
2073 for time, gettimeofday, and getrusage system calls.
2074 ({solaris,linux}_descriptors): Add new system calls.
2075 (do_get{,e}{uid,gid}): Use gid_t/uid_t types.
2076 (do_get{,p}pid): Use pic_t types.
2077
2078 * configure.in (AC_TYPE_{GETGROUPS,SIGNAL}): Define.
2079 (AC_TYPE_{MODE,OFF,PID,SIZE,UID}_T): Define.
2080 * config{.in,ure}: Regenerate.
2081
2082 Mon Jun 3 23:19:57 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2083
2084 * emul_netbsd.c (emul_netbsd_create): Use the more specific names
2085 `ppc-elf' and `ppc-xcoff' for the stack-type.
2086 * emul_unix.c (emul_unix_create): Ditto.
2087 * emul_bugapi.c (emul_bugapi_create): Ditto.
2088 * hw_init.c: Reconize the new names.
2089
2090 * emul_unix.c (do_unix_break): Adjust so that the updated ioctl
2091 call is used (no system parameter).
2092
2093 Sun Jun 2 11:21:17 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2094
2095 * emul_unix.{h,c}: New files to provide Solaris and Linux system
2096 call emulations.
2097
2098 * Makefile.in (LIB_{SRC,OBJ}): Add emul_unix.{c,o}.
2099 (os_emul.o): Depend on emul_unix.h.
2100 (emul_unix.o): New dependency.
2101
2102 * configure.in (--enable-sim-alignment): Add 0|default to mean set
2103 alignment to 0, which means use appropriate alignment for mode.
2104 (AC_CHECK_FUNCS): Add new functions needed by emul_unix.c.
2105 (AC_CHECK_HEADERS): Add new include files needed by emul_unix.c.
2106 * config.in: Regenerate.
2107 * configure: Regenerate.
2108
2109 * emul_generic.c (emul_write2_status): New function to return
2110 results in r3 and r4 for Solaris system calls.
2111 (emul_do_system_call): If the system call is not support, but
2112 there is a string for the system call name, print out the string
2113 instead of the system call number.
2114
2115 * emul_generic.h (emul_write2_status): Declare it.
2116
2117 * emul_netbsd.c: Use /* */ around comment on #endif.
2118
2119 * os_emul.c: Include emul_unix.h.
2120 (os_emulations): Add emulations for Solaris, and Linux.
2121
2122 * psim.c (psim_usage): Add message about solaris, linux
2123 emulations.
2124
2125 Thu May 30 00:00:10 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2126
2127 * hw_iobus.c: Tidy up notes so that they can be auto-extracted.
2128
2129 * README: Correct PSIM's title
2130
2131 Wed May 29 23:50:26 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2132
2133 * basics.h: New global type object_disposition, used to indicate
2134 the status of objects when things are restarted.
2135
2136 Fri May 17 17:28:52 1996 Andrew Cagney <cagney@benjimen.highland.com.au>
2137
2138 * device_table.h: Change the interrupt descriptor structure so
2139 that it includes an additional member - an upper bound on the
2140 interrupts by that name.
2141
2142 * device.c (device_interrupt_decode): Allow a range of interrupt
2143 ports (eg rst0 .. rst6) if the port descriptors bound is non zero.
2144
2145 * device.c (device_tree_print_device): Include a list of valid
2146 interrupt ports when listing supported devices.
2147
2148 * device.h, device.c (device_child_interrupt_*): Delete. Not used.
2149
2150 * emul_generic.c (emul_add_tree_hardware): Modify the creation of
2151 the interrupt net so that it uses int0 .. intN.
2152
2153 Tue May 14 23:03:53 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2154
2155 * device.h, device.c (device_ioctl): Drop the system argument.
2156 Devices can not obtain this using the device_system() call.
2157 * device_table.h: Adjust accordingly.
2158 * hw_*.c: Adjust accordingly.
2159 * emul_netbsd.c (do_break): Adjust call to vm device accordingly.
2160 * psim.c (psim_options): Use a device_ioctl call to force the
2161 hw_trace device to update the trace options.
2162 * hw_trace.c: Replace the init function with an ioctl call. Adjust
2163 doc accordingly.
2164
2165 * psim.c (psim_init): Re-order initialization so that the
2166 os-emulation is initialized after the device tree. Without this,
2167 os-emul's are not able to create instances or access properties
2168 that contain an instance handle.
2169
2170 * device.h, device.c (device_add_*_property): Make these functions
2171 internal to device.c. The user has access to the more generic
2172 device_tree_add_parsed function. Differentiate between the initial
2173 and current value for each property.
2174 * (clean_device_properties): New function that deletes any
2175 properties created after the start of a simulation and restores
2176 the initial value of any others (ignoring ihandles).
2177 * (init_device_properties): (Re)Initialize any properties that
2178 contain ihandles. create
2179
2180 * (device_tree_init): Include calls to clean the device tree's
2181 properties and then initialize them. Document this in the device.h
2182 file.
2183
2184 Mon May 6 17:36:15 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2185
2186 * interrupts.c (decrementer_interrupt): Always pend a decrementer
2187 interrupt even if it is not yet possible to deliver it.
2188
2189 Wed May 1 12:26:51 1996 Andrew Cagney <cagney@benjimen>
2190
2191 * mon.h, mon.c (mon_get_number_of_insns): Make this externally
2192 visable adjusting the arguments so that the interface is correct.
2193 (mon_print_info): Adjust calls.
2194
2195 * registers.h, registers.c (register_description): Add phony
2196 cycle, insn and stall registers.
2197
2198 * psim.c (psim_read_register): Return nr of instructions for given
2199 processor.
2200
2201 Tue Apr 30 22:09:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2202
2203 * hw_htab.c: New file. Extract contents from disk_table.c.
2204 Contains a device that, during initialization will create a
2205 PowerPC htab in memory.
2206 * hw_register.c: New file. Extract contents from disk_table.c.
2207 Contains a device that, during initialization, will parse its
2208 property list and use that to initialize various processor
2209 registers (not target specific).
2210 * hw_vm.c: New file. Extract contents from disk_table.c. Contains
2211 a device that handles accesses to invalid virtual memory addresses
2212 (in user mode).
2213 * hw_init.c: New file. Extract contents from disk_table.c. Misc
2214 devices that can initialize memory from a file.
2215 * hw_trace.c: New file. Extract contents from disk_table.c.
2216 Configure trace options from property values.
2217
2218 * Makefile.in (hw_htab.o, hw_register.o, hw_vm.o, hw_init.o,
2219 hw_trace.c): Add new device files.
2220
2221 * device_table.c: Remove above code, now in separate independant
2222 files.
2223
2224 Fri Apr 26 00:00:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2225
2226 * hw_disk.c: New file. Disk and CDROM device.
2227
2228 * Makefile.in (hw_disk.o): Add device hw_disk.c.
2229
2230 * pk_disklabel.c: New file. Implement the miss-named disk-label
2231 package.
2232
2233 * Makefile.in (pk.h): Create the file pk.h that contains a list of all
2234 the packages.
2235
2236 * Makefile.in (hw.h, hw.c): Add dependancy on Makefile so that
2237 they are re-created when the makefile is updated.
2238
2239 * emul_generic.c (emul_add_tree_hardware): Add a disk device
2240 (below the iobus) to the device tree. Include an ihandle of
2241 the disk as /chosen/disk.
2242
2243 * emul_bugapi.c (emul_bugapi_create): Don't initialize the input,
2244 output and (new) disk handles yet.
2245 * (emul_bugapi_init): Initialize the input, output (and just added)
2246 disk ihandles here.
2247 * (emul_bugapi_do_diskio): New. Performs disk i/o (well at least
2248 what I think the behavour is).
2249 * emul_bugapi.c (emul_bugapi_instruction_call): Add hook to disk
2250 i/o bug call. For RETURN call, exit using gpr[3]'s status even
2251 though this isn't part of the spec - makes it possible for machine
2252 code to signal the aporting of a simulation run.
2253
2254 * emul_chirp.c (chirp_emul_call_method): Add support for the
2255 claim/release methods.
2256 * (chirp_emul_exit): Add an optional exit status argument to
2257 the exit method. Makes it possible for chirp emul simulations
2258 to abort upon an error.
2259 * device.h, device.c (device_instance_claim,
2260 device_instance_release): New methods for claiming and releasing
2261 memory.
2262 * hw_memory.c: add claim and release memory methods.
2263 * hw_*: Use the claim memory method when allocating physical
2264 memory.
2265
2266 Thu Apr 18 23:38:10 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2267
2268 * hw_nvram.c (hw_nvram_update_clock): Use the current not previous
2269 time when updating the clock.
2270
2271 * hw_nvram.c: Tidy up documentation
2272
2273 Fri May 24 10:08:10 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2274
2275 * configure.in (AC_STRUCT_ST_{BLKSIZE,BLOCKS,RDEV}): Use these
2276 macros to determine whether or not the appropriate st_<xxx> fields
2277 exist in the stat structure.
2278 (AC_CHECK_FUNCS): Check for all unix system calls used, except for
2279 the real basic ones like open, read, write, etc.
2280 * config{.in,ure}: Regenerate.
2281
2282 * emul_netbsd.c: Add support for missing system calls, and/or
2283 missing stat fields.
2284 (MAXPATHLEN): Undefine if including unistd.h, since sys/param.h
2285 might define it.
2286
2287 * hw_pal.c (WITH_STDIO): Redefine if O_NDELAY, F_GETFL, or F_SETFL
2288 are not defined.
2289 (scan_hw_pal): Do not cause syntax error if O_NDELAY, F_GETFL, or
2290 F_SETFL not defined.
2291
2292 Tue May 21 17:24:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2293
2294 * emul_netbsd.c (write_stat): Don't convert st_blocks unless the
2295 host is netbsd.
2296
2297 Thu May 16 10:56:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2298
2299 * configure.in (AC_CHECK_HEADERS): Add sys/ioctl.h.
2300 * config{.in,ure}: Regenerate.
2301 * emul_netbsd.c: If HAVE_SYS_IOCTL_H is not defined, don't include
2302 sys/ioctl.h.
2303
2304 Tue May 7 17:28:12 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2305
2306 * hw_pal.c (hw_pal_instance_read_callback): Remove unused
2307 variable.
2308
2309 * misc.c ({,target_}a2i): Rewrite to not use strtoul.
2310
2311 * Makefile.in ({spreg,misc}.o): Add dependency on .c file.
2312 ({i,d}gen): Don't link in liberity. Use BUILD_LIBS instead of
2313 LIBS.
2314
2315 Mon May 6 11:31:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2316
2317 * hw_pal.c (hw_pal_instance_read_callback): If using stdio, use
2318 fgets to read line. If not using stdio, do a simple blocking read
2319 of len bytes.
2320
2321 Fri May 3 15:07:42 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2322
2323 * Makefile.in: Correctly build simulator for build machine != host
2324 machine.
2325
2326 Tue Apr 30 18:46:05 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2327
2328 * configure.in (--enable-hostendian): Rework so the default uses
2329 the AC_C_BIGENDIAN results. Only run AC_C_BIGENDIAN if not cross
2330 compiling.
2331 * configure: Regenerate.
2332
2333 * sim-endian.h: Add more tests for host endian to support more
2334 platforms in a cross compilation environment.
2335
2336 Wed Apr 17 14:38:06 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2337
2338 * hw_pal.c ({scan,write}_hw_pal): If WITH_STDIO == DO_USE_STDIO,
2339 use stdio, instead of unpended read/printf_filtered.
2340 (hw_pal_instance_write_callback): If WITH_STDIO == DO_USE_STDIO,
2341 flush stdout after writing the characters.
2342
2343 * options.c (print_options): Print out WITH_STDIO.
2344
2345 * Makefile.in (STDIO_CFLAGS): Pass on result of @sim_stdio@
2346 configuration variable.
2347 (CONFIG_CFLAGS): Include STDIO_CFLAGS.
2348 (hw.{c,h}): Allow for source dir != build dir, and for HW_SRC
2349 files to contain directory pieces.
2350
2351 * std-config.h (DO{,NT}_USE_STDIO): New flags for whether we
2352 should use stdio for console input.
2353 (WITH_STDIO): If not defined, define as DONT_USE_STDIO.
2354
2355 * configure.in (--enable-sim-stdio): Add new switch to control
2356 whether stdio is used for console I/O.
2357 * configure: Regenerate.
2358
2359 * interrupts.c (external_interrupt): Declare it to be
2360 INLINE_INTERRUPTS, not INLINE_CPU.
2361
2362 Mon Apr 15 23:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2363
2364 * events.c (insert_event_entry): Allow events to be scheduled
2365 *NOW* (at delta time 0). Add assertions to clarify behavour of
2366 event queue.
2367
2368 * events.c (update_time_from_event): New function. Calculates the
2369 number of ticks from the next event. Use this.
2370
2371 Sun Apr 14 21:39:45 1996 Andrew Cagney <cagney@highland.com.au>
2372
2373 * emul_netbsd.c (do_break): Return 0 if success (instead of
2374 adjusted break).
2375
2376 * device_table.c (vm_ioctl_callback): Don't return adjusted break
2377 (isn't needed).
2378
2379 Sun Apr 14 21:32:41 1996 Andrew Cagney <cagney@highland.com.au>
2380
2381 * device_table.h: Change type of the device ioctl so that it
2382 returns an int (status).
2383 * device.h (device_ioctl): Ditto.
2384 * device.c (device_ioctl): Ditto.
2385
2386 * device_table.c (stack_ioctl_callback): Return 0 status.
2387 (vm_ioctl_callback): Ditto
2388
2389 Sat Apr 13 00:00:24 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2390
2391 * emul_netbsd.c (do_read): Correctly set the return value.
2392 (do_getpid): Ditto.
2393 (do_getuid): Ditto.
2394 (do_geteuid): Ditto.
2395 (do_dup): Ditto.
2396 (do_getegid): Ditto.
2397 (do_getgid): Ditto.
2398 (do_sigprocmask): Ditto.
2399 (do_umask): Ditto.
2400 (do_dup2): Ditto.
2401 (do_gettimeofday): Ditto.
2402 (do_getrusage): Ditto.
2403 (do_fstat): Ditto.
2404 (do_stat): Ditto.
2405 (do_lseek): Ditto.
2406 (do___sysctl): Ditto.
2407
2408 Fri Apr 12 20:56:47 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2409
2410 * device_table.c (vm_ioctl_callback): Don't access the processor
2411 registers directly, instead leave it to the caller to handle this.
2412
2413 * emul_netbsd.c (do_break): Which calls vm_ioctl_callback to
2414 perform a break. Pass in the new break value and set the
2415 registers according to the result.
2416
2417 * emul_generic.c (emul_write_status): Change so that r3 contains
2418 either status or errno and failure is indicated by SO.
2419
2420 Thu Apr 4 23:03:38 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2421
2422 * emul_bugapi.c (emul_bugapi_create): More strict check of OEA
2423 address.
2424
2425 Thu Apr 4 20:58:05 1996 Andrew Cagney <cagney@highland.com.au>
2426
2427 * interrupts.h (interrupts): New structure contains state of
2428 pending interrupts.
2429
2430 * cpu.c (cpu_interrupts): New function. Pending interrupt status
2431 in the cpu and grant access to it. Add interrupts to cpu
2432 structure.
2433
2434 Fri Mar 29 22:09:25 1996 Andrew Cagney <cagney@highland.com.au>
2435
2436 * device.c (device_tree_add_parsed): Check that the creation of a
2437 device instance worked before using it.
2438
2439 * psim.c (psim_halt): Remove cia argument from psim_halt. This
2440 function does not save the CIA so do not pass it in.
2441
2442 Fri Mar 29 21:30:56 1996 Andrew Cagney <cagney@highland.com.au>
2443
2444 * hw_pal.c (hw_pal): Merge the halt and icu and console devices
2445 found in device_table.c into a single hack pal.
2446
2447 * device_table.c (halt, icu, console): Delete.
2448
2449 * Makefile.in (hw_pal.o): New dependency.
2450
2451 * emul_generic.c (emul_add_tree_hardware): Re-arange device tree
2452 so that it uses the pal instead of the icu/halt/console devices.
2453 Wire the pal's interrupt ports up to the cpu nodes.
2454
2455 Fri Mar 29 20:17:17 1996 Andrew Cagney <cagney@highland.com.au>
2456
2457 * hw_iobus.c (hw_iobus_attach_address_callback): Move from
2458 device_table.c to here.
2459
2460 * Makefile.in (hw_iobus.o): New dependency.
2461
2462 Fri Mar 29 12:17:58 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2463
2464 * emul_bugapi.c (_os_emul_data): Add fields for output, input.
2465 (emul_bugapi_create): Create input, output from /chosen/stdin and
2466 /chosen/stdout.
2467 (emul_bugapi_do_{read,write}): Switch to use device_instance
2468 interface.
2469 (emul_bugapi_instruction_call): Change calls to
2470 emul_bugapi_do_{read,write} to pass device instance argument.
2471
2472 Tue Mar 26 14:57:58 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2473
2474 * igen.c (idecode_switch_end): Fix 2/26 change so that an extra
2475 default is not written out if a default was already written.
2476
2477 * psim.c (psim_{read,write}_register): Use sizeof unsigned_8 to
2478 size cooked_buf, not sizeof natural_word, since floating point
2479 registers are 8 bytes.
2480
2481 Mon Mar 25 22:07:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2482
2483 * configure: Regenerate with autoconf 2.9.
2484
2485 Thu Mar 21 00:14:26 1996 Andrew Cagney <cagney@highland.com.au>
2486
2487 * device_table.h: Always include string headers.
2488
2489 Thu Mar 21 00:06:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2490
2491 * main.c (error): Be careful to not try to print out statistics
2492 when the simulation was never created.
2493
2494 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2495
2496 * basics.h: Move the event queue's definition to here so that it
2497 can be refered to globally with out importing all of events.h.
2498
2499 * psim.h, psim.c (psim_event_queue): New function. Grant access
2500 to the simulation event queue. Will make this the single point of
2501 access (there is after all only one event queue in the
2502 simulation).
2503
2504 * cpu.c (cpu_create): Use psim_event_queue to obtain the event
2505 queue instead of it being passed in. No longer allow access to
2506 the cpu's copy of the event queue.
2507
2508 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2509
2510 * events.h, events.c (event_handler): Remove event_queue from
2511 arguments passed to an event handler. That argument is redundant
2512 - the `data' should refer to a data structure that contains the
2513 event queue if queing is needed.
2514
2515 * cpu.c (cpu_decrement_event): adjust
2516
2517 * events.c (event_queue_process): adjust
2518
2519 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2520
2521 * device.h, device.c (device_system): New, returns a handle for
2522 the system given the device.
2523
2524 * device.c (device_address_init): Store a pointer back to the
2525 system in each devices node.
2526
2527 * device_table.h: Don't pass `system' into each device when it is
2528 being initialized, this is now available using device_system(me).
2529
2530 * device.c (device_address_init, device_data_init): Adjust.
2531
2532 * hw_cpu.c, hw_nvram.c, hw_memory.c, hw_eeprom.c, device_table.c:
2533 Adjust.
2534
2535 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2536
2537 * interrupts.c (decrementer_interrupt, external_interrupt):
2538 Remember that an interrupt wasn't delivered so that it can be
2539 tried again later.
2540
2541 * interrupts.c (check_masked_interrupt): New function. (re)
2542 checks for the posibility that a recent change to the MSR may have
2543 made it possible to deliver an interrupt that was previously
2544 masked be the EE bit.
2545
2546 * ppc-instructions (mtmsr, mfmsr, rfi): Check for posibility of
2547 a pending interrupt being delivered using check_masked_interrupt().
2548
2549 * cpu.c (cpu_decrement_event): Just call decrementer_interrupt()
2550 leaving it to that module to handle both interrupt synchronization
2551 and masking.
2552
2553 * cpu.c (struct _cpu): remove variables that were going to record
2554 pending decrementer and external interrupts.
2555
2556 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
2557
2558 * hw_cpu.c, hw_cpu.h: New files. Implement a device that sits
2559 between the interrupt controller and the simulators internal
2560 processor model. Maps device interrupts onto the processor
2561 interrupt function calls.
2562
2563 Mon Mar 4 06:06:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2564
2565 * hw_nvram.c: NVRAM device that includes a real-time clock that is
2566 updated each second.
2567
2568 Mon Mar 4 04:18:50 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2569
2570 * device.h (attach_type): Remove attach_default type address
2571 spaces. Will replace with levels of callback memory.
2572
2573 * corefile.h, corefile.c (new_core_mapping), corefile.c
2574 (core_map_attach): Replace default attach with a layerd callback
2575 approach.
2576
2577 Sun Mar 3 03:58:46 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2578
2579 * device.c (split_property_specifier): ensure that only a single
2580 property is found.
2581 (split_value): New function, parses the value part of a device
2582 spec.
2583
2584 * device.c (device_tree_add_parsed): Use the interrupt conversion
2585 functions to determine the interrupt port numbers.
2586
2587 * device_table.h: Add table that maps between an interrupts
2588 symbolic name and its port number.
2589
2590 * device.h, device.c (device_interrupt_decode,
2591 device_interrupt_encode): new functions use the recently added
2592 interrupt port name/number tables to perform conversion.
2593
2594 Sun Mar 3 03:23:59 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2595
2596 * device.h, device.c (device_set_array_property,
2597 device_set_boolean_property, device_set_ihandle_property,
2598 device_set_integer_property, device_set_string_property): New
2599 functions - allow the value of a given property to be changed.
2600
2601 * device.h, device.c: Re-order declaration and definition of
2602 property functions.
2603
2604 Sun Mar 3 03:10:22 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2605
2606 * device.c (device_tree_print_device, device_tree_add_parsed):
2607 Remove references to phandle properties.
2608
2609 Wed Feb 28 00:43:07 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2610
2611 * Makefile.in (corefile.o): missing dependency on device_table.h
2612 etc.
2613
2614 Tue Feb 27 23:59:35 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2615
2616 * device_table.h: Revamp device init callbacks so that they are a
2617 sub structure.
2618 * device.c (device_init_data, device_init_address): If an init
2619 callback is NULL assume it should do nothing.
2620 * device_table.c (ignore_device_init, unimp_device_init): delete
2621 as redundant.
2622 * device_table.c, hw_memory.c: adjust.
2623
2624 * (io): ditto.
2625 * (dma): ditto.
2626 * (device_instance): ditto.
2627 * (ioctl): ditto.
2628 * (address nee config_address): ditto.
2629 * (interrupt): ditto.
2630
2631 Mon Feb 26 21:11:20 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2632
2633 * igen.c (idecode_switch_end): Output a default entry when the
2634 switch statement is perfect. Firstly stops GCC complaining about
2635 an incomplete switch and secondly it will be eliminated by a good
2636 compiler any way.
2637
2638 Mon Feb 26 22:47:15 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2639
2640 * Makefile.in (hw.h, hw.c): New targets. Create from the list of
2641 hw_*.c files. hw.h declares a device descriptor table for each hw
2642 device while hw.c lists those tables in a form suitable for the
2643 construction of a top leveltable in device_table.c.
2644
2645 * Makefile.in (device_table.o): now depends on hw.c a generated
2646 table of hw.
2647
2648 * device_table.c (device_table): Re-arange the table of devices so
2649 that two levels are possible. Make use of hw.c.
2650 * device_table.h: ditto.
2651
2652 * device.c (device_template_create_device): Handle new two level
2653 device lookup table.
2654 * device.c (device_usage): ditto.
2655
2656 Mon Feb 26 22:24:00 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2657
2658 * device_table.c: Delete the memory device (moved to hw_memory.c).
2659
2660 * hw_memory.c: New file. Just an OpenBoot memory device.
2661
2662 Wed Jan 17 21:47:34 1996 Andrew Cagney <cagney@highland.com.au>
2663
2664 * device.c (device_init_address): New. Split initialization into
2665 two stages, address and address spaces
2666 * device.c (device_init_data): New. ... and data or other work.
2667 With out this, devices try to modify memory before it as been
2668 attached.
2669
2670 * device.c (device_tree_init): Update to perform staged
2671 initialization.
2672
2673 * device.c (device_init): Delete.
2674
2675 Wed Jan 17 21:43:09 1996 Andrew Cagney <cagney@highland.com.au>
2676
2677 * device_table.c (data_*): Rewrite to make heaver use of property
2678 nodes. Allow initialization by different data types.
2679 * device_table.c (htab_* pte_*): Rewrite to use properties.
2680
2681 * emul_chirp.c (emul_chirp_create): Use
2682 * emul_bugapi.c (emul_bugapi_create): Ditto
2683 * emul_netbsd.c (emul_netbsd_create): Ditto
2684
2685 Wed Jan 17 21:24:50 1996 Andrew Cagney <cagney@highland.com.au>
2686
2687 * emul_generic.c (emul_add_tree_options): Annotate existing tree
2688 with options that haven't yet been specified.
2689 * emul_generic.c (emul_add_tree_hardware): Annotate existing tree
2690 with demo devices and properties.
2691
2692 * emul_chirp.c (emul_chirp_create): Update to use new
2693 device_tree_add_parsed call and additional information now
2694 included in the device tree. Use emul_add_tree* functions to add
2695 any missing details.
2696 * emul_bugapi.c (emul_bugapi_create): Ditto
2697 * emul_netbsd.c (emul_netbsd_create): Ditto
2698
2699 Wed Jan 17 21:18:27 1996 Andrew Cagney <cagney@highland.com.au>
2700
2701 * device.c (device_instance_create): New. Create/delete and
2702 operate on instances of a device.
2703 * device.c (device_instance_delete): Ditto
2704 * device.c (device_instance_read): Ditto
2705 * device.c (device_instance_write): Ditto
2706 * device.c (device_instance_seek): Ditto
2707 * device.c (device_instance_data): Ditto
2708 * device.c (device_instance_name): Ditto
2709 * device.c (device_instance_path): Ditto
2710
2711 * emul_chirp.c (chirp_emul_open): Implement using device_instance.
2712 * emul_chirp.c (chirp_emul_close): Ditto
2713 * emul_chirp.c (chirp_emul_read): Ditto
2714 * emul_chirp.c (chirp_emul_write): Ditto
2715 * emul_chirp.c (chirp_emul_seek): Ditto
2716
2717 * emul_chirp.c (chirp_read_t2h_args): Read arguments from device.
2718 Being careful to convert all from target to host byte order.
2719 * emul_chirp.c (chirp_write_h2t_args): Converse.
2720
2721 Wed Jan 17 20:07:15 1996 Andrew Cagney <cagney@highland.com.au>
2722
2723 * device.c (device_tree_add_parsed): New. Rewrite code to add
2724 devices to the device tree so that a single printf style function
2725 is used.
2726
2727 * device.c (device_tree_add_*): Delete. Replaced by above.
2728
2729 * device.c (split_device_specifier): Functions to manipulate a
2730 device specifier (path) breaking it into its components
2731 * device.c (split_property_specifier): Ditto
2732 * device.c (split_device_name): Ditto
2733 * device.c (split_find_device): Ditto
2734
2735 * device.c (scan_*): Delete
2736
2737 * device.c (device_tree_find_device): Rewrite to use above.
2738 * device.c (device_add_property): Ditto
2739
2740 Wed Jan 17 19:51:56 1996 Andrew Cagney <cagney@highland.com.au>
2741
2742 * psim.c(psim_options): Parse the psim options, installing their
2743 value in the device tree. Options are now first entered into a
2744 device tree and then extracted out again when needed. This allows
2745 greater flexability in configuration.
2746
2747 * psim.c (psim_tree): Returns a basic device tree ready for
2748 parsing by psim_options.
2749 * psim.c (psim_usage): New. Give usage to varing levels of detail
2750 according to the verbosity. In turn output device and trace
2751 usage.
2752
2753 * main.c (main): Update to use new system
2754 * sim_calls.c (sim_open, sim_do_command): Ditto
2755
2756 * psim.c (psim_options): Add `r' option - ram size.
2757 * psim.c (psim_options): Add `o' option - openboot tree entry.
2758 * psim.c (psim_options): Add `h'/`H' options - more help.
2759
2760 * debug.c (trace_usage): Add more detailed help.
2761 * device.c (device_usage): New. Output help including a list of
2762 the devices currently available in the device table.
2763 * device_table.c: Add usage operator to each device.
2764
2765 * corefile.c (core_create, core_device_create): Adjust so that the
2766 core device is created earlier for psim_tree(). Core can later be
2767 created from it.
2768
2769 * psim.c (psim_create): Update to handle above way of creating
2770 things. Extract all information from the device tree.
2771
2772 * device_tree.c (trace_*): New device node, its properties are
2773 used to set the value of the trace options. Init this device (in
2774 psim_options) when ever the options are updated.
2775
2776 Wed Jan 17 19:46:07 1996 Andrew Cagney <cagney@highland.com.au>
2777
2778 * debug.h: Add trace_print_info, trace_print_device_tree and
2779 trace_dump_device_tree. The first is a replacement for the
2780 variable `print_info' found in main.c and sim_calls.c. The latter
2781 two enable the dumping of the entire device tree.
2782
2783 * debug.c: Add to trace_description table.
2784
2785 * main.c (main): Use above trace instead of local variable
2786 * sim_calls.c (sim_close): Ditto
2787
2788 * device.c (device_tree_print_device): New. Prints the device
2789 tree in a format that is consistent with what can be parsed by the
2790 device tree load from file code.
2791
2792 * psim.c (psim_create): Dump device tree if enabled. If nump
2793 selected, exit psim immediatly.
2794
2795 Wed Jan 17 19:36:52 1996 Andrew Cagney <cagney@highland.com.au>
2796
2797 * corefile-n.h (core_map_read_N): When mapping from an address to
2798 a device, do not subtract the devices base. The device its self
2799 can do this. Brings the behavour into line with OpenBoot.
2800 * corefile-n.h (core_map_write_N): Ditto
2801 * corefile.c (core_map_read_buffer): Ditto
2802 * corefile.c (core_map_write_buffer): Ditto
2803
2804 * device_table.c (console_io_read_buffer_callback): Adjust to
2805 handle biased address.
2806 * device_table.c (console_io_write_buffer_callback): Ditto
2807
2808 Wed Jan 17 18:36:09 1996 Andrew Cagney <cagney@highland.com.au>
2809
2810 * device.c (attach_device_interrupt_edge): New. Interrupt model
2811 did not allow interrupts to be wired up as a general net (edges).
2812 Re-implement so that interrupt events can be passed to multiple
2813 controllers and interrupt controllers can further propogate
2814 interrupt events.
2815
2816 * device.c (attach_device_interrupt_edge) : New, Ditto
2817 * device.c (detach_device_interrupt_edge) : New, Ditto
2818 * device.c (clean_device_interrupt_edges) : New, Ditto
2819 * device.c (device_interrupt_event) : New, Ditto
2820 * device.c (device_interrupt_attach) : New, Ditto
2821 * device.c (device_interrupt_detach) : New, Ditto
2822 * device.c (device_child_interrupt_attach) : New, Ditto
2823 * device.c (device_child_interrupt_detach) : New, Ditto
2824
2825 * device.c (device_attach_interrupt) : Delete old
2826 * device.c (device_detach_interrupt) : Delete old
2827 * device.c (device_interrupt) : Delete old
2828 * device.c (device_interrupt_ack) : Delete old
2829
2830 * device_table.c (unimp_*) : Update to match
2831
2832 * device_table.c (icu_io_write_buffer_callback) : Update to use
2833 interface.
2834 * device_table.c (icu_interrupt_event_callback) : Ditto
2835
2836 Wed Jan 17 18:18:40 1996 Andrew Cagney <cagney@highland.com.au>
2837
2838 * device.c (external_to_device) : New function that provides a
2839 standard mapping between a devices internal representation (a
2840 pointer) and its external (or what is passed to a client)
2841 representation (a phandle). Implement using the cap object
2842 attached to the root node.
2843
2844 * device.c (device_to_external) : Ditto
2845 * device.c (external_to_device_instance) : Ditto but for ihandle
2846 and device instance.
2847 * device.c (device_instance_to_external) : Ditto
2848
2849 * Makefile (device.o): Add dependency on cap.
2850
2851 * emul_chirp.c (struct _emul_chirp_data) : Elimate use of cap. Code
2852 needing to translate between internal and external representations
2853 changed to use the external_to_device et.al. device operations.
2854 * emul_chirp.c (chirp_emul_*) : Ditto
2855
2856 * Makefile (emul_chirp.o): Remove dependency on cap
2857
2858 Sat Jan 6 10:13:26 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
2859
2860 * emul_chirp.c (map_over_chirp_note): Tighten up (and fix) checks
2861 on OpenBoot note section.
2862
2863 Fri Jan 5 20:28:53 1996 Andrew Cagney <cagney@hignland.com.au>
2864
2865 * emul_generic.c (emul_write_buffer): Use vm faulting byte
2866 read/write calls for buffer transfers. This will cause a fault to
2867 occure if the transfer fails. CHRP catches the fault while the
2868 others suffer the consequences.
2869 (emul_read_buffer): Ditto.
2870 (emul_write_word): Ditto.
2871 (emul_read_word): Ditto.
2872 (emul_read_string): Ditto.
2873
2874 Fri Jan 5 18:55:34 1996 Andrew Cagney <cagney@highland.com.au>
2875
2876 * emul_chirp.c (emul_chirp_create, emul_chirp_instruction_call),
2877 emul_generic (emul_blr_instruction): Use a real blr instruction to
2878 return from a client service call.
2879
2880 * emul_chirp.c (services): Add all OpenBoot services to table.
2881
2882 * emul_generic.h, emul_bugapi.c (emul_bugapi_create), emul_chirp.c
2883 (emul_chirp_create) : Use names instead of numbers for
2884 instructions being stored in memory.
2885
2886 Fri Jan 5 18:52:28 1996 Andrew Cagney <cagney@highland.com.au>
2887
2888 * Makefile.in (maintainer-clean): Remove .log, core and *.core
2889 (From NetBSD) files.
2890
2891 Wed May 29 22:57:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
2892
2893 * ChangeLog.00, ChangeLog: ChangeLog from gdb-4.16 becomes
2894 ChangeLog.00
2895