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