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