a0d69a5556f686623a1713457b1a20049f60a218
[binutils-gdb.git] / sim / igen / ChangeLog
1 2002-03-23 Andrew Cagney <ac131313@redhat.com>
2
3 * gen.c (format_name_cmp): New function.
4 (insn_list_insert): Use the instruction field name as an
5 additional key. Different field names indicate different
6 semantics.
7
8 2002-03-07 Chris Demetriou <cgd@broadcom.com>
9
10 * igen.c (print_itrace_format): Add support for a new "%#lx" format.
11
12 Tue May 23 21:39:23 2000 Andrew Cagney <cagney@b1.cygnus.com>
13
14 * configure: Regenerated to track ../common/aclocal.m4 changes.
15
16 2000-04-12 Frank Ch. Eigler <fche@redhat.com>
17
18 * gen-semantics.c (print_semantic_body): Use GPR_CLEAR(N) instead
19 of GPR_SET(N,0) for gen-zero-rN.
20
21 Thu Sep 2 18:15:53 1999 Andrew Cagney <cagney@b1.cygnus.com>
22
23 * Makefile.in (SIM_WARNINGS): Replace this with.
24 (IGEN_WERROR_CFLAGS, IGEN_WARN_CFLAGS, WERROR_CFLAGS,
25 WARN_CFLAGS): With these.
26 (BUILD_CFLAGS): Update.
27
28 * configure: Regenerated to track ../common/aclocal.m4 changes.
29
30 1999-05-08 Felix Lee <flee@cygnus.com>
31
32 * configure: Regenerated to track ../common/aclocal.m4 changes.
33
34 Fri Dec 4 15:14:09 1998 Andrew Cagney <cagney@b1.cygnus.com>
35
36 * igen.c (main): Fix -Pitable=.
37
38 * gen-engine.c (print_run_body): Prefix instruction_address.
39
40 Wed Oct 28 18:12:43 1998 Andrew Cagney <cagney@b1.cygnus.com>
41
42 * Makefile.in (SIM_WARNINGS): Update to match ../common/aclocal.m4
43 changes.
44
45 Wed Aug 12 10:55:28 1998 Frank Ch. Eigler <fche@cygnus.com>
46
47 * gen-icache.c (print_icache_extraction): #undef a generated
48 symbol before #define'ing it, to remove conflict with system
49 macros.
50
51 Wed Jul 29 10:07:27 1998 Andrew Cagney <cagney@b1.cygnus.com>
52
53 * gen.c (gen_entry_expand_opcode): For conditional, fields. Fix
54 the extraction of the value from its source - both table and bit
55 cases were wrong.
56
57 Tue Jul 28 11:19:43 1998 Andrew Cagney <cagney@b1.cygnus.com>
58
59 * ld-insn.c (parse_insn_word): For constant conditional strings,
60 encode their bit value.
61
62 * ld-insn.c (parse_insn_word, parse_insn_words): Allow conditional
63 operands to refer to fields in earlier instruction words.
64
65 * gen.c (sub_val): Replace field argument with val_last_pos.
66 (gen_entry_expand_opcode): Look in previous tables for a value for
67 a conditional field as well as the bits from the current table.
68 (insn_list_insert): Add sort key of instructions where
69 their operand fields have different conditionals.
70 (insn_field_cmp): New function.
71
72 Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
73
74 * configure: Regenerated to track ../common/aclocal.m4 changes.
75 * config.in: Ditto.
76
77 Sun Apr 26 15:20:08 1998 Tom Tromey <tromey@cygnus.com>
78
79 * acconfig.h: New file.
80 * configure.in: Reverted change of Apr 24; use sinclude again.
81
82 Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
83
84 * configure: Regenerated to track ../common/aclocal.m4 changes.
85 * config.in: Ditto.
86
87 Fri Apr 24 11:19:33 1998 Tom Tromey <tromey@cygnus.com>
88
89 * configure.in: Don't call sinclude.
90
91 Fri Apr 24 19:45:00 1998 Andrew Cagney <cagney@b1.cygnus.com>
92
93 * gen-icache.c (print_icache_extraction): Do not type cast
94 pointers.
95
96 * ld-insn.c (load_insn_table): Terminate error with NL.
97
98 * gen.c (insns_bit_useless): Perform unsigned bit comparisons.
99
100 * filter.c (is_filtered_out, filter_parse): Pacify GCC, len is
101 unsigned.
102
103 Wed Apr 22 14:27:39 1998 Michael Meissner <meissner@cygnus.com>
104
105 * configure: Reconfigure to pick up ../common/aclocal.m4 changes
106 to suppress inlining by default.
107
108 Tue Apr 21 01:37:54 1998 Andrew Cagney <cagney@b1.cygnus.com>
109
110 * gen-icache.c (print_icache_extraction): When generating #define
111 force the expression to the correct type.
112
113 Thu Apr 16 08:50:29 1998 Andrew Cagney <cagney@b1.cygnus.com>
114
115 * misc.c (name2i): strlen returns an unsigned.
116
117 Tue Apr 14 19:04:28 1998 Andrew Cagney <cagney@b1.cygnus.com>
118
119 * igen.h (struct igen_warn_options): Add unimplemented option.
120 * igen.c (main): Update
121
122 * ld-insn.c (load_insn_table): Report unimplemented functions.
123
124 Tue Apr 14 10:57:26 1998 Andrew Cagney <cagney@b1.cygnus.com>
125
126 * ld-insn.c (parse_insn_word): Treat `!' and `=' as valid
127 separator tokens when parsing a conditional.
128
129 * igen.h (main): Add option -S so that suffix can be specified.
130
131 Tue Apr 14 08:44:53 1998 Andrew Cagney <cagney@b1.cygnus.com>
132
133 * igen.h (struct igen_trace_options): Add members insn_expansion
134 and insn_insertion.
135
136 * igen.c (main): Add options -Gtrace-insn-expansion,
137 -Gtrace-insn-insertion and -Gtrace-all.
138
139 * gen.c (gen_entry_expand_insns): Trace each instruction as it is
140 selected for expansion.
141 (gen_entry_expand_opcode): Trace each expanded instruction as it
142 is inserted into the table.
143
144 Mon Apr 13 19:21:47 1998 Andrew Cagney <cagney@b1.cygnus.com>
145
146 * ld-insn.c (parse_insn_word): Parse conditional operators.
147 (parse_insn_word): Verify field conditionals.
148
149 * ld-insn.h: Extend syntax to allow macros and field equality.
150 (struct insn_field_cond): Rename insn_field_exclusion, add type.
151
152 * gen.c (gen_entry_expand_opcode): Check type of conditional.
153 (insns_bit_useless): Ditto.
154
155 * ld-insn.c (parse_macro_record): New function.
156
157 Mon Apr 13 22:37:47 1998 Andrew Cagney <cagney@b1.cygnus.com>
158
159 * ld-insn.h (enum insn_field_type): Add insn_field_invalid.
160
161 * ld-insn.c (parse_insn_word): Check instruction field type
162 correctly initialized.
163 (print_insn_words): Ditto.
164 (insn_field_type_to_str): Ditto.
165 (dump_insn_field): Ditto.
166
167 * gen.c (insns_bit_useless): Ditto.
168
169 Fri Apr 3 18:08:16 1998 Andrew Cagney <cagney@b1.cygnus.com>
170
171 * gen.h, igen.c (print_include_inline, print_includes,
172 print_includes): New functions. Generate include list. For for
173 semantics et.al. generate CPP code to inline when
174 C_REVEALS_MODULE_P.
175
176 * igen.c (gen_semantics_c): Call print_includes.
177 * gen-engine.c (gen_engine_c): Ditto.
178
179 Sat Apr 4 21:09:11 1998 Andrew Cagney <cagney@b1.cygnus.com>
180
181 * igen.h: (struct _igen_name_option): Replace with struct
182 igen_module_option. Contains both module prefix and suffix.
183 (INIT_OPTIONS): Initialize.
184
185 * igen.c (main): Update -P option to fill in full module info.
186 (gen-engine.c, gen-icache.c, gen-itable.c, gen-semantics.c,
187 gen-support.c): Update.
188
189 Sat Apr 4 02:15:35 1998 Andrew Cagney <cagney@b1.cygnus.com>
190
191 * igen.c (print_itrace): Use TRACE_ANY_P macro to determine if any
192 tracing is needed.
193
194 Thu Mar 26 20:51:23 1998 Stu Grossman <grossman@bhuna.cygnus.co.uk>
195
196 * table.c (table_push): Redo, using stdio. Fixes NT native
197 problem with <CRLF>=><LF> translation...
198
199 Tue Mar 24 23:30:07 1998 Andrew Cagney <cagney@b1.cygnus.com>
200
201 * gen-engine.c (print_run_body): Re-extract the CIA after
202 processing any events.
203
204 Tue Mar 24 17:46:08 1998 Stu Grossman <grossman@bhuna.cygnus.co.uk>
205
206 * Makefile.in: Get SHELL from configure.
207 * configure: Regenerate with autoconf 2.12.1 to fix shell issues for
208 NT native builds.
209
210 Mon Mar 16 12:51:31 1998 Andrew Cagney <cagney@b1.cygnus.com>
211
212 * igen.c: Pass sim_cia to trace_prefix.
213
214 Thu Feb 26 19:25:02 1998 Andrew Cagney <cagney@b1.cygnus.com>
215
216 * ld-insn.c (parse_function_record): Check models are valid.
217 (parse_function_record): Only discard function when no model is
218 common.
219
220 Tue Feb 24 01:42:03 1998 Andrew Cagney <cagney@b1.cygnus.com>
221
222 * gen-engine.c (print_run_body): Always wrap generated idecode
223 body in ENGINE_ISSUE_PREFIX_HOOK / ENGINE_ISSUE_POSTFIX_HOOK.
224
225 Fri Feb 20 16:22:10 1998 Andrew Cagney <cagney@b1.cygnus.com>
226
227 * ld-insn.c (parse_function_record): When -Wnodiscard, suppress
228 discarded function warning.
229
230 * igen.c (main): Clarify -Wnodiscard.
231
232 * ld-insn.c (parse_function_record): For functions, allow use of
233 instruction style function model records
234
235 * ld-insn.h (nr_function_model_fields): Define.
236
237 Tue Feb 17 16:36:27 1998 Andrew Cagney <cagney@b1.cygnus.com>
238
239 * igen.c (print_itrace_prefix): Generate call to trace_prefix
240 instead of trace_one_insn.
241 (print_itrace): Generate trace_prefix call if any tracing enabled,
242 (print_itrace): Nest generated call to trace_generic inside
243 conditional for any tracing enabled.
244 (print_itrace_prefix): Do not pass PHASE to trace_prefix.
245
246 Tue Feb 3 14:00:32 1998 Andrew Cagney <cagney@b1.cygnus.com>
247
248 * gen-engine.c (print_run_body): Add bitsize suffix to IMEM macro.
249 * gen-icache.c (print_icache_body): Ditto.
250 * gen-idecode.c (print_idecode_ifetch): Ditto.
251
252 * gen-icache.c (print_icache_body): Mark successive instruction
253 words as unused.
254
255 * ld-insn.c (parse_insn_word): Only report insn-width problems
256 when warning enabled.
257
258 * igen.h: Add flag for warning about invalid instruction widths.
259 * igen.c: Parse -Wwidth option.
260
261 * gen-support.c (gen_support_h): Map instruction_word onto
262 <PREFIX>_instruction_word when needed.
263 (print_support_function_name): Use support prefix.
264 (gen_support_h): Ditto for <PREFIX>_idecode_issue.
265
266 Sun Feb 1 11:08:48 1998 Andrew Cagney <cagney@b1.cygnus.com>
267
268 * gen-support.c (gen_support_h): Generate new macro CPU_.
269
270 Sat Jan 31 14:50:27 1998 Andrew Cagney <cagney@b1.cygnus.com>
271
272 * gen-engine.c (gen_engine_h): Don't assume a model is present.
273 (gen_engine_c): Ditto.
274
275 * igen.c (gen_run_c): Ditto.
276
277 * gen-engine.c (print_run_body): Use CIA_GET & CIA_SET instead of
278 CPU_CIA. Parameterize with CPU argument.
279
280 Fri Jan 30 09:09:39 1998 Andrew Cagney <cagney@b1.cygnus.com>
281
282 * gen.h (struct _gen_list): Replace processor with model.
283
284 * igen.c (gen_idecode_h): Update.
285 (gen_run_c): For generated switch, use model->full_name.
286
287 * gen.c (print_gen_entry_path): Ditto.
288 (make_table): Ditto.
289 (gen_entry_expand_insns): Ditto.
290 (make_gen_tables): Ditto.
291
292 * igen.c (gen_run_c): Add extra argument `nr_cpus' to generated
293 function sim_engine_run. Pass argument on to engine_run.
294
295 * gen-engine.c (print_engine_run_function_header): Add extra
296 argument `nr_cpus' to generated function engine_run.
297 (print_run_body): Fix SMP case.
298
299 * gen-support.c (support_c_function): Call sim_engine_abort when
300 internal function fails to long jump.
301
302 Wed Jan 21 18:00:22 1998 Andrew Cagney <cagney@b1.cygnus.com>
303
304 * gen-semantics.c (print_semantic_body): Use GPR_SET to zero
305 hardwired register.
306
307 Wed Dec 17 14:49:03 1997 Jeffrey A Law (law@cygnus.com)
308
309 * gen-semantics.c (print_semantic_body): Fix handling of
310 hardwired zero register.
311
312 Tue Dec 9 12:45:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
313
314 * igen.h (struct _igen_gen_options): Add member default_model.
315
316 * igen.c (gen_run_c): Default to the first machine in the
317 multi-sim list.
318 (main): Add MODEL parameter to gen-multi-sim option.
319
320 * gen.h (function_decl_type): Declare enum.
321
322 * gen-engine.c (print_engine_run_function_header), gen-engine.h:
323 Make global, pass function_decl_type as argument.
324 (gen_engine_h, gen_engine_c): Update call.
325
326 * gen-idecode.c (print_idecode_issue_function_header),
327 gen-idecode.h: Pass function_decl_type as argument.
328
329 * igen.c (gen_idecode_h): For multi-sim, delcare global variable
330 idecode_issue.
331
332 * igen.c (gen_run_c): For multi-sim, initialize globals
333 idecode_issue and engine_run.
334
335 Fri Nov 14 10:51:44 1997 Andrew Cagney <cagney@b1.cygnus.com>
336
337 * ld-insn.c (parse_insn_model_record): Allow multiple model names
338 to be specified in a single instruction model record.
339 (dump_insn_model_entry): Update.
340
341 * ld-insn.h (struct _insn_model_entry): Replace member name with
342 the filter names. Document syntax change.
343
344 Wed Nov 12 15:45:40 1997 Andrew Cagney <cagney@b1.cygnus.com>
345
346 * gen-engine.c (print_run_body): Add hooks for adding code before
347 and after an instruction has been issued.
348
349 1997-11-04 Brendan Kehoe <brendan@lisa.cygnus.com>
350
351 * gen-idecode.c (print_jump_until_stop_body): Use `#if 0' instead of
352 `#ifdef 0' around this.
353
354 Tue Nov 4 08:18:29 1997 Michael Meissner <meissner@cygnus.com>
355
356 * ld-decode.c (load_decode_table): Don't assume NULL is an integer
357 constant.
358
359 Wed Oct 29 13:17:17 1997 Andrew Cagney <cagney@b1.cygnus.com>
360
361 * ld-insn.h: Document mnemonic string format.
362
363 Tue Oct 28 10:50:35 1997 Andrew Cagney <cagney@b1.cygnus.com>
364
365 * gen-icache.c (print_icache_extraction): Force result of atol to
366 unsigned.
367
368 * ld-insn.c (parse_function_record): Separate handling of old and
369 ney fynction records.
370 (load_insn_table): For %s record, hack function name & type after
371 it has been parsed.
372
373 * filter.h (filter_is_subset): Reverse argument names, wrong
374 order.
375
376 * ld-insn.c (load_insn_table): Move include code to.
377 (parse_include_record): New function. Check for filtering of
378 include statement by both flags and models.
379 (load_insn_table): Check for model filtering of cache and model
380 records.
381 (parse_model_data_record): Check for model & flag filtering of
382 model data records.
383 (parse_function_record): Check for model & flag filtering of
384 function records.
385
386 * ld-insn.h: Define record_filter_models_field. Add filter-models
387 field to all but instruction records.
388 (struct _function_entry, struct _cache_entry): Add models field.
389 (nr_function_fields): Make parm field mandatory.
390
391 Mon Oct 27 15:14:26 1997 Andrew Cagney <cagney@b1.cygnus.com>
392
393 * igen.c (main): Change -I option to -I<directory>. Add optional
394 size to -Ggen-icache option. Add -Gno-... support.
395
396 * igen.h (struct _igen_options): Add include field.
397
398 * ld-insn.c (enum insn_record_type, insn_type_map): Add
399 include_record.
400 (load_insn_table): Call table_push when include record.
401
402 * table.c (struct _open table, struct table): Make table object an
403 indirect ptr to the current table file.
404 (current_line, new_table_entry, next_line): Make file arg type
405 open_table.
406 (table_open): Use table_push.
407 (table_read): Point variable file at current table, at eof, pop
408 last open table.
409
410 * table.h, table.c (table_push): New function.
411
412 Thu Oct 16 11:03:27 1997 Andrew Cagney <cagney@b1.cygnus.com>
413
414 * gen-semantics.c (print_semantic_body): Use CIA not
415 cia.ip. Escape newlines at end of generated call to
416 sim_engine_abort.
417
418 Tue Oct 14 11:13:27 1997 Andrew Cagney <cagney@b1.cygnus.com>
419
420 * igen.c (print_itrace): Output line-ref to igen source file when
421 generating trace statements.
422 (print_itrace_prefix, print_itrace_format): Escape newline at end
423 of each line of generated call to trace function.
424
425 Mon Oct 13 11:27:31 1997 Andrew Cagney <cagney@b1.cygnus.com>
426
427 * gen-support.c (gen_support_h): Generate #define NIA. Definition
428 dependant on gen-delayed-branch mode.
429
430 * ld-insn.c (parse_insn_mnemonic_record): Check for opening and
431 closing double quote in mnemonic field.
432 (parse_option_record): Add gen-delayed-branch option.
433
434 Wed Oct 8 13:10:16 1997 Andrew Cagney <cagney@b1.cygnus.com>
435
436 * gen.c (insn_list_insert): Missing \n in warning.
437
438 * ld-insn.c (load_insn_table): Only notify of discarded
439 instrctions when warn.discard enabled.
440
441 * igen.h: Add option.warn.discard, default enabled.
442
443 * igen.c (main): Add -Wnodiscard option.
444
445 * ld-insn.c (record_type): For old record type, check the number
446 of fields is correct.
447 (load_insn_table): Allow insn assembler and insn model records to
448 appear in any order.
449 (parse_insn_model_record): Rename from parse_insn_model_records.
450 Parse only one record.
451 (parse_insn_mnemonic_record): Rename from
452 parse_insn_mnemonic_records. Parse only one record.
453
454 Tue Sep 23 15:52:06 1997 Felix Lee <flee@yin.cygnus.com>
455
456 * gen-itable.c (gen_itable_h): [nr_itable_* + 1] to avoid
457 illegal zero-sized array.
458 (itable_print_set): likewise, avoid empty initializers.
459
460 Mon Sep 22 18:49:07 1997 Felix Lee <flee@cygnus.com>
461
462 * configure.in: i386-windows is a cross, so don't expect
463 libiberty to be there.
464 * configure: updated.
465
466 Fri Sep 19 10:36:30 1997 Andrew Cagney <cagney@b1.cygnus.com>
467
468 * igen.c (print_function_name): Put the format name after the
469 function / instruction name, not before.
470 (print_itrace): Better format trace code.
471
472 Tue Sep 16 11:01:07 1997 Andrew Cagney <cagney@b1.cygnus.com>
473
474 * gen.c (insns_bit_useless): Don't treat string fields restricted
475 to a range of values as useless.
476
477 Mon Sep 15 15:47:21 1997 Andrew Cagney <cagney@b1.cygnus.com>
478
479 * igen.c (gen_run_c): Handle non-multi-sim case.
480
481 * gen-support.c (gen_support_h): Define SD_ - to replace _SD.
482 Define CIA from cia.
483
484 Thu Sep 11 10:27:39 1997 Andrew Cagney <cagney@b1.cygnus.com>
485
486 * gen-semantics.c (print_semantic_body): Trace the instruction
487 after it has been validated.
488 (print_semantic_body): Count the instruction using sim-profile.
489
490 Wed Sep 10 13:35:37 1997 Andrew Cagney <cagney@b1.cygnus.com>
491
492 * gen-itable.c (gen_itable_h): Collect summary info on instruction
493 table when traversing it.
494 (gen_itable_h): Output an enum defining the max size of each of
495 the itable string members.
496
497 Tue Sep 9 03:30:26 1997 Andrew Cagney <cagney@b1.cygnus.com>
498
499 * igen.c (gen_run_c): New function. Generate sim_engine_run that
500 looks at the currently selected architecture.
501
502 * gen-engine.c, gen-idecode.c: Add multi-sim support - generate
503 one engine per model.
504
505 * gen-semantics.c, gen-icache.c gen-support.c:
506 Update.
507
508 * ld-insn.h, ld-insn-h (load_insn_table): Rewrite. table.h only
509 returns a line at a time. Parse multi-word instructions. Add
510 multi-sim support.
511
512 * table.h, table.c: Simplify. Only parse a single line at a time.
513 ld-insn can handle the rest.
514
515 * filter.h, filter.c (filter_parse, filter_add, filter_is_subset,
516 filter_is_common, filter_is_member, filter_next): New filter
517 operations.
518 (dump_filter): Ditto.
519
520 * gen.h, gen.c: New file. Takes the insn table and turns it into
521 a set of decode tables and semantic functions.
522
523 * ld-insn.c: Copy generator code from here.
524 * gen.c: To here.
525
526 Fri Aug 8 11:43:45 1997 Andrew Cagney <cagney@b1.cygnus.com>
527
528 * misc.h (NZALLOC): Allocate an N element array of TYPE.
529
530 * table.h, table.c: Simplify table parser so that it only
531 understands colon delimited lines and code blocks.
532 (table_read): Parse '{' ... '}' as a code block.
533 (table_print_code): New function, print out a code block to file.
534 (main): Add suport for standalone testing.
535
536 * ld-insn.h, ld-insn.c:
537
538
539 Mon Sep 1 11:41:12 1997 Andrew Cagney <cagney@b1.cygnus.com>
540
541 * gen-idecode.c (error_leaf_contains_multiple_insn): Make static.
542 (print_jump_definition, print_jump, print_jump_internal_function,
543 print_jump_insn, print_jump_until_stop_body): Delete, moved to
544 sim-engine.c
545
546 * igen.c (print_itrace_format): Delete unused variable chp.
547 (gen-engine.h): Include.
548
549 * table.c (current_file_name, current_line_entry,
550 current_line_entry): Make static.
551
552 Wed Aug 6 12:31:17 1997 Andrew Cagney <cagney@b1.cygnus.com>
553
554 * configure.in: Define AR_FOR_BUILD, AR_FLAGS_FOR_BUILD,
555 RANLIB_FOR_BUILD and CFLAGS_FOR_BUILD.
556 * configure.in: Include simulator common/aclocal.m4.
557 * configure.in: Add --enable-sim-warnings option.
558 * configure: Re-generate.
559
560 * Makefile.in: Use.
561
562 * Makefile.in (tmp-filter): New rule.
563 (igen.o, tmp-table, tmp-ld-decode, tmp-ld-cache, tmp-ld-insn,
564 ld-decode.o, ld-cache.o, ld-insn.o): Fix dependencies.
565
566 * gen.h, gen.c: New files.
567
568 * Makefile.in (gen.o, tmp-gen): New rules, update all
569 dependencies.
570
571 Tue Jun 24 11:46:45 1997 Andrew Cagney <cagney@b1.cygnus.com>
572
573 * ld-insn.c (load_insn_table): Accept %s as a function type.
574
575 Thu Jun 5 17:14:32 1997 Andrew Cagney <cagney@b1.cygnus.com>
576
577 * igen.c (print_itrace_prefix): Move printing of insn prefix to
578 here.
579 (print_itrace_format): Drop printing of MY_NAME in instruction
580 trace. Printing of insn prefix moved.
581 (print_itrace): Ditto.
582
583 Fri May 30 11:27:37 1997 Andrew Cagney <cagney@b1.cygnus.com>
584
585 * gen-icache.c (print_icache_function_header): Pass
586 table_line_entry instead of separate file and line.
587
588 * table.c (table_entry_read): Set assembler source file/line-nr to
589 the current not initial file.
590 (table_entry_read): Fix line numbering of source files.
591
592 table.h (table_line_entry): New structure. Exactly specifies a
593 source file/line-nr.
594 (table_*_entry): Add this to all.
595
596 table.c (table_entry_print_cpp_line_nr): Change to use values from
597 a table_line_entry struct.
598 (table_entry_read): Save table_line_entry in all structures read.
599
600 gen-icache.c, gen-support.c, gen-idecode.c, gen-semantics.c,
601 gen-model.c: Update all references.
602
603 Thu May 29 10:29:57 1997 Andrew Cagney <cagney@b1.cygnus.com>
604
605 * igen.c (print_my_defines): Define MY_NAME - a string. For
606 MY_PREFIX, undefine the name of the function incase some dumb
607 header defined it. it.
608 (print_itrace): Use MY_NAME not MY_PREFIX.
609
610 * lf.c (lf_write): New function write an N character buffer to the
611 file.
612
613 * igen.c (print_itrace): When available, use the assembler to
614 print the insn-trace.
615 (print_itrace_prefix): New function, print first part of call to
616 print_one_insn.
617 (print_itrace_format): New function, print fmt argument for
618 print_one_insn.
619
620 * table.c (table_entry_read): Save any assembler lines instead of
621 discarding them.
622
623 Wed May 28 09:55:29 1997 Andrew Cagney <cagney@b1.cygnus.com>
624
625 * gen-icache.c (print_icache_body): Process immeds.
626
627 * gen-semantics.c (print_semantic_body): When computing NIA, skip
628 any immed words that follow the instruction word.
629
630 * ld-insn.c (parse_insn_format): Parse immeds appended to an
631 instruction.
632
633 * igen.c (main): Allow any register to be specified as the zero
634 register.
635 (semantic_zero_reg): Global, index to zero register.
636
637 * gen-semantics.c (print_semantic_body): Zero selected register.
638
639 Tue May 27 14:12:32 1997 Andrew Cagney <cagney@b1.cygnus.com>
640
641 * igen.h: Stop options and code gen type bit masks overlaping.
642
643 Fri May 23 12:01:08 1997 Andrew Cagney <cagney@b1.cygnus.com>
644
645 * gen-semantics.c (print_semantic_body): Incorrect test for
646 zero-r0 code.
647
648 Fri May 16 14:32:31 1997 Andrew Cagney <cagney@b1.cygnus.com>
649
650 * gen-semantics.c (print_semantic_body): Use common sim-engine
651 interface.
652
653 Fri May 16 11:48:30 1997 Andrew Cagney <cagney@b1.cygnus.com>
654
655 * gen-semantics.c (print_semantic_body): Add code to clear r0.
656
657 * igen.c (main): Add new option zero-r0, which adds code to clear
658 GPR(0) each cycle.
659
660 Wed May 7 12:31:30 1997 Andrew Cagney <cagney@b1.cygnus.com>
661
662 * igen.c (print_itrace): Fix so line-nr is passed to trace
663 function.
664
665 * gen-idecode.c (print_idecode_validate): Correct FP code.
666
667 * gen-support.c (gen_support_h): Always pass MY_INDEX to support
668 functions.
669 (print_support_function_name): Ditto.
670
671 Tue May 6 06:12:04 1997 Mike Meissner <meissner@cygnus.com>
672
673 * igen.c (print_itrace): Call trace_one_insn to trace
674 instructions, rather than doing it directly.
675
676 Mon May 5 14:11:46 1997 Mike Meissner <meissner@cygnus.com>
677
678 * gen-engine.c (engine_switch_leaf): Remove extra %s.
679 (print_engine_floating_point_unavailable): Wrap in #ifdef
680 UNUSED/#endif, until somebody uses it.
681
682 * gen-idecode.c (error_leaf_contains_multiple_insn): Remove unused
683 variable.
684 (print_jump_until_stop_body): Wrap in #ifdef UNUSED/#endif, until
685 somebody uses it.
686 (print_idecode_validate): Use long formats to print long values.
687
688 * gen-semantics.c (print_idecode_invalid): Set name to "unknown"
689 if we get an unexpected type.
690
691 Fri May 2 13:28:06 1997 Andrew Cagney <cagney@b1.cygnus.com>
692
693 * igen.c (print_itrace): Pass SD as well as CPU to calls to
694 trace_printf.
695
696 * gen-support.c (gen_support_h): Always pass sim_cia cia to
697 support functions.
698 (print_support_function_name): Ditto.
699
700 Wed Apr 30 17:35:51 1997 Andrew Cagney <cagney@b1.cygnus.com>
701
702 * gen-support.c (support_c_function): Remove unnecessary memset of
703 cia.
704 * gen-semantics.c (print_semantic_body): Wasn't closing
705 generated comment.
706
707 Tue Apr 29 11:11:12 1997 Andrew Cagney <cagney@b1.cygnus.com>
708
709 * ld-insn.c (load_insn_table): Report instructions that do not
710 have at least a format and name.
711 (insn_table_find_opcode_field): Check progress is being made.
712
713 * gen-support.c (support_c_function): Report empty function body.
714
715 Thu Apr 24 11:43:45 1997 Andrew Cagney <cagney@b1.cygnus.com>
716
717 * ld-insn.c (insn_table_expand_opcode): Allow reserved fields to
718 be broken up.
719 (insn_table_expand_insns): Allow special rules to apply to groups
720 of instructions when all members of the group match the special
721 mask/value.
722
723 * gen-semantics.c (print_c_semantic): Ditto.
724 * igen.c (print_semantic_function_formal): Ditto.
725 (print_semantic_function_type): Ditto.
726 * igen.c (print_icache_function_formal): Ditto.
727 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
728
729 * gen-idecode.c (gen_idecode_h): Prepend the global_prefix to the
730 instruction_address type.
731
732 * gen-semantics.c (print_semantic_body): Call cpu_error when an
733 unimplemented instruction is encountered - gives the interpreter
734 the chance to stop correctly.
735
736 Wed Apr 23 20:06:36 1997 Andrew Cagney <cagney@b1.cygnus.com>
737
738 * igen.c (print_function_name): Allow dot's in instruction names.
739
740 Tue Apr 22 21:46:28 1997 Andrew Cagney <cagney@b1.cygnus.com>
741
742 * igen.c (main), igen.h: Support new option - delayed-branch -
743 generate code to drive a delayed branch processor.
744
745 * gen-idecode.c (gen_idecode_h): Define instruction_address type.
746
747 * igen.c (print_icache_function_formal): Replace address_word with
748 instruction_address.
749 (print_semantic_function_formal): Ditto.
750 (print_semantic_function_type): Ditto.
751 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
752
753 * gen-semantics.c (print_semantic_body): Ditto.
754 (print_c_semantic): Ditto.
755
756 * gen-support.c (support_c_function): Return a zeroed CIA instead
757 of just zero - works with any cia type.
758
759 * igen.c (print_itrace): For delayed branch case, print just the
760 current instruction.
761
762 Thu Apr 17 07:02:33 1997 Doug Evans <dje@canuck.cygnus.com>
763
764 * igen.c (print_itrace): Use TRACE_FOO_P and trace_printf.
765
766 Tue Apr 15 15:20:31 1997 Ian Lance Taylor <ian@cygnus.com>
767
768 * Makefile.in (INSTALL): Set to @INSTALL@.
769 (INSTALL_XFORM, INSTALL_XFORM1): Remove.
770
771 Mon Apr 14 16:29:34 1997 Ian Lance Taylor <ian@cygnus.com>
772
773 * Makefile.in (INSTALL): Change install.sh to install-sh.
774
775 Wed Apr 2 18:51:20 1997 Doug Evans <dje@canuck.cygnus.com>
776
777 * gen-support.c (gen_support_c): sim-state.h renamed to sim-main.h.
778 * gen-idecode.c (gen_idecode_c): Likewise.
779 * igen.c (gen_semantics_c): Likewise.
780
781 Mon Mar 24 10:10:08 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
782
783 * gen-icache.c (print_icache_body): No longer define cpu/sd,
784 support.h now defines CPU/SD globally.
785
786 * gen-model.c (gen_model_h): Ditto.
787
788 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
789 (print_jump): Ditto.
790 (print_jump_until_stop_body): Ditto.
791 (print_idecode_validate): Ditto.
792
793 * gen-icache.c (print_icache_body): Ditto.
794
795 * gen-semantics.c (print_semantic_body): Ditto.
796
797 * igen.c (print_semantic_function_formal): Rename cpu to sim_cpu,
798 processor to cpu.
799 (print_icache_function_formal): Ditto.
800
801 * gen-support.c (print_support_function_name): Include sd/cpu arg
802 in support function argument list.
803 (support_c_function): Generate code to cpu/sd from sd/cpu.
804 (gen_support_h): Define _SD the argument prefix for all support
805 functions. Define SD/CPU to determine sd/cpu from value of _SD
806 macro.
807
808 Tue Mar 18 15:52:24 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
809
810 * gen-support.c (gen_support_c): Update for renaming of engine to
811 sim-state.
812
813 * igen.c: Ditto.
814 * gen-idecode.c (gen_idecode_c): Ditto.
815
816 Mon Mar 17 15:17:07 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
817
818 * ld-decode.c (load_decode_table): Rename slash to reserved.
819 (dump_decode_rule): Ditto.
820
821 * ld-insn.c (parse_insn_format): Differentiate between a `/' -
822 reserved bit - and a `*' - wild card.
823 (parse_insn_format): Change is_slash to more informative reserved.
824 (dump_insn_field): Ditto.
825 (insn_field_is_constant): Ditto.
826 (insn_table_expand_opcode): Ditto.
827
828 * gen-idecode.c (print_idecode_validate): Make check_mask and
829 check_val the correct integer size.
830 (print_idecode_validate): Fix reserved bit check for 64 bit
831 targets.
832
833 Fri Mar 14 11:24:06 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
834
835 * ld-insn.c (parse_insn_format): Accept '*' as an alternative of
836 `/' in bit fields. `/' denotes a wild bit.
837
838 Fri Mar 7 18:20:38 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
839
840 * igen.h, igen.c (main): New options. Control generation of
841 conditional issue and slot verification code.
842
843 Fri Mar 7 18:17:25 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
844
845 * gen-support.c (print_support_function_name): Prepend the global
846 name prefix when applicable. Provide #define to map the user
847 specified name the generated globaly unique one.
848
849 Fri Mar 7 18:07:45 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
850
851 * gen-idecode.c (print_idecode_validate): Wrap each of the checks
852 - reserved bits, floating point and slot validation - with a
853 #ifdef so that they are optional.
854
855 Fri Mar 7 16:35:13 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
856
857 * gen-idecode.c (error_leaf_contains_multiple_insn): New function
858 - report the error of a leaf node in the decision tree containing
859 several instructions.
860 (print_idecode_table_leaf): Detect a leaf with multiple instructions.
861 (print_idecode_switch_leaf): Ditto.
862
863 * gen-semantics.h, gen-semantics.c (print_idecode_illegal,
864 print_idecode_invalid): Rename former to latter. Add argument so
865 that one function can generate all invalid instruction cases -
866 illegal, fp-unavailable, wrong-slot.
867 * gen-engine.c: Update.
868
869 * gen-idecode.c: Use print_idecode_invalid to generate a function
870 call for cases when fp-unavailable and the slot is wrong.
871
872 * gen-idecode.c (print_idecode_validate): New check, generate code
873 to verify that the instruction slot is correct.
874
875 * igen.c (main): Simplify options.
876
877 Wed Mar 5 09:55:55 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
878
879 * igen.c (print_itrace): Remove source line reference for trace
880 code - let the user see the generated file.
881 (print_itrace): Print the trace code rather than reference a
882 macro.
883
884 Tue Mar 4 17:31:55 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
885
886 * igen.c (print_semantic_function_actual): Pass either the
887 processor - smp - or the engine - mono - into semantic functions.
888 Don't pass in both.
889
890 * gen-icache.c (print_icache_body): Dependant on smp, derive
891 processor from engine or engine from processor, and hence ensuring
892 that both are defined in all semantic functions.
893
894 Mon Mar 3 17:11:21 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
895
896 * ld-insn.c (parse_insn_format): Make the width field optional.
897 If missing assume that the number of characters in the value
898 determines the number of bits in the field.
899
900 Thu Feb 27 11:27:48 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
901
902 * ld-insn.c (insn_table_expand_opcode): Replace assertion with
903 more useful error message.
904
905 Tue Feb 25 16:43:27 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
906
907 * misc.c (error): Output errors on stderr.
908
909 * ld-insn.c (parse_insn_format): Skip any leading spaces.
910 Verify the width of instructions being parsed.
911
912 * table.c (table_entry_read): Parse CPP's convention for
913 specifying original file name/line-nr.
914
915 Wed Feb 19 12:30:28 1997 Andrew Cagney <cagney@critters.cygnus.com>
916
917 * ld-insn.c (parse_insn_format): Allow trailing spaces in
918 instruction fields.
919
920 * Makefile.in: Create using ../ppc/Makefile.in as a starting
921 point.
922 * configure.in: Ditto vis ../ppc/configure.in
923
924 Mon Feb 17 10:44:18 1997 Andrew Cagney <cagney@critters.cygnus.com>
925
926 * gen-support.c (gen_support_c): Always include engine.h instead
927 of cpu.h
928 * gen-idecode.c (gen_idecode_c): Ditto.
929
930 * words.h (instruction_word): Remove instruction_word - now
931 generated by igen.
932 (address_word): New. Used by igen.
933
934 * lf.c (lf_print_function_type_function): New, pass a function to
935 print out the type instead of a constant string.
936
937 * igen.h, igen.c (print_semantic_function_formal,
938 SEMANTIC_FUNCTION_FORMAL): Relace macro with function.
939 (print_semantic_function_actual, SEMANTIC_FUNCTION_ACTUAL): Ditto.
940 (print_semantic_function_type, SEMANTIC_FUNCTION_TYPE): Ditto.
941 (print_icache_function_type, ICACHE_FUNCTION_TYPE): Ditto.
942 (print_icache_function_formal, ICACHE_FUNCTION_FORMAL): Ditto.
943 (print_icache_function_actual, ICACHE_FUNCTION_ACTUAL): Ditto.
944 * gen-idecode.c (print_idecode_table): Update.
945 (idecode_switch_leaf): Update.
946 (print_idecode_switch_function_header): Ditto.
947 (print_idecode_floating_point_unavailable): Ditto.
948 (print_idecode_issue_function_header): Ditto.
949 * igen.c (gen_icache_h): Ditto.
950 * gen-engine.c (print_engine_table): Ditto.
951 (engine_switch_leaf): Ditto.
952 * gen-support.c (print_support_function_name): Ditto.
953 * gen-semantics.c (print_semantic_function_header): Update.
954 Update.
955 * gen-icache.c (print_icache_function_header): Update.
956 (print_icache_function): Update.
957 (print_icache_internal_function_declaration): Update.
958 (print_icache_internal_function_definition): Update.
959
960 * gen-idecode.c (gen_idecode_h): Drop including of idecode_*.h
961 files, will at some stage need to move it into support.
962
963 * igen.h, igen.c (main): New option -e <engine> - generate a full
964 simulation engine. Previously this was the -d <idecode-file>
965 option.
966 * gen-engine.h, gen-engine.c: Copies of gen-idecode.*. Will need
967 to clean these up so that that call upon the updated gen-idecode
968 code.
969
970 * gen-idecode.h, gen-idecode.c: Prune out any code not relevant to
971 generating a decode table.
972
973 * Makefile.in (igen): Add dependencies for new gen-engine.* files.
974
975 * igen.h, igen.c (main): New option -M - Control what is returned
976 by semantic functions - -1/NIA vs CIA+N/NIA. Add
977 generate_semantic_returning_modified_nia_only to igen_code enum.
978 * gen-semantics.c (print_semantic_body): As an alternative, make
979 NIA == -1 instead of CIA+insn_size by default.
980
981 * igen.h, igen.c (main, global_name_prefix, global_uname_prefix):
982 New option -P <prefix> - Prepend all generated functions with the
983 specified prefix.
984 (gen_idecode_c): Adjust.
985 * gen-icache.c (print_icache_struct): Ditto.
986 * gen-support.c (gen_support_c): Ditto.
987
988 Sun Feb 16 15:23:15 1997 Andrew Cagney <cagney@critters.cygnus.com>
989
990 * igen.c (main): Correct usage. Missleading message about ucase
991 options dumping internal tables. -F now includes rather then
992 excludes instructions.
993
994 * misc.h, misc.c (a2i): Make 64bit.
995
996 * ld-insn.h (max_insn_bit_size, default_insn_bit_size): Increase
997 max to 64bits, expect trouble. Make the default 32 bits.
998 * gen-idecode.c (print_idecode_table): Change EXTRACTED*
999 et.al. macro's to use the insn_bit_size instead of assuming 32
1000 bits.
1001 * gen-icache.c (print_icache_extraction): Ditto.
1002 * gen-idecode.c (idecode_switch_start): Ditto.
1003 * gen-idecode.c (gen_idecode_c): Ditto
1004
1005 * igen.h (insn_specifying_widths), igen.c (main): New option -W.
1006 Indicates that the instruction field of the table is specifying
1007 bit widths instead of bit offsets.
1008 * ld-insn.c (parse_insn_format): Parse instruction fields
1009 specifying widths.
1010
1011 * misc.c (a2i): Allow binary numbers to be specified using the
1012 syntax 0bNNNN.
1013 * ld-insn.c: Allow such numbers to appear in the instruction
1014 format.
1015
1016 * table.c (table_entry_read): Make // a valid comment character.
1017 (table_entry_read): Skip lines containing a leading " - these may
1018 eventually be used in a disasembler.
1019
1020 Fri Feb 14 15:23:15 1997 Andrew Cagney <cagney@critters.cygnus.com>
1021
1022 * filter.c, filter.h, gen-engine.c, gen-engine.h, gen-icache.c,
1023 gen-icache.h, gen-idecode.c, gen-idecode.h, gen-itable.c,
1024 gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c,
1025 gen-semantics.h, gen-support.c, gen-support.h, igen.c, igen.h,
1026 ld-cache.c, ld-cache.h, ld-decode.c, ld-decode.h, ld-insn.c,
1027 ld-insn.h, lf.c, lf.h, misc.c, misc.h, table.c, table.h: Copy in
1028 from the ../ppc directory.
1029
1030 * filter_host.c, filter_host.h: Copy in from the ../ppc directory
1031 renaming from filter_filename.[hc]