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