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