Work with new and old BFDs; Do not inline model externs functions by default
[deliverable/binutils-gdb.git] / sim / ppc / ChangeLog
CommitLineData
98a497b3
MM
1Sat Dec 16 09:54:18 1995 Michael Meissner <meissner@wogglebug.tiac.net>
2
3 * emul_netbsd.c (emul_netbsd_create): Deal with new BFD that
4 changed how big/little endian support is recorded, while remaining
5 compatible with the old BFD with #ifdefs.
6 * emul_chirp.c (emul_chirp_create): Ditto.
7 * emul_bugapi.c (emul_bugapi_create): Ditto.
8
669b4e1e
MM
9Fri Dec 15 15:55:56 1995 Michael Meissner <meissner@tiktok.cygnus.com>
10
98a497b3
MM
11 * std-config.h (MODEL_INLINE): Turn off INLINE_MODULE by default.
12
669b4e1e
MM
13 * corefile.h: Delete declarations for unknown functions.
14 * device.h: Ditto.
15 * interrupts.h: Ditto.
98a497b3 16 * interrupts.c: Ditto.
669b4e1e 17
93fac324
MM
18Thu Dec 14 18:49:34 1995 Andrew Cagney <cagney@highland.com.au>
19
20 * lf.c (lf_print_function_type): New function. Munges a function
21 type so that the prefix (eg INLINE...) is inserted after the type
22 but before any `*'.
23
24 * igen.c: Change to output functions using this.
25
26Wed Dec 13 23:47:00 1995 Andrew Cagney <cagney@highland.com.au>
27
28 FIXME: Emul CHIRP does not correctly implement the find device
29 function.
30
31 FIXME: Emul CHIRP and device do not implement device instance
32 operations.
33
34Wed Dec 13 23:47:00 1995 Andrew Cagney <cagney@highland.com.au>
35
36 * options.c (options_inline): Function to output meaningful
37 description of the INLINE options.
38
39 * configure.in (inline): Replace inline magic numbers with macro
40 names. Map 1->LOCALS_INLINE and 2->ALL_INLINE.
41
42 * inline.h, inline.c: update to use inline method.
43
44 * std-config.h (CPU_INLINE), cpu.h, inline.h, inline.c: make cpu.h
45 inline always.
46
47 * std-config.h (EVENTS_INLINE): Inline events in psim.
48
49Wed Dec 13 22:01:21 1995 Andrew Cagney <cagney@highland.com.au>
50
51 * device_table.c (htab_sum_binary): DMA binaries to correct byte
52 within a page.
53
54Tue Dec 12 22:51:18 1995 Andrew Cagney <cagney@highland.com.au>
55
56 * psim.c (psim_merge_device_file): Change `=' to `==', was this an
57 error?
58
59Tue Dec 5 11:56:14 1995 Andrew Cagney <cagney@highland.com.au>
60
61 * ppc-instructions (ppc_nr_mtcrf_crs, ppc_branch_conditional_name,
62 ppc_function_unit_name): Simplify by declaring these arrays as
63 pure and simple static (instead of STATIC_MODEL).
64
65Tue Dec 5 00:45:34 1995 Andrew Cagney <cagney@highland.com.au>
66
67 * sim_calls.c (sim_create, sim_load), main.c (main), psim.c: Pass
68 an options device into psim_create() so that options can be merged
69 into the tree.
70
71 * device.c (*add*): Change semantics so the add functions only add
72 when the new device (or property) doesn't already exist. This
73 allows merging of options and data.
74
75Mon Dec 4 17:12:13 1995 Andrew Cagney <cagney@highland.com.au>
76
77 * Makefile.in (BASICS_H): Didn't include basics.h in the list of
78 header files to depend on.
79
80Mon Dec 4 17:12:13 1995 Andrew Cagney <cagney@highland.com.au>
81
82 * std-config.h: (*_MODULE): Extend the <module>_inline macro's so
83 that they also allow control over static functions. Rewrite
84 document to reflect this.
85
86 * std-config.h: (INLINE): Simplify definition, the above and
87 earlier changes to igen.h eliminate the need to be defensive about
88 enabling the inline of static functions.
89
90 * std-config.h: (SIM_ENDIAN_INLINE, BITS_INLINE): Document limited
91 suport for inlineing of modules for all callers. Adjust relevant
92 macro's so that DEFAULT_INLINE will enable this.
93
94 * basics.h: Re-order #includes and definitions so that c-code for
95 basic include files does not call functions delcared in later
96 #includes.
97
98 * basics.h (__attribute__), sim_callbacks.h: Move attribute macro
99 to basics.h and add hack (include <stdio.h>) to try and bring that
100 and other possible conflicting macros into scope much earler.
101
102 * sim-endian.h,c (SIM_ENDIAN_INLINE) bits.h,c (BITS_INLINE):
103 Change to use the updated inline definitions. If enabled
104 immediatly include the corresponding c-code so that it will inline
105 for all modules.
106
107 * inline.h, inline.c (SIM_ENDIAN_INLINE, BITS_INLINE): Remove
108 these cases, moved to module specific header files.
109
110Sat Dec 2 18:37:51 1995 Andrew Cagney <cagney@highland.com.au>
111
112 * vm.c, vm_n.c: Fix htab code.
113
114 * vm.c (vm_data_map_read_buffer): Was using EA not RA when reading
115 the data from core.
116
117 * device.c: Fix htab create code.
118
119Fri Nov 24 23:10:09 1995 Andrew Cagney <cagney@highland.com.au>
120
121 * bits.h, bits.c (EXTRACTED): Convert to function, fix - had &&
122 instead of &.
123
124 * sim-endian.h (SWAP_N), sim-endian-n.h, sim-endian.c: How
125 embarasing - fix yet another bug in the swap code! Simplify
126 everything by using more functions. Add host to big-endian byte
127 swapping support.
128
129Fri Nov 24 23:10:09 1995 Andrew Cagney <cagney@highland.com.au>
130
131 * devices.h, devices.c: delete, replaced by the files
132 device_table.[ch] and device.[ch].
133 * device_tree.h, device_tree.c: ditto
134
135 * device_table.h, device_table.c: New files. Contain a table of
136 devices.
137
138 * device.h, device.c, Makefile.in, std-config.h (DEVICE_INLINE),
139 options.c (print_options): New files. Define the device object
140 along with any attached properties.
141
142 * device_tree.h, device_tree.c: Update to use new device object.
143 For convenience, change the printd functions into device_tree_add
144 functions.
145
146 * psim.c (create_*_tree): Use new device_tree create functions.
147
148 * corefile.h, corefile.c corefile-n.h (core_n.h): Update to use
149 the new device.h / device_table.h interface. Rename core_n.h to
150 corefile-n.h to be consistent with other n files.
151
152 * Makefile.in (run): add corefile-n.h to dependencies for
153 corefile.
154
155 * basics.h (device_instance), device.h, device.c, device_table.h,
156 device_table.c: Add the concept of a device instance and operators
157 on these instances - corresponds to ihandle in OpenBoot speak.
158 Don't yet implement it.
159
160Tue Nov 14 12:27:08 1995 Andrew Cagney <cagney@highland.com.au>
161
162 * emul_generic.h, emul_generic.c (emul_syscall_enter,
163 emul_syscall_exit): rename from emul_enter_call /
164 emul_exit_call. As only used by emul_do_system_call simplify
165 associated code.
166
167 * os_emul.h, os_emul.c, emul_generic.h: Correct and fill an
168 os_emul interface.
169
170 * os_emul.c, emul_bugapi.h, emul_bugapi.c, Makefile.in: Add
171 preliminary hooks for a kernel mode rom emulation.
172
173 * cap.h (new), cap.c (new): Capability data base. Some emulations
174 pass object identifiers (capabilities?) to/from the simulated code
175 (for instance the phandle in OpenBoot). The cap object is able to
176 check/map between internal and external (target program)
177 representations of each identifier.
178
179 * os_emul.c, emul_chirp.h, emul_chirp.c, Makefile.in: Add
180 preliminary hooks for a kernel mode IEEE-1275 emulation.
181
182 * cpu.h, cpu.c (cpu_create, cpu_os_emulation, cpu): Add os_emul to
183 list of arguments passed in when creating a cpu. Grant access to
184 the element.
185
186 * std-config.h (OS_EMUL_INLINE), options.c (print_options),
187 inline.h, inline.c: New to allow control over inline of
188 corresponding code files.
189
190 * ppc-instructions (instruction_call): Add illegal instruction to
191 call the instruction-call emulation handler.
192
193 * interrupts.c (system_call_interrupt): Call renamed
194 os_emul_system_call function().
195
196 * emul_netbsd.c: Update to interface to generic emulation. Since
197 all its functions are called via a table don't worry about any
198 inline.
199
200 * emul_generic.h, emul_generic.c, spa-*(delete): Remove references
201 and code for spa, no longer to be used.
202
203 * psim.c (create_chirp_device_tree): Fill out what was previously
204 the openboot create function so that it starts to create a full
205 OpenBoot device tree.
206
207Tue Nov 28 21:48:06 1995 Andrew Cagney <cagney@highland.com.au>
208
209 * debug.h, debug.c: pte trace is made redundant by htab trace,
210 delete it. Add vm to list of options. Simplify tracing output so
211 lines are not as long.
212
213Tue Nov 14 12:27:08 1995 Andrew Cagney <cagney@highland.com.au>
214
215 * events.h, events.c (event_queue_init), psim.c (psim_init): (re)
216 initialize the event queue.
217
218
219
220
221
222
290ad14a
MM
223Tue Nov 28 13:38:26 1995 Michael Meissner <meissner@tiktok.cygnus.com>
224
1f1e5dd8
MM
225 * sim-endian.h: Look at WORDS_BIGENDIAN to determine if the host
226 is big endian or little endian. For SWAP_n, use htonl/htons if
227 host is little endian, not big endian and if WITH_NTOH is defined.
228
290ad14a 229 * configure{,.in} (--enable-sim-model-issue): Instead of defining
1f1e5dd8
MM
230 0/1, define it to be MODEL_ISSUE_{PROCESS,IGNORE}. Add
231 AC_C_BIGENDIAN to determine if the host is big endian or not.
232 * config.in: Regenerate.
290ad14a
MM
233
234 * std-config.h (WITH_MODEL_ISSUE): Default to 0.
235 (CURRENT_MODEL_ISSUE): Reference WITH_MODEL_ISSUE, and if that is
236 0, use current_model_issue.
1f1e5dd8 237 (MODEL_ISSUE_{PROCESS,IGNORE}): Define as -1/1.
290ad14a
MM
238
239 * psim.c (current_model_issue): New global variable.
240
241 * cpu.c (cpu_create): Use CURRENT_MODEL_ISSUE > 0 instead of
242 WITH_MODEL_ISSUE.
243 (cpu_{init,halt}): Ditto.
244 * mon.c (mon_print_info): Ditto.
245 * ppc-instructions (PPC_INSN_* macros, branch handling): Ditto.
246
cf644706 247 * mon.c (mon_print_info): Print instructions/second if verbose > 0,
290ad14a
MM
248 rather than > 1.
249
250 * main.c (main): Set current_model_issue to MODEL_ISSUE_PROCESS if
251 the -I switch is used.
252 * sim_calls (sim_open): Ditto.
253
254 * ppc-instructions (model support): Add support for determining
255 when we don't have enough writeback slots. Add tracing for the
256 beginning of each cycle.
257
70fc4ad3
MM
258Mon Nov 27 17:46:33 1995 Michael Meissner <meissner@tiktok.cygnus.com>
259
260 * mon.c: Check for whether to include sys/types.h and sys/time.h.
261
262 * configure.in: Check for include files sys/types.h and
263 sys/time.h.
264 * configure: Regenerate.
265 * config.in: Regenerate.
266
267 * cpu.h (CONST_ATTRIBUTE): Define as __attribute__((__const__)) if
268 not already defined.
269 (cpu_system): Use CONST_ATTRIBUTE, so that when we're not inlining
270 the world, the optimizer has a fair chance of CSE'ing function
271 calls.
272 (cpu_{monitor,nr,registers,model}): Ditto.
273
274 * std-config.h (MODEL_INLINE): If not defined, define as 1 if
275 DEFAULT_INLINE is non-zero, 0 otherwise, rather than just the
276 value of DEFAULT_INLINE.
277
45525d8d
MM
278Fri Nov 24 11:24:34 1995 Michael Meissner <meissner@tiktok.cygnus.com>
279
eade8e03
MM
280 * lf.h (__attribute__): If not GCC and at least 2.7.0, define as
281 nothing.
282 (lf_printf): Add printf __attribute__, so the compiler will
283 automatically check the format string.
284
63caaafa
MM
285 * configure{,.in} (--enable-sim-icache): If argument is define,
286 add -R to flags passed to igen.
287
288 * igen.c (stdlib.h): Include if the system supplies one.
289 (semantics_use_cache_struct): New global for -R flag to say
290 semantics is to use the cache structure directly rather than
291 putting the values into local variables.
292 (first_undef, last_undef): New structures to remember names to
293 #undef if -R.
294 (lf_print_c_extraction): If -R and this is semantics, emit names
295 as #defines pointing to the cache structure, rather than loading
296 the values into local variables.
297 (lf_print_c_semantic_function): If -R, #undef all of the names
298 defined in lf_print_c_extraction.
299 (main): Recognize -R.
300
301 * idecode_fields.h (SPR_*): Redefine spr_* macros as SPR_* to
302 avoid a name confict if -R passed to igen.
303
304 * ppc-instructions (mfspr, mtspr): Rename spr field to SPR.
305 (model_data): Add field to count the various # of CRs that the
306 mtcrf instruction used.
307 (model_mon_info): Return structures counting the # of CRs that the
308 mtcrf instruction used.
3d2f9d7c
MM
309 (branches, sync instructions): Do not call model functions if
310 WITH_MODEL_ISSUE is 0.
63caaafa 311
f2181eff
MM
312 * mon.c (stdlib.h): Include if the system supplies one.
313 (mon_sort_instruction_names): New function to sort instruction
314 names alphabetically.
63caaafa 315 (mon_print_info): Call qsort with mon_sort_instruction_names to
3d2f9d7c 316 sort instruction names. Don't abort if WITH_MODEL_ISSUE is 0.
63caaafa 317
45525d8d
MM
318 * debug.h (ITRACE): Make printf_filtered arguments type correct.
319 * idecode_expression.h (CR0_COMPARE): Ditto.
320 * psim.c (psim_read_register): Ditto.
321
322 * igen.c (lf_print_my_prefix): Use __attribute__((__unused__)) to
323 silence compiler warnings about unused automatically generated
324 variables.
325 (lf_print_c_extraction): Ditto.
326 * idecode_expression.h (FPSCR_BEGIN): Ditto.
327
328 * ppc-cache-rules: Define rules for making a bitmask for all
329 registers.
330
331 * ppc-instructions: Rewrite model specific functions to use the
332 bitmask of the register number, instead of using the register
333 pointer to get the register number, and then making the bitmask.
334
46c065ab
MM
335Wed Nov 22 15:24:27 1995 Michael Meissner <meissner@tiktok.cygnus.com>
336
337 * ppc-instructions (model_branches): Add conditional argument to
338 count the number of times each type of conditional branch is used.
339 (conditional branches): Pass B0 or -1 to model_branches.
340 (model_mon_info): Print out conditional branch counts.
341 (model-data): Add support for printing out conditional branch
342 types.
343
4a0351ab
MM
344Tue Nov 21 16:31:25 1995 Michael Meissner <meissner@tiktok.cygnus.com>
345
346 * igen.c (insn_table_load_insns): Add support for model-static for
347 internal functions that should not be inlined.
348 (lf_print_c_semantic): Remove model_cleanup.
349 (gen_model_{c,h}): Ditto.
350
351 * ppc-instructions: Redo model specific support once again. Add
352 floating point support to the model specific information. Flesh
353 out all of the floating mutiply add/subtract instructions. Add
354 better tracing support to the model specific information.
355
0bcce7d3
MM
356Sun Nov 19 23:00:52 1995 Michael Meissner <meissner@tiktok.cygnus.com>
357
358 * ppc-instructions (model data, model_busy): Rather than using a
359 bit mask for the busy units, just use a char array. Also, only
360 support 2 function units an insn can use, rather than a loop.
361
4220dcd6
MM
362Fri Nov 17 14:08:08 1995 Michael Meissner <meissner@tiktok.cygnus.com>
363
0bcce7d3
MM
364 * table.c (table_entry_read): Move setting entry->line_nr to after
365 the model specific fields so the line numbers for the annex are
366 correct.
367
4220dcd6
MM
368 * cpu.c (cpu_{create,init,halt}): Check for WITH_MODEL_ISSUE
369 before calling the model functions.
370
371 * debug.c (trace_descriptor): Add trace_model support.
372 * debug.h (trace_options): Ditto.
373
374 * igen.c (gen_icache_h): Create type idecode_cache as void if not
375 caching instructions.
0bcce7d3
MM
376 (gen_model_{c,h}): Drop model_issue support. Add support for
377 model_cleanup.
378 (lf_print_my_prefix): Initialize a const itable_index with the
379 current index.
380 (lf_print_c_semantic): Call model_cleanup at the end of the
381 function to check for instructions that aren't supported yet by
382 the scheduling code.
383
4220dcd6
MM
384 * mon.h (count_type): New type for counters.
385 * mon.c: Use count_type instead of unsigned.
386
0bcce7d3
MM
387 * ppc-instructions: Redo scheduling code once again. Make it all
388 inline friendly. Instead of having general code emitted by igen,
389 go the route of having each semantic routine call the appropriate
390 module.
4220dcd6 391
845ff5a4
MM
392Thu Nov 16 09:52:26 1995 Michael Meissner <meissner@tiktok.cygnus.com>
393
394 * table.c (table_entry_read): Allow the annex to have blank lines.
395
396 * ppc-instructions: Change lines in model stuff that just have a
397 tab to just newline. Add 601 support. Document most instructions
398 in terms of model specific timing information. Drop 'FUNCTION'
399 from PPC_FUNCTION_UNIT_xxx enums. Change PPC_UNIT_UNKNOWN ->
400 PPC_UNIT_BAD. Add TRACE(trace_tbd) for all data cache
401 instruction.s. Signal illegal instruciton if data cache block
402 invalidate is issued from problem state.
403
404 * igen.c (max_model_fields_len): New static to keep track of the
405 max size for the model specific fields.
406 (model_c_insn): Use max_model_fields_len to size fields.
407 (insn_table_insert_insn): Set max_model_fields_len.
408 (model_table_insert): Ditto.
867b7168
MM
409 (gen_model_{c,h}): Model_issue is now called with a processor
410 argument.
845ff5a4
MM
411
412 * debug.c (trace_description): Add support for trace_tbd.
413
867b7168
MM
414 * mon.c (mon_issue): Pass processor argument to model_issue.
415
84bbbc35
MM
416 * Makefile.in: Delete all function unit support, since the newer
417 table driven model support replaces it.
418 * cpu.{c,h}: Ditto.
419 * mon.c: Ditto.
420 * inline.{c,h}: Ditto.
421 * std-config.h: Ditto.
422 * options.c: Ditto.
423 * configure{,.in}: Ditto.
424 * Makefile.in: Ditto.
425 * psim.c: Ditto.
426 * function_unit.{c,h}: Delete these now usused files.
427
428 * std-config.h (WITH_MODEL_ISSUE): Add new macro on whether to
429 trace instructions in a model specific manor.
430 * options.c (print_options): Print it out.
431 * configure{,.in}: Add --enable-sim-model-issue option.
432 * Makefile.in: Add --enable-sim-model-issue flags.
433 * igen.c (lf_print_c_semantic): Add call to mon_issue here. Check
434 for WITH_MODEL_ISSUE.
435 * mon.c (mon_issue): Remove call to mon_issue_here.
436
437 * ppc-instructions: Move branch tracing to the actual branch
438 instructions, rather than testing it in model_issue. Add code to
439 code successful/unsuccessful branch predictions, and the number of
440 conditional branches that fell through.
441
80948f39
MM
442Wed Nov 15 17:32:13 1995 Michael Meissner <meissner@tiktok.cygnus.com>
443
444 * cpu.h (cpu_model): Add declaration.
445
446 * cpu.c (struct _cpu): Add model_ptr to hold model specific
447 information.
448 (cpu_model): Return the model internal pointer.
449 (cpu_{create,init,halt}): Call the appropriate model function.
450
451 * inline.c (mon.c): Move include of mon.c after model.c.
452
453 * mon.c (_cpu_mon): Add fields to count unaligned memory
454 references.
455 (mon_issue): Call model_issue, not function_unit_issue.
456 (mon_{read,write}): Count # of unaligned memory accesses.
457 (mon_print_info): Switch to calling model_mon_info and
458 model_mon_info_free instead of function_unit version. Print out
459 number of unaligned reads/writes.
460
461 * {ppc-instructions,igen.c}: More global changes to add model
462 specific features.
463
acb06d30
MM
464 * inline.{c,h}: Provide for inlining options.c.
465 * options.{c,h}: Ditto.
466 * std-config.h: Add OPTIONS_INLINE.
467
ac79ccd4
MM
468Tue Nov 14 04:47:25 1995 Michael Meissner <meissner@tiktok.cygnus.com>
469
fe439e0f 470 * Makefile.in (devices.o, main.o): Update dependency.
ac79ccd4
MM
471
472 * igen.c (gen_model_h): Use correct variable in loop.
fe439e0f 473 (gen_model_c): Use strcmp, strcasecmp.
80948f39
MM
474 (gen_model_c): Use EXTERN_MODEL for arrays.
475 (gen_model_h): Use STATIC_MODEL for arrays.
ac79ccd4
MM
476 (lf_print_c_semantic_function_header): Delete unused function.
477
fe439e0f
MM
478 * main.c (cpu.h): Include cpu.h to get model.h.
479
80948f39 480 * inline.h ({EXTERN,STATIC}_MODEL): Define.
f35df46c 481
1dc7c0ed
MM
482Mon Nov 13 09:14:13 1995 Michael Meissner <meissner@tiktok.cygnus.com>
483
484 * igen.c ({insn,model}_table_fields): Spell mnemonic correctly.
485 (gen_itable_h,itable_c_insn): Ditto.
486 (model support): Move model support around, add support for
487 model-data, model-internal. Use annex field for model-macros
488 now.
489
490 * configure.in (--enable-sim-inline): If --enable-sim-inline=no,
491 also define INLINE as nothing.
492 * configure: Regenerate.
493
494 * std-config.h (INLINE): Rather than nuking INLINE, only define it
495 as __inline__ if any of the INLINE flags are non-zero.
496
497 * options.c (print_options): Print out WITH_XOR_ENDAIN.
498
499Mon Nov 13 23:03:45 1995 Andrew Cagney <cagneyhighland.com.au>
500
501 * ppc-instructions (rfi): Add missing code.
502
503 * cpu.c (cpu_get_time_base): Fix calculation of current value of
504 time base register.
505
506 * ppc-spr-table (TBL, TBU): Fix TBL/TBU entries - was confusing
507 m[tf]tb with m[tf]spr.
508
509 * ppc-instructions (mtspr, mfspr): Fix mttbl - wasn't storing
510 lower word.
511
512Mon Nov 13 21:35:37 1995 Andrew Cagney <cagneyhighland.com.au>
513
514 * std-config.h (INLINE, STATIC_INLINE): Was being set to static
515 inline.. Only problem being that with ppc-opcode-simple this gave
516 it the chance to inline all the idecode functions with potentially
517 disasterous results on a 16mb PC. For moment hobble INLINE.
518
519 * configure.in, std-config.h (WITH_SMP): Make that 5 processors by
520 default ...
521
522 * configure.in: Tweek flags passed to gcc for --with-sim-warnings.
523 Firstly make them errors and secondly remove the options gcc-245
524 doesn't reconize.
525
526Mon Nov 13 17:57:24 1995 Andrew Cagney <cagney@highland.com.au>
527
528 * misc.c (zalloc), cpu.c (cpu_init), devices
529 (console_io_read_buffer_callback, icu_io_read_buffer_callback,
530 vm_io_read_buffer_callback), main.c (zalloc), mon.c (memset),
531 sim_calls.c (zalloc) : replace bzero() with memset().
532
533 * emul_netbsd.c (write_direntries), psim.c (psim_read_register,
534 psim_write_register): replace bcopy() with memcpy().
535
536Sun Nov 12 20:55:41 1995 Andrew Cagney <cagneyhighland.com.au>
537
538 * configure.in: for --disable-sim-inline (--enable-sim-inline=no),
539 force DEFAULT_INLINE to 0 rather then trusting the std
540 configuration.
541
542Sun Nov 12 20:55:41 1995 Andrew Cagney <cagneyhighland.com.au>
543
544 * igen.c (lf_print_idecode_table, idecode_table_leaf): Fix
545 generation of switch entries in tables - treat the same as
546 cracking/semantic functions.
547
548 * igen.c (idecode_switch_end, idecode_switch_leaf): Fix generation
549 of a boolean switch statement (field zero or non-zero).
550
551 * ppc-opcode-test-1, ppc-opcode-test-2: New files. These test the
552 switch/table generation ability of igen.
553
554 * igen.c (idecode_switch_leaf): Fix code output when a switch
555 statement needs to look up a table.
556
557 * igen.c (idecode_declare_if_switch): New function called from
558 gen_idecode_c - need to declare any idecode switch functions
559 before they are used in idecode tables.
560
561 * igen.c (lf_print_c_cracker_function, idecode_crack_leaf,
562 idecode_crack_insn): Add is_inline_function argument to code
563 printing cracker functions which indicates if STATIC_IDECODE or
564 STATIC_INLINE_IDECODE should be used for definition. For
565 idecode_crack_insn (which implies not duplicating/expanding) don't
566 declare function as inline - we assume that the only time this is
567 code is generated is when things are being tested. For
568 idecode_crack_leaf, make static (instead of INLINE) if the
569 instructions parent is a table as function will always be called
570 via a table.
571
572 * igen.c (idecode_expand_if_switch): Declare as STATIC_IDECODE not
573 STATIC_INLINE_IDECODE. Only the outermost idecode switch will be
574 called directly, all others are called via a table.
575
576 * igen.c (lf_print_semantic_function_header, semantics_h_leaf,
577 semantics_h_insn, semantics_h_function,
578 lf_print_c_semantic_function, semantics_c_function): Add
579 is_inline_function argument to lf_print_semantic_function_header
580 to indicate if an inline or static function declaration/definition
581 should be output. Depending on situtation call accordingly:
582 functions (not instruction semantic routines) are always inline;
583 Semantic routines are made inline when there is no icache (cache
584 will contain the function address) and are duplicating (see above)
585 and the parent of the instruction is a switch statement.
586
587 * igen.c (opcode_field_new): Delete. Code changed to use ZALLOC
588 and moved to insn_table_find_opcode_field.
589
590 * table.c (table_open): Fix typo (nr_model_fields vs nr_fields).
591
592 * igen.c (model_c_insn): Suggestion - document the name of the
593 instruction on each line of the instruction model table.
594
595Fri Nov 10 00:44:38 1995 Andrew Cagney <cagneyhighland.com.au>
596
597 * emul_netbsd.c (do_ioctl): Cleanup compilation.
598
599 * sim_callbacks.h (__attribute__): Only define if not defined (was
600 already defined on NetBSD host).
601
602Wed Nov 8 21:49:52 1995 Andrew Cagney <cagneyhighland.com.au>
603
604 * std-config.h (WITH_XOR_ENDIAN), configure.in, Makefile.in: New
605 macro, indicates if the PowerPC's horrible XOR endian mode should
606 be suported. Add to configure and make.
607
608 * vm_n.h (vm_data_map_read_N, vm_data_map_write_N), vm.c
609 (vm_instruction_map_read): If XOR endian, xor the address
610 with a value from an xor table (indexed by size of access).
611
612 * vm.c (vm_synchronize_context), cpu.c (cpu_synchronize_context):
613 set up xor table to xor if there is a conflict between the
614 CURRENT_TARGET_ENDIAN and the endian indicated in the MSR. Move
615 check of suported change of endian mode from cpu.c to vm.c.
616
617 * vm.c (vm_data_map_write_buffer, vm_data_map_read_buffer):
618 Hopefully added correct hack to handle XOR endian mode.
619
620 FIXME: If NONSTRICT alignment and XOR ENDIAN and MSR indicates
621 little endian mode, the model accepts miss aligned transfers.
622
623 FIXME: Need to create an `init' device that, during
624 initializatioin for XOR mode, it mushes (XOR address) all the dma
625 data before passing it on to the core for storage. Just like the
626 real thing really.
627
628Wed Nov 8 21:49:52 1995 Andrew Cagney <cagneyhighland.com.au>
629
630 * devices.c (halt_io_write_buffer_callback): Use value written to
631 halt device to determine exit status. Thus allowing
632 success/failure of OEA tests.
633
634Wed Nov 8 00:10:38 1995 Andrew Cagney <cagneyhighland.com.au>
635
636 * ppc-instructions (icbi): If icache present flush it.
637
638Tue Nov 7 23:36:31 1995 Andrew Cagney <cagneyhighland.com.au>
639
640 * devices.c (htab_init_callback): Add code to create htab/pte.
641
642 * devices.c (dma_file, file_init_callback, htab_init_callback):
643 New function - Dma the named file into memory at the specified
644 address. Use.
645
646 * device_tree.h, device_tree.c (scand_*): New functions.
647
648Tue Nov 7 23:36:31 1995 Andrew Cagney <cagneyhighland.com.au>
649
650 * filter_filename.c, Makefile.in: Change so that only dependant on
651 a very limited nr of files. Stops an unnecessary dependency.
652
653Tue Nov 7 15:44:33 1995 Andrew Cagney <cagney@highland.com.au>
654
655 * core.c (core_map_find_mapping): Use cpu_halt rather than error
656 to abort an access to an undefined address.
657
eb4ef197
MM
658Sun Nov 12 07:58:09 1995 Michael Meissner <meissner@tiktok.cygnus.com>
659
660 * igen.c (model_table_insert_{macro,function}): New functions.
661 (insn_table_load_insns): Call them.
662 (gen_model_h): Move section emiting model-macros to be first.
663 (model_{c,h}_function): New functions cloned from semantic
664 functions to print out the prototype and function for
665 model-functions.
666 (gen_model_{c,h}): Print out model-functions.
667
668 * ppc-instructions (model_{start,halt,print_info}): Add dummy
669 model-functions.
28816f45
MM
670
671 * options.c (print_options): Print out WITH_{,DEFAULT_}MODEL, not
672 WITH_PPC_{,DEFAULT_}_MODEL.
673 (options_ppc): Delete now unused function.
674 (cpu.h): Include cpu.h, not just basics.h.
675
676 * std-config.h (WITH_{,DEFAULT_}MODEL): Define.
677
678 * igen.c (model_macros, last_model_macro): New statics to keep
679 track of macros to go in model.h.
680 (insn_table_load_insns): Add model-macros to model_macros linked
681 list.
682 (model_table_fields): Add field for printable name.
683 (gen_model_h): If there are model macros defined, print them out.
684 Print out DEFAULT_MODEL as the first model if there any models
685 specified, otherwise MODEL_NONE. Print out external decl for
686 current_model. Print out decl for model_set.
687 (gen_model_c): Add function model_set. Switch to use printable
688 name for the model, not the internal identifier used.
689
690 * psim.c (current_model): New global variable.
691
692 * ppc-instructions: Add macros for flag defines. Switch first
693 model so 604 is first.
694
695 * main.c (main): Call model_set, not function_unit_model.
696 * sim_calls.c (sim_open): Ditto.
697 * sim_calls.c, Makefile.in: sim_calls.c now includes cpu.h.
698
d587782c
MM
699Sat Nov 11 07:27:41 1995 Michael Meissner <meissner@tiktok.cygnus.com>
700
28816f45
MM
701 * mon.h (mon_events): New enumeration for other events we want to
702 handle.
703 (mon_event): Add declaration for function.
704
705 * mon.c (mon_event): New function.
706 (mon_print_info): Print icache misses.
707
708 * psim.c (run_until_stop): Monitor icache misses.
709
710 * configure.in (--enable-sim-inline): Fix typos in handling comma
711 separated inline options.
712 (--enable-sim-icache): Echo icache size.
713 * configure: Regenerate.
714
715 * igen.c (semantics_h_print_function): Emit STATIC_SEMANTICS
716 instead of INLINE_SEMANTICS so that the compiler won't keep all of
717 the semantic functions as inline RTL, given that the address of
718 the function is taken which forces outline calls anyway.
719 (lf_print_c_semantic_function_header): Ditto.
720 (gen_semantics_h): Define STATIC_SEMANTICS as nothing if not
721 defined.
722 (lf_print_c_cracker_function): Emit STATIC_IDECODE instead of
723 STATIC_INLINE_IDECODE.
724 (gen_idecode_c): Define STATIC_IDECODE if not defined.
725 (gen_model_h): Use #ifdefs to define types to hold model units,
726 cycles, and flags.
727 (model_table_insert): Add a sentinel functional unit at the end to
728 simplify loop processing.
729 (model_c_insn): Use <function-unit>_SENTINAL instead of 0 for any
730 instruction not specifing a function unit for the current model.
731 (gen_model_{c,h}): Provide bounds for model_time_mapping.
732
733 * inline.h (STATIC_SEMANTICS): Define to be static if
734 SEMANTICS_INLINE is defined.
735 (STATIC_IDECODE): Define to be static if IDECODE_INLINE is
736 defined.
737
d587782c
MM
738 * options.c (print_options): Fix typo.
739
b51e5b4f
MM
740Fri Nov 10 06:39:46 1995 Michael Meissner <meissner@tiktok.cygnus.com>
741
813ad010
MM
742 * configure.in (--enable-sim-{opcode,config}): Use $srcdir when
743 check for the existence of files.
744 * configure: Regenerate.
745
a3114052
MM
746 * table.c (table): New field nr_model_fields.
747 (table_open): New parameter nr_model_fields.
748 (table_entry_read): Parse model fields that begin with a '*' after
749 each instruction.
750 * igen.c, dgen.c: Change callers of table_open.
751
752 * igen.c: Add support for dumping model specific information in
753 model.h and model.c.
754 (insn_field_name): Delete unused array.
755 (global variables): Make global variables static, so we can tell
756 when they are no longer used.
757 (cache_semantic_actual): Delete unused variable.
758 (insn_table_load_insns): If the insn is really a machine model,
759 call model_table_insert instead of other processing.
760 (model_table_insert): New function to handle defining the
761 functional units of a particular machine model.
762 (insn_table): Add last_function field so we can add functions at
763 the end.
764 (insn_table_insert_function): Use last_function field when
765 appending new function.
766
767 * ppc-instructions: Add a few model specific information for 603,
768 603e, and 604 for testing purposes.
769
770 * table.h (table_model_entry): New linked list to hold model
771 specific information, one per line.
772 (table_entry): Add model_first, model_last fields.
773
b51e5b4f
MM
774 * configure.in (--enable-sim-inline): If gcc is found and
775 --enable-sim-inline is not specified, defaine DEFAULT_INLINE to 1,
776 not 2.
a3114052
MM
777 (--enable-sim-reserved-bits): New switch to check whether reserved
778 bits are set in the instruction.
779 (--enable-sim-opcode): Make complex the default.
780 (all switches): Add appropriate checks and error messages.
b51e5b4f
MM
781 * configure: Regenerate.
782
a3114052
MM
783 * Makefile.in (RESERVED_CFLAGS): New variable set by
784 --enable-sim-reserved-bits.
785 (CONFIG_CFLAGS): Include RESERVED_CFLAGS.
786 (BUILT_SRC): igen now generates model.c and model.h.
787 (LIB_OBJ): Include table.o.
788 (tmp-igen): Add -m/-M options to write model.c/model.h.
789 (model.o): New object.
790 (CPU_H): Include model.h.
791
792 * cpu.h: Include model.h.
793
794 * std-config.h (WITH_RESERVED_BITS): Define.
795 (MODEL_INLINE): Ditto.
796
797 * options.c (print_options): Print out WITH_RESERVED_BITS.
798
ba62bb1c
MM
799Thu Nov 9 12:22:15 1995 Michael Meissner <meissner@tiktok.cygnus.com>
800
2bc7869d
MM
801 * configure.in: If --silent, don't output information messages.
802 * configure: Regenerate.
803
ba62bb1c 804 * configure.in (--enable-sim-alignment): Fix typo in specifing non
23a994ee 805 strict alignment.
ba62bb1c
MM
806 (--enable-sim-switch): Make default on.
807 (--enable-sim-duplicate): Make default on.
808 (--enable-sim-smp): Make default 0.
809 (--enable-sim-mon): Don't set sim_float if not set.
810 (--enable-sim-inline): If gcc is found and --enable-sim-inline is
811 not specified, define DEFAULT_INLINE to be 2.
812 (all --enable-sim-* rules): Echo rules set to non empty to file
813 descriptor 6.
814 * configure: Regenerate.
815
816 * options.c (options_env): Fix typo if WITH_ENV is 0.
817 (print_options): Print GCC compiler version if available and
818 date/time options was compiled. If OPCODE_RULES, IGEN_FLAGS,
819 and/or DGEN_FLAGS are defined, print them.
820
821 * Makefile.in (all link actions): Pass SIM_CFLAGS as well as
822 CFLAGS.
823 (options.o): Compile options.o with OPCODE_RULES, IGEN_FLAGS, and
824 DGEN_FLAGS defined, so they can be printed out.
825
826 * igen.c (lf_print_c_validate): Check for WITH_ASSERT, so that
827 this test can be compiled away if the user really wants a fast
828 simulator by not doing assertion failures.
829
73c4941b
MM
830Wed Nov 8 13:19:47 1995 Michael Meissner <meissner@tiktok.cygnus.com>
831
c5addc19
MM
832 * options.c: New file to print out all of the WITH_ options.
833 * options.h: New include file to declare print_options.
834 * debug.h (trace_options): Add trace_opts to call print_options.
835 * debug.c (trace_description): Add trace_opts support.
836 * main.c (main): If user requested options, print them.
837 * sim_calls.c (sim_open): Ditto.
838
839 * igen.c (opcode_field_new): Add void to make it a proper prototype.
840
841 * emul_generic.c (emul_enter_call): Make printf_filtered arguments
842 type correct.
843 * emul_netbsd.c (do_kill): Ditto.
844 * registers.c (registers_dump): Ditto.
845 * vm.c (om_translate_effective_to_real): Ditto.
846 * vm_n.h (vm_data_map_read_N): Ditto.
847 (vm_data_map_write_N): Ditto.
848 * devices.h (DTRACE_INIT): Ditto.
849 (DTRACE_{ATTACH,DETACH}_ADDRESS): Ditto.
850 (DTRACE_IO_{READ,WRITE}_BUFFER): Ditto.
851 (DTRACE_DMA_{READ,WRITE}_BUFFER): Ditto.
852 * devices.c (update_for_binary_section): Ditto.
853 (write_stack_arguments): Ditto.
854 (stack_ioctl_callback): Ditto.
855 * device_tree.c (device_tree_add_passthrough): Ditto.
856 (device_tree_{add,find}_device): Ditto.
857 (device_tree_{add,find}_integer): Ditto.
858 (device_tree_find_{string,boolean}): Ditto.
859 (device_tree_init{,_device}): Ditto.
860 (device_tree_dump): Ditto.
861 * sim_calls.c (sim_{read,write}): Ditto.
862 (sim_{fetch,store}_register): Ditto.
863 (sim_stop_reason): Ditto.
864
865 * sim_callbacks.h (printf_filtered): Declare with attribute
866 printf, so we can enable format checks.
867
868 * devices.c (console_io_{read,write}_buffer_callback): Cast swtich
869 argument to int, since ANSI doesn't allow long switch values.
870 * emul_netbsd.c (do___sysctl): Ditto.
871
872 * emul_netbsd.c (do___sysctl): Fix up printf call.
873
874 * corefile.c (core_translate): Don't do arithmetic with void *
875 pointers. Cast to char * first.
876
877 * function_unit.c (FUNC_{LOAD,STORE}): Rename from {LOAD,STORE}
878 and change all uses.
879
73c4941b
MM
880 * Makefile.in ({FUNC,MODEL,WARNING}_CFLAGS): New flags set by
881 configure --enable switches.
882 (CONFIG_CFLAGS): Include FUNC_CFLAGS and MODE_CFLAGS.
883 (.c.o): Include WARNING_CFLAGS.
884 (CPU_H): Include function_unit.h.
885 (LIB_OBJ): Include function_unit.o.
886 (BUILT_SRC_WO_CONFIG): Split from BUILT_SRC and do not include
887 config.h or ppc-config.h.
888 (BUILT_SRC): Include BUILT_SRC_WO_CONFIG, config.h and
889 ppc-config.h.
890 (filter_filename.o): Include config.h/ppc-config.h dependencies.
c5addc19
MM
891 (idecode.o, semantics.o, psim.o): Specify CC line without
892 WARNING_CFLAGS so that we don't get all of the unused variable
893 warnings that are generated.
73c4941b
MM
894 (function_unit.o): Add rule to build.
895 (main.o, sim_calls.o): Add function_unit.h, itable.h dependencies.
896 (mon.o): Include mon.c dependency.
897 (TAGS): Depend on BUILT_SRC.
898 (clean): Don't delete config.h or ppc-config.h
899
900 * basics.h (sim_callbacks.h): Move include after the include of
901 config.h and ppc-config.h.
902
903 * bits.{h,c} (ROTL32,ROTL64): Move these functions to bits.c. Add
904 support for BITS_INLINE to inline these. Add declarations to
905 bits.h.
906
907 * configure.in (--enable-sim-warnings): Add new option to specify
908 compiler warnings for all modules except idecode.o and semantics.o
909 which have lots of unused variables because they are machine
910 generated.
911 (--enable-sim-function-unit): New switch to configure whether
912 function unit support is compiled in or not.
913 (--enable-sim-{,default-}mode): New switches to control which cpu
914 model is used.
915 * configure: Regenerate.
916
917 * corefile.c (core_attach_address_callback): Delete unused
918 variable device_address.
919
920 * cpu.c (struct _cpu): Add function unit pointer field func_unit.
921 (cpu_create): If WITH_FUNCTION_UNIT, call function_unit_create.
922 (cpu_init): If WITH_FUNCTION_UNIT, call function_unit_init.
923 (cpu_halt): If WITH_FUNCTION_UNIT, call function_unit_halt.
924 (cpu_function_unit): New function to return func_unit field.
925
926 * cpu.h (function_unit.h): Include new include file.
927 (cpu_function_unit): Declare.
928
929 * debug.c (stdlib.h): Test HAVE_STDLIB_H, not HAVE_STDLIB.
930 (config.h): Include config.h.
931
932 * devices.c (icu_io_write_buffer_callback): Delete unused variable
933 system.
934
935 * emul_generic.c (emul_exit_call): Print out status value.
936
937 * emul_netbsd.c (do_read): Delete unused variable nr_moved.
938
939 * filter_filename.h (includes): Include config.h, ppc-config.h,
940 not basics.h.
941
942 * inline.c: Include bits.c if BITS_INLINE. Include
943 function_unit.c if FUNCTION_UNIT_INLINE.
944
945 * inline.h (INLINE_BITS): Define if BITS_INLINE.
946 (INLINE_FUNCTION_UNIT): Define if FUNCTION_UNIT_INLINE.
947
948 * interrupts.c (instruction_storage_interrupt): Delete unused
949 variable nia.
950
951 * lf.h (config.h): Include config.h.
952
953 * main.c (includes): Include function_unit.c. If HAVE_UNISTD_H,
954 include unistd.h.
955 (usage): Update for -m model, -i, and -I options.
956 (main): Delete unused variables stack_pointer and i. Add support
957 for -i, -m model arguments. Call psim_print_info with verbose ==
958 1 if -i, and verbose == 2 if -I.
959
960 * mon.c (stdio.h): Include stdio.h to pick up sprintf prototype.
961 (mon_issue): Call function_unit_issue if function units are
962 supported.
963 (mon_print_info): Take psim * argument. Print out information
964 from function_unit if available. Move read/write stats to always
965 print, instead of printing if verbose > 1. Fix up plural
966 vs. singular usage.
967
968 * mon.h (mon_print_info): Update prototype.
969
970 * psim.c (current_ppc_model): Add global variable.
971 (psim_print_info): Pass system argument to mon_print_info.
972
973 * sim_calls.c (function_unit.h): Include.
974 (sim_open): Add support for -i and -m model options. If -i call
975 psim_print_info with verbose == 1, if -I, with verbose == 2.
976 (sim_resume): Delete unused variable program_counter.
977
978 * std-config.h (WITH_FUNCTION_UNIT): Define.
979 (ppc_model): Add enumeration giving all PowerPC models currently
980 known about.
981 ({WITH,CURRENT}_PPC_MODEL): Define.
982 (FUNCTION_UNIT_INLINE): Define.
983
984 * table.c (config.h): Include config.h.
985
986 * vm.c (om_virtual_to_real): Print pte_word_{0,1} so the compiler
987 doesn't complain that they're unused.
988
989 * vm_n.h (vm_data_map_read_N): Delete unused variable rval.
990
991Mon Nov 6 23:15:54 1995 Andrew Cagney <cagney@highland.com.au>
992
993 * sim-endian.c (ppc-endian.c), sim-endian.h (ppc-endian.h):
994 renameed. These files are target independant.
995 * Makefile.in, basics.h: update for new name.
996
997 * sim-endian.h (SWAP_N), sim-endian.c (_SWAP_1): Rename existing
998 SWAP_<N> to _SWAP_<N> so that sim-endian.h can contain SWAP_N
999 macro's as required.
1000
1001 * sim-endian.c, sim-endian-n.h (new file): Move endian code into a
1002 debugable header file.
1003
1004 * ppc-instructions (Byte-Reverse): Enable byte reverse
1005 instructions using SWAP_N macros.
1006
0934e520
MM
1007Mon Nov 6 10:39:28 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1008
bea95815
MM
1009 * Makefile.in (config.status): Remove references to config.make
1010 and config.hdr.
1011
0934e520
MM
1012 * config.{make,hdr}: Delete, no longer used.
1013 * build-psim: Ditto.
1014
4dcb0cdd
MM
1015Mon Nov 6 20:49:56 1995 Andrew Cagney <cagney@highland.com.au>
1016
1017 * sim_calls.c (sim_open): Fix parsing of `target sim' options.
1018
1019 * device_tree.c (device_tree_add_string): Wasn't saving the value
1020 of the string being entered into the tree.
1021
1022 * psim.c (create_filed_device_tree): Not terminating string device
1023 names with a null.
1024
1025 * psim.c (psim_create): Use `env' instead of
1026 `environment-architecture' to be consistent with configure.
1027 Reconize user/uea, virtual/vea and operating/oea.
1028
01860b7e
FF
1029Sat Nov 4 12:29:45 1995 Fred Fish <fnf@cygnus.com>
1030
1031 * core.c: Rename to corefile.c
1032 * core.h: Rename to corefile.h
1033 * inline.c: Include corefile.h, renamed from core.h.
1034 * cpu.h: Include corefile.h, renamed from core.h
1035 * vm.c: Include corefile.h, renamed from core.h
1036 * corefile.c: Include corefile.h rather than core.h
1037 * README.psim (KNOWN PROBLEMS): Change core.* references to corefile.*
1038 references.
1039 * Makefile.in (CPU_H): Change core.h to corefile.h
1040 (vm.o): Change dependency to corefile.h
1041 (LIB_SRC): Change core.c to corefile.c.
1042 (LIB_OBJ): Change core.o to corefile.o.
1043 (corefile.o): Change dependencies to corefile.c, corefile.h.
1044
056e975c
MM
1045Fri Nov 3 11:37:24 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1046
1047 * ppc-instructions (data cache instructions): Make all data cache
1048 instructions nops instead of invalid instructions.
1049
1050 * Makefile.in (CONFIG_CFLAGS): Add ALIGNMENT_CFLAGS and
1051 TIMEBASE_CFLAGS which weren't included.
1052
a983c8f0
MM
1053Thu Nov 2 08:54:04 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1054
e61900e6
MM
1055 * Makefile.in: Uncomment built file dependencies.
1056
c494cadd
MM
1057 * configure.in: Rewrite --enable-sim switch handling to use the
1058 autoconf builtins so it works correctly if the configure or
1059 Makefile.in files are modified and make decides to rebuild
1060 Makefile. Also document all of the --enable-sim switches
1061 supported. Check whether getrusage and sys/resource.h are
1062 supported.
1063 * config.in: Regenerate.
1064 * configure: Regenerate.
1065 * Makefile.in: Add support for all of the variables set with
1066 --enable-sim switches.
1067
1068 * Makefile.in (clean): make clean now removes all built sources as
1069 well.
1070
1071 * cpu.c: Use HAVE_STRING_H, HAVE_STRINGS_H, HAVE_UNISTD_H,
1072 HAVE_TIME_H, HAVE_SYS_TIMES_H, HAVE_SYS_RESOURCE_H defined in
1073 the generated config.h.
1074 * debug.c: Ditto.
1075 * device_tree.c: Ditto.
1076 * devices.c: Ditto.
1077 * dgen.c: Ditto.
1078 * emul_netbsd.c: Ditto.
1079 * igen.c: Ditto.
1080 * lf.c: Ditto.
1081 * misc.c: Ditto.
1082 * psim.c: Ditto.
1083 * registers.c: Ditto.
1084 * sim_calls.c: Ditt.
1085 * table.c: Ditto.
1086
1087
a983c8f0
MM
1088 * main.c (main): Call psim_print_info with verbose == 2.
1089
1090 * mon.c (mon_print_info): Align the cpu number and number of
1091 instructions fields. Do not print an instruction category if the
c494cadd
MM
1092 CPU did not execute any of those instructions. Print out number
1093 of reads and writes. If getrusage is supported, print out number
1094 of simulated instructins per second.
a983c8f0
MM
1095
1096 * configure.in: Add support for --enable-sim-opcode=stupid.
1097 * configure: Regenerate.
1098
1dc7c0ed 1099Wed Nov 1 23:46:59 1995 Andrew Cagney <cagney@highland.com.au>
a983c8f0
MM
1100
1101 * std-config (INLINE_DEVICE_TREE): Don't inline either of
1102 device_tree.c or devices.c. There is no significant gain.
1103
1104 * configure.in, Makefile.in: add --enable-sim-icache=[0-9]* and
1105 IGEN_ICACHE macro.
1106
1dc7c0ed 1107Wed Nov 1 23:46:59 1995 Andrew Cagney <cagney@highland.com.au>
a983c8f0
MM
1108
1109 * igen.c (main), misc.h (target_a2i, i2target), misc.c: Add
1110 functions to convert between target and igen internal bit numbers.
1111 Make IO go through these functions. Add -b (bit size) and -h (high
1112 bit nr) options to igen. Typical usage would be: ./igen -b 16 -h
1113 15 for a 16 bit instruction format with the msb given a number 15.
1114
1dc7c0ed 1115Wed Nov 1 22:17:32 1995 Andrew Cagney <cagney@highland.com.au>
a983c8f0
MM
1116
1117 * dgen.c (main): Was outputting optarg even when it was NULL.
1118
1dc7c0ed 1119Tue Oct 31 23:48:33 1995 Andrew Cagney <cagney@highland.com.au>
a983c8f0
MM
1120
1121 * vm_n.h (vm_data_map_load_N, vm_data_map_store_n), debug.h,
1122 debug.c: Add tracing of load/store unit (virtual) with -t
1123 load-store.
1124
1dc7c0ed 1125Tue Oct 31 21:44:01 1995 Andrew Cagney <cagney@highland.com.au>
a983c8f0
MM
1126
1127 * std-config.h (WITH_ENVIRONMENT): Add USER_ENVIRONMENT which does
1128 not include things such as the time base and events.
1129
1130 * interrupt.c, sim_calls.c, cpu.h, vm.c, configure.in: Add UEA to
1131 all environment switches for above.
1132
1133 * psim.c (psim_create): ditto - new device tree node name is
1134 /options/environment-architecture with values user, virtual and
1135 operating.
1136
1dc7c0ed 1137Tue Oct 31 21:31:32 1995 Andrew Cagney <cagney@highland.com.au>
a983c8f0
MM
1138
1139 * ppc-opcode-stupid: Third example of use of opcode table - this
1140 one expands all mtspr/mfspr and branch instructions. Appears to
1141 give about a 10% gain in performance if everything enabled. Also
1142 takes about 150mb of swap to build.
1143
c143ef62
MM
1144Wed Nov 1 10:49:48 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1145
1146 * emul_netbsd.c (do_exit): Print arguments and close parenthesis
1147 if tracing, since exit doesn't go through emul_exit_call.
1148 (do_read): Print arguments if tracing.
1149 (do_write): Ditto.
1150 (do_open): Ditto.
1151 (do_break): Ditto.
1152 (do_kill): Ditto.
1153 (do_dup): Ditto.
1154 (do_sigprocmask): Replace trace with printing arguments if
1155 tracing.
1156 (do_ioctl): Print arguments if tracing.
1157 (do_umask): Ditto.
1158 (do_dup2): Ditto.
1159 (do_fcntl): Ditto.
1160 (do_gettimeofday): Ditto.
1161 (do_getrusage): Ditto.
1162 (do_fstatfs): Ditto.
1163
1164 * filter_filename.c: New file to provide filter_filename to strip
1165 the directory prefix from a file.
1166 * filter_filename.h: New include file to declare filter_filename.
1167
1168 * debug.h: Include filter_filename.h.
1169 (TRACE,DTRACE,ERROR): Use filter_filename on __FILE__.
1170
1171 * misc.h: Include filter_filename.h.
1172 (ASSERT): Use filter_filename on __FILE__.
1173
1174 * igen.c (lf_print_my_prefix): Use filter_filename on the filename
1175 argument.
1176
1177 * Makefile.in: Add filter_filename support.
1178
1179 * ppc-instructions (dcbi, icbi): Make these NOPs rather than
1180 invalid instructions.
1181
1182 * configure.in: Add support for more --enable-sim-* switches.
1183 Use config.make and config.hdr to write to Makefile and config.h
1184 respectively. Don't rewrite Makefile, just append to it.
1185 * configure: Regenerate.
1186 * config.{make,hdr}: New shell scripts.
1187
1188 * Makefile.in: Remove all variables set by configure.in.
1189 (psim.o): Depend on $(BUILT_SRC) also.
1190
1191 * emul_netbsd.c (do_gettimeofday,do_getrusage): When comparing an
1192 integer, use 0, not NULL.
1193
4b935ed4
MM
1194Tue Oct 31 15:20:04 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1195
1196 * configure.in: Add support for --enable-sim-inline,
1197 --enable-sim-bswap, --enable-sim-cflags, --enable-sim-complex,
1198 --enable-sim-switch, --enable-sim-duplicate, --enable-sim-filter,
1199 and --enable-sim-endian switch to control various Makefile
1200 variables.
1201 * configure: Regenerate from configure.in.
c143ef62
MM
1202 * Makefile.in: Add various Make variables that the various
1203 switches alter.
4b935ed4
MM
1204
1205 * std-config.h (DEFAULT_INLINE): Don't set this to 2 if using GCC
1206 and optimizing by default.
1207
c143ef62 1208Fri Oct 27 19:26:27 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1209
1210 * bits.h (ROTL32, ROTL64): Were functions, made them macros, now
1211 make them functions again. Appears 2.6.3 is confused by just a
1212 macro.
1213
c143ef62 1214Thu Oct 26 18:31:58 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1215
1216 * ppc-endian.c (SWAP_8): Fix 8 byte swap!
1217
1218 * psim.c (psim_create): Not correctly checking that runtime
1219 configuration of things like ENDIAN, ENVIRONMENT and ALIGNMENT
1220 matched the compiled in ones.
1221
1222 * debug.h (ITRACE), igen.c: Tidy up more tracing flags -
1223 trace_semantics is now different to trace_idecode, the former
1224 checks the cache.
1225
c143ef62 1226Tue Oct 24 21:54:13 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1227
1228 * ppc-instructions (mtsrin): Missing instruction
1229 * ppc-instructions (mfsrin): Missing instruction
1230 * ppc-instructions (eieio): Missing instruction
1231
c143ef62 1232Tue Oct 24 20:55:29 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1233
1234 * build-psim: New shell script - see internals for usage,
1235 simplifies the process of building custom simulators.
1236
c143ef62 1237Mon Oct 23 23:48:59 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1238
1239 * std-config.h (SEMANTICS_INLINE): Tidy up notes on each of the
1240 INLINE macros. Make SEMANTICS_INLINE == 1 if DEFAULT_INLINE == 2.
1241 Don't use DEFAULT_INLINE to define REGISTERS_INLINE DEVICES_INLINE
1242 DEVICE_TREE_INLINE or INTERRUPTS_INLINE as none of these are on
1243 the instruction or data critical paths.
1244
5b4d72dd
MM
1245 * FIXME: devices.c/emul_netbsd.c would benefit (slightly) from
1246 the inclusion of device_tree.c/emul_generic.c.
1247
c143ef62 1248Mon Oct 23 00:31:50 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1249
1250 * os_emul.[hc], emul_generic.[hc], emul_netbsd.[hc]: replace
1251 system.[hc]. Start of suport for multiple emulations and
1252 emulation state (os_emul object).
1253
1254 * emul_generic.[hc]: Start of code to implement proper system call
1255 tracing (from spy).
1256
c143ef62 1257Sun Oct 22 21:33:51 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1258
1259 * cpu.h, cpu.c (cpu_init): New function, zero the registers before
1260 the processor is started. Fixes problem of registers being
1261 undefined when restarting from within gdb.
1262
1263 * cpu.h, cpu.c (cpu_flush_icache): New function, flushes the
1264 instruction cache (if present). Fixes problem of cpu caching gdb
1265 breakpoint instructions.
1266
1267 FIXME: PSIM sometimes aborts calling error(), it should instead
1268 call sim_error() say which takes care of housekeeping such as
1269 saving the CIA before calling error.
1270
1271 * NOTE: cpu_flush_cache() instead of cpu_synchronize_context() is
1272 used when restarting a simulation because the latter has the
1273 unwanted side effect (well I as a kernel hacker think it is) of
1274 performing an isync when the instruction stream doesn't contain
1275 one.
1276
c143ef62 1277Sun Oct 22 19:27:48 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1278
1279 * mon.h (new), mon.c (new), std-config.h (WITH_MON): Performance
1280 monitoring module. Counts both instructions issued and
1281 load/stores.
1282
1283 * NOTE: mon does not contain to count instruction loads as this
1284 information is already available from the mon_issue() hook.
1285
5b4d72dd
MM
1286 * igen.c (lf_print_c_semantic), vm_n.h: Add counting code.
1287
1288 * psim.h, psim.c (psim_create), cpu.h, cpu.c (cpu_create): Attach
1289 a common monitor to each of the cpus. Delete
1290 cpu_increment_number_of_insns() and cpu_get_number_of_insns()
1291 replaced by copied code in mon.[hc].
1292
c143ef62 1293Sun Oct 22 18:42:45 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1294
1295 * sim_calls.c, main.c, psim.c (psim_create): always create
1296 `WITH_SMP' cpus. The actual number of CPU's active in a
1297 simulation run is taken from the device node: /init/smp (an
1298 integer). WITH_SMP changed to 2 (remember to put it back to 0).
1299
c143ef62 1300Fri Oct 20 17:26:54 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1301
1302 * system.c: More system call emulation. If code appears NetBSD
1303 specific, make conditional to being compiled on a NetBSD system
1304 (sigh).
1305
c143ef62 1306Wed Oct 18 23:02:20 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1307
1308 * Makefile.in, gen.c(delete), igen.c(new), dgen.c(new),
1309 lf.[ch](new), table.[ch](new): Split into two generators - igen
1310 that outputs the instruction tables and dgen that outputs the spr
1311 tables. Add -f (filter out) flag to igen to filter out certain
1312 instructions (ex 64 bit ones) from the created tables. Include
1313 $(LIBIBERTY_LIB) in link options in case host lacks some libc
1314 functions.
1315
1316 * NOTE: igen, since it was originally written for the
1317 PowerPC/RS6000, things the MSB is 0 and the LSB is 63{31}.
1318
1319 * Makefile.in, std-config.h, ppc-cache-rules(new),
1320 ppc-opcode-complex(new), ppc-opcode-simple(new): (for igen) Create
1321 cache-rule and opcode-rule tables from macros found std-config.h.
1322 Delete corresponding macro's from std-config.h.
1323
5b4d72dd
MM
1324 * igen.c (gen_itable_c, gen_itable_h), Makefile.in: code to output
1325 an table of all the instructions. Code to output a type
1326 enumerating all the instructin names.
1327
1328 * igen.c(lf_print_c_semantic): Move call to increment instruction
1329 counter so that it occures _after_ the instruction has been fully
1330 validated, was double counting illegal/invalid instructions. Add
1331 conditional so only compiled in when WITH_PROFILE enabled (enabled
1332 by default).
1333
1334 * igen.c, cpu.h, cpu.c(cpu_increment_number_of_insns): Include
1335 itable.h, count individual instruction types not just total,
1336 adjust reporting functions to output this.
1337
1338 * ppc-instructions (64 bit Load Doubleword with Update Indexed):
1339 Had 32./ instead of 31./
1340
1341 * ppc-instructions (64 bit Store Double Word Conditional Indexed):
1342 bitrot - updated to use newer CR register operators.
1343
1344 * ppc-instructions (64bit Floating Convert from Integer
1345 Doubleword): Correct call to Round_Float().
1346
c143ef62 1347Mon Oct 16 00:31:20 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1348
1349 * basics.h: #include "sim_callbacks.h" earlier so that its
1350 prototypes are declared in all other header files.
1351
1352 * bits.h, bits.c, idecode_expression.h (ROTL32, ROTL64): Update
1353 doc in bits.h, remove dead code in bits.c, move ROTL32/ROTL64 into
1354 bits.h.
1355
5b4d72dd
MM
1356 * cpu.c(cpu_add_commas), device_tree.h, device_tree.c(scand_*):
1357 Add size of buffer argument to functions writing a string into a
1358 buffer. Check for buffer overflow.
1359
c143ef62 1360Sun Oct 15 22:16:11 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1361
1362 * devices.h, devices.c, debug.h, debug.c: add macro's for tracing
1363 of each device. Make parameter names consistent so macros work.
1364 Use macro's in device functions.
1365
1366 * device_tree.c, devices.h, devices.c: include path to device in a
1367 devices node when creating it.
1368
1369 * device_tree.c, debug.h, debug.c: Add tracing of `device-tree'.
1370
1371 * core.c: add tracing of core-device, adjust parameter names in
1372 core functions to be consistent with those in devices*.
1373
c143ef62 1374Sun Oct 15 20:33:20 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
1375
1376 * debug.h, debug.c (trace_option): New function. Parses the trace
1377 option, updating the trace array.
1378
1379 * debug.h, debug.c (trace_usage): New function. Outputs the list
1380 of all possible trace options.
1381
1382 * sim_calls.c (sim_open), main.c (main): Use new trace_option() to
1383 parse trace options specified with the simpler -t flag. Adjust
1384 usage.
1385
1386 * FIXME: basic parsing of command line options is still duplicated
1387 by main.c and sim_calls.c
1388
22ddef46
MM
1389Thu Oct 26 10:42:28 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1390
e89929cd
MM
1391 * Makefile.in (clean): Delete *.i and *.out files.
1392
22ddef46
MM
1393 * ppc-endian.c (SWAP_n): Add SET argument to allow use of SWAP
1394 macros for either assignment or return. Fix SWAP_8 to use a
1395 union, and two SWAP_4's. Delete SWAP_N, since nobody uses it now.
1396 (ENDIAN_N): Add SET argument to SWAP_n calls. Delete macro defs
1397 that hardwired swapping on/off, let optimizer delete dead code.
1398
1399 * main.c (main): Add printf that we caught a signal and print out
1400 the failing address.
1401
64415b76
FF
1402Thu Oct 19 21:43:39 1995 Fred Fish <fnf@fishfood.amigalib.com>
1403
1404 * Makefile.in: Remove tabs from otherwise empty line.
1405 Confuses many non-GNU versions of "make".
1406
1407Wed Oct 18 08:51:25 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1408
1409 * Makefile.in (clean): Delete files produced by gen.
1410
5b0d3b14
MM
1411Mon Oct 16 17:34:24 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1412
1413 * gen.c (lf_print_c_semantic_function): Move counting # of
1414 instructions here so it works with caching.
1415 (gen_idecode_c): Move from here.
1416
9aa8a788
MM
1417Wed Oct 11 17:13:15 1995 Andrew Cagney <cagney@highland.com.au>
1418
1419 * gen.c, ppc-instructions, psim.c: Fix code for generating
1420 cracking instruction cache. Delete the code that cached just the
1421 result from doing an instruction lookup - this ran slower than no
1422 cache at all.
1423
a1fe883f
MM
1424Fri Oct 13 09:58:43 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1425
9aa8a788
MM
1426 * Makefile.in (gen.o): Include $(INLINE_CFLAGS).
1427
a1fe883f
MM
1428 * debug.h (ppc_trace): Rename from trace, to avoid a conflict with
1429 TCL when gdb is linked with the simulator.
1430 * debug.c (ppc_trace): Ditto.
1431 * sim_calls.c (sim_open): Change trace -> ppc_trace.
1432 * main.c (main): Ditto.
1433
1434 * cpu.c (cpu_add_commas): Remove extra static.
1435
8e20a3ac
MM
1436Thu Oct 12 11:35:53 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1437
9f5912cb
MM
1438 * Makefile.in (psim.o): Now that inlines are turned on, make
1439 psim.o depend on all sources.
1440
1441 * cpu.c (cpu_add_commas): New function to format a long with
1442 commas.
1443 (cpu_print_info): Use it to print number_of_insns.
1444
a8958dd4
MM
1445 * ppc-endian.c (SWAP_n): New macros to speed up byte swapping for
1446 2, 4, and 8 bytes.
1447 (ENDIAN_N): If both target and host byte orders are known, don't
1448 bother testing CURRENT_{TARGET,HOST}_BYTE_ORDER.
1449
1450 * ppc-endian.h (target specific H2T_n/T2H_n macros): Remove #if 0
1451 to allow target specific H2T_n/T2H_n macros to be used.
1452 (htonl, ntohl): If compiled on a 486 by GCC and WITH_BSWAP is
1453 non-zero, redefine the htonl/ntohl macros to use the BSWAP instead
1454 of the 3 instruction sequence that runs on 386s.
1455
1456 * std-config.h (WITH_{HOST,TARGET}_BYTE_ORDER): Don't override if
1457 specified on the compile line.
1458 (WITH_BSWAP): If not defined, define as 0.
1459
8e20a3ac
MM
1460 * Makefile.in (INLINE_CFLAGS): Add -DDEFAULT_INLINE=2 to add
1461 default inline support. Pass INLINE_CFLAGS when compiling.
1462
1463 * devices.{h,c} (unimp_device_ioctl): Use STATIC_DEVICES, not
1464 INLINE_DEVICES since GCC doesn't like inline functions that
1465 accept variable arguments.
1466 (stack_ioctl_callback): Make function just static because GCC
1467 doesn't like inline functions that accept variable arguments.
1468
1469 * devices.h (STATIC_DEVICES): Define as empty if not defined.
1470
1471 * inline.c: Correct pathnames of included C files to match current
1472 implementation.
1473
1474 * inline.h (STATIC_DEVICES): If DEVICES_INLINE is defined to be
1475 non-zero, define STATIC_DEVICES to be static.
1476
1477 * std-config.h (INLINE): If GNU C and optimizing, define this as
1478 __inline__.
1479 (DEFAULT_INLINE): If not defined, define as 0.
1480 (ENDIAN_INLINE): If not defined, define as DEFAULT_INLINE.
1481 ({CORE,VM,CPU,EVENTS,REGISTERS,INTERRUPTS}_INLINE): Ditto.
1482 ({SPREG,IDECODE}_INLINE): Ditto.
1483
c143ef62 1484Wed Oct 11 17:13:15 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
1485
1486 * ppc-instructions: Initial cut of floating point suport added.
1487 Of note include - use of host IEEE floating point instructions,
1488 use of PowerPC manual pseudo code to handle the FPSCR. It is not
1489 currently a pretty sight.
1490
1491 * memory_map.h, memory_map.c, memory_map_n.h, core.h, core.c:
1492 merge into core.h, core.c, core_n.h. The type memory_map replaced
1493 with core_map. This removes a level of pointer indirection when
1494 translating an address.
1495
1496 * memory_map.h, memory_map.c, memory_map_n.h: delete.
1497
1498 * Makefile.in et.al (sorry): tweek to use new core, core_map and
1499 core.h.
1500
c143ef62 1501Wed Oct 11 12:10:26 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
1502
1503 * sim_calls.c, main.c: Add -g (trace_gdb) option, add tracing to
1504 most of the other functions in sim_calls.c.
1505
1506 * basics.h (CONCAT3), memory_map.c, memory_map_n.h, Makefile.in:
1507 Add macros to better cover up `generic' code. Makes it possible
1508 to step through the generic code!
1509
1510 * vm.c, vm_n.h, Makefile.in: ditto
1511
c143ef62 1512Tue Oct 10 15:42:59 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
1513
1514 * devices.h, devices.c, memory_map.h, memory_map.c: Changed
1515 callback interface so that there is a read/write buffer but no
1516 read/write_word. VEA default memory read/write handler sometimes
1517 couldn't resolve an access and of those some were for a memory
1518 fault and some were because gdb was making a bogus request.
1519
1520 * devices.h, devices.c, memory_map.h, memory_map.c, vm.h, vm.c:
1521 eliminate transfer_mode (raw or cooked) parameter from read/write
1522 buffer.
1523
c143ef62 1524Fri Oct 6 20:23:56 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
1525
1526 * ppc-instructions (fmul, fmuls): correct instruction format - had
1527 FRB instead of FRC.
1528
c143ef62 1529Wed Oct 4 17:31:12 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
1530
1531 * psim.c, device_tree.h, device_tree.c, devices.c (printd_*,
1532 scand_*): new functions to parse/print fields in device names
1533 while hiding any machine dependency.
1534
1535 * devices.c, psim.c: Change the stack init code so that it is
1536 handled by a device. Arguments passed across using a device ioctl
1537 (hack).
1538
1539 * devices.h, devices.c: device ioctl callback changed to allow a
1540 variable number of arguments. This gives greater flexability and
1541 greater chance of bugs.
1542
c143ef62 1543Tue Oct 3 22:01:56 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
1544
1545 * main.c (printf_filtered, error): Missing va_end() to close off
1546 variable argument use.
1547
1548 * Makefile.in (tmp-gencode): comment out hack to get around some
1549 versions of make not handling files being created as side-effects.
1550
1551 * gen.c (lf_open): Add -n (real_file_name) option. Specifies an
1552 alternative file name to use in output files for things like #line
1553 macros.
1554
1555 Makefile.in (tmp-gencode): Use gen -n so that debug info is
1556 correct.
1557
1558 * Makefile.in (TARGETLIB): Use this instead of libsim.a in the
1559 Makefile.
1560
f46f3807
MM
1561Sat Oct 7 22:40:59 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1562
1563 * sim_calls.c (sim_set_callbacks): Define new function.
1564
7ca054e8
MM
1565Fri Oct 6 17:23:10 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1566
1567 * psim.c (psim_print_info): Print exit status or signal number.
1568
8eab189b
MM
1569Mon Oct 2 11:46:37 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1570
344d5a23 1571 * cpu.c (struct _cpu): Add number_of_insns field to trace how many
83d96c6e
MM
1572 instructions are executed.
1573 (cpu_increment_number_of_insns): New function to increment the
1574 number of instructions issued.
1575 (cpu_get_number_of_insns): New function to return the number of
1576 instructions issued.
1577 (cpu_print_info): New function to print cpu related information.
1578 At present, print the number of instructions executed.
1579
1580 * gen_idecode_c: Emit call to cpu_increment_number_of_insns within
1581 idecode_issue.
1582
1583 * psim.c (psim_print_info): New function to iterate over each of
1584 the CPU's calling cpu_print_info.
1585
1586 * psim.h,cpu.h: Add new declarations.
1587
8eab189b
MM
1588 * sim_calls.c (sim_open): Add argument processing to add the same
1589 switches main.c accepts for the standalone processor.
83d96c6e
MM
1590 (sim_close): Call psim_print_info if -I.
1591
8eab189b 1592 * main.c (main): Add comment saying to update sim_calls.c when
83d96c6e 1593 adding switches. Add -I to call psim_print_info when done.
e1aaf979 1594 (usage): Update usage message.
8eab189b 1595
d8d46596
MM
1596Sun Oct 1 13:52:59 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1597
1598 * main.c (printf_filtered): Correct to match new prototype.
1599
9d3b4701
MM
1600Sat Sep 30 20:47:05 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1601
1602 * sim_callbacks.h (printf_filtered): Correct prototype.
1603
4f35cbff
MM
1604Thu Sep 21 16:26:49 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1605
9d3b4701
MM
1606 * device_tree.c (OEA_MEMORY_SIZE): Define if not defined to
1607 0x100000.
1608 (clayton_memory_size): Define as OEA_MEMORY_SIZE.
1609
4f35cbff
MM
1610 * std-config.h (WITH_TRACE): Default to 1 now.
1611
1612 * psim.c (write_stack_arguments): Don't write any stack arguments
1613 if OEA.
1614
1615 * main.c (main): Switch to using getopt. Make -p also set
9d3b4701
MM
1616 trace_semantics. Make -a turn on all trace flags. Make -C turn
1617 on console tracing.
4f35cbff
MM
1618
1619 * device_tree.c (create_option_device_node): Assume a program is
1620 OEA if the start address is < 4096, not just == 0.
1621
602677ad
ILT
1622Wed Sep 20 13:36:06 1995 Ian Lance Taylor <ian@cygnus.com>
1623
1624 * Makefile.in (maintainer-clean): New synonym for realclean.
1625
0384d2e3
MT
1626Sun Sep 10 10:23:56 1995 Michael Tiemann <tiemann@axon.cygnus.com>
1627
1628 * registers.c (register_description): Add gdb synonyms for cr
1629 (cnd) and msr (ps).
1630
1631Fri Sep 8 13:16:10 1995 Ian Lance Taylor <ian@cygnus.com>
1632
1633 * Makefile.in (install): Don't install in $(tooldir).
1634
8b3797aa
MM
1635 * configure.in: Call AC_CONFIG_HEADER. Don't try to use
1636 bfd/hosts/*.h file or bfd/config/*.mh file. Call AC_PROG_CC and
1637 AC_PROG_RANLIB. Substitute in values for CFLAGS, HDEFINES, AR,
1638 and CC_FOR_BUILD. Call AC_CHECK_HEADERS for various header files.
1639 Touch stamp.h if creating config.h.
1640 * configure: Rebuild.
1641 * config.in: New file, created by autoheader.
1642 * Makefile.in (AR): Define as @AR@.
1643 (CC): New variable, defined as @CC@.
1644 (CFLAGS): Define as @CFLAGS@.
1645 (CC_FOR_BUILD): New variable, defined as @CC_FOR_BUILD@.
1646 (RANLIB): Define as @RANLIB@.
1647 (HDEFINES, TDEFINES): New variables.
1648 (@host_makefile_frag@): Remove.
1649 (mostlyclean): Make the same as clean, not distclean.
1650 (clean): Remove config.log.
1651 (distclean): Remove config.h and stamp-h.
1652 (Makefile): Don't depend upon @frags@. Just rebuild Makefile when
1653 invoking config.status.
1654 (config.h, stamp-h): New targets.
1655 (gen, gen.o): Build with CC_FOR_BUILD, not CC.
1656 (ppc-config.h): Rename from old config.h build.
1657 * (basics.h,gen.c,ppc-endian.c,psim.c): Include ppc-config.h.
1658
4f965b81
MM
1659Fri Sep 8 09:51:03 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1660
1661 * configure{,.in}: Don't include sysdep.h from bfd, since bfd no
1662 longer provides it.
1663 * basics.h (sysdep.h): Don't include it.
1664 * Makefile.in (BASICS_H): Remove sysdep.h.
1665
c143ef62 1666Wed Sep 6 13:25:42 1995 Andrew Cagney <cagney@highland.com.au>
4f965b81
MM
1667
1668 * core.c (core_add_data): First growth of bss was being put at
1669 wrong address (0) instead of &end.
1670
1671 * core.c (core_add_stack, core_add_data): Was not handling case
1672 where bss/stack is grown across the current end-of-{bss,stack}.
1673
c143ef62 1674Wed Sep 6 00:46:10 1995 Andrew Cagney <cagney@highland.com.au>
4f965b81
MM
1675
1676 * system.c (system_call): Fix SYS_break - was aligning bss to a
1677 page boundary instead of just an 8 byte one; On first call sbrk(0)
1678 != sbrk(0).
1679
1680Thu Aug 24 14:48:54 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1681
1682 * Makefile.in (install): Fix install rule.
1683
cb7a6892
MM
1684Tue Aug 22 09:31:18 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1685
1686 * system.c (system_call): Add read support.
1687
1688 * main.c (main): -t sets trace_device_tree. Correct usage message
1689 to current reality.
1690
1691 * device_tree.c (update_memory_node_for_section): Make tracing
1692 output line up. If not code or readonly, assume that the section
1693 is a data section and has read/write permissions. Add readonly
1694 support.
1695
1696 * core.c (create_core_from_addresses): Print end address in traces
1697 and make tracing output line up.
1698
1699 * Makefile.in: Rewrite from Makefile to work with the Cygnus
1700 environment, and support compiling in a different directory than
1701 the sources reside in.
1702
1703 * ppc-endian.h: Rename from endian.h so that it doesn't get
1704 confused with /usr/include/sys/endian.h on Linux. Add Linux
1705 endian support.
1706
1707 * ppc-endian.c: Rename to be consistant with ppc-endian.h.
1708 Include ppc-endian.h, not endian.h.
1709
1710 * basics.h (sysdep.h): Include sysdep.h that configure makes.
1711 Include ppc-endian.h, not endian.h.
1712
1713 * std-config.h: Rename from ppc-config. Put #ifndefs around most
1714 configuration macros, so they can be overridden via CFLAGS. By
1715 default, turn off tracing.
1716
1717 * configure.in: Clone from other simulator targets.
1718 * configure: Generate via autoconf from configure.in.
1719
c143ef62 1720Sat Aug 19 09:05:32 1995 Andrew Cagney <cagney@highland.com.au>
cb7a6892
MM
1721
1722 * ppc-instructions: fix srawi (was geting XER[CA] real wrong).
1723
1724 * interrupts.c (data_storage_interrupt): allow stack to grow by
1725 upto one MB per increment.
1726
1727 * ppc-instructions: divw was computing rA / rA not rA / rB
1728
1729 * main.c (main): really stupid. Wasn't exiting with correct status
1730
c143ef62 1731Fri Aug 18 00:38:01 1995 Andrew Cagney <cagney@highland.com.au>
cb7a6892
MM
1732
1733 * system.c (system_call): add system calls kill(2) and getpid(2).
1734
1735 * main.c (main): Check/return exit status when simulation
1736 finishes.
1737
c143ef62 1738Thu Aug 17 14:29:18 1995 Andrew Cagney <cagney@highland.com.au>
cb7a6892
MM
1739
1740 * device_tree.c (create_option_device_node): Alignment rules (at
1741 least for the moment) now are for strict alignment only for LE OEA
1742 mode. (Because of compiler problems).
1743
1744 * system.c (system_call) SYS_exit: Wasn't exiting with correct status.
1745
c143ef62 1746Thu Aug 17 01:16:38 1995 Andrew Cagney <cagney@highland.com.au>
cb7a6892
MM
1747
1748 * vm.c (DEFINE_VM_DATA_MAP_WRITE_N): For miss aligned transfer
1749 forgot to return.
1750
1751 * system.c (system_call): didn't page align break argument before
1752 determining increment break increment.
1753
1754 * psim/ppc: Re-arange entire directory structure so that
1755 everything lives in the one directory. While a pain for cleaning,
1756 makes building across multiple architectures much simpler.
1757
1758 * devices.c, device_tree.c: Added code that provides a simple
1759 illustration of how an interrupt control device could be
1760 implemented.
1761
1762 * devices.c: Added code so that the dumb console device can read
1763 (from stdin) as well as write to stdout.
1764
This page took 0.138615 seconds and 4 git commands to generate.