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