o Make tic80 insn file more `cache ready'
[external/binutils.git] / sim / igen / ChangeLog
1 Fri May 16 11:48:30 1997  Andrew Cagney  <cagney@b1.cygnus.com>
2
3         * gen-semantics.c (print_semantic_body): Add code to clear r0.
4
5         * igen.c (main): Add new option zero-r0, which adds code to clear
6         GPR(0) each cycle.
7
8 Wed May  7 12:31:30 1997  Andrew Cagney  <cagney@b1.cygnus.com>
9
10         * igen.c (print_itrace): Fix so line-nr is passed to trace
11         function.
12
13         * gen-idecode.c (print_idecode_validate): Correct FP code.
14
15         * gen-support.c (gen_support_h): Always pass MY_INDEX to support
16         functions.
17         (print_support_function_name): Ditto.
18
19 Tue May  6 06:12:04 1997  Mike Meissner  <meissner@cygnus.com>
20
21         * igen.c (print_itrace): Call trace_one_insn to trace
22         instructions, rather than doing it directly.
23
24 Mon May  5 14:11:46 1997  Mike Meissner  <meissner@cygnus.com>
25
26         * gen-engine.c (engine_switch_leaf): Remove extra %s.
27         (print_engine_floating_point_unavailable): Wrap in #ifdef
28         UNUSED/#endif, until somebody uses it.
29
30         * gen-idecode.c (error_leaf_contains_multiple_insn): Remove unused
31         variable.
32         (print_jump_until_stop_body): Wrap in #ifdef UNUSED/#endif, until
33         somebody uses it.
34         (print_idecode_validate): Use long formats to print long values.
35
36         * gen-semantics.c (print_idecode_invalid): Set name to "unknown"
37         if we get an unexpected type.
38
39 Fri May  2 13:28:06 1997  Andrew Cagney  <cagney@b1.cygnus.com>
40
41         * igen.c (print_itrace): Pass SD as well as CPU to calls to
42         trace_printf.
43
44         * gen-support.c (gen_support_h): Always pass sim_cia cia to
45         support functions.
46         (print_support_function_name): Ditto.
47
48 Wed Apr 30 17:35:51 1997  Andrew Cagney  <cagney@b1.cygnus.com>
49
50         * gen-support.c (support_c_function): Remove unnecessary memset of
51         cia.
52         * gen-semantics.c (print_semantic_body): Wasn't closing
53         generated comment.
54
55 Tue Apr 29 11:11:12 1997  Andrew Cagney  <cagney@b1.cygnus.com>
56
57         * ld-insn.c (load_insn_table): Report instructions that do not
58         have at least a format and name.
59         (insn_table_find_opcode_field): Check progress is being made.
60
61         * gen-support.c (support_c_function): Report empty function body.
62
63 Thu Apr 24 11:43:45 1997  Andrew Cagney  <cagney@b1.cygnus.com>
64
65         * ld-insn.c (insn_table_expand_opcode): Allow reserved fields to
66         be broken up.
67         (insn_table_expand_insns): Allow special rules to apply to groups
68         of instructions when all members of the group match the special
69         mask/value.
70
71         * gen-semantics.c (print_c_semantic): Ditto.
72         * igen.c (print_semantic_function_formal): Ditto.
73         (print_semantic_function_type): Ditto.
74         * igen.c (print_icache_function_formal): Ditto.
75         * gen-idecode.c (print_idecode_issue_function_body): Ditto.
76
77         * gen-idecode.c (gen_idecode_h): Prepend the global_prefix to the
78         instruction_address type.
79
80         * gen-semantics.c (print_semantic_body): Call cpu_error when an
81         unimplemented instruction is encountered - gives the interpreter
82         the chance to stop correctly.
83
84 Wed Apr 23 20:06:36 1997  Andrew Cagney  <cagney@b1.cygnus.com>
85
86         * igen.c (print_function_name): Allow dot's in instruction names.
87
88 Tue Apr 22 21:46:28 1997  Andrew Cagney  <cagney@b1.cygnus.com>
89
90         * igen.c (main), igen.h: Support new option - delayed-branch -
91         generate code to drive a delayed branch processor.
92
93         * gen-idecode.c (gen_idecode_h): Define instruction_address type.
94
95         * igen.c (print_icache_function_formal): Replace address_word with
96         instruction_address.
97         (print_semantic_function_formal): Ditto.
98         (print_semantic_function_type): Ditto.
99         * gen-idecode.c (print_idecode_issue_function_body): Ditto.
100
101         * gen-semantics.c (print_semantic_body): Ditto.
102         (print_c_semantic): Ditto.
103
104         * gen-support.c (support_c_function): Return a zeroed CIA instead
105         of just zero - works with any cia type.
106
107         * igen.c (print_itrace): For delayed branch case, print just the
108         current instruction.
109         
110 Thu Apr 17 07:02:33 1997  Doug Evans  <dje@canuck.cygnus.com>
111
112         * igen.c (print_itrace): Use TRACE_FOO_P and trace_printf.
113
114 Tue Apr 15 15:20:31 1997  Ian Lance Taylor  <ian@cygnus.com>
115
116         * Makefile.in (INSTALL): Set to @INSTALL@.
117         (INSTALL_XFORM, INSTALL_XFORM1): Remove.
118
119 Mon Apr 14 16:29:34 1997  Ian Lance Taylor  <ian@cygnus.com>
120
121         * Makefile.in (INSTALL): Change install.sh to install-sh.
122
123 Wed Apr  2 18:51:20 1997  Doug Evans  <dje@canuck.cygnus.com>
124
125         * gen-support.c (gen_support_c): sim-state.h renamed to sim-main.h.
126         * gen-idecode.c (gen_idecode_c): Likewise.
127         * igen.c (gen_semantics_c): Likewise.
128
129 Mon Mar 24 10:10:08 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
130
131         * gen-icache.c (print_icache_body): No longer define cpu/sd,
132         support.h now defines CPU/SD globally.
133
134         * gen-model.c (gen_model_h): Ditto.
135
136         * gen-idecode.c (print_idecode_issue_function_body): Ditto.
137         (print_jump): Ditto.
138         (print_jump_until_stop_body): Ditto.
139         (print_idecode_validate): Ditto.
140
141         * gen-icache.c (print_icache_body): Ditto.
142
143         * gen-semantics.c (print_semantic_body): Ditto.
144
145         * igen.c (print_semantic_function_formal): Rename cpu to sim_cpu,
146         processor to cpu.
147         (print_icache_function_formal): Ditto.
148
149         * gen-support.c (print_support_function_name): Include sd/cpu arg
150         in support function argument list.
151         (support_c_function): Generate code to cpu/sd from sd/cpu.
152         (gen_support_h): Define _SD the argument prefix for all support
153         functions.  Define SD/CPU to determine sd/cpu from value of _SD
154         macro.
155
156 Tue Mar 18 15:52:24 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
157
158         * gen-support.c (gen_support_c): Update for renaming of engine to
159         sim-state.
160         
161         * igen.c: Ditto.
162         * gen-idecode.c (gen_idecode_c): Ditto.
163
164 Mon Mar 17 15:17:07 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
165
166         * ld-decode.c (load_decode_table): Rename slash to reserved.
167         (dump_decode_rule): Ditto.
168
169         * ld-insn.c (parse_insn_format): Differentiate between a `/' -
170         reserved bit - and a `*' - wild card.
171         (parse_insn_format): Change is_slash to more informative reserved.
172         (dump_insn_field): Ditto.
173         (insn_field_is_constant): Ditto.
174         (insn_table_expand_opcode): Ditto.
175
176         * gen-idecode.c (print_idecode_validate): Make check_mask and
177         check_val the correct integer size.
178         (print_idecode_validate): Fix reserved bit check for 64 bit
179         targets.
180
181 Fri Mar 14 11:24:06 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
182
183         * ld-insn.c (parse_insn_format): Accept '*' as an alternative of
184         `/' in bit fields.  `/' denotes a wild bit.
185
186 Fri Mar  7 18:20:38 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
187
188         * igen.h, igen.c (main): New options. Control generation of
189         conditional issue and slot verification code.
190
191 Fri Mar  7 18:17:25 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
192
193         * gen-support.c (print_support_function_name): Prepend the global
194         name prefix when applicable.  Provide #define to map the user
195         specified name the generated globaly unique one.
196
197 Fri Mar  7 18:07:45 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
198
199         * gen-idecode.c (print_idecode_validate): Wrap each of the checks
200         - reserved bits, floating point and slot validation - with a
201         #ifdef so that they are optional.
202         
203 Fri Mar  7 16:35:13 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
204
205         * gen-idecode.c (error_leaf_contains_multiple_insn): New function
206         - report the error of a leaf node in the decision tree containing
207         several instructions.
208         (print_idecode_table_leaf): Detect a leaf with multiple instructions.
209         (print_idecode_switch_leaf): Ditto.
210
211         * gen-semantics.h, gen-semantics.c (print_idecode_illegal,
212         print_idecode_invalid): Rename former to latter.  Add argument so
213         that one function can generate all invalid instruction cases -
214         illegal, fp-unavailable, wrong-slot.
215         * gen-engine.c: Update.
216
217         * gen-idecode.c: Use print_idecode_invalid to generate a function
218         call for cases when fp-unavailable and the slot is wrong.
219
220         * gen-idecode.c (print_idecode_validate): New check, generate code
221         to verify that the instruction slot is correct.
222         
223         * igen.c (main): Simplify options.
224
225 Wed Mar  5 09:55:55 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
226
227         * igen.c (print_itrace): Remove source line reference for trace
228         code - let the user see the generated file.
229         (print_itrace): Print the trace code rather than reference a
230         macro.
231
232 Tue Mar  4 17:31:55 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
233
234         * igen.c (print_semantic_function_actual): Pass either the
235         processor - smp - or the engine - mono - into semantic functions.
236         Don't pass in both.
237
238         * gen-icache.c (print_icache_body): Dependant on smp, derive
239         processor from engine or engine from processor, and hence ensuring
240         that both are defined in all semantic functions.
241
242 Mon Mar  3 17:11:21 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
243
244         * ld-insn.c (parse_insn_format): Make the width field optional.
245         If missing assume that the number of characters in the value
246         determines the number of bits in the field.
247         
248 Thu Feb 27 11:27:48 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
249
250         * ld-insn.c (insn_table_expand_opcode): Replace assertion with
251         more useful error message.
252
253 Tue Feb 25 16:43:27 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
254
255         * misc.c (error): Output errors on stderr.
256
257         * ld-insn.c (parse_insn_format): Skip any leading spaces.
258         Verify the width of instructions being parsed.
259
260         * table.c (table_entry_read): Parse CPP's convention for
261         specifying original file name/line-nr.
262
263 Wed Feb 19 12:30:28 1997  Andrew Cagney  <cagney@critters.cygnus.com>
264
265         * ld-insn.c (parse_insn_format): Allow trailing spaces in
266         instruction fields.
267
268         * Makefile.in: Create using ../ppc/Makefile.in as a starting
269         point.
270         * configure.in: Ditto vis ../ppc/configure.in
271         
272 Mon Feb 17 10:44:18 1997  Andrew Cagney  <cagney@critters.cygnus.com>
273
274         * gen-support.c (gen_support_c): Always include engine.h instead
275         of cpu.h
276         * gen-idecode.c (gen_idecode_c): Ditto.
277
278         * words.h (instruction_word): Remove instruction_word - now
279         generated by igen.
280         (address_word): New.  Used by igen.
281         
282         * lf.c (lf_print_function_type_function): New, pass a function to
283         print out the type instead of a constant string.
284         
285         * igen.h, igen.c (print_semantic_function_formal,
286         SEMANTIC_FUNCTION_FORMAL): Relace macro with function.
287         (print_semantic_function_actual, SEMANTIC_FUNCTION_ACTUAL): Ditto.
288         (print_semantic_function_type, SEMANTIC_FUNCTION_TYPE): Ditto.
289         (print_icache_function_type, ICACHE_FUNCTION_TYPE): Ditto.
290         (print_icache_function_formal, ICACHE_FUNCTION_FORMAL): Ditto.
291         (print_icache_function_actual, ICACHE_FUNCTION_ACTUAL): Ditto.
292         * gen-idecode.c (print_idecode_table): Update.
293         (idecode_switch_leaf): Update.
294         (print_idecode_switch_function_header): Ditto.
295         (print_idecode_floating_point_unavailable): Ditto.
296         (print_idecode_issue_function_header): Ditto.
297         * igen.c (gen_icache_h): Ditto.
298         * gen-engine.c (print_engine_table): Ditto.
299         (engine_switch_leaf): Ditto.
300         * gen-support.c (print_support_function_name): Ditto.
301         * gen-semantics.c (print_semantic_function_header): Update.
302         Update.
303         * gen-icache.c (print_icache_function_header): Update.
304         (print_icache_function): Update.
305         (print_icache_internal_function_declaration): Update.
306         (print_icache_internal_function_definition): Update.
307
308         * gen-idecode.c (gen_idecode_h): Drop including of idecode_*.h
309         files, will at some stage need to move it into support.
310
311         * igen.h, igen.c (main): New option -e <engine> - generate a full
312         simulation engine.  Previously this was the -d <idecode-file>
313         option.
314         * gen-engine.h, gen-engine.c: Copies of gen-idecode.*.  Will need
315         to clean these up so that that call upon the updated gen-idecode
316         code.
317         
318         * gen-idecode.h, gen-idecode.c: Prune out any code not relevant to
319         generating a decode table.
320         
321         * Makefile.in (igen): Add dependencies for new gen-engine.* files.
322
323         * igen.h, igen.c (main): New option -M - Control what is returned
324         by semantic functions - -1/NIA vs CIA+N/NIA.  Add
325         generate_semantic_returning_modified_nia_only to igen_code enum.
326         * gen-semantics.c (print_semantic_body): As an alternative, make
327         NIA == -1 instead of CIA+insn_size by default.
328         
329         * igen.h, igen.c (main, global_name_prefix, global_uname_prefix):
330         New option -P <prefix> - Prepend all generated functions with the
331         specified prefix.
332         (gen_idecode_c): Adjust.
333         * gen-icache.c (print_icache_struct): Ditto.
334         * gen-support.c (gen_support_c): Ditto.
335
336 Sun Feb 16 15:23:15 1997  Andrew Cagney  <cagney@critters.cygnus.com>
337
338         * igen.c (main): Correct usage. Missleading message about ucase
339         options dumping internal tables.  -F now includes rather then
340         excludes instructions.
341
342         * misc.h, misc.c (a2i): Make 64bit.
343
344         * ld-insn.h (max_insn_bit_size, default_insn_bit_size): Increase
345         max to 64bits, expect trouble.  Make the default 32 bits.
346         * gen-idecode.c (print_idecode_table): Change EXTRACTED*
347         et.al. macro's to use the insn_bit_size instead of assuming 32
348         bits.
349         * gen-icache.c (print_icache_extraction): Ditto.
350         * gen-idecode.c (idecode_switch_start): Ditto.
351         * gen-idecode.c (gen_idecode_c): Ditto
352
353         * igen.h (insn_specifying_widths), igen.c (main): New option -W.
354         Indicates that the instruction field of the table is specifying
355         bit widths instead of bit offsets.
356         * ld-insn.c (parse_insn_format): Parse instruction fields
357         specifying widths.
358
359         * misc.c (a2i): Allow binary numbers to be specified using the
360         syntax 0bNNNN.
361         * ld-insn.c: Allow such numbers to appear in the instruction
362         format.
363
364         * table.c (table_entry_read): Make // a valid comment character.
365         (table_entry_read): Skip lines containing a leading " - these may
366         eventually be used in a disasembler.
367
368 Fri Feb 14 15:23:15 1997  Andrew Cagney  <cagney@critters.cygnus.com>
369
370         * filter.c, filter.h, gen-engine.c, gen-engine.h, gen-icache.c,
371         gen-icache.h, gen-idecode.c, gen-idecode.h, gen-itable.c,
372         gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c,
373         gen-semantics.h, gen-support.c, gen-support.h, igen.c, igen.h,
374         ld-cache.c, ld-cache.h, ld-decode.c, ld-decode.h, ld-insn.c,
375         ld-insn.h, lf.c, lf.h, misc.c, misc.h, table.c, table.h: Copy in
376         from the ../ppc directory.
377
378         * filter_host.c, filter_host.h: Copy in from the ../ppc directory
379         renaming from filter_filename.[hc]