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