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