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