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