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