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