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