OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [branches/] [oc/] [gdb-5.0/] [sim/] [ppc/] [ChangeLog] - Blame information for rev 1765

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.