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