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