[igen/ChangeLog]
[platform/upstream/binutils.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]