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