OSDN Git Service

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