]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/igen/ChangeLog
[igen/ChangeLog]
[thirdparty/binutils-gdb.git] / sim / igen / ChangeLog
1 2003-05-03 Chris Demetriou <cgd@broadcom.com>
2
3 * compare_igen_models: Tweak attribution slightly.
4
5 2002-11-22 Andrew Cagney <cagney@redhat.com>
6
7 * gen.c (name_cmp): Rename format_name_cmp.
8 (insn_list_insert): When a merge, compare the format name and
9 instruction name. Add trace messages.
10
11 2002-11-21 Andrew Cagney <ac131313@redhat.com>
12
13 * filter.c: Re-indent.
14 * filter.h, filter_host.h, gen-engine.c, gen-engine.h: Ditto.
15 * gen-icache.c, gen-icache.h, gen-idecode.c: Ditto.
16 * gen-idecode.h, gen-itable.c, gen-itable.h: Ditto.
17 * gen-model.c, gen-model.h, gen-semantics.c: Ditto.
18 * gen-semantics.h, gen-support.c, gen-support.h: Ditto.
19 * gen.c, gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
20 * ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
21 * lf.h, misc.c, misc.h, table.c, table.h: Ditto.
22
23 2002-11-21 Andrew Cagney <ac131313@redhat.com>
24
25 * Makefile.in: Update copyright. IGEN contributed to the FSF.
26 * filter.c, filter.h, filter_host.c, filter_host.h: Ditto.
27 * gen-engine.c, gen-engine.h, gen-icache.c, gen-icache.h: Ditto.
28 * gen-idecode.c, gen-idecode.h, gen-itable.c: Ditto.
29 * gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c: Ditto.
30 * gen-semantics.h, gen-support.c, gen-support.h, gen.c: Ditto.
31 * gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
32 * ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
33 * lf.h, misc.c, misc.h, table.c, table.h: Ditto.
34
35 2002-11-06 Richard Sandiford <rsandifo@redhat.com>
36
37 * gen-engine.c (print_engine_issue_prefix_hook): Don't add the
38 global prefix to ENGINE_ISSUE_PREFIX_HOOK.
39 (print_engine_issue_postfix_hook): Likewise ENGINE_ISSUE_POSTFIX_HOOK.
40
41 2002-08-28 Dave Brolley <brolley@redhat.com>
42
43 * gen-support.c (gen_support_h): Generate
44 '#define semantic_illegal <PREFIX>_semantic_illegal'.
45
46 2002-08-22 Chris Demetriou <cgd@broadcom.com>
47
48 * compare_igen_models: New script.
49
50 2002-06-17 Andrew Cagney <cagney@redhat.com>
51
52 * gen.c (gen_entry_expand_opcode): Initialize ``value'' to -1 and
53 ``t'' to NULL.
54 * igen.c (main): Add default case to switch.
55 * gen-icache.c (print_icache_extraction): Ditto.
56
57 2002-06-17 Andrew Cagney <cagney@redhat.com>
58
59 * Makefile.in (BUILD_CFLAGS): Remove -O0.
60
61 2002-06-16 Andrew Cagney <ac131313@redhat.com>
62
63 * configure: Regenerated to track ../common/aclocal.m4 changes.
64
65 2002-06-03 Richard Henderson <rth@redhat.com>
66
67 * gen-engine.c (print_run_body): Avoid multi-line strings.
68 * lf.c (lf_print__gnu_copyleft): Likewise.
69
70 2002-05-01 Chris Demetriou <cgd@broadcom.com>
71
72 * igen.c: Use 'deprecated' rather than 'depreciated.'
73
74 2002-03-23 Andrew Cagney <ac131313@redhat.com>
75
76 * gen.c (format_name_cmp): New function.
77 (insn_list_insert): Use the instruction field name as an
78 additional key. Different field names indicate different
79 semantics.
80
81 2002-03-07 Chris Demetriou <cgd@broadcom.com>
82
83 * igen.c (print_itrace_format): Add support for a new "%#lx" format.
84
85 Tue May 23 21:39:23 2000 Andrew Cagney <cagney@b1.cygnus.com>
86
87 * configure: Regenerated to track ../common/aclocal.m4 changes.
88
89 2000-04-12 Frank Ch. Eigler <fche@redhat.com>
90
91 * gen-semantics.c (print_semantic_body): Use GPR_CLEAR(N) instead
92 of GPR_SET(N,0) for gen-zero-rN.
93
94 Thu Sep 2 18:15:53 1999 Andrew Cagney <cagney@b1.cygnus.com>
95
96 * Makefile.in (SIM_WARNINGS): Replace this with.
97 (IGEN_WERROR_CFLAGS, IGEN_WARN_CFLAGS, WERROR_CFLAGS,
98 WARN_CFLAGS): With these.
99 (BUILD_CFLAGS): Update.
100
101 * configure: Regenerated to track ../common/aclocal.m4 changes.
102
103 1999-05-08 Felix Lee <flee@cygnus.com>
104
105 * configure: Regenerated to track ../common/aclocal.m4 changes.
106
107 Fri Dec 4 15:14:09 1998 Andrew Cagney <cagney@b1.cygnus.com>
108
109 * igen.c (main): Fix -Pitable=.
110
111 * gen-engine.c (print_run_body): Prefix instruction_address.
112
113 Wed Oct 28 18:12:43 1998 Andrew Cagney <cagney@b1.cygnus.com>
114
115 * Makefile.in (SIM_WARNINGS): Update to match ../common/aclocal.m4
116 changes.
117
118 Wed Aug 12 10:55:28 1998 Frank Ch. Eigler <fche@cygnus.com>
119
120 * gen-icache.c (print_icache_extraction): #undef a generated
121 symbol before #define'ing it, to remove conflict with system
122 macros.
123
124 Wed Jul 29 10:07:27 1998 Andrew Cagney <cagney@b1.cygnus.com>
125
126 * gen.c (gen_entry_expand_opcode): For conditional, fields. Fix
127 the extraction of the value from its source - both table and bit
128 cases were wrong.
129
130 Tue Jul 28 11:19:43 1998 Andrew Cagney <cagney@b1.cygnus.com>
131
132 * ld-insn.c (parse_insn_word): For constant conditional strings,
133 encode their bit value.
134
135 * ld-insn.c (parse_insn_word, parse_insn_words): Allow conditional
136 operands to refer to fields in earlier instruction words.
137
138 * gen.c (sub_val): Replace field argument with val_last_pos.
139 (gen_entry_expand_opcode): Look in previous tables for a value for
140 a conditional field as well as the bits from the current table.
141 (insn_list_insert): Add sort key of instructions where
142 their operand fields have different conditionals.
143 (insn_field_cmp): New function.
144
145 Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
146
147 * configure: Regenerated to track ../common/aclocal.m4 changes.
148 * config.in: Ditto.
149
150 Sun Apr 26 15:20:08 1998 Tom Tromey <tromey@cygnus.com>
151
152 * acconfig.h: New file.
153 * configure.in: Reverted change of Apr 24; use sinclude again.
154
155 Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
156
157 * configure: Regenerated to track ../common/aclocal.m4 changes.
158 * config.in: Ditto.
159
160 Fri Apr 24 11:19:33 1998 Tom Tromey <tromey@cygnus.com>
161
162 * configure.in: Don't call sinclude.
163
164 Fri Apr 24 19:45:00 1998 Andrew Cagney <cagney@b1.cygnus.com>
165
166 * gen-icache.c (print_icache_extraction): Do not type cast
167 pointers.
168
169 * ld-insn.c (load_insn_table): Terminate error with NL.
170
171 * gen.c (insns_bit_useless): Perform unsigned bit comparisons.
172
173 * filter.c (is_filtered_out, filter_parse): Pacify GCC, len is
174 unsigned.
175
176 Wed Apr 22 14:27:39 1998 Michael Meissner <meissner@cygnus.com>
177
178 * configure: Reconfigure to pick up ../common/aclocal.m4 changes
179 to suppress inlining by default.
180
181 Tue Apr 21 01:37:54 1998 Andrew Cagney <cagney@b1.cygnus.com>
182
183 * gen-icache.c (print_icache_extraction): When generating #define
184 force the expression to the correct type.
185
186 Thu Apr 16 08:50:29 1998 Andrew Cagney <cagney@b1.cygnus.com>
187
188 * misc.c (name2i): strlen returns an unsigned.
189
190 Tue Apr 14 19:04:28 1998 Andrew Cagney <cagney@b1.cygnus.com>
191
192 * igen.h (struct igen_warn_options): Add unimplemented option.
193 * igen.c (main): Update
194
195 * ld-insn.c (load_insn_table): Report unimplemented functions.
196
197 Tue Apr 14 10:57:26 1998 Andrew Cagney <cagney@b1.cygnus.com>
198
199 * ld-insn.c (parse_insn_word): Treat `!' and `=' as valid
200 separator tokens when parsing a conditional.
201
202 * igen.h (main): Add option -S so that suffix can be specified.
203
204 Tue Apr 14 08:44:53 1998 Andrew Cagney <cagney@b1.cygnus.com>
205
206 * igen.h (struct igen_trace_options): Add members insn_expansion
207 and insn_insertion.
208
209 * igen.c (main): Add options -Gtrace-insn-expansion,
210 -Gtrace-insn-insertion and -Gtrace-all.
211
212 * gen.c (gen_entry_expand_insns): Trace each instruction as it is
213 selected for expansion.
214 (gen_entry_expand_opcode): Trace each expanded instruction as it
215 is inserted into the table.
216
217 Mon Apr 13 19:21:47 1998 Andrew Cagney <cagney@b1.cygnus.com>
218
219 * ld-insn.c (parse_insn_word): Parse conditional operators.
220 (parse_insn_word): Verify field conditionals.
221
222 * ld-insn.h: Extend syntax to allow macros and field equality.
223 (struct insn_field_cond): Rename insn_field_exclusion, add type.
224
225 * gen.c (gen_entry_expand_opcode): Check type of conditional.
226 (insns_bit_useless): Ditto.
227
228 * ld-insn.c (parse_macro_record): New function.
229
230 Mon Apr 13 22:37:47 1998 Andrew Cagney <cagney@b1.cygnus.com>
231
232 * ld-insn.h (enum insn_field_type): Add insn_field_invalid.
233
234 * ld-insn.c (parse_insn_word): Check instruction field type
235 correctly initialized.
236 (print_insn_words): Ditto.
237 (insn_field_type_to_str): Ditto.
238 (dump_insn_field): Ditto.
239
240 * gen.c (insns_bit_useless): Ditto.
241
242 Fri Apr 3 18:08:16 1998 Andrew Cagney <cagney@b1.cygnus.com>
243
244 * gen.h, igen.c (print_include_inline, print_includes,
245 print_includes): New functions. Generate include list. For for
246 semantics et.al. generate CPP code to inline when
247 C_REVEALS_MODULE_P.
248
249 * igen.c (gen_semantics_c): Call print_includes.
250 * gen-engine.c (gen_engine_c): Ditto.
251
252 Sat Apr 4 21:09:11 1998 Andrew Cagney <cagney@b1.cygnus.com>
253
254 * igen.h: (struct _igen_name_option): Replace with struct
255 igen_module_option. Contains both module prefix and suffix.
256 (INIT_OPTIONS): Initialize.
257
258 * igen.c (main): Update -P option to fill in full module info.
259 (gen-engine.c, gen-icache.c, gen-itable.c, gen-semantics.c,
260 gen-support.c): Update.
261
262 Sat Apr 4 02:15:35 1998 Andrew Cagney <cagney@b1.cygnus.com>
263
264 * igen.c (print_itrace): Use TRACE_ANY_P macro to determine if any
265 tracing is needed.
266
267 Thu Mar 26 20:51:23 1998 Stu Grossman <grossman@bhuna.cygnus.co.uk>
268
269 * table.c (table_push): Redo, using stdio. Fixes NT native
270 problem with <CRLF>=><LF> translation...
271
272 Tue Mar 24 23:30:07 1998 Andrew Cagney <cagney@b1.cygnus.com>
273
274 * gen-engine.c (print_run_body): Re-extract the CIA after
275 processing any events.
276
277 Tue Mar 24 17:46:08 1998 Stu Grossman <grossman@bhuna.cygnus.co.uk>
278
279 * Makefile.in: Get SHELL from configure.
280 * configure: Regenerate with autoconf 2.12.1 to fix shell issues for
281 NT native builds.
282
283 Mon Mar 16 12:51:31 1998 Andrew Cagney <cagney@b1.cygnus.com>
284
285 * igen.c: Pass sim_cia to trace_prefix.
286
287 Thu Feb 26 19:25:02 1998 Andrew Cagney <cagney@b1.cygnus.com>
288
289 * ld-insn.c (parse_function_record): Check models are valid.
290 (parse_function_record): Only discard function when no model is
291 common.
292
293 Tue Feb 24 01:42:03 1998 Andrew Cagney <cagney@b1.cygnus.com>
294
295 * gen-engine.c (print_run_body): Always wrap generated idecode
296 body in ENGINE_ISSUE_PREFIX_HOOK / ENGINE_ISSUE_POSTFIX_HOOK.
297
298 Fri Feb 20 16:22:10 1998 Andrew Cagney <cagney@b1.cygnus.com>
299
300 * ld-insn.c (parse_function_record): When -Wnodiscard, suppress
301 discarded function warning.
302
303 * igen.c (main): Clarify -Wnodiscard.
304
305 * ld-insn.c (parse_function_record): For functions, allow use of
306 instruction style function model records
307
308 * ld-insn.h (nr_function_model_fields): Define.
309
310 Tue Feb 17 16:36:27 1998 Andrew Cagney <cagney@b1.cygnus.com>
311
312 * igen.c (print_itrace_prefix): Generate call to trace_prefix
313 instead of trace_one_insn.
314 (print_itrace): Generate trace_prefix call if any tracing enabled,
315 (print_itrace): Nest generated call to trace_generic inside
316 conditional for any tracing enabled.
317 (print_itrace_prefix): Do not pass PHASE to trace_prefix.
318
319 Tue Feb 3 14:00:32 1998 Andrew Cagney <cagney@b1.cygnus.com>
320
321 * gen-engine.c (print_run_body): Add bitsize suffix to IMEM macro.
322 * gen-icache.c (print_icache_body): Ditto.
323 * gen-idecode.c (print_idecode_ifetch): Ditto.
324
325 * gen-icache.c (print_icache_body): Mark successive instruction
326 words as unused.
327
328 * ld-insn.c (parse_insn_word): Only report insn-width problems
329 when warning enabled.
330
331 * igen.h: Add flag for warning about invalid instruction widths.
332 * igen.c: Parse -Wwidth option.
333
334 * gen-support.c (gen_support_h): Map instruction_word onto
335 <PREFIX>_instruction_word when needed.
336 (print_support_function_name): Use support prefix.
337 (gen_support_h): Ditto for <PREFIX>_idecode_issue.
338
339 Sun Feb 1 11:08:48 1998 Andrew Cagney <cagney@b1.cygnus.com>
340
341 * gen-support.c (gen_support_h): Generate new macro CPU_.
342
343 Sat Jan 31 14:50:27 1998 Andrew Cagney <cagney@b1.cygnus.com>
344
345 * gen-engine.c (gen_engine_h): Don't assume a model is present.
346 (gen_engine_c): Ditto.
347
348 * igen.c (gen_run_c): Ditto.
349
350 * gen-engine.c (print_run_body): Use CIA_GET & CIA_SET instead of
351 CPU_CIA. Parameterize with CPU argument.
352
353 Fri Jan 30 09:09:39 1998 Andrew Cagney <cagney@b1.cygnus.com>
354
355 * gen.h (struct _gen_list): Replace processor with model.
356
357 * igen.c (gen_idecode_h): Update.
358 (gen_run_c): For generated switch, use model->full_name.
359
360 * gen.c (print_gen_entry_path): Ditto.
361 (make_table): Ditto.
362 (gen_entry_expand_insns): Ditto.
363 (make_gen_tables): Ditto.
364
365 * igen.c (gen_run_c): Add extra argument `nr_cpus' to generated
366 function sim_engine_run. Pass argument on to engine_run.
367
368 * gen-engine.c (print_engine_run_function_header): Add extra
369 argument `nr_cpus' to generated function engine_run.
370 (print_run_body): Fix SMP case.
371
372 * gen-support.c (support_c_function): Call sim_engine_abort when
373 internal function fails to long jump.
374
375 Wed Jan 21 18:00:22 1998 Andrew Cagney <cagney@b1.cygnus.com>
376
377 * gen-semantics.c (print_semantic_body): Use GPR_SET to zero
378 hardwired register.
379
380 Wed Dec 17 14:49:03 1997 Jeffrey A Law (law@cygnus.com)
381
382 * gen-semantics.c (print_semantic_body): Fix handling of
383 hardwired zero register.
384
385 Tue Dec 9 12:45:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
386
387 * igen.h (struct _igen_gen_options): Add member default_model.
388
389 * igen.c (gen_run_c): Default to the first machine in the
390 multi-sim list.
391 (main): Add MODEL parameter to gen-multi-sim option.
392
393 * gen.h (function_decl_type): Declare enum.
394
395 * gen-engine.c (print_engine_run_function_header), gen-engine.h:
396 Make global, pass function_decl_type as argument.
397 (gen_engine_h, gen_engine_c): Update call.
398
399 * gen-idecode.c (print_idecode_issue_function_header),
400 gen-idecode.h: Pass function_decl_type as argument.
401
402 * igen.c (gen_idecode_h): For multi-sim, delcare global variable
403 idecode_issue.
404
405 * igen.c (gen_run_c): For multi-sim, initialize globals
406 idecode_issue and engine_run.
407
408 Fri Nov 14 10:51:44 1997 Andrew Cagney <cagney@b1.cygnus.com>
409
410 * ld-insn.c (parse_insn_model_record): Allow multiple model names
411 to be specified in a single instruction model record.
412 (dump_insn_model_entry): Update.
413
414 * ld-insn.h (struct _insn_model_entry): Replace member name with
415 the filter names. Document syntax change.
416
417 Wed Nov 12 15:45:40 1997 Andrew Cagney <cagney@b1.cygnus.com>
418
419 * gen-engine.c (print_run_body): Add hooks for adding code before
420 and after an instruction has been issued.
421
422 1997-11-04 Brendan Kehoe <brendan@lisa.cygnus.com>
423
424 * gen-idecode.c (print_jump_until_stop_body): Use `#if 0' instead of
425 `#ifdef 0' around this.
426
427 Tue Nov 4 08:18:29 1997 Michael Meissner <meissner@cygnus.com>
428
429 * ld-decode.c (load_decode_table): Don't assume NULL is an integer
430 constant.
431
432 Wed Oct 29 13:17:17 1997 Andrew Cagney <cagney@b1.cygnus.com>
433
434 * ld-insn.h: Document mnemonic string format.
435
436 Tue Oct 28 10:50:35 1997 Andrew Cagney <cagney@b1.cygnus.com>
437
438 * gen-icache.c (print_icache_extraction): Force result of atol to
439 unsigned.
440
441 * ld-insn.c (parse_function_record): Separate handling of old and
442 ney fynction records.
443 (load_insn_table): For %s record, hack function name & type after
444 it has been parsed.
445
446 * filter.h (filter_is_subset): Reverse argument names, wrong
447 order.
448
449 * ld-insn.c (load_insn_table): Move include code to.
450 (parse_include_record): New function. Check for filtering of
451 include statement by both flags and models.
452 (load_insn_table): Check for model filtering of cache and model
453 records.
454 (parse_model_data_record): Check for model & flag filtering of
455 model data records.
456 (parse_function_record): Check for model & flag filtering of
457 function records.
458
459 * ld-insn.h: Define record_filter_models_field. Add filter-models
460 field to all but instruction records.
461 (struct _function_entry, struct _cache_entry): Add models field.
462 (nr_function_fields): Make parm field mandatory.
463
464 Mon Oct 27 15:14:26 1997 Andrew Cagney <cagney@b1.cygnus.com>
465
466 * igen.c (main): Change -I option to -I<directory>. Add optional
467 size to -Ggen-icache option. Add -Gno-... support.
468
469 * igen.h (struct _igen_options): Add include field.
470
471 * ld-insn.c (enum insn_record_type, insn_type_map): Add
472 include_record.
473 (load_insn_table): Call table_push when include record.
474
475 * table.c (struct _open table, struct table): Make table object an
476 indirect ptr to the current table file.
477 (current_line, new_table_entry, next_line): Make file arg type
478 open_table.
479 (table_open): Use table_push.
480 (table_read): Point variable file at current table, at eof, pop
481 last open table.
482
483 * table.h, table.c (table_push): New function.
484
485 Thu Oct 16 11:03:27 1997 Andrew Cagney <cagney@b1.cygnus.com>
486
487 * gen-semantics.c (print_semantic_body): Use CIA not
488 cia.ip. Escape newlines at end of generated call to
489 sim_engine_abort.
490
491 Tue Oct 14 11:13:27 1997 Andrew Cagney <cagney@b1.cygnus.com>
492
493 * igen.c (print_itrace): Output line-ref to igen source file when
494 generating trace statements.
495 (print_itrace_prefix, print_itrace_format): Escape newline at end
496 of each line of generated call to trace function.
497
498 Mon Oct 13 11:27:31 1997 Andrew Cagney <cagney@b1.cygnus.com>
499
500 * gen-support.c (gen_support_h): Generate #define NIA. Definition
501 dependant on gen-delayed-branch mode.
502
503 * ld-insn.c (parse_insn_mnemonic_record): Check for opening and
504 closing double quote in mnemonic field.
505 (parse_option_record): Add gen-delayed-branch option.
506
507 Wed Oct 8 13:10:16 1997 Andrew Cagney <cagney@b1.cygnus.com>
508
509 * gen.c (insn_list_insert): Missing \n in warning.
510
511 * ld-insn.c (load_insn_table): Only notify of discarded
512 instrctions when warn.discard enabled.
513
514 * igen.h: Add option.warn.discard, default enabled.
515
516 * igen.c (main): Add -Wnodiscard option.
517
518 * ld-insn.c (record_type): For old record type, check the number
519 of fields is correct.
520 (load_insn_table): Allow insn assembler and insn model records to
521 appear in any order.
522 (parse_insn_model_record): Rename from parse_insn_model_records.
523 Parse only one record.
524 (parse_insn_mnemonic_record): Rename from
525 parse_insn_mnemonic_records. Parse only one record.
526
527 Tue Sep 23 15:52:06 1997 Felix Lee <flee@yin.cygnus.com>
528
529 * gen-itable.c (gen_itable_h): [nr_itable_* + 1] to avoid
530 illegal zero-sized array.
531 (itable_print_set): likewise, avoid empty initializers.
532
533 Mon Sep 22 18:49:07 1997 Felix Lee <flee@cygnus.com>
534
535 * configure.in: i386-windows is a cross, so don't expect
536 libiberty to be there.
537 * configure: updated.
538
539 Fri Sep 19 10:36:30 1997 Andrew Cagney <cagney@b1.cygnus.com>
540
541 * igen.c (print_function_name): Put the format name after the
542 function / instruction name, not before.
543 (print_itrace): Better format trace code.
544
545 Tue Sep 16 11:01:07 1997 Andrew Cagney <cagney@b1.cygnus.com>
546
547 * gen.c (insns_bit_useless): Don't treat string fields restricted
548 to a range of values as useless.
549
550 Mon Sep 15 15:47:21 1997 Andrew Cagney <cagney@b1.cygnus.com>
551
552 * igen.c (gen_run_c): Handle non-multi-sim case.
553
554 * gen-support.c (gen_support_h): Define SD_ - to replace _SD.
555 Define CIA from cia.
556
557 Thu Sep 11 10:27:39 1997 Andrew Cagney <cagney@b1.cygnus.com>
558
559 * gen-semantics.c (print_semantic_body): Trace the instruction
560 after it has been validated.
561 (print_semantic_body): Count the instruction using sim-profile.
562
563 Wed Sep 10 13:35:37 1997 Andrew Cagney <cagney@b1.cygnus.com>
564
565 * gen-itable.c (gen_itable_h): Collect summary info on instruction
566 table when traversing it.
567 (gen_itable_h): Output an enum defining the max size of each of
568 the itable string members.
569
570 Tue Sep 9 03:30:26 1997 Andrew Cagney <cagney@b1.cygnus.com>
571
572 * igen.c (gen_run_c): New function. Generate sim_engine_run that
573 looks at the currently selected architecture.
574
575 * gen-engine.c, gen-idecode.c: Add multi-sim support - generate
576 one engine per model.
577
578 * gen-semantics.c, gen-icache.c gen-support.c:
579 Update.
580
581 * ld-insn.h, ld-insn-h (load_insn_table): Rewrite. table.h only
582 returns a line at a time. Parse multi-word instructions. Add
583 multi-sim support.
584
585 * table.h, table.c: Simplify. Only parse a single line at a time.
586 ld-insn can handle the rest.
587
588 * filter.h, filter.c (filter_parse, filter_add, filter_is_subset,
589 filter_is_common, filter_is_member, filter_next): New filter
590 operations.
591 (dump_filter): Ditto.
592
593 * gen.h, gen.c: New file. Takes the insn table and turns it into
594 a set of decode tables and semantic functions.
595
596 * ld-insn.c: Copy generator code from here.
597 * gen.c: To here.
598
599 Fri Aug 8 11:43:45 1997 Andrew Cagney <cagney@b1.cygnus.com>
600
601 * misc.h (NZALLOC): Allocate an N element array of TYPE.
602
603 * table.h, table.c: Simplify table parser so that it only
604 understands colon delimited lines and code blocks.
605 (table_read): Parse '{' ... '}' as a code block.
606 (table_print_code): New function, print out a code block to file.
607 (main): Add suport for standalone testing.
608
609 * ld-insn.h, ld-insn.c:
610
611
612 Mon Sep 1 11:41:12 1997 Andrew Cagney <cagney@b1.cygnus.com>
613
614 * gen-idecode.c (error_leaf_contains_multiple_insn): Make static.
615 (print_jump_definition, print_jump, print_jump_internal_function,
616 print_jump_insn, print_jump_until_stop_body): Delete, moved to
617 sim-engine.c
618
619 * igen.c (print_itrace_format): Delete unused variable chp.
620 (gen-engine.h): Include.
621
622 * table.c (current_file_name, current_line_entry,
623 current_line_entry): Make static.
624
625 Wed Aug 6 12:31:17 1997 Andrew Cagney <cagney@b1.cygnus.com>
626
627 * configure.in: Define AR_FOR_BUILD, AR_FLAGS_FOR_BUILD,
628 RANLIB_FOR_BUILD and CFLAGS_FOR_BUILD.
629 * configure.in: Include simulator common/aclocal.m4.
630 * configure.in: Add --enable-sim-warnings option.
631 * configure: Re-generate.
632
633 * Makefile.in: Use.
634
635 * Makefile.in (tmp-filter): New rule.
636 (igen.o, tmp-table, tmp-ld-decode, tmp-ld-cache, tmp-ld-insn,
637 ld-decode.o, ld-cache.o, ld-insn.o): Fix dependencies.
638
639 * gen.h, gen.c: New files.
640
641 * Makefile.in (gen.o, tmp-gen): New rules, update all
642 dependencies.
643
644 Tue Jun 24 11:46:45 1997 Andrew Cagney <cagney@b1.cygnus.com>
645
646 * ld-insn.c (load_insn_table): Accept %s as a function type.
647
648 Thu Jun 5 17:14:32 1997 Andrew Cagney <cagney@b1.cygnus.com>
649
650 * igen.c (print_itrace_prefix): Move printing of insn prefix to
651 here.
652 (print_itrace_format): Drop printing of MY_NAME in instruction
653 trace. Printing of insn prefix moved.
654 (print_itrace): Ditto.
655
656 Fri May 30 11:27:37 1997 Andrew Cagney <cagney@b1.cygnus.com>
657
658 * gen-icache.c (print_icache_function_header): Pass
659 table_line_entry instead of separate file and line.
660
661 * table.c (table_entry_read): Set assembler source file/line-nr to
662 the current not initial file.
663 (table_entry_read): Fix line numbering of source files.
664
665 table.h (table_line_entry): New structure. Exactly specifies a
666 source file/line-nr.
667 (table_*_entry): Add this to all.
668
669 table.c (table_entry_print_cpp_line_nr): Change to use values from
670 a table_line_entry struct.
671 (table_entry_read): Save table_line_entry in all structures read.
672
673 gen-icache.c, gen-support.c, gen-idecode.c, gen-semantics.c,
674 gen-model.c: Update all references.
675
676 Thu May 29 10:29:57 1997 Andrew Cagney <cagney@b1.cygnus.com>
677
678 * igen.c (print_my_defines): Define MY_NAME - a string. For
679 MY_PREFIX, undefine the name of the function incase some dumb
680 header defined it. it.
681 (print_itrace): Use MY_NAME not MY_PREFIX.
682
683 * lf.c (lf_write): New function write an N character buffer to the
684 file.
685
686 * igen.c (print_itrace): When available, use the assembler to
687 print the insn-trace.
688 (print_itrace_prefix): New function, print first part of call to
689 print_one_insn.
690 (print_itrace_format): New function, print fmt argument for
691 print_one_insn.
692
693 * table.c (table_entry_read): Save any assembler lines instead of
694 discarding them.
695
696 Wed May 28 09:55:29 1997 Andrew Cagney <cagney@b1.cygnus.com>
697
698 * gen-icache.c (print_icache_body): Process immeds.
699
700 * gen-semantics.c (print_semantic_body): When computing NIA, skip
701 any immed words that follow the instruction word.
702
703 * ld-insn.c (parse_insn_format): Parse immeds appended to an
704 instruction.
705
706 * igen.c (main): Allow any register to be specified as the zero
707 register.
708 (semantic_zero_reg): Global, index to zero register.
709
710 * gen-semantics.c (print_semantic_body): Zero selected register.
711
712 Tue May 27 14:12:32 1997 Andrew Cagney <cagney@b1.cygnus.com>
713
714 * igen.h: Stop options and code gen type bit masks overlaping.
715
716 Fri May 23 12:01:08 1997 Andrew Cagney <cagney@b1.cygnus.com>
717
718 * gen-semantics.c (print_semantic_body): Incorrect test for
719 zero-r0 code.
720
721 Fri May 16 14:32:31 1997 Andrew Cagney <cagney@b1.cygnus.com>
722
723 * gen-semantics.c (print_semantic_body): Use common sim-engine
724 interface.
725
726 Fri May 16 11:48:30 1997 Andrew Cagney <cagney@b1.cygnus.com>
727
728 * gen-semantics.c (print_semantic_body): Add code to clear r0.
729
730 * igen.c (main): Add new option zero-r0, which adds code to clear
731 GPR(0) each cycle.
732
733 Wed May 7 12:31:30 1997 Andrew Cagney <cagney@b1.cygnus.com>
734
735 * igen.c (print_itrace): Fix so line-nr is passed to trace
736 function.
737
738 * gen-idecode.c (print_idecode_validate): Correct FP code.
739
740 * gen-support.c (gen_support_h): Always pass MY_INDEX to support
741 functions.
742 (print_support_function_name): Ditto.
743
744 Tue May 6 06:12:04 1997 Mike Meissner <meissner@cygnus.com>
745
746 * igen.c (print_itrace): Call trace_one_insn to trace
747 instructions, rather than doing it directly.
748
749 Mon May 5 14:11:46 1997 Mike Meissner <meissner@cygnus.com>
750
751 * gen-engine.c (engine_switch_leaf): Remove extra %s.
752 (print_engine_floating_point_unavailable): Wrap in #ifdef
753 UNUSED/#endif, until somebody uses it.
754
755 * gen-idecode.c (error_leaf_contains_multiple_insn): Remove unused
756 variable.
757 (print_jump_until_stop_body): Wrap in #ifdef UNUSED/#endif, until
758 somebody uses it.
759 (print_idecode_validate): Use long formats to print long values.
760
761 * gen-semantics.c (print_idecode_invalid): Set name to "unknown"
762 if we get an unexpected type.
763
764 Fri May 2 13:28:06 1997 Andrew Cagney <cagney@b1.cygnus.com>
765
766 * igen.c (print_itrace): Pass SD as well as CPU to calls to
767 trace_printf.
768
769 * gen-support.c (gen_support_h): Always pass sim_cia cia to
770 support functions.
771 (print_support_function_name): Ditto.
772
773 Wed Apr 30 17:35:51 1997 Andrew Cagney <cagney@b1.cygnus.com>
774
775 * gen-support.c (support_c_function): Remove unnecessary memset of
776 cia.
777 * gen-semantics.c (print_semantic_body): Wasn't closing
778 generated comment.
779
780 Tue Apr 29 11:11:12 1997 Andrew Cagney <cagney@b1.cygnus.com>
781
782 * ld-insn.c (load_insn_table): Report instructions that do not
783 have at least a format and name.
784 (insn_table_find_opcode_field): Check progress is being made.
785
786 * gen-support.c (support_c_function): Report empty function body.
787
788 Thu Apr 24 11:43:45 1997 Andrew Cagney <cagney@b1.cygnus.com>
789
790 * ld-insn.c (insn_table_expand_opcode): Allow reserved fields to
791 be broken up.
792 (insn_table_expand_insns): Allow special rules to apply to groups
793 of instructions when all members of the group match the special
794 mask/value.
795
796 * gen-semantics.c (print_c_semantic): Ditto.
797 * igen.c (print_semantic_function_formal): Ditto.
798 (print_semantic_function_type): Ditto.
799 * igen.c (print_icache_function_formal): Ditto.
800 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
801
802 * gen-idecode.c (gen_idecode_h): Prepend the global_prefix to the
803 instruction_address type.
804
805 * gen-semantics.c (print_semantic_body): Call cpu_error when an
806 unimplemented instruction is encountered - gives the interpreter
807 the chance to stop correctly.
808
809 Wed Apr 23 20:06:36 1997 Andrew Cagney <cagney@b1.cygnus.com>
810
811 * igen.c (print_function_name): Allow dot's in instruction names.
812
813 Tue Apr 22 21:46:28 1997 Andrew Cagney <cagney@b1.cygnus.com>
814
815 * igen.c (main), igen.h: Support new option - delayed-branch -
816 generate code to drive a delayed branch processor.
817
818 * gen-idecode.c (gen_idecode_h): Define instruction_address type.
819
820 * igen.c (print_icache_function_formal): Replace address_word with
821 instruction_address.
822 (print_semantic_function_formal): Ditto.
823 (print_semantic_function_type): Ditto.
824 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
825
826 * gen-semantics.c (print_semantic_body): Ditto.
827 (print_c_semantic): Ditto.
828
829 * gen-support.c (support_c_function): Return a zeroed CIA instead
830 of just zero - works with any cia type.
831
832 * igen.c (print_itrace): For delayed branch case, print just the
833 current instruction.
834
835 Thu Apr 17 07:02:33 1997 Doug Evans <dje@canuck.cygnus.com>
836
837 * igen.c (print_itrace): Use TRACE_FOO_P and trace_printf.
838
839 Tue Apr 15 15:20:31 1997 Ian Lance Taylor <ian@cygnus.com>
840
841 * Makefile.in (INSTALL): Set to @INSTALL@.
842 (INSTALL_XFORM, INSTALL_XFORM1): Remove.
843
844 Mon Apr 14 16:29:34 1997 Ian Lance Taylor <ian@cygnus.com>
845
846 * Makefile.in (INSTALL): Change install.sh to install-sh.
847
848 Wed Apr 2 18:51:20 1997 Doug Evans <dje@canuck.cygnus.com>
849
850 * gen-support.c (gen_support_c): sim-state.h renamed to sim-main.h.
851 * gen-idecode.c (gen_idecode_c): Likewise.
852 * igen.c (gen_semantics_c): Likewise.
853
854 Mon Mar 24 10:10:08 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
855
856 * gen-icache.c (print_icache_body): No longer define cpu/sd,
857 support.h now defines CPU/SD globally.
858
859 * gen-model.c (gen_model_h): Ditto.
860
861 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
862 (print_jump): Ditto.
863 (print_jump_until_stop_body): Ditto.
864 (print_idecode_validate): Ditto.
865
866 * gen-icache.c (print_icache_body): Ditto.
867
868 * gen-semantics.c (print_semantic_body): Ditto.
869
870 * igen.c (print_semantic_function_formal): Rename cpu to sim_cpu,
871 processor to cpu.
872 (print_icache_function_formal): Ditto.
873
874 * gen-support.c (print_support_function_name): Include sd/cpu arg
875 in support function argument list.
876 (support_c_function): Generate code to cpu/sd from sd/cpu.
877 (gen_support_h): Define _SD the argument prefix for all support
878 functions. Define SD/CPU to determine sd/cpu from value of _SD
879 macro.
880
881 Tue Mar 18 15:52:24 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
882
883 * gen-support.c (gen_support_c): Update for renaming of engine to
884 sim-state.
885
886 * igen.c: Ditto.
887 * gen-idecode.c (gen_idecode_c): Ditto.
888
889 Mon Mar 17 15:17:07 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
890
891 * ld-decode.c (load_decode_table): Rename slash to reserved.
892 (dump_decode_rule): Ditto.
893
894 * ld-insn.c (parse_insn_format): Differentiate between a `/' -
895 reserved bit - and a `*' - wild card.
896 (parse_insn_format): Change is_slash to more informative reserved.
897 (dump_insn_field): Ditto.
898 (insn_field_is_constant): Ditto.
899 (insn_table_expand_opcode): Ditto.
900
901 * gen-idecode.c (print_idecode_validate): Make check_mask and
902 check_val the correct integer size.
903 (print_idecode_validate): Fix reserved bit check for 64 bit
904 targets.
905
906 Fri Mar 14 11:24:06 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
907
908 * ld-insn.c (parse_insn_format): Accept '*' as an alternative of
909 `/' in bit fields. `/' denotes a wild bit.
910
911 Fri Mar 7 18:20:38 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
912
913 * igen.h, igen.c (main): New options. Control generation of
914 conditional issue and slot verification code.
915
916 Fri Mar 7 18:17:25 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
917
918 * gen-support.c (print_support_function_name): Prepend the global
919 name prefix when applicable. Provide #define to map the user
920 specified name the generated globaly unique one.
921
922 Fri Mar 7 18:07:45 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
923
924 * gen-idecode.c (print_idecode_validate): Wrap each of the checks
925 - reserved bits, floating point and slot validation - with a
926 #ifdef so that they are optional.
927
928 Fri Mar 7 16:35:13 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
929
930 * gen-idecode.c (error_leaf_contains_multiple_insn): New function
931 - report the error of a leaf node in the decision tree containing
932 several instructions.
933 (print_idecode_table_leaf): Detect a leaf with multiple instructions.
934 (print_idecode_switch_leaf): Ditto.
935
936 * gen-semantics.h, gen-semantics.c (print_idecode_illegal,
937 print_idecode_invalid): Rename former to latter. Add argument so
938 that one function can generate all invalid instruction cases -
939 illegal, fp-unavailable, wrong-slot.
940 * gen-engine.c: Update.
941
942 * gen-idecode.c: Use print_idecode_invalid to generate a function
943 call for cases when fp-unavailable and the slot is wrong.
944
945 * gen-idecode.c (print_idecode_validate): New check, generate code
946 to verify that the instruction slot is correct.
947
948 * igen.c (main): Simplify options.
949
950 Wed Mar 5 09:55:55 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
951
952 * igen.c (print_itrace): Remove source line reference for trace
953 code - let the user see the generated file.
954 (print_itrace): Print the trace code rather than reference a
955 macro.
956
957 Tue Mar 4 17:31:55 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
958
959 * igen.c (print_semantic_function_actual): Pass either the
960 processor - smp - or the engine - mono - into semantic functions.
961 Don't pass in both.
962
963 * gen-icache.c (print_icache_body): Dependant on smp, derive
964 processor from engine or engine from processor, and hence ensuring
965 that both are defined in all semantic functions.
966
967 Mon Mar 3 17:11:21 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
968
969 * ld-insn.c (parse_insn_format): Make the width field optional.
970 If missing assume that the number of characters in the value
971 determines the number of bits in the field.
972
973 Thu Feb 27 11:27:48 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
974
975 * ld-insn.c (insn_table_expand_opcode): Replace assertion with
976 more useful error message.
977
978 Tue Feb 25 16:43:27 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
979
980 * misc.c (error): Output errors on stderr.
981
982 * ld-insn.c (parse_insn_format): Skip any leading spaces.
983 Verify the width of instructions being parsed.
984
985 * table.c (table_entry_read): Parse CPP's convention for
986 specifying original file name/line-nr.
987
988 Wed Feb 19 12:30:28 1997 Andrew Cagney <cagney@critters.cygnus.com>
989
990 * ld-insn.c (parse_insn_format): Allow trailing spaces in
991 instruction fields.
992
993 * Makefile.in: Create using ../ppc/Makefile.in as a starting
994 point.
995 * configure.in: Ditto vis ../ppc/configure.in
996
997 Mon Feb 17 10:44:18 1997 Andrew Cagney <cagney@critters.cygnus.com>
998
999 * gen-support.c (gen_support_c): Always include engine.h instead
1000 of cpu.h
1001 * gen-idecode.c (gen_idecode_c): Ditto.
1002
1003 * words.h (instruction_word): Remove instruction_word - now
1004 generated by igen.
1005 (address_word): New. Used by igen.
1006
1007 * lf.c (lf_print_function_type_function): New, pass a function to
1008 print out the type instead of a constant string.
1009
1010 * igen.h, igen.c (print_semantic_function_formal,
1011 SEMANTIC_FUNCTION_FORMAL): Relace macro with function.
1012 (print_semantic_function_actual, SEMANTIC_FUNCTION_ACTUAL): Ditto.
1013 (print_semantic_function_type, SEMANTIC_FUNCTION_TYPE): Ditto.
1014 (print_icache_function_type, ICACHE_FUNCTION_TYPE): Ditto.
1015 (print_icache_function_formal, ICACHE_FUNCTION_FORMAL): Ditto.
1016 (print_icache_function_actual, ICACHE_FUNCTION_ACTUAL): Ditto.
1017 * gen-idecode.c (print_idecode_table): Update.
1018 (idecode_switch_leaf): Update.
1019 (print_idecode_switch_function_header): Ditto.
1020 (print_idecode_floating_point_unavailable): Ditto.
1021 (print_idecode_issue_function_header): Ditto.
1022 * igen.c (gen_icache_h): Ditto.
1023 * gen-engine.c (print_engine_table): Ditto.
1024 (engine_switch_leaf): Ditto.
1025 * gen-support.c (print_support_function_name): Ditto.
1026 * gen-semantics.c (print_semantic_function_header): Update.
1027 Update.
1028 * gen-icache.c (print_icache_function_header): Update.
1029 (print_icache_function): Update.
1030 (print_icache_internal_function_declaration): Update.
1031 (print_icache_internal_function_definition): Update.
1032
1033 * gen-idecode.c (gen_idecode_h): Drop including of idecode_*.h
1034 files, will at some stage need to move it into support.
1035
1036 * igen.h, igen.c (main): New option -e <engine> - generate a full
1037 simulation engine. Previously this was the -d <idecode-file>
1038 option.
1039 * gen-engine.h, gen-engine.c: Copies of gen-idecode.*. Will need
1040 to clean these up so that that call upon the updated gen-idecode
1041 code.
1042
1043 * gen-idecode.h, gen-idecode.c: Prune out any code not relevant to
1044 generating a decode table.
1045
1046 * Makefile.in (igen): Add dependencies for new gen-engine.* files.
1047
1048 * igen.h, igen.c (main): New option -M - Control what is returned
1049 by semantic functions - -1/NIA vs CIA+N/NIA. Add
1050 generate_semantic_returning_modified_nia_only to igen_code enum.
1051 * gen-semantics.c (print_semantic_body): As an alternative, make
1052 NIA == -1 instead of CIA+insn_size by default.
1053
1054 * igen.h, igen.c (main, global_name_prefix, global_uname_prefix):
1055 New option -P <prefix> - Prepend all generated functions with the
1056 specified prefix.
1057 (gen_idecode_c): Adjust.
1058 * gen-icache.c (print_icache_struct): Ditto.
1059 * gen-support.c (gen_support_c): Ditto.
1060
1061 Sun Feb 16 15:23:15 1997 Andrew Cagney <cagney@critters.cygnus.com>
1062
1063 * igen.c (main): Correct usage. Missleading message about ucase
1064 options dumping internal tables. -F now includes rather then
1065 excludes instructions.
1066
1067 * misc.h, misc.c (a2i): Make 64bit.
1068
1069 * ld-insn.h (max_insn_bit_size, default_insn_bit_size): Increase
1070 max to 64bits, expect trouble. Make the default 32 bits.
1071 * gen-idecode.c (print_idecode_table): Change EXTRACTED*
1072 et.al. macro's to use the insn_bit_size instead of assuming 32
1073 bits.
1074 * gen-icache.c (print_icache_extraction): Ditto.
1075 * gen-idecode.c (idecode_switch_start): Ditto.
1076 * gen-idecode.c (gen_idecode_c): Ditto
1077
1078 * igen.h (insn_specifying_widths), igen.c (main): New option -W.
1079 Indicates that the instruction field of the table is specifying
1080 bit widths instead of bit offsets.
1081 * ld-insn.c (parse_insn_format): Parse instruction fields
1082 specifying widths.
1083
1084 * misc.c (a2i): Allow binary numbers to be specified using the
1085 syntax 0bNNNN.
1086 * ld-insn.c: Allow such numbers to appear in the instruction
1087 format.
1088
1089 * table.c (table_entry_read): Make // a valid comment character.
1090 (table_entry_read): Skip lines containing a leading " - these may
1091 eventually be used in a disasembler.
1092
1093 Fri Feb 14 15:23:15 1997 Andrew Cagney <cagney@critters.cygnus.com>
1094
1095 * filter.c, filter.h, gen-engine.c, gen-engine.h, gen-icache.c,
1096 gen-icache.h, gen-idecode.c, gen-idecode.h, gen-itable.c,
1097 gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c,
1098 gen-semantics.h, gen-support.c, gen-support.h, igen.c, igen.h,
1099 ld-cache.c, ld-cache.h, ld-decode.c, ld-decode.h, ld-insn.c,
1100 ld-insn.h, lf.c, lf.h, misc.c, misc.h, table.c, table.h: Copy in
1101 from the ../ppc directory.
1102
1103 * filter_host.c, filter_host.h: Copy in from the ../ppc directory
1104 renaming from filter_filename.[hc]