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