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