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