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