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