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