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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [sim/] [ppc/] [ChangeLog] - Blame information for rev 1765

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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