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