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