o Make tic80 insn file more `cache ready'
[binutils-gdb.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]