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