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