New revision from Andrew
[deliverable/binutils-gdb.git] / sim / ppc / ChangeLog
1 Wed Nov 20 00:36:55 1996 Doug Evans <dje@canuck.cygnus.com>
2
3 * Makefile.in (LIBCOMMON): Define.
4 ($(TARGETLIB)): Add files from $(LIBCOMMON).
5
6 * sim_calls.c (sim_resume): Reset sim_should_run if single stepping.
7
8 Fri Nov 15 15:23:39 1996 Michael Meissner <meissner@tiktok.cygnus.com>
9
10 * pk_disklabel.c (pk_disklabel_create_instance): Fix up some
11 warnings generated by GCC.
12
13 Fri Nov 1 14:42:57 1996 Michael Meissner <meissner@tiktok.cygnus.com>
14
15 * mon.c (_cpu_mon): Add fields for counting 1, 2, 4, and 8 byte
16 reads and writes.
17 (mon_{read,write}): Count 1, 2, 4, and 8 byte reads/writes.
18 (mon_print_info): Correct typo regarding # of unaligned reads and
19 writes. Print out how many 1, 2, 4, and 8 byte reads/writes there
20 are.
21
22 Tue Oct 29 17:55:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
23
24 * configure.in (AC_CHECK_FUNCS): Add access.
25 * config{.in,ure}: Regenerate.
26
27 * emul_unix.c (do_unix_nop): System call that always succeeds.
28 (do_unix_access): Support access system call.
29 (solaris_descriptors): Make sigaltstack and sigaction nops.
30 ({solaris,linux}_descriptors): Add support for access.
31
32 Fri Oct 18 12:12:21 1996 Michael Meissner <meissner@tiktok.cygnus.com>
33
34 * ppc-instructions (Floating Select): Add support for fsel unless
35 model is 601. Allow user to filter out instruction unless -Fs is
36 passed to igen.
37 (Store Floating-Point as Integer Word Indexed): Raise optional
38 instruction program abort. Allow user to filter out instruction
39 unless -Fs is passed to igen.
40 (Floating Square Root{, Single}): Ditto.
41 (Floating Reciprocal Estimate Single): Ditto.
42 (Floating Reciprocal Square Root Estimate): Ditto.
43
44 * configure.in (--enable-sim-filter): If not passed, pass 32,f,s
45 to igen.
46 * configure: Regenerate.
47
48 * interrupts.h (program_interrupt_reasons): Add
49 optional_instruction_program_interrupt.
50
51 * interrupts.c (program_interrupt): Call error with more detailed
52 information on program interrupts, particularly in user mode. Add
53 support for optional_instruction_program_interrupt.
54
55 Thu Oct 3 16:15:20 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
56
57 * Makefile.in (clean): Move config.log to distclean.
58
59 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
60
61 * debug.h: Add disklabel-package and disk-device trace options.
62 debug.h (PTRACE): Add macro to simplify tracing in packages.
63
64 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
65
66 * device.c (device_create_instance_from): Tighten up loop
67 searching for device instances.
68 (device_instance_delete): Ditto.
69 (device_instance_delete): Only leaf instances need to be removed
70 from a devices list of active instances.
71
72 Thu Sep 19 14:40:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
73
74 * hw_disk.c: Add the cdrom as an alias.
75
76 * pk_disklabel.c (disklabel_delete): Implement, remembering to
77 delete the raw disk instance while we're at it.
78
79 * pk_disklabel.c (pk_disklabel_create_instance): Implement a
80 little bit more - still a long way to go.
81
82 * pk_disklabel.c (disklabel_write, disklabel_read): Remember the
83 new head position after a read or write.
84
85 Thu Sep 19 13:05:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
86
87 * emul_chirp.c (chirp_emul_read): Allow reads to be longer then
88 the internal buffer.
89
90 Thu Sep 19 13:05:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
91
92 * emul_chirp.c (chirp_read_t2h_args): Call memset-0 with the args
93 in the correct order.
94
95 * emul_chirp.c (chirp_emul_call_method): Correct computation for
96 the address of the first stack argument passed in from the client
97 program.
98
99 Wed Sep 18 19:33:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
100
101 * words.h: Add new types signed_cell and unsigned_cell which
102 correspond to the signed and unsigned IEEE 1275 memory locations.
103 * device.h, device.c, emul_chirp.c: Where refering to an IEEE 1275
104 memory cell, replace uses of unsigned32 with unsigned_cell.
105 * device_table.h: Ditto.
106
107 * sim-endian.h: Add new macros H2BE_cell and BE2H_cell which
108 convert cell sized values to from big endian.
109 * device.c, emul_chirp.c: Where refering to IEEE 1275 memory cells
110 use these new macros.
111
112 Tue Sep 17 15:57:44 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
113
114 * device.c (device_tree_add_parsed): Detect and report an
115 interrupt being attached to an invalid device. Was dumping core.
116
117 Mon Sep 16 23:09:12 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
118
119 * device.h, device.c (device_address_to_attach_address,
120 device_size_to_attach_size): New functions. Convert a devices
121 unit address or unit size structure into a form suitable for
122 passing on to the attach and detach functions.
123 * device_table.h: Add extra methods to device table.
124
125 * device.h, device.c (device_find_reg_property): New function.
126 For a reg type property, return the selected address + size
127 tupple, along with a positive success status. Add a reg_property
128 to the list of property types.
129 * (device_tree_add_parsed): Make array properties with the name
130 reg or alternate-reg of type reg_property.
131
132 * hw_memory.c (hw_memory_init_address): Rewrite to use new
133 find_reg_property method.
134 * hw_nvram.c (hw_nvram_init_address): Ditto.
135
136 * device.c (device_tree_print_device): Add code to print out a reg
137 property.
138
139 * device_table.c (generic_device_address_to_attach_address,
140 generic_device_size_to_attach_size ): New functions. Generic
141 functions for converting between unit and attach address or size.
142
143 * device_table.c (generic_device_init_address): Rewrite to use the
144 new find_reg and address convert functions. Look for both reg and
145 alternate-reg properties.
146
147 Mon Sep 16 23:09:12 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
148
149 * hw_com.c: New file. A '550 serial device that can quickly be
150 attached to any bus.
151 * configure.in (enable-sim-hardware): Add the com device.
152 * configure: re-generate.
153
154 Thu Sep 12 17:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
155
156 * device.c (device_tree_verify_reg_unit_address): New
157 function. Check that the unit address as specified by the reg
158 property correctly corresponds to any unit address previously
159 specified by the devices name.
160 (device_tree_add_parsed): When adding a reg property, verify
161 that the unit-address - first value of property - correctly
162 matches any previous value specified when creating the device
163 node.
164
165 Thu Sep 12 17:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
166
167 * mon.c (mon_event): Remove assertion that an unsigned is >= 0.
168
169 Fri Aug 16 12:05:24 1996 Michael Meissner <meissner@tiktok.cygnus.com>
170
171 * device.c (device_full_name): Cast strdup to char *, since AIX
172 3.2.5 mistakenly declares the function to be const char *.
173 (device_create_from): Ditto.
174 (device_create_instance_from): Ditto.
175 (device_add_property): Ditto.
176
177 Tue Aug 13 11:40:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
178
179 * debug.c (trace_option): For -t all, do not set the
180 trace_dump_device_tree flag, so that the simulator is run.
181
182 Tue Aug 13 11:40:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
183
184 * Makefile.in (options.o): Depend on defines.h.
185 (defines.h): New rule, go through config.h and make strings of all
186 of the #define HAVE_xxx macros.
187 (distclean): Remove defines.h.
188
189 * options.c (print_options): Print whether many of the
190 configuration macros are defined.
191
192 * main.c (main): If -t options and no filename, just print the
193 options, and don't print the usage message.
194
195 Mon Aug 12 18:42:37 1996 Michael Meissner <meissner@tiktok.cygnus.com>
196
197 * configure.in: Test whether /dev/zero works on the system, and if
198 it does, define HAVE_DEVZERO.
199 * configure: Regenerate.
200
201 * emul_generic.c (emul_add_tree_hardware): Do not add /iobus/disk
202 if we don't have a working /dev/zero on the system.
203
204 * emul_bugapi.c (emul_bugapi_init): If HAVE_DEVZERO is not
205 defined, don't add disk support.
206 (emul_bugapi_do_diskio): Ditto.
207 (emul_bugapi_instruction_call): Ditto.
208
209 Wed Aug 7 14:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
210
211 * emul_unix.c (HAVE_TCGETATTR): If HAVE_TERMIOS_STRUCTURE is not
212 defined, make sure HAVE_TCGETATTR is #undef'ed
213
214 Wed Aug 7 14:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
215
216 * std-config.h (REGPARM): Only define REGPARM attributes if using
217 GNU C. Test for __i686__ in case GCC ever defines it. If not on
218 a x86 platform, define REGPARM as nothing.
219
220 * sim-endian.h (WITH_HOST_BYTE_ORDER): Test for i686 and __i686__
221 also.
222
223 Wed Aug 7 20:19:55 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
224
225 * ld-decode.h, ld-decode.c: Rename goto_gen to the more correct
226 goto_switch_gen.
227 * gen-idecode.c: Ditto.
228
229 * gen-idecode.c (print_idecode_table): Comment out check for
230 switch/table combination until a bug with it is fixed.
231
232 * ppc-opcode-goto: New file. Like complex and flat but uses
233 goto-switch instead of padded-switch for the tables.
234
235 * gen-idecode.c (print_goto_switch_name): New function.
236 (print_goto_switch_table_leaf): New function.
237 (print_goto_switch_break): New function.
238 (print_goto_switch_table): New function. Prints a jump table
239 that can be jumped into instead of a switch statement.
240
241 * gen-idecode.c (*switch_*): As an option output a switch that is
242 implemented using a jump table but only if the switch is not
243 boolean.
244
245 Tue Aug 6 09:28:22 1996 Michael Meissner <meissner@tiktok.cygnus.com>
246
247 * configure.in (--enable-sim-{hardware,packages}): Fix typos.
248 * configure: Regenerate.
249
250 * device.c (device_instance_call_method): Fixup format message in
251 error case. Return 0 in case of error to shut up compiler
252 warnings.
253
254 Wed Aug 7 00:17:37 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
255
256 * device_table.c (generic_device_unit_decode): Require a comma
257 between elements of a unit address.
258
259 * device.c (device_tree_print_device): For reg, alternate-reg and
260 ranges properties use special print functions.
261 (device_print_ranges_property): Print formatted ranges property.
262 (device_print_reg_property): Print formatted reg property.
263
264 Tue Aug 6 21:35:18 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
265
266 * device.c (device_tree_add_parsed): For reg, ranges and
267 alternate-reg properties use a special parser.
268 (device_tree_parse_reg_property): New function to parse a reg
269 property.
270 (device_tree_parse_ranges_property): New function to parse a
271 ranges property.
272 (device_encode_unit): Wrapper for encode_unit callback.
273 (device_decoce_unit): Wrapper for decode_unit callback.
274
275 Wed Jul 31 00:02:30 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
276
277 * device_table.h (device_instance_callbacks): Relace the claim and
278 release methods with a more general table mapping from method-name
279 to method-function.
280
281 * device.c (device_instance_call_method): New function. Implement
282 the OpenBoot call-method client interface. Attempts to locate the
283 instances method in the callback table.
284 (device_instance_claim, device_instance_release): Delete.
285 Replaced with call-method and a lookup table.
286
287 * emul_chirp.c (chirp_emul_call_method): Use the new device
288 instance call method and let that handle a client claim call.
289
290 * hw_htab.c (claim_memory): Wrapper function to call the memory
291 devices "claim" method using the new device-instance call-method
292 interface. Replaces the previous direct calls to claim.
293 (htab_map_region): Use claim_memory.
294 (htab_init_data_callback): Ditto.
295
296 * hw_memory.c (hw_memory_instance_claim): Update function
297 interface so that it is compatible with call-method.
298 (hw_memory_instance_release): Ditto.
299 (hw_memory_instance_methods): New table of memory specific
300 methods claim and release. Add to the hw_memory_callback
301 table.
302
303 Tue Jul 30 21:26:14 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
304
305 * psim.c (psim_init): Back out of change to initial value of
306 system->last_cpu.
307
308 Tue Jul 30 21:12:24 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
309
310 * sim_callbacks.h (sim_io_printf_filtered): Replace
311 printf_filtered with a local simulator specific version. Add
312 #define printf_filtered to simplify updating of existing code.
313
314 * sim_callbacks.h (sim_io_write_stdout, sim_io_read_stdin,
315 sim_io_write_stderr): New functions. Read / write to the
316 simulations stdin and stdout and stderr interfaces. Merge in code
317 from hw_pal that previously handled async I/O.
318 (sim_io_flush_stdoutput): Rename flush_stdoutput. Add #define
319 flush_stdoutput to simplify updating of existing code.
320
321 * hw_pal.c (scan_hw_pal, write_hw_pal,
322 hw_pal_instance_write_callback): Use the new sim_io functions.
323
324 * main.c: Implement standalone versions of the new sim_io
325 functions. Include support for async I/O.
326 * sim_calls.c: Ditto. This time using the gdb callback table.
327
328 * std-config.h (CURRENT_STDIO, current_stdio): New macro. Set up
329 stdio configuration so that it works in the same way as the rest
330 of the simulation.
331 * psim.c (psim_create): Initialize current_stdio from the device
332 tree.
333 * emul_generic.c (emul_add_tree_options): Enter a default value
334 for use-stdio in the device tree.
335
336 Fri Jul 26 19:43:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
337
338 * gen-idecode.c (print_jump): Was always generating a jump back to
339 idecode. Only necessary at tail of semantic code.
340 (print_jump): Was always setting the processor's cia, even during
341 startup when the processor was still undefined.
342 (print_jump): For safety, restart smp loop when cpu_nr >= nr_cpus,
343 not just equal.
344
345 * options.c (print_options): Add printing of WITH_REGPARM and
346 WITH_STDCALL.
347
348 * std-config.h (WITH_REGPARM, WITH_STDCALL): Provide default
349 (disabled) values if not defined.
350
351 Fri Jul 26 00:36:35 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
352
353 * ppc-cache-rules (cache): Change RS and RB to cache instead of
354 compute. The block move instructions use them.
355
356 * idecode_expression.h (FPSCR_SET): New macro, set specific FPSCR
357 register.
358 (CR_FIELD): New macro, extract specific CR register.
359 (FPSCR_FIELD): New macro, extract specific FPSCR register.
360
361 * registers.h (GPR): New macro, simplify accesses to GPR[i].
362
363 * bits.c (INSERTED): Covert INSERTED macro into a function.
364 (EXTRACTED): Conditionally compile on correct bit size macro.
365
366 * bits.h (BIT8): New macro, set a single bit in an 8 bit byte.
367
368 * ppc-instructions: With hints from Paul Martin, type in missing
369 some instruction semantics. Leave disabled for the moment.
370 (Load Multiple Word): Ditto.
371 (Store Multiple Word): Ditto.
372 (Load String Word Immediate): Ditto.
373 (Load String Word Indexed): Ditto.
374 (Store String Word Immedate): Ditto.
375 (Store String Word Indexed): Ditto.
376 (Move to Condition Register from XER): Ditto.
377 (Move From Condition Register): Ditto.
378 (Move From FPSCR): Ditto.
379 (Move to Condition Register from FPSCR): Ditto.
380 (Move To FPSCR Field Immediate): Ditto.
381 (Move To FPSCR Fields): Ditto.
382 (Move To FPSCR Bit 0): Ditto.
383 (Move To FPSCR Bit 1): Ditto.
384
385 Thu Jul 25 22:10:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
386
387 * std-config.h (SEMANTICS_INLINE): By default, mask out the
388 inlining of semantic functions from DEFAULT_INLINE. Almost all
389 configurations call the semantic code via a pointer so there is
390 little benefit.
391
392 * std-config.h (ICACHE_INLINE): Ditto.
393
394 Thu Jul 25 20:07:30 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
395
396 * configure.in (sim_regparm): Add configuration option for
397 enabling GCC's regparm attribute.
398 * (sim_stdcall): Add configuration option for enabling GCC's
399 stdcall attribute.
400
401 * Makefile.in (REGPARM_CFLAGS): Pass regparam configuration onto
402 compilations.
403 * (STDCALL_CFLAGS): Pass stdcall configuration onto compilations.
404
405 * std-config.h (REGPARM): Extend construction of REGPARM macro so
406 that it can include __stdcall__ function attribute.
407
408 Wed Jul 24 19:04:20 1996 Andrew Cagney <cagney@sawnoff>
409
410 * options.c (print_options): Include SUPPORT_INLINE in information
411 dump.
412
413 * gen-idecode.c (print_run_until_stop_body): Only generate loop
414 termination test if creating idecode_run_until_stop. Push the
415 loop termination test back into each alternative branch.
416
417 Wed Jul 24 15:47:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
418
419 * gen-icache.c (print_icache_function): Have the cache function
420 always update the cache_entries semantic and address fields.
421
422 * gen-idecode.c (print_idecode_switch_illegal): Include a break
423 when generating illegal instructions. This was commented out
424 which is a hangover from looking a at switch statements generated
425 using indirect jumps.
426
427 Tue Jul 23 20:57:01 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
428
429 * igen.c (print_my_defines): Replaces print_define_my_index.
430 Print both a definition for MY_INDEX and MY_PREFIX.
431 * gen-icache.c (print_icache_function): Adjust.
432 * gen-idecode.c (print_jump_insn): Adjust.
433 * gen-semantics.c (print_c_semantic): Adjust.
434
435 * gen-support.c (gen_support_h): Add optional include to created
436 support.h so that, like cpu, it is optionally inlined for all
437 modules that include it.
438 * inline.h, inline.c: Adjust so that support.[hc] is handled the
439 same as cpu.[hc].
440
441 * idecode_fields.h (LABEL, GOTO): Macro's that create a unique
442 name for a lable and then branch to it.
443
444 * ppc-instructions (convert_to_integer, Floating Round to
445 Single-Precision, Floating Convert from Integer Doubleword): Use
446 LABEL and GOTO instead of the recently added switch statements.
447
448 Wed Jul 24 14:02:42 1996 Andrew Cagney <cagney@sawnoff.highland.com.au>
449
450 * gen-idecode.c (print_run_until_stop_body): Too many rparen in
451 generated code.
452
453 Tue Jul 23 20:57:01 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
454
455 * configure.in (--enable-sim-line-nr): Typo - sim_line-nr.
456 * (--enable-sim-inline): Reorder patern matching of arguments so
457 that SUPPORT=ALL_INLINE is reconized as *=* and not *_INLINE.
458
459 * configure: rebuild.
460
461 Mon Jul 22 23:25:08 1996 Andrew Cagney <cagney@highland.com.au>
462
463 * configure.in (--enable-sim-hardware, --enable-sim-packages): New
464 configuration options. Let the user specify the packages or
465 hardware devices that are to be included in the build. Makes it
466 possible for user packages to be specified.
467
468 * Makefile.in (tmp-pk, tmp-hw): Just use the list of packages and
469 hardware instead of checking it using ls. configure.in should
470 have taken care of any problems.
471 (HW_SRC, HW_OBJ, PACKAGE_SRC, PACKAGE_OBJ): Set by configure.
472
473 Mon Jul 22 22:38:59 1996 Andrew Cagney <cagney@highland.com.au>
474
475 * psim.c (psim_options): Enter the argument to the memory size
476 option directly into the device tree. Was using atol() which is
477 dangerously non portable.
478
479 Mon Jul 22 22:17:08 1996 Andrew Cagney <cagney@highland.com.au>
480
481 * configure.in (icache): Extend icache flag to include an insn
482 option. If specifyed the insn - aka instruction - is included in
483 the instruction cache. Make this the default.
484 * configure: re-generate.
485
486 * igen.c (main), igen.h: Add option -S - inSn - for specifying
487 that the instruction should be included in the icache.
488
489 * gen-icache.c (print_icache_body): If enabled, output code to put
490 the instruction into the icache.
491 (print_icache_struct): If enabled, add insn to the icache struct.
492
493 Mon Jul 22 20:46:12 1996 Andrew Cagney <cagney@highland.com.au>
494
495 * Makefile.in (BUILD_CFLAGS): Include -g when building the
496 generators.
497
498 Mon Jul 22 20:00:25 1996 Andrew Cagney <cagney@highland.com.au>
499
500 * emul_generic.c (emul_add_tree_options): Was incorrectly setting
501 the strict-alignment option when hardwired for non-strict
502 alignment.
503
504 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
505
506 * gen-semantics.c: Make the my_index variable a macro MY_INDEX.
507
508 * ppc-instructions: Adjust so that references are to MY_INDEX and
509 not my_index.
510
511 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
512
513 * gen-idecode.c: Output the complete run_until_stop function
514 instead of just the code to handle a single instruction issue.
515 * : Have the generated idecode.c include inline.c (instead of psim.c).
516
517 * std-config.h: Change psim.c so that it isn't inlined (as this is
518 no longer needed).
519
520 * psim.c (run_until_stop): Delete the old run_until_stop function
521 instead calling the idecode_run and idecode_run_until_stop
522 functions that gen-idecode.c is now creating.
523
524 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
525
526 * dgen.c: Maintenance - update to use new features found in lf.c.
527
528 * filter_filename.c (filter_filename): Maintenance - make the
529 string constant.
530
531 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
532
533 * debug.c (TRACE, ITRACE, DTRACE): Have GCC instead of CPP
534 eliminate trace statements.
535
536 * debug.c: Change trace format so that it is consistent
537 (file:line-nr) with CC's error output.
538
539 * gen-itable.c (itable_c_insn): Add the source file name and
540 source line number to the instruction's informational entry.
541
542 * debug.c (ITRACE): Use the itable (and my_index) to get the
543 current instructions name and source line number.
544
545 * gen-semantics.c, gen-icache.c: Adjust generated ITRACE calls to
546 match new interface.
547
548 * emul_bugapi.c (emul_bugapi_instruction_call): Adjust
549 corresponding call to ITRACE so that it still matches.
550
551 * idecode_expression.h (ALU_END, CR0_COMPARE): Use TRACE instead
552 of ITRACE. The CPP line directives would have previously set the
553 line-nr and file name so ITRACE isn't needed.
554
555 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
556
557 * gen-idecode.c (print_jump_until_stop_body): New function and
558 idecode generation option. Instead of generating and calling
559 separate functions containing the semantic and icache code
560 generate a single monolythic function and use goto's (and GCC's
561 indirect jump) to move between code blocks.
562
563 * Makefile.in: Add sim_jump flag to those passed to igen.
564
565 * configure.in: New option --enable-sim-jump (default disabled)
566
567 * ppc-instructions: Eliminate any uses of labels and goto's.
568 These result in duplicate declarations when a single flat function
569 is being create.
570
571 * ppc-opcode-jump: New file. Set of opcode rules useful when
572 testing jumping idecodes.
573
574 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
575
576 * gen-idecode.c: Optionally include the semantic code for an
577 instruction in the function that is doing the decoding.
578
579 * igen.c: Add option (-C) to generate semantics in the instruction
580 decode functions.
581
582 * configure.in (--enable-sim-icache): Accept an option list such
583 as 1024,define. Add a new choice to the list - semantic - which
584 will cause igen to generate instruction decode functions that
585 include the corresponding semantic code.
586
587 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
588
589 * configure.in: New option --enable-sim-line-nr (default enabled).
590 Enable/disable the inclusion of CPP line directives in the
591 generated files. Such directives refer back to the source files
592 used when generating the simulator code.
593
594 * Makefile.in (sim_line_nr): Pass to igen.
595
596 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
597
598 * igen.c (main): Revamp the options so that more letters are
599 available.
600
601 * configure.in: Adjust to match igen's revamped options
602
603 Sun Jul 21 21:18:05 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
604
605 * Makefile.in (pk.h, hw.h): Rewrite depenencies for hw.h (etc) so
606 that they use the same technique as igen (ie a dummy targets
607 tmp-pk and tmp-hw are created).
608
609 Mon Jun 24 22:28:00 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
610
611 * Makefile.in (BUILD_CFLAGS): Include WARNING_CFLAGS.
612
613 Wed Jun 19 21:45:28 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
614
615 * ld-cache.[hc], ld-decode.[hc], ld-insn.[hc]: New files. Separate
616 out the loading of each of the tables from the rest of igen.
617 * Makefile.in: Adjust.
618 * igen.c: Adjust.
619
620 * gen-icache.[hc], gen-idecode.[hc], gen-itable.[hc],
621 gen-model.[hc], gen-semantics.[hc]: New files. Separate out the
622 code creating each separate set of generated files.
623 * Makefile.in: Adjust.
624 * igen.c: Adjust.
625
626 * gen-support.[ch]: New files. Output the support functions (found
627 in the ppc-instructions file) into a separate file.
628 * Makefile.in: Add.
629 * inline.h, inline.c: Add.
630 * std-config.h: Add.
631
632 * ld-cache.c: Re-design the cache table format.
633 * ppc-cache-rules: Update to new format.
634
635 * ld-decode.c: Re-design the decode table format.
636 * ppc-opcode-simple: Update to new format
637 * ppc-opcode-complex: Ditto
638 * ppc-opcode-flat: Ditto
639
640 * filter.h, filter.c: New files. Separate the opcode filter table
641 reading code from the rest of igen.c. Re-design the filter so that
642 it works inclusivly not exclusivly.
643 * igen.c: Remove the opcode filter table loading code.
644 * Makefile.in (filter.o): Adjust
645 * configure.in: Adjust filter flag so that default includes 32bit
646 and floating point.
647 * ppc-instructions: Clean up filter fields so that only in use
648 entries are specifed (ie delete `be').
649
650 * misc.c (name2i, i2name): New function. Map between a string and
651 an integer value.
652
653 Mon Jun 17 20:08:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
654
655 * sim_calls.c (sim_close): If simulator not created, skip printing
656 of run information.
657
658 Mon Jun 17 20:08:03 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
659
660 * registers.c (register_description): Typo, insns not insn.
661
662 * ppc-instructions (model_get_number_of_stalls): New model function,
663 returns number of stalls for the specified processor.
664 * psim.c (psim_read_register): Add call to new function
665 model_get_number_of_stalls().
666
667 * ppc-instructions (model_get_number_of_cycles): New model function,
668 returns number of stalls for the specified processor.
669 * psim.c (psim_read_register): Add call to new function
670 model_get_number_of_cycles().
671
672 Fri Jun 14 00:11:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
673
674 * device_table.h: Don't pass the parent device into a devices
675 create function. This makes the create function consistent with
676 the documentation.
677 * device.c (device_template_create_device): Ditto
678 * hw_pal.c (hw_pal_create): Ditto
679 * hw_core.c (hw_core_create): Ditto
680 * hw_vm.c (hw_vm_create): Ditto
681 * hw_disk.c (hw_disk_create): Ditto
682 * hw_nvram.c (hw_nvram_create): Ditto
683 * hw_memory.c (hw_memory_create): Ditto
684 * hw_cpu.c (hw_cpu_create): Ditto.
685
686 * device.c (split_find_device): Allow a null initial parent device.
687 (device_template_create_device): Ditto.
688
689 * device.c (device_create_from): Make local (static) only used
690 within device.c.
691 * device_table.h: typedef device_callbacks moved here (from
692 device.h) where it belongs.
693
694 * hw_core.c: New file. Implements just the core device using the
695 core object.
696
697 * corefile.c: Moved all core device functions into the new
698 hw_core.c file. core_device_create() disapears.
699
700 * psim.c (psim_tree): Use device_tree_add_parsed() to create the
701 core device.
702
703 Thu Jun 13 00:09:29 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
704
705 * hw_init.c: Correct typo in comment.
706
707 * corefile.c (core_init): Remove any remaining references to a
708 default map.
709 (core_map_find_mapping): Ditto.
710
711 Wed Jun 12 22:30:32 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
712
713 * corefile.c (core_init): Make function global so that other
714 devices are able to use the full core object.
715
716 * corefile.c (core_create, core_from_device): Break core_create
717 into two functions. The first creates a core object, the second
718 returns the core object associated with a core device.
719
720 * corefile.c (core_device_create): Use core_create to make the
721 core object.
722
723 * psim.c (psim_create): Use core_from_device() instead of
724 core_create().
725
726 * device.c (device_template_create_device): Make static as only
727 needed by functions internal to device.c.
728
729 Fri Jun 7 23:47:18 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
730
731 * ppc-opcode-test-2: Remove description of fields.
732 * ppc-opcode-complex: Ditto
733 * ppc-opcode-flat: Ditto
734 * ppc-opcode-simple: Ditto
735 * ppc-opcode-stupid: Ditto
736 * ppc-opcode-test-1: Ditto
737 * ppc-cache-rules: Ditto
738
739 * igen.c: Add description of files as a comment at the front.
740
741 Wed Jun 26 12:50:33 1996 Michael Meissner <meissner@tiktok.cygnus.com>
742
743 * configure.in: Check for whether the termios and termio
744 structures are really defined, and whether or not, they define the
745 c_line field.
746 * configure: Regenerate.
747
748 * Makefile.in ({,TERMIO_}CFLAGS): Add TERMIO_CFLAGS options set by
749 configure.
750
751 * emul_unix.c: Various changes to allow for building on systems
752 with different termio and termios structures. If host has both
753 termio and termios, just use termios. No longer include
754 sys/ioctl.h.
755
756 Wed Jun 26 12:26:55 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
757
758 * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
759 INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
760 (docdir): Removed.
761 * configure.in (AC_PREREQ): autoconf 2.5 or higher.
762 (AC_PROG_INSTALL): Added.
763 * configure: Rebuilt.
764
765 Wed Jun 5 23:53:42 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
766
767 * corefile.h: Rewrite documentation so that it can be extracted and
768 converted into texinfo (and hence ready for translation into html,
769 tex or nroff).
770 * device.h: Ditto
771
772 Thu Jun 6 09:52:37 1996 Michael Meissner <meissner@tiktok.cygnus.com>
773
774 * hw_disk.c (SEEK_SET): If SEEK_SET is not defined, define as 0.
775
776 Wed Jun 5 11:46:52 1996 Andrew Cagney <cagney@puddin>
777
778 * hw_disk.c: Include <unistd.h> if available. Under SunOS, that
779 is the source of SEEK_SET.
780
781 Wed Jun 5 01:39:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
782
783 * psim.c (psim_options): Correct type of dummy arguments being
784 passed to a device_ioctl call.
785
786 * hw_init.c (hw_data_init_data_callback): Adjust printf arguments.
787 (write_stack_arguments): Ditto.
788 * hw_trace.c: Instance callback entry no longer a table.
789
790 Wed Jun 5 01:39:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
791
792 * emul_unix.c (do_unix_umask): Cast printf argument.
793 (convert_to_linux_termios): Use LINUX_VSWTC not LINUX_VSWCH
794
795 Mon Jun 3 15:02:04 1996 Michael Meissner <meissner@tiktok.cygnus.com>
796
797 * hw_init.c (update_for_binary_section): Abort if we find an
798 .interp section, which indicates the need for shared libraries to
799 be loaded.
800
801 Mon Jun 3 15:02:04 1996 Michael Meissner <meissner@tiktok.cygnus.com>
802
803 * emul_unix.c (do_unix_{time,gettimeofday,getrusage}): Add support
804 for time, gettimeofday, and getrusage system calls.
805 ({solaris,linux}_descriptors): Add new system calls.
806 (do_get{,e}{uid,gid}): Use gid_t/uid_t types.
807 (do_get{,p}pid): Use pic_t types.
808
809 * configure.in (AC_TYPE_{GETGROUPS,SIGNAL}): Define.
810 (AC_TYPE_{MODE,OFF,PID,SIZE,UID}_T): Define.
811 * config{.in,ure}: Regenerate.
812
813 Mon Jun 3 23:19:57 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
814
815 * emul_netbsd.c (emul_netbsd_create): Use the more specific names
816 `ppc-elf' and `ppc-xcoff' for the stack-type.
817 * emul_unix.c (emul_unix_create): Ditto.
818 * emul_bugapi.c (emul_bugapi_create): Ditto.
819 * hw_init.c: Reconize the new names.
820
821 * emul_unix.c (do_unix_break): Adjust so that the updated ioctl
822 call is used (no system parameter).
823
824 Sun Jun 2 11:21:17 1996 Michael Meissner <meissner@tiktok.cygnus.com>
825
826 * emul_unix.{h,c}: New files to provide Solaris and Linux system
827 call emulations.
828
829 * Makefile.in (LIB_{SRC,OBJ}): Add emul_unix.{c,o}.
830 (os_emul.o): Depend on emul_unix.h.
831 (emul_unix.o): New dependency.
832
833 * configure.in (--enable-sim-alignment): Add 0|default to mean set
834 alignment to 0, which means use appropriate alignment for mode.
835 (AC_CHECK_FUNCS): Add new functions needed by emul_unix.c.
836 (AC_CHECK_HEADERS): Add new include files needed by emul_unix.c.
837 * config.in: Regenerate.
838 * configure: Regenerate.
839
840 * emul_generic.c (emul_write2_status): New function to return
841 results in r3 and r4 for Solaris system calls.
842 (emul_do_system_call): If the system call is not support, but
843 there is a string for the system call name, print out the string
844 instead of the system call number.
845
846 * emul_generic.h (emul_write2_status): Declare it.
847
848 * emul_netbsd.c: Use /* */ around comment on #endif.
849
850 * os_emul.c: Include emul_unix.h.
851 (os_emulations): Add emulations for Solaris, and Linux.
852
853 * psim.c (psim_usage): Add message about solaris, linux
854 emulations.
855
856 Thu May 30 00:00:10 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
857
858 * hw_iobus.c: Tidy up notes so that they can be auto-extracted.
859
860 * README: Correct PSIM's title
861
862 Wed May 29 23:50:26 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
863
864 * basics.h: New global type object_disposition, used to indicate
865 the status of objects when things are restarted.
866
867 Fri May 17 17:28:52 1996 Andrew Cagney <cagney@benjimen.highland.com.au>
868
869 * device_table.h: Change the interrupt descriptor structure so
870 that it includes an additional member - an upper bound on the
871 interrupts by that name.
872
873 * device.c (device_interrupt_decode): Allow a range of interrupt
874 ports (eg rst0 .. rst6) if the port descriptors bound is non zero.
875
876 * device.c (device_tree_print_device): Include a list of valid
877 interrupt ports when listing supported devices.
878
879 * device.h, device.c (device_child_interrupt_*): Delete. Not used.
880
881 * emul_generic.c (emul_add_tree_hardware): Modify the creation of
882 the interrupt net so that it uses int0 .. intN.
883
884 Tue May 14 23:03:53 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
885
886 * device.h, device.c (device_ioctl): Drop the system argument.
887 Devices can not obtain this using the device_system() call.
888 * device_table.h: Adjust accordingly.
889 * hw_*.c: Adjust accordingly.
890 * emul_netbsd.c (do_break): Adjust call to vm device accordingly.
891 * psim.c (psim_options): Use a device_ioctl call to force the
892 hw_trace device to update the trace options.
893 * hw_trace.c: Replace the init function with an ioctl call. Adjust
894 doc accordingly.
895
896 * psim.c (psim_init): Re-order initialization so that the
897 os-emulation is initialized after the device tree. Without this,
898 os-emul's are not able to create instances or access properties
899 that contain an instance handle.
900
901 * device.h, device.c (device_add_*_property): Make these functions
902 internal to device.c. The user has access to the more generic
903 device_tree_add_parsed function. Differentiate between the initial
904 and current value for each property.
905 * (clean_device_properties): New function that deletes any
906 properties created after the start of a simulation and restores
907 the initial value of any others (ignoring ihandles).
908 * (init_device_properties): (Re)Initialize any properties that
909 contain ihandles. create
910
911 * (device_tree_init): Include calls to clean the device tree's
912 properties and then initialize them. Document this in the device.h
913 file.
914
915 Mon May 6 17:36:15 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
916
917 * interrupts.c (decrementer_interrupt): Always pend a decrementer
918 interrupt even if it is not yet possible to deliver it.
919
920 Wed May 1 12:26:51 1996 Andrew Cagney <cagney@benjimen>
921
922 * mon.h, mon.c (mon_get_number_of_insns): Make this externally
923 visable adjusting the arguments so that the interface is correct.
924 (mon_print_info): Adjust calls.
925
926 * registers.h, registers.c (register_description): Add phony
927 cycle, insn and stall registers.
928
929 * psim.c (psim_read_register): Return nr of instructions for given
930 processor.
931
932 Tue Apr 30 22:09:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
933
934 * hw_htab.c: New file. Extract contents from disk_table.c.
935 Contains a device that, during initialization will create a
936 PowerPC htab in memory.
937 * hw_register.c: New file. Extract contents from disk_table.c.
938 Contains a device that, during initialization, will parse its
939 property list and use that to initialize various processor
940 registers (not target specific).
941 * hw_vm.c: New file. Extract contents from disk_table.c. Contains
942 a device that handles accesses to invalid virtual memory addresses
943 (in user mode).
944 * hw_init.c: New file. Extract contents from disk_table.c. Misc
945 devices that can initialize memory from a file.
946 * hw_trace.c: New file. Extract contents from disk_table.c.
947 Configure trace options from property values.
948
949 * Makefile.in (hw_htab.o, hw_register.o, hw_vm.o, hw_init.o,
950 hw_trace.c): Add new device files.
951
952 * device_table.c: Remove above code, now in separate independant
953 files.
954
955 Fri Apr 26 00:00:07 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
956
957 * hw_disk.c: New file. Disk and CDROM device.
958
959 * Makefile.in (hw_disk.o): Add device hw_disk.c.
960
961 * pk_disklabel.c: New file. Implement the miss-named disk-label
962 package.
963
964 * Makefile.in (pk.h): Create the file pk.h that contains a list of all
965 the packages.
966
967 * Makefile.in (hw.h, hw.c): Add dependancy on Makefile so that
968 they are re-created when the makefile is updated.
969
970 * emul_generic.c (emul_add_tree_hardware): Add a disk device
971 (below the iobus) to the device tree. Include an ihandle of
972 the disk as /chosen/disk.
973
974 * emul_bugapi.c (emul_bugapi_create): Don't initialize the input,
975 output and (new) disk handles yet.
976 * (emul_bugapi_init): Initialize the input, output (and just added)
977 disk ihandles here.
978 * (emul_bugapi_do_diskio): New. Performs disk i/o (well at least
979 what I think the behavour is).
980 * emul_bugapi.c (emul_bugapi_instruction_call): Add hook to disk
981 i/o bug call. For RETURN call, exit using gpr[3]'s status even
982 though this isn't part of the spec - makes it possible for machine
983 code to signal the aporting of a simulation run.
984
985 * emul_chirp.c (chirp_emul_call_method): Add support for the
986 claim/release methods.
987 * (chirp_emul_exit): Add an optional exit status argument to
988 the exit method. Makes it possible for chirp emul simulations
989 to abort upon an error.
990 * device.h, device.c (device_instance_claim,
991 device_instance_release): New methods for claiming and releasing
992 memory.
993 * hw_memory.c: add claim and release memory methods.
994 * hw_*: Use the claim memory method when allocating physical
995 memory.
996
997 Thu Apr 18 23:38:10 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
998
999 * hw_nvram.c (hw_nvram_update_clock): Use the current not previous
1000 time when updating the clock.
1001
1002 * hw_nvram.c: Tidy up documentation
1003
1004 Fri May 24 10:08:10 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1005
1006 * configure.in (AC_STRUCT_ST_{BLKSIZE,BLOCKS,RDEV}): Use these
1007 macros to determine whether or not the appropriate st_<xxx> fields
1008 exist in the stat structure.
1009 (AC_CHECK_FUNCS): Check for all unix system calls used, except for
1010 the real basic ones like open, read, write, etc.
1011 * config{.in,ure}: Regenerate.
1012
1013 * emul_netbsd.c: Add support for missing system calls, and/or
1014 missing stat fields.
1015 (MAXPATHLEN): Undefine if including unistd.h, since sys/param.h
1016 might define it.
1017
1018 * hw_pal.c (WITH_STDIO): Redefine if O_NDELAY, F_GETFL, or F_SETFL
1019 are not defined.
1020 (scan_hw_pal): Do not cause syntax error if O_NDELAY, F_GETFL, or
1021 F_SETFL not defined.
1022
1023 Tue May 21 17:24:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1024
1025 * emul_netbsd.c (write_stat): Don't convert st_blocks unless the
1026 host is netbsd.
1027
1028 Thu May 16 10:56:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1029
1030 * configure.in (AC_CHECK_HEADERS): Add sys/ioctl.h.
1031 * config{.in,ure}: Regenerate.
1032 * emul_netbsd.c: If HAVE_SYS_IOCTL_H is not defined, don't include
1033 sys/ioctl.h.
1034
1035 Tue May 7 17:28:12 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1036
1037 * hw_pal.c (hw_pal_instance_read_callback): Remove unused
1038 variable.
1039
1040 * misc.c ({,target_}a2i): Rewrite to not use strtoul.
1041
1042 * Makefile.in ({spreg,misc}.o): Add dependency on .c file.
1043 ({i,d}gen): Don't link in liberity. Use BUILD_LIBS instead of
1044 LIBS.
1045
1046 Mon May 6 11:31:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1047
1048 * hw_pal.c (hw_pal_instance_read_callback): If using stdio, use
1049 fgets to read line. If not using stdio, do a simple blocking read
1050 of len bytes.
1051
1052 Fri May 3 15:07:42 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1053
1054 * Makefile.in: Correctly build simulator for build machine != host
1055 machine.
1056
1057 Tue Apr 30 18:46:05 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1058
1059 * configure.in (--enable-hostendian): Rework so the default uses
1060 the AC_C_BIGENDIAN results. Only run AC_C_BIGENDIAN if not cross
1061 compiling.
1062 * configure: Regenerate.
1063
1064 * sim-endian.h: Add more tests for host endian to support more
1065 platforms in a cross compilation environment.
1066
1067 Wed Apr 17 14:38:06 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1068
1069 * hw_pal.c ({scan,write}_hw_pal): If WITH_STDIO == DO_USE_STDIO,
1070 use stdio, instead of unpended read/printf_filtered.
1071 (hw_pal_instance_write_callback): If WITH_STDIO == DO_USE_STDIO,
1072 flush stdout after writing the characters.
1073
1074 * options.c (print_options): Print out WITH_STDIO.
1075
1076 * Makefile.in (STDIO_CFLAGS): Pass on result of @sim_stdio@
1077 configuration variable.
1078 (CONFIG_CFLAGS): Include STDIO_CFLAGS.
1079 (hw.{c,h}): Allow for source dir != build dir, and for HW_SRC
1080 files to contain directory pieces.
1081
1082 * std-config.h (DO{,NT}_USE_STDIO): New flags for whether we
1083 should use stdio for console input.
1084 (WITH_STDIO): If not defined, define as DONT_USE_STDIO.
1085
1086 * configure.in (--enable-sim-stdio): Add new switch to control
1087 whether stdio is used for console I/O.
1088 * configure: Regenerate.
1089
1090 * interrupts.c (external_interrupt): Declare it to be
1091 INLINE_INTERRUPTS, not INLINE_CPU.
1092
1093 Mon Apr 15 23:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1094
1095 * events.c (insert_event_entry): Allow events to be scheduled
1096 *NOW* (at delta time 0). Add assertions to clarify behavour of
1097 event queue.
1098
1099 * events.c (update_time_from_event): New function. Calculates the
1100 number of ticks from the next event. Use this.
1101
1102 Sun Apr 14 21:39:45 1996 Andrew Cagney <cagney@highland.com.au>
1103
1104 * emul_netbsd.c (do_break): Return 0 if success (instead of
1105 adjusted break).
1106
1107 * device_table.c (vm_ioctl_callback): Don't return adjusted break
1108 (isn't needed).
1109
1110 Sun Apr 14 21:32:41 1996 Andrew Cagney <cagney@highland.com.au>
1111
1112 * device_table.h: Change type of the device ioctl so that it
1113 returns an int (status).
1114 * device.h (device_ioctl): Ditto.
1115 * device.c (device_ioctl): Ditto.
1116
1117 * device_table.c (stack_ioctl_callback): Return 0 status.
1118 (vm_ioctl_callback): Ditto
1119
1120 Sat Apr 13 00:00:24 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1121
1122 * emul_netbsd.c (do_read): Correctly set the return value.
1123 (do_getpid): Ditto.
1124 (do_getuid): Ditto.
1125 (do_geteuid): Ditto.
1126 (do_dup): Ditto.
1127 (do_getegid): Ditto.
1128 (do_getgid): Ditto.
1129 (do_sigprocmask): Ditto.
1130 (do_umask): Ditto.
1131 (do_dup2): Ditto.
1132 (do_gettimeofday): Ditto.
1133 (do_getrusage): Ditto.
1134 (do_fstat): Ditto.
1135 (do_stat): Ditto.
1136 (do_lseek): Ditto.
1137 (do___sysctl): Ditto.
1138
1139 Fri Apr 12 20:56:47 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1140
1141 * device_table.c (vm_ioctl_callback): Don't access the processor
1142 registers directly, instead leave it to the caller to handle this.
1143
1144 * emul_netbsd.c (do_break): Which calls vm_ioctl_callback to
1145 perform a break. Pass in the new break value and set the
1146 registers according to the result.
1147
1148 * emul_generic.c (emul_write_status): Change so that r3 contains
1149 either status or errno and failure is indicated by SO.
1150
1151 Thu Apr 4 23:03:38 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1152
1153 * emul_bugapi.c (emul_bugapi_create): More strict check of OEA
1154 address.
1155
1156 Thu Apr 4 20:58:05 1996 Andrew Cagney <cagney@highland.com.au>
1157
1158 * interrupts.h (interrupts): New structure contains state of
1159 pending interrupts.
1160
1161 * cpu.c (cpu_interrupts): New function. Pending interrupt status
1162 in the cpu and grant access to it. Add interrupts to cpu
1163 structure.
1164
1165 Fri Mar 29 22:09:25 1996 Andrew Cagney <cagney@highland.com.au>
1166
1167 * device.c (device_tree_add_parsed): Check that the creation of a
1168 device instance worked before using it.
1169
1170 * psim.c (psim_halt): Remove cia argument from psim_halt. This
1171 function does not save the CIA so do not pass it in.
1172
1173 Fri Mar 29 21:30:56 1996 Andrew Cagney <cagney@highland.com.au>
1174
1175 * hw_pal.c (hw_pal): Merge the halt and icu and console devices
1176 found in device_table.c into a single hack pal.
1177
1178 * device_table.c (halt, icu, console): Delete.
1179
1180 * Makefile.in (hw_pal.o): New dependency.
1181
1182 * emul_generic.c (emul_add_tree_hardware): Re-arange device tree
1183 so that it uses the pal instead of the icu/halt/console devices.
1184 Wire the pal's interrupt ports up to the cpu nodes.
1185
1186 Fri Mar 29 20:17:17 1996 Andrew Cagney <cagney@highland.com.au>
1187
1188 * hw_iobus.c (hw_iobus_attach_address_callback): Move from
1189 device_table.c to here.
1190
1191 * Makefile.in (hw_iobus.o): New dependency.
1192
1193 Fri Mar 29 12:17:58 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1194
1195 * emul_bugapi.c (_os_emul_data): Add fields for output, input.
1196 (emul_bugapi_create): Create input, output from /chosen/stdin and
1197 /chosen/stdout.
1198 (emul_bugapi_do_{read,write}): Switch to use device_instance
1199 interface.
1200 (emul_bugapi_instruction_call): Change calls to
1201 emul_bugapi_do_{read,write} to pass device instance argument.
1202
1203 Tue Mar 26 14:57:58 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1204
1205 * igen.c (idecode_switch_end): Fix 2/26 change so that an extra
1206 default is not written out if a default was already written.
1207
1208 * psim.c (psim_{read,write}_register): Use sizeof unsigned_8 to
1209 size cooked_buf, not sizeof natural_word, since floating point
1210 registers are 8 bytes.
1211
1212 Mon Mar 25 22:07:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1213
1214 * configure: Regenerate with autoconf 2.9.
1215
1216 Thu Mar 21 00:14:26 1996 Andrew Cagney <cagney@highland.com.au>
1217
1218 * device_table.h: Always include string headers.
1219
1220 Thu Mar 21 00:06:09 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1221
1222 * main.c (error): Be careful to not try to print out statistics
1223 when the simulation was never created.
1224
1225 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
1226
1227 * basics.h: Move the event queue's definition to here so that it
1228 can be refered to globally with out importing all of events.h.
1229
1230 * psim.h, psim.c (psim_event_queue): New function. Grant access
1231 to the simulation event queue. Will make this the single point of
1232 access (there is after all only one event queue in the
1233 simulation).
1234
1235 * cpu.c (cpu_create): Use psim_event_queue to obtain the event
1236 queue instead of it being passed in. No longer allow access to
1237 the cpu's copy of the event queue.
1238
1239 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
1240
1241 * events.h, events.c (event_handler): Remove event_queue from
1242 arguments passed to an event handler. That argument is redundant
1243 - the `data' should refer to a data structure that contains the
1244 event queue if queing is needed.
1245
1246 * cpu.c (cpu_decrement_event): adjust
1247
1248 * events.c (event_queue_process): adjust
1249
1250 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
1251
1252 * device.h, device.c (device_system): New, returns a handle for
1253 the system given the device.
1254
1255 * device.c (device_address_init): Store a pointer back to the
1256 system in each devices node.
1257
1258 * device_table.h: Don't pass `system' into each device when it is
1259 being initialized, this is now available using device_system(me).
1260
1261 * device.c (device_address_init, device_data_init): Adjust.
1262
1263 * hw_cpu.c, hw_nvram.c, hw_memory.c, hw_eeprom.c, device_table.c:
1264 Adjust.
1265
1266 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
1267
1268 * interrupts.c (decrementer_interrupt, external_interrupt):
1269 Remember that an interrupt wasn't delivered so that it can be
1270 tried again later.
1271
1272 * interrupts.c (check_masked_interrupt): New function. (re)
1273 checks for the posibility that a recent change to the MSR may have
1274 made it possible to deliver an interrupt that was previously
1275 masked be the EE bit.
1276
1277 * ppc-instructions (mtmsr, mfmsr, rfi): Check for posibility of
1278 a pending interrupt being delivered using check_masked_interrupt().
1279
1280 * cpu.c (cpu_decrement_event): Just call decrementer_interrupt()
1281 leaving it to that module to handle both interrupt synchronization
1282 and masking.
1283
1284 * cpu.c (struct _cpu): remove variables that were going to record
1285 pending decrementer and external interrupts.
1286
1287 Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
1288
1289 * hw_cpu.c, hw_cpu.h: New files. Implement a device that sits
1290 between the interrupt controller and the simulators internal
1291 processor model. Maps device interrupts onto the processor
1292 interrupt function calls.
1293
1294 Mon Mar 4 06:06:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1295
1296 * hw_nvram.c: NVRAM device that includes a real-time clock that is
1297 updated each second.
1298
1299 Mon Mar 4 04:18:50 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1300
1301 * device.h (attach_type): Remove attach_default type address
1302 spaces. Will replace with levels of callback memory.
1303
1304 * corefile.h, corefile.c (new_core_mapping), corefile.c
1305 (core_map_attach): Replace default attach with a layerd callback
1306 approach.
1307
1308 Sun Mar 3 03:58:46 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1309
1310 * device.c (split_property_specifier): ensure that only a single
1311 property is found.
1312 (split_value): New function, parses the value part of a device
1313 spec.
1314
1315 * device.c (device_tree_add_parsed): Use the interrupt conversion
1316 functions to determine the interrupt port numbers.
1317
1318 * device_table.h: Add table that maps between an interrupts
1319 symbolic name and its port number.
1320
1321 * device.h, device.c (device_interrupt_decode,
1322 device_interrupt_encode): new functions use the recently added
1323 interrupt port name/number tables to perform conversion.
1324
1325 Sun Mar 3 03:23:59 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1326
1327 * device.h, device.c (device_set_array_property,
1328 device_set_boolean_property, device_set_ihandle_property,
1329 device_set_integer_property, device_set_string_property): New
1330 functions - allow the value of a given property to be changed.
1331
1332 * device.h, device.c: Re-order declaration and definition of
1333 property functions.
1334
1335 Sun Mar 3 03:10:22 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1336
1337 * device.c (device_tree_print_device, device_tree_add_parsed):
1338 Remove references to phandle properties.
1339
1340 Wed Feb 28 00:43:07 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
1341
1342 * Makefile.in (corefile.o): missing dependency on device_table.h
1343 etc.
1344
1345 Tue Feb 27 23:59:35 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
1346
1347 * device_table.h: Revamp device init callbacks so that they are a
1348 sub structure.
1349 * device.c (device_init_data, device_init_address): If an init
1350 callback is NULL assume it should do nothing.
1351 * device_table.c (ignore_device_init, unimp_device_init): delete
1352 as redundant.
1353 * device_table.c, hw_memory.c: adjust.
1354
1355 * (io): ditto.
1356 * (dma): ditto.
1357 * (device_instance): ditto.
1358 * (ioctl): ditto.
1359 * (address nee config_address): ditto.
1360 * (interrupt): ditto.
1361
1362 Mon Feb 26 21:11:20 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
1363
1364 * igen.c (idecode_switch_end): Output a default entry when the
1365 switch statement is perfect. Firstly stops GCC complaining about
1366 an incomplete switch and secondly it will be eliminated by a good
1367 compiler any way.
1368
1369 Mon Feb 26 22:47:15 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
1370
1371 * Makefile.in (hw.h, hw.c): New targets. Create from the list of
1372 hw_*.c files. hw.h declares a device descriptor table for each hw
1373 device while hw.c lists those tables in a form suitable for the
1374 construction of a top leveltable in device_table.c.
1375
1376 * Makefile.in (device_table.o): now depends on hw.c a generated
1377 table of hw.
1378
1379 * device_table.c (device_table): Re-arange the table of devices so
1380 that two levels are possible. Make use of hw.c.
1381 * device_table.h: ditto.
1382
1383 * device.c (device_template_create_device): Handle new two level
1384 device lookup table.
1385 * device.c (device_usage): ditto.
1386
1387 Mon Feb 26 22:24:00 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
1388
1389 * device_table.c: Delete the memory device (moved to hw_memory.c).
1390
1391 * hw_memory.c: New file. Just an OpenBoot memory device.
1392
1393 Wed Jan 17 21:47:34 1996 Andrew Cagney <cagney@highland.com.au>
1394
1395 * device.c (device_init_address): New. Split initialization into
1396 two stages, address and address spaces
1397 * device.c (device_init_data): New. ... and data or other work.
1398 With out this, devices try to modify memory before it as been
1399 attached.
1400
1401 * device.c (device_tree_init): Update to perform staged
1402 initialization.
1403
1404 * device.c (device_init): Delete.
1405
1406 Wed Jan 17 21:43:09 1996 Andrew Cagney <cagney@highland.com.au>
1407
1408 * device_table.c (data_*): Rewrite to make heaver use of property
1409 nodes. Allow initialization by different data types.
1410 * device_table.c (htab_* pte_*): Rewrite to use properties.
1411
1412 * emul_chirp.c (emul_chirp_create): Use
1413 * emul_bugapi.c (emul_bugapi_create): Ditto
1414 * emul_netbsd.c (emul_netbsd_create): Ditto
1415
1416 Wed Jan 17 21:24:50 1996 Andrew Cagney <cagney@highland.com.au>
1417
1418 * emul_generic.c (emul_add_tree_options): Annotate existing tree
1419 with options that haven't yet been specified.
1420 * emul_generic.c (emul_add_tree_hardware): Annotate existing tree
1421 with demo devices and properties.
1422
1423 * emul_chirp.c (emul_chirp_create): Update to use new
1424 device_tree_add_parsed call and additional information now
1425 included in the device tree. Use emul_add_tree* functions to add
1426 any missing details.
1427 * emul_bugapi.c (emul_bugapi_create): Ditto
1428 * emul_netbsd.c (emul_netbsd_create): Ditto
1429
1430 Wed Jan 17 21:18:27 1996 Andrew Cagney <cagney@highland.com.au>
1431
1432 * device.c (device_instance_create): New. Create/delete and
1433 operate on instances of a device.
1434 * device.c (device_instance_delete): Ditto
1435 * device.c (device_instance_read): Ditto
1436 * device.c (device_instance_write): Ditto
1437 * device.c (device_instance_seek): Ditto
1438 * device.c (device_instance_data): Ditto
1439 * device.c (device_instance_name): Ditto
1440 * device.c (device_instance_path): Ditto
1441
1442 * emul_chirp.c (chirp_emul_open): Implement using device_instance.
1443 * emul_chirp.c (chirp_emul_close): Ditto
1444 * emul_chirp.c (chirp_emul_read): Ditto
1445 * emul_chirp.c (chirp_emul_write): Ditto
1446 * emul_chirp.c (chirp_emul_seek): Ditto
1447
1448 * emul_chirp.c (chirp_read_t2h_args): Read arguments from device.
1449 Being careful to convert all from target to host byte order.
1450 * emul_chirp.c (chirp_write_h2t_args): Converse.
1451
1452 Wed Jan 17 20:07:15 1996 Andrew Cagney <cagney@highland.com.au>
1453
1454 * device.c (device_tree_add_parsed): New. Rewrite code to add
1455 devices to the device tree so that a single printf style function
1456 is used.
1457
1458 * device.c (device_tree_add_*): Delete. Replaced by above.
1459
1460 * device.c (split_device_specifier): Functions to manipulate a
1461 device specifier (path) breaking it into its components
1462 * device.c (split_property_specifier): Ditto
1463 * device.c (split_device_name): Ditto
1464 * device.c (split_find_device): Ditto
1465
1466 * device.c (scan_*): Delete
1467
1468 * device.c (device_tree_find_device): Rewrite to use above.
1469 * device.c (device_add_property): Ditto
1470
1471 Wed Jan 17 19:51:56 1996 Andrew Cagney <cagney@highland.com.au>
1472
1473 * psim.c(psim_options): Parse the psim options, installing their
1474 value in the device tree. Options are now first entered into a
1475 device tree and then extracted out again when needed. This allows
1476 greater flexability in configuration.
1477
1478 * psim.c (psim_tree): Returns a basic device tree ready for
1479 parsing by psim_options.
1480 * psim.c (psim_usage): New. Give usage to varing levels of detail
1481 according to the verbosity. In turn output device and trace
1482 usage.
1483
1484 * main.c (main): Update to use new system
1485 * sim_calls.c (sim_open, sim_do_command): Ditto
1486
1487 * psim.c (psim_options): Add `r' option - ram size.
1488 * psim.c (psim_options): Add `o' option - openboot tree entry.
1489 * psim.c (psim_options): Add `h'/`H' options - more help.
1490
1491 * debug.c (trace_usage): Add more detailed help.
1492 * device.c (device_usage): New. Output help including a list of
1493 the devices currently available in the device table.
1494 * device_table.c: Add usage operator to each device.
1495
1496 * corefile.c (core_create, core_device_create): Adjust so that the
1497 core device is created earlier for psim_tree(). Core can later be
1498 created from it.
1499
1500 * psim.c (psim_create): Update to handle above way of creating
1501 things. Extract all information from the device tree.
1502
1503 * device_tree.c (trace_*): New device node, its properties are
1504 used to set the value of the trace options. Init this device (in
1505 psim_options) when ever the options are updated.
1506
1507 Wed Jan 17 19:46:07 1996 Andrew Cagney <cagney@highland.com.au>
1508
1509 * debug.h: Add trace_print_info, trace_print_device_tree and
1510 trace_dump_device_tree. The first is a replacement for the
1511 variable `print_info' found in main.c and sim_calls.c. The latter
1512 two enable the dumping of the entire device tree.
1513
1514 * debug.c: Add to trace_description table.
1515
1516 * main.c (main): Use above trace instead of local variable
1517 * sim_calls.c (sim_close): Ditto
1518
1519 * device.c (device_tree_print_device): New. Prints the device
1520 tree in a format that is consistent with what can be parsed by the
1521 device tree load from file code.
1522
1523 * psim.c (psim_create): Dump device tree if enabled. If nump
1524 selected, exit psim immediatly.
1525
1526 Wed Jan 17 19:36:52 1996 Andrew Cagney <cagney@highland.com.au>
1527
1528 * corefile-n.h (core_map_read_N): When mapping from an address to
1529 a device, do not subtract the devices base. The device its self
1530 can do this. Brings the behavour into line with OpenBoot.
1531 * corefile-n.h (core_map_write_N): Ditto
1532 * corefile.c (core_map_read_buffer): Ditto
1533 * corefile.c (core_map_write_buffer): Ditto
1534
1535 * device_table.c (console_io_read_buffer_callback): Adjust to
1536 handle biased address.
1537 * device_table.c (console_io_write_buffer_callback): Ditto
1538
1539 Wed Jan 17 18:36:09 1996 Andrew Cagney <cagney@highland.com.au>
1540
1541 * device.c (attach_device_interrupt_edge): New. Interrupt model
1542 did not allow interrupts to be wired up as a general net (edges).
1543 Re-implement so that interrupt events can be passed to multiple
1544 controllers and interrupt controllers can further propogate
1545 interrupt events.
1546
1547 * device.c (attach_device_interrupt_edge) : New, Ditto
1548 * device.c (detach_device_interrupt_edge) : New, Ditto
1549 * device.c (clean_device_interrupt_edges) : New, Ditto
1550 * device.c (device_interrupt_event) : New, Ditto
1551 * device.c (device_interrupt_attach) : New, Ditto
1552 * device.c (device_interrupt_detach) : New, Ditto
1553 * device.c (device_child_interrupt_attach) : New, Ditto
1554 * device.c (device_child_interrupt_detach) : New, Ditto
1555
1556 * device.c (device_attach_interrupt) : Delete old
1557 * device.c (device_detach_interrupt) : Delete old
1558 * device.c (device_interrupt) : Delete old
1559 * device.c (device_interrupt_ack) : Delete old
1560
1561 * device_table.c (unimp_*) : Update to match
1562
1563 * device_table.c (icu_io_write_buffer_callback) : Update to use
1564 interface.
1565 * device_table.c (icu_interrupt_event_callback) : Ditto
1566
1567 Wed Jan 17 18:18:40 1996 Andrew Cagney <cagney@highland.com.au>
1568
1569 * device.c (external_to_device) : New function that provides a
1570 standard mapping between a devices internal representation (a
1571 pointer) and its external (or what is passed to a client)
1572 representation (a phandle). Implement using the cap object
1573 attached to the root node.
1574
1575 * device.c (device_to_external) : Ditto
1576 * device.c (external_to_device_instance) : Ditto but for ihandle
1577 and device instance.
1578 * device.c (device_instance_to_external) : Ditto
1579
1580 * Makefile (device.o): Add dependency on cap.
1581
1582 * emul_chirp.c (struct _emul_chirp_data) : Elimate use of cap. Code
1583 needing to translate between internal and external representations
1584 changed to use the external_to_device et.al. device operations.
1585 * emul_chirp.c (chirp_emul_*) : Ditto
1586
1587 * Makefile (emul_chirp.o): Remove dependency on cap
1588
1589 Sat Jan 6 10:13:26 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
1590
1591 * emul_chirp.c (map_over_chirp_note): Tighten up (and fix) checks
1592 on OpenBoot note section.
1593
1594 Fri Jan 5 20:28:53 1996 Andrew Cagney <cagney@hignland.com.au>
1595
1596 * emul_generic.c (emul_write_buffer): Use vm faulting byte
1597 read/write calls for buffer transfers. This will cause a fault to
1598 occure if the transfer fails. CHRP catches the fault while the
1599 others suffer the consequences.
1600 (emul_read_buffer): Ditto.
1601 (emul_write_word): Ditto.
1602 (emul_read_word): Ditto.
1603 (emul_read_string): Ditto.
1604
1605 Fri Jan 5 18:55:34 1996 Andrew Cagney <cagney@highland.com.au>
1606
1607 * emul_chirp.c (emul_chirp_create, emul_chirp_instruction_call),
1608 emul_generic (emul_blr_instruction): Use a real blr instruction to
1609 return from a client service call.
1610
1611 * emul_chirp.c (services): Add all OpenBoot services to table.
1612
1613 * emul_generic.h, emul_bugapi.c (emul_bugapi_create), emul_chirp.c
1614 (emul_chirp_create) : Use names instead of numbers for
1615 instructions being stored in memory.
1616
1617 Fri Jan 5 18:52:28 1996 Andrew Cagney <cagney@highland.com.au>
1618
1619 * Makefile.in (maintainer-clean): Remove .log, core and *.core
1620 (From NetBSD) files.
1621
1622 Wed May 29 22:57:40 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
1623
1624 * ChangeLog.00, ChangeLog: ChangeLog from gdb-4.16 becomes
1625 ChangeLog.00
1626
This page took 0.067687 seconds and 4 git commands to generate.