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