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