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