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