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