4 * config.in: Regenerate.
8 * configure.ac: Delete AC_CONFIG_AUX_DIR.
9 * configure: Re-generate.
13 * configure.ac: Rename configure.in, require autoconf 2.59.
14 * configure: Re-generate.
18 * compare_igen_models: Tweak attribution slightly.
22 * gen.c (name_cmp): Rename format_name_cmp.
23 (insn_list_insert): When a merge, compare the format name and
24 instruction name. Add trace messages.
28 * filter.c: Re-indent.
29 * filter.h, filter_host.h, gen-engine.c, gen-engine.h: Ditto.
30 * gen-icache.c, gen-icache.h, gen-idecode.c: Ditto.
31 * gen-idecode.h, gen-itable.c, gen-itable.h: Ditto.
32 * gen-model.c, gen-model.h, gen-semantics.c: Ditto.
33 * gen-semantics.h, gen-support.c, gen-support.h: Ditto.
34 * gen.c, gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
35 * ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
36 * lf.h, misc.c, misc.h, table.c, table.h: Ditto.
40 * Makefile.in: Update copyright. IGEN contributed to the FSF.
41 * filter.c, filter.h, filter_host.c, filter_host.h: Ditto.
42 * gen-engine.c, gen-engine.h, gen-icache.c, gen-icache.h: Ditto.
43 * gen-idecode.c, gen-idecode.h, gen-itable.c: Ditto.
44 * gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c: Ditto.
45 * gen-semantics.h, gen-support.c, gen-support.h, gen.c: Ditto.
46 * gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
47 * ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
48 * lf.h, misc.c, misc.h, table.c, table.h: Ditto.
52 * gen-engine.c (print_engine_issue_prefix_hook): Don't add the
53 global prefix to ENGINE_ISSUE_PREFIX_HOOK.
54 (print_engine_issue_postfix_hook): Likewise ENGINE_ISSUE_POSTFIX_HOOK.
58 * gen-support.c (gen_support_h): Generate
59 '#define semantic_illegal <PREFIX>_semantic_illegal'.
63 * compare_igen_models: New script.
67 * gen.c (gen_entry_expand_opcode): Initialize ``value'' to -1 and
69 * igen.c (main): Add default case to switch.
70 * gen-icache.c (print_icache_extraction): Ditto.
74 * Makefile.in (BUILD_CFLAGS): Remove -O0.
78 * configure: Regenerated to track ../common/aclocal.m4 changes.
82 * gen-engine.c (print_run_body): Avoid multi-line strings.
83 * lf.c (lf_print__gnu_copyleft): Likewise.
87 * igen.c: Use 'deprecated' rather than 'depreciated.'
91 * gen.c (format_name_cmp): New function.
92 (insn_list_insert): Use the instruction field name as an
93 additional key. Different field names indicate different
98 * igen.c (print_itrace_format): Add support for a new "%#lx" format.
102 * configure: Regenerated to track ../common/aclocal.m4 changes.
106 * gen-semantics.c (print_semantic_body): Use GPR_CLEAR(N) instead
107 of GPR_SET(N,0) for gen-zero-rN.
111 * Makefile.in (SIM_WARNINGS): Replace this with.
112 (IGEN_WERROR_CFLAGS, IGEN_WARN_CFLAGS, WERROR_CFLAGS,
113 WARN_CFLAGS): With these.
114 (BUILD_CFLAGS): Update.
116 * configure: Regenerated to track ../common/aclocal.m4 changes.
120 * configure: Regenerated to track ../common/aclocal.m4 changes.
124 * igen.c (main): Fix -Pitable=.
126 * gen-engine.c (print_run_body): Prefix instruction_address.
130 * Makefile.in (SIM_WARNINGS): Update to match ../common/aclocal.m4
135 * gen-icache.c (print_icache_extraction): #undef a generated
136 symbol before #define'ing it, to remove conflict with system
141 * gen.c (gen_entry_expand_opcode): For conditional, fields. Fix
142 the extraction of the value from its source - both table and bit
147 * ld-insn.c (parse_insn_word): For constant conditional strings,
148 encode their bit value.
150 * ld-insn.c (parse_insn_word, parse_insn_words): Allow conditional
151 operands to refer to fields in earlier instruction words.
153 * gen.c (sub_val): Replace field argument with val_last_pos.
154 (gen_entry_expand_opcode): Look in previous tables for a value for
155 a conditional field as well as the bits from the current table.
156 (insn_list_insert): Add sort key of instructions where
157 their operand fields have different conditionals.
158 (insn_field_cmp): New function.
160 Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
162 * configure: Regenerated to track ../common/aclocal.m4 changes.
167 * acconfig.h: New file.
168 * configure.in: Reverted change of Apr 24; use sinclude again.
170 Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
172 * configure: Regenerated to track ../common/aclocal.m4 changes.
177 * configure.in: Don't call sinclude.
181 * gen-icache.c (print_icache_extraction): Do not type cast
184 * ld-insn.c (load_insn_table): Terminate error with NL.
186 * gen.c (insns_bit_useless): Perform unsigned bit comparisons.
188 * filter.c (is_filtered_out, filter_parse): Pacify GCC, len is
193 * configure: Reconfigure to pick up ../common/aclocal.m4 changes
194 to suppress inlining by default.
198 * gen-icache.c (print_icache_extraction): When generating #define
199 force the expression to the correct type.
203 * misc.c (name2i): strlen returns an unsigned.
207 * igen.h (struct igen_warn_options): Add unimplemented option.
208 * igen.c (main): Update
210 * ld-insn.c (load_insn_table): Report unimplemented functions.
214 * ld-insn.c (parse_insn_word): Treat `!' and `=' as valid
215 separator tokens when parsing a conditional.
217 * igen.h (main): Add option -S so that suffix can be specified.
221 * igen.h (struct igen_trace_options): Add members insn_expansion
224 * igen.c (main): Add options -Gtrace-insn-expansion,
225 -Gtrace-insn-insertion and -Gtrace-all.
227 * gen.c (gen_entry_expand_insns): Trace each instruction as it is
228 selected for expansion.
229 (gen_entry_expand_opcode): Trace each expanded instruction as it
230 is inserted into the table.
234 * ld-insn.c (parse_insn_word): Parse conditional operators.
235 (parse_insn_word): Verify field conditionals.
237 * ld-insn.h: Extend syntax to allow macros and field equality.
238 (struct insn_field_cond): Rename insn_field_exclusion, add type.
240 * gen.c (gen_entry_expand_opcode): Check type of conditional.
241 (insns_bit_useless): Ditto.
243 * ld-insn.c (parse_macro_record): New function.
247 * ld-insn.h (enum insn_field_type): Add insn_field_invalid.
249 * ld-insn.c (parse_insn_word): Check instruction field type
250 correctly initialized.
251 (print_insn_words): Ditto.
252 (insn_field_type_to_str): Ditto.
253 (dump_insn_field): Ditto.
255 * gen.c (insns_bit_useless): Ditto.
259 * gen.h, igen.c (print_include_inline, print_includes,
260 print_includes): New functions. Generate include list. For for
261 semantics et.al. generate CPP code to inline when
264 * igen.c (gen_semantics_c): Call print_includes.
265 * gen-engine.c (gen_engine_c): Ditto.
269 * igen.h: (struct _igen_name_option): Replace with struct
270 igen_module_option. Contains both module prefix and suffix.
271 (INIT_OPTIONS): Initialize.
273 * igen.c (main): Update -P option to fill in full module info.
274 (gen-engine.c, gen-icache.c, gen-itable.c, gen-semantics.c,
275 gen-support.c): Update.
279 * igen.c (print_itrace): Use TRACE_ANY_P macro to determine if any
284 * table.c (table_push): Redo, using stdio. Fixes NT native
285 problem with <CRLF>=><LF> translation...
289 * gen-engine.c (print_run_body): Re-extract the CIA after
290 processing any events.
294 * Makefile.in: Get SHELL from configure.
295 * configure: Regenerate with autoconf 2.12.1 to fix shell issues for
300 * igen.c: Pass sim_cia to trace_prefix.
304 * ld-insn.c (parse_function_record): Check models are valid.
305 (parse_function_record): Only discard function when no model is
310 * gen-engine.c (print_run_body): Always wrap generated idecode
311 body in ENGINE_ISSUE_PREFIX_HOOK / ENGINE_ISSUE_POSTFIX_HOOK.
315 * ld-insn.c (parse_function_record): When -Wnodiscard, suppress
316 discarded function warning.
318 * igen.c (main): Clarify -Wnodiscard.
320 * ld-insn.c (parse_function_record): For functions, allow use of
321 instruction style function model records
323 * ld-insn.h (nr_function_model_fields): Define.
327 * igen.c (print_itrace_prefix): Generate call to trace_prefix
328 instead of trace_one_insn.
329 (print_itrace): Generate trace_prefix call if any tracing enabled,
330 (print_itrace): Nest generated call to trace_generic inside
331 conditional for any tracing enabled.
332 (print_itrace_prefix): Do not pass PHASE to trace_prefix.
336 * gen-engine.c (print_run_body): Add bitsize suffix to IMEM macro.
337 * gen-icache.c (print_icache_body): Ditto.
338 * gen-idecode.c (print_idecode_ifetch): Ditto.
340 * gen-icache.c (print_icache_body): Mark successive instruction
343 * ld-insn.c (parse_insn_word): Only report insn-width problems
344 when warning enabled.
346 * igen.h: Add flag for warning about invalid instruction widths.
347 * igen.c: Parse -Wwidth option.
349 * gen-support.c (gen_support_h): Map instruction_word onto
350 <PREFIX>_instruction_word when needed.
351 (print_support_function_name): Use support prefix.
352 (gen_support_h): Ditto for <PREFIX>_idecode_issue.
356 * gen-support.c (gen_support_h): Generate new macro CPU_.
360 * gen-engine.c (gen_engine_h): Don't assume a model is present.
361 (gen_engine_c): Ditto.
363 * igen.c (gen_run_c): Ditto.
365 * gen-engine.c (print_run_body): Use CIA_GET & CIA_SET instead of
366 CPU_CIA. Parameterize with CPU argument.
370 * gen.h (struct _gen_list): Replace processor with model.
372 * igen.c (gen_idecode_h): Update.
373 (gen_run_c): For generated switch, use model->full_name.
375 * gen.c (print_gen_entry_path): Ditto.
377 (gen_entry_expand_insns): Ditto.
378 (make_gen_tables): Ditto.
380 * igen.c (gen_run_c): Add extra argument `nr_cpus' to generated
381 function sim_engine_run. Pass argument on to engine_run.
383 * gen-engine.c (print_engine_run_function_header): Add extra
384 argument `nr_cpus' to generated function engine_run.
385 (print_run_body): Fix SMP case.
387 * gen-support.c (support_c_function): Call sim_engine_abort when
388 internal function fails to long jump.
392 * gen-semantics.c (print_semantic_body): Use GPR_SET to zero
397 * gen-semantics.c (print_semantic_body): Fix handling of
398 hardwired zero register.
402 * igen.h (struct _igen_gen_options): Add member default_model.
404 * igen.c (gen_run_c): Default to the first machine in the
406 (main): Add MODEL parameter to gen-multi-sim option.
408 * gen.h (function_decl_type): Declare enum.
410 * gen-engine.c (print_engine_run_function_header), gen-engine.h:
411 Make global, pass function_decl_type as argument.
412 (gen_engine_h, gen_engine_c): Update call.
414 * gen-idecode.c (print_idecode_issue_function_header),
415 gen-idecode.h: Pass function_decl_type as argument.
417 * igen.c (gen_idecode_h): For multi-sim, delcare global variable
420 * igen.c (gen_run_c): For multi-sim, initialize globals
421 idecode_issue and engine_run.
425 * ld-insn.c (parse_insn_model_record): Allow multiple model names
426 to be specified in a single instruction model record.
427 (dump_insn_model_entry): Update.
429 * ld-insn.h (struct _insn_model_entry): Replace member name with
430 the filter names. Document syntax change.
434 * gen-engine.c (print_run_body): Add hooks for adding code before
435 and after an instruction has been issued.
439 * gen-idecode.c (print_jump_until_stop_body): Use `#if 0' instead of
440 `#ifdef 0' around this.
444 * ld-decode.c (load_decode_table): Don't assume NULL is an integer
449 * ld-insn.h: Document mnemonic string format.
453 * gen-icache.c (print_icache_extraction): Force result of atol to
456 * ld-insn.c (parse_function_record): Separate handling of old and
457 ney fynction records.
458 (load_insn_table): For %s record, hack function name & type after
461 * filter.h (filter_is_subset): Reverse argument names, wrong
464 * ld-insn.c (load_insn_table): Move include code to.
465 (parse_include_record): New function. Check for filtering of
466 include statement by both flags and models.
467 (load_insn_table): Check for model filtering of cache and model
469 (parse_model_data_record): Check for model & flag filtering of
471 (parse_function_record): Check for model & flag filtering of
474 * ld-insn.h: Define record_filter_models_field. Add filter-models
475 field to all but instruction records.
476 (struct _function_entry, struct _cache_entry): Add models field.
477 (nr_function_fields): Make parm field mandatory.
481 * igen.c (main): Change -I option to -I<directory>. Add optional
482 size to -Ggen-icache option. Add -Gno-... support.
484 * igen.h (struct _igen_options): Add include field.
486 * ld-insn.c (enum insn_record_type, insn_type_map): Add
488 (load_insn_table): Call table_push when include record.
490 * table.c (struct _open table, struct table): Make table object an
491 indirect ptr to the current table file.
492 (current_line, new_table_entry, next_line): Make file arg type
494 (table_open): Use table_push.
495 (table_read): Point variable file at current table, at eof, pop
498 * table.h, table.c (table_push): New function.
502 * gen-semantics.c (print_semantic_body): Use CIA not
503 cia.ip. Escape newlines at end of generated call to
508 * igen.c (print_itrace): Output line-ref to igen source file when
509 generating trace statements.
510 (print_itrace_prefix, print_itrace_format): Escape newline at end
511 of each line of generated call to trace function.
515 * gen-support.c (gen_support_h): Generate #define NIA. Definition
516 dependant on gen-delayed-branch mode.
518 * ld-insn.c (parse_insn_mnemonic_record): Check for opening and
519 closing double quote in mnemonic field.
520 (parse_option_record): Add gen-delayed-branch option.
524 * gen.c (insn_list_insert): Missing \n in warning.
526 * ld-insn.c (load_insn_table): Only notify of discarded
527 instrctions when warn.discard enabled.
529 * igen.h: Add option.warn.discard, default enabled.
531 * igen.c (main): Add -Wnodiscard option.
533 * ld-insn.c (record_type): For old record type, check the number
534 of fields is correct.
535 (load_insn_table): Allow insn assembler and insn model records to
537 (parse_insn_model_record): Rename from parse_insn_model_records.
538 Parse only one record.
539 (parse_insn_mnemonic_record): Rename from
540 parse_insn_mnemonic_records. Parse only one record.
544 * gen-itable.c (gen_itable_h): [nr_itable_* + 1] to avoid
545 illegal zero-sized array.
546 (itable_print_set): likewise, avoid empty initializers.
550 * configure.in: i386-windows is a cross, so don't expect
551 libiberty to be there.
552 * configure: updated.
556 * igen.c (print_function_name): Put the format name after the
557 function / instruction name, not before.
558 (print_itrace): Better format trace code.
562 * gen.c (insns_bit_useless): Don't treat string fields restricted
563 to a range of values as useless.
567 * igen.c (gen_run_c): Handle non-multi-sim case.
569 * gen-support.c (gen_support_h): Define SD_ - to replace _SD.
574 * gen-semantics.c (print_semantic_body): Trace the instruction
575 after it has been validated.
576 (print_semantic_body): Count the instruction using sim-profile.
580 * gen-itable.c (gen_itable_h): Collect summary info on instruction
581 table when traversing it.
582 (gen_itable_h): Output an enum defining the max size of each of
583 the itable string members.
587 * igen.c (gen_run_c): New function. Generate sim_engine_run that
588 looks at the currently selected architecture.
590 * gen-engine.c, gen-idecode.c: Add multi-sim support - generate
591 one engine per model.
593 * gen-semantics.c, gen-icache.c gen-support.c:
596 * ld-insn.h, ld-insn-h (load_insn_table): Rewrite. table.h only
597 returns a line at a time. Parse multi-word instructions. Add
600 * table.h, table.c: Simplify. Only parse a single line at a time.
601 ld-insn can handle the rest.
603 * filter.h, filter.c (filter_parse, filter_add, filter_is_subset,
604 filter_is_common, filter_is_member, filter_next): New filter
606 (dump_filter): Ditto.
608 * gen.h, gen.c: New file. Takes the insn table and turns it into
609 a set of decode tables and semantic functions.
611 * ld-insn.c: Copy generator code from here.
616 * misc.h (NZALLOC): Allocate an N element array of TYPE.
618 * table.h, table.c: Simplify table parser so that it only
619 understands colon delimited lines and code blocks.
620 (table_read): Parse '{' ... '}' as a code block.
621 (table_print_code): New function, print out a code block to file.
622 (main): Add suport for standalone testing.
624 * ld-insn.h, ld-insn.c:
629 * gen-idecode.c (error_leaf_contains_multiple_insn): Make static.
630 (print_jump_definition, print_jump, print_jump_internal_function,
631 print_jump_insn, print_jump_until_stop_body): Delete, moved to
634 * igen.c (print_itrace_format): Delete unused variable chp.
635 (gen-engine.h): Include.
637 * table.c (current_file_name, current_line_entry,
638 current_line_entry): Make static.
642 * configure.in: Define AR_FOR_BUILD, AR_FLAGS_FOR_BUILD,
643 RANLIB_FOR_BUILD and CFLAGS_FOR_BUILD.
644 * configure.in: Include simulator common/aclocal.m4.
645 * configure.in: Add --enable-sim-warnings option.
646 * configure: Re-generate.
650 * Makefile.in (tmp-filter): New rule.
651 (igen.o, tmp-table, tmp-ld-decode, tmp-ld-cache, tmp-ld-insn,
652 ld-decode.o, ld-cache.o, ld-insn.o): Fix dependencies.
654 * gen.h, gen.c: New files.
656 * Makefile.in (gen.o, tmp-gen): New rules, update all
661 * ld-insn.c (load_insn_table): Accept %s as a function type.
665 * igen.c (print_itrace_prefix): Move printing of insn prefix to
667 (print_itrace_format): Drop printing of MY_NAME in instruction
668 trace. Printing of insn prefix moved.
669 (print_itrace): Ditto.
673 * gen-icache.c (print_icache_function_header): Pass
674 table_line_entry instead of separate file and line.
676 * table.c (table_entry_read): Set assembler source file/line-nr to
677 the current not initial file.
678 (table_entry_read): Fix line numbering of source files.
680 table.h (table_line_entry): New structure. Exactly specifies a
682 (table_*_entry): Add this to all.
684 table.c (table_entry_print_cpp_line_nr): Change to use values from
685 a table_line_entry struct.
686 (table_entry_read): Save table_line_entry in all structures read.
688 gen-icache.c, gen-support.c, gen-idecode.c, gen-semantics.c,
689 gen-model.c: Update all references.
693 * igen.c (print_my_defines): Define MY_NAME - a string. For
694 MY_PREFIX, undefine the name of the function incase some dumb
695 header defined it. it.
696 (print_itrace): Use MY_NAME not MY_PREFIX.
698 * lf.c (lf_write): New function write an N character buffer to the
701 * igen.c (print_itrace): When available, use the assembler to
702 print the insn-trace.
703 (print_itrace_prefix): New function, print first part of call to
705 (print_itrace_format): New function, print fmt argument for
708 * table.c (table_entry_read): Save any assembler lines instead of
713 * gen-icache.c (print_icache_body): Process immeds.
715 * gen-semantics.c (print_semantic_body): When computing NIA, skip
716 any immed words that follow the instruction word.
718 * ld-insn.c (parse_insn_format): Parse immeds appended to an
721 * igen.c (main): Allow any register to be specified as the zero
723 (semantic_zero_reg): Global, index to zero register.
725 * gen-semantics.c (print_semantic_body): Zero selected register.
729 * igen.h: Stop options and code gen type bit masks overlaping.
733 * gen-semantics.c (print_semantic_body): Incorrect test for
738 * gen-semantics.c (print_semantic_body): Use common sim-engine
743 * gen-semantics.c (print_semantic_body): Add code to clear r0.
745 * igen.c (main): Add new option zero-r0, which adds code to clear
750 * igen.c (print_itrace): Fix so line-nr is passed to trace
753 * gen-idecode.c (print_idecode_validate): Correct FP code.
755 * gen-support.c (gen_support_h): Always pass MY_INDEX to support
757 (print_support_function_name): Ditto.
761 * igen.c (print_itrace): Call trace_one_insn to trace
762 instructions, rather than doing it directly.
766 * gen-engine.c (engine_switch_leaf): Remove extra %s.
767 (print_engine_floating_point_unavailable): Wrap in #ifdef
768 UNUSED/#endif, until somebody uses it.
770 * gen-idecode.c (error_leaf_contains_multiple_insn): Remove unused
772 (print_jump_until_stop_body): Wrap in #ifdef UNUSED/#endif, until
774 (print_idecode_validate): Use long formats to print long values.
776 * gen-semantics.c (print_idecode_invalid): Set name to "unknown"
777 if we get an unexpected type.
781 * igen.c (print_itrace): Pass SD as well as CPU to calls to
784 * gen-support.c (gen_support_h): Always pass sim_cia cia to
786 (print_support_function_name): Ditto.
790 * gen-support.c (support_c_function): Remove unnecessary memset of
792 * gen-semantics.c (print_semantic_body): Wasn't closing
797 * ld-insn.c (load_insn_table): Report instructions that do not
798 have at least a format and name.
799 (insn_table_find_opcode_field): Check progress is being made.
801 * gen-support.c (support_c_function): Report empty function body.
805 * ld-insn.c (insn_table_expand_opcode): Allow reserved fields to
807 (insn_table_expand_insns): Allow special rules to apply to groups
808 of instructions when all members of the group match the special
811 * gen-semantics.c (print_c_semantic): Ditto.
812 * igen.c (print_semantic_function_formal): Ditto.
813 (print_semantic_function_type): Ditto.
814 * igen.c (print_icache_function_formal): Ditto.
815 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
817 * gen-idecode.c (gen_idecode_h): Prepend the global_prefix to the
818 instruction_address type.
820 * gen-semantics.c (print_semantic_body): Call cpu_error when an
821 unimplemented instruction is encountered - gives the interpreter
822 the chance to stop correctly.
826 * igen.c (print_function_name): Allow dot's in instruction names.
830 * igen.c (main), igen.h: Support new option - delayed-branch -
831 generate code to drive a delayed branch processor.
833 * gen-idecode.c (gen_idecode_h): Define instruction_address type.
835 * igen.c (print_icache_function_formal): Replace address_word with
837 (print_semantic_function_formal): Ditto.
838 (print_semantic_function_type): Ditto.
839 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
841 * gen-semantics.c (print_semantic_body): Ditto.
842 (print_c_semantic): Ditto.
844 * gen-support.c (support_c_function): Return a zeroed CIA instead
845 of just zero - works with any cia type.
847 * igen.c (print_itrace): For delayed branch case, print just the
852 * igen.c (print_itrace): Use TRACE_FOO_P and trace_printf.
856 * Makefile.in (INSTALL): Set to @INSTALL@.
857 (INSTALL_XFORM, INSTALL_XFORM1): Remove.
861 * Makefile.in (INSTALL): Change install.sh to install-sh.
865 * gen-support.c (gen_support_c): sim-state.h renamed to sim-main.h.
866 * gen-idecode.c (gen_idecode_c): Likewise.
867 * igen.c (gen_semantics_c): Likewise.
871 * gen-icache.c (print_icache_body): No longer define cpu/sd,
872 support.h now defines CPU/SD globally.
874 * gen-model.c (gen_model_h): Ditto.
876 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
878 (print_jump_until_stop_body): Ditto.
879 (print_idecode_validate): Ditto.
881 * gen-icache.c (print_icache_body): Ditto.
883 * gen-semantics.c (print_semantic_body): Ditto.
885 * igen.c (print_semantic_function_formal): Rename cpu to sim_cpu,
887 (print_icache_function_formal): Ditto.
889 * gen-support.c (print_support_function_name): Include sd/cpu arg
890 in support function argument list.
891 (support_c_function): Generate code to cpu/sd from sd/cpu.
892 (gen_support_h): Define _SD the argument prefix for all support
893 functions. Define SD/CPU to determine sd/cpu from value of _SD
898 * gen-support.c (gen_support_c): Update for renaming of engine to
902 * gen-idecode.c (gen_idecode_c): Ditto.
906 * ld-decode.c (load_decode_table): Rename slash to reserved.
907 (dump_decode_rule): Ditto.
909 * ld-insn.c (parse_insn_format): Differentiate between a `/' -
910 reserved bit - and a `*' - wild card.
911 (parse_insn_format): Change is_slash to more informative reserved.
912 (dump_insn_field): Ditto.
913 (insn_field_is_constant): Ditto.
914 (insn_table_expand_opcode): Ditto.
916 * gen-idecode.c (print_idecode_validate): Make check_mask and
917 check_val the correct integer size.
918 (print_idecode_validate): Fix reserved bit check for 64 bit
923 * ld-insn.c (parse_insn_format): Accept '*' as an alternative of
924 `/' in bit fields. `/' denotes a wild bit.
928 * igen.h, igen.c (main): New options. Control generation of
929 conditional issue and slot verification code.
933 * gen-support.c (print_support_function_name): Prepend the global
934 name prefix when applicable. Provide #define to map the user
935 specified name the generated globaly unique one.
939 * gen-idecode.c (print_idecode_validate): Wrap each of the checks
940 - reserved bits, floating point and slot validation - with a
941 #ifdef so that they are optional.
945 * gen-idecode.c (error_leaf_contains_multiple_insn): New function
946 - report the error of a leaf node in the decision tree containing
947 several instructions.
948 (print_idecode_table_leaf): Detect a leaf with multiple instructions.
949 (print_idecode_switch_leaf): Ditto.
951 * gen-semantics.h, gen-semantics.c (print_idecode_illegal,
952 print_idecode_invalid): Rename former to latter. Add argument so
953 that one function can generate all invalid instruction cases -
954 illegal, fp-unavailable, wrong-slot.
955 * gen-engine.c: Update.
957 * gen-idecode.c: Use print_idecode_invalid to generate a function
958 call for cases when fp-unavailable and the slot is wrong.
960 * gen-idecode.c (print_idecode_validate): New check, generate code
961 to verify that the instruction slot is correct.
963 * igen.c (main): Simplify options.
967 * igen.c (print_itrace): Remove source line reference for trace
968 code - let the user see the generated file.
969 (print_itrace): Print the trace code rather than reference a
974 * igen.c (print_semantic_function_actual): Pass either the
975 processor - smp - or the engine - mono - into semantic functions.
978 * gen-icache.c (print_icache_body): Dependant on smp, derive
979 processor from engine or engine from processor, and hence ensuring
980 that both are defined in all semantic functions.
984 * ld-insn.c (parse_insn_format): Make the width field optional.
985 If missing assume that the number of characters in the value
986 determines the number of bits in the field.
990 * ld-insn.c (insn_table_expand_opcode): Replace assertion with
991 more useful error message.
995 * misc.c (error): Output errors on stderr.
997 * ld-insn.c (parse_insn_format): Skip any leading spaces.
998 Verify the width of instructions being parsed.
1000 * table.c (table_entry_read): Parse CPP's convention for
1001 specifying original file name/line-nr.
1005 * ld-insn.c (parse_insn_format): Allow trailing spaces in
1008 * Makefile.in: Create using ../ppc/Makefile.in as a starting
1010 * configure.in: Ditto vis ../ppc/configure.in
1014 * gen-support.c (gen_support_c): Always include engine.h instead
1016 * gen-idecode.c (gen_idecode_c): Ditto.
1018 * words.h (instruction_word): Remove instruction_word - now
1020 (address_word): New. Used by igen.
1022 * lf.c (lf_print_function_type_function): New, pass a function to
1023 print out the type instead of a constant string.
1025 * igen.h, igen.c (print_semantic_function_formal,
1026 SEMANTIC_FUNCTION_FORMAL): Relace macro with function.
1027 (print_semantic_function_actual, SEMANTIC_FUNCTION_ACTUAL): Ditto.
1028 (print_semantic_function_type, SEMANTIC_FUNCTION_TYPE): Ditto.
1029 (print_icache_function_type, ICACHE_FUNCTION_TYPE): Ditto.
1030 (print_icache_function_formal, ICACHE_FUNCTION_FORMAL): Ditto.
1031 (print_icache_function_actual, ICACHE_FUNCTION_ACTUAL): Ditto.
1032 * gen-idecode.c (print_idecode_table): Update.
1033 (idecode_switch_leaf): Update.
1034 (print_idecode_switch_function_header): Ditto.
1035 (print_idecode_floating_point_unavailable): Ditto.
1036 (print_idecode_issue_function_header): Ditto.
1037 * igen.c (gen_icache_h): Ditto.
1038 * gen-engine.c (print_engine_table): Ditto.
1039 (engine_switch_leaf): Ditto.
1040 * gen-support.c (print_support_function_name): Ditto.
1041 * gen-semantics.c (print_semantic_function_header): Update.
1043 * gen-icache.c (print_icache_function_header): Update.
1044 (print_icache_function): Update.
1045 (print_icache_internal_function_declaration): Update.
1046 (print_icache_internal_function_definition): Update.
1048 * gen-idecode.c (gen_idecode_h): Drop including of idecode_*.h
1049 files, will at some stage need to move it into support.
1051 * igen.h, igen.c (main): New option -e <engine> - generate a full
1052 simulation engine. Previously this was the -d <idecode-file>
1054 * gen-engine.h, gen-engine.c: Copies of gen-idecode.*. Will need
1055 to clean these up so that that call upon the updated gen-idecode
1058 * gen-idecode.h, gen-idecode.c: Prune out any code not relevant to
1059 generating a decode table.
1061 * Makefile.in (igen): Add dependencies for new gen-engine.* files.
1063 * igen.h, igen.c (main): New option -M - Control what is returned
1064 by semantic functions - -1/NIA vs CIA+N/NIA. Add
1065 generate_semantic_returning_modified_nia_only to igen_code enum.
1066 * gen-semantics.c (print_semantic_body): As an alternative, make
1067 NIA == -1 instead of CIA+insn_size by default.
1069 * igen.h, igen.c (main, global_name_prefix, global_uname_prefix):
1070 New option -P <prefix> - Prepend all generated functions with the
1072 (gen_idecode_c): Adjust.
1073 * gen-icache.c (print_icache_struct): Ditto.
1074 * gen-support.c (gen_support_c): Ditto.
1078 * igen.c (main): Correct usage. Missleading message about ucase
1079 options dumping internal tables. -F now includes rather then
1080 excludes instructions.
1082 * misc.h, misc.c (a2i): Make 64bit.
1084 * ld-insn.h (max_insn_bit_size, default_insn_bit_size): Increase
1085 max to 64bits, expect trouble. Make the default 32 bits.
1086 * gen-idecode.c (print_idecode_table): Change EXTRACTED*
1087 et.al. macro's to use the insn_bit_size instead of assuming 32
1089 * gen-icache.c (print_icache_extraction): Ditto.
1090 * gen-idecode.c (idecode_switch_start): Ditto.
1091 * gen-idecode.c (gen_idecode_c): Ditto
1093 * igen.h (insn_specifying_widths), igen.c (main): New option -W.
1094 Indicates that the instruction field of the table is specifying
1095 bit widths instead of bit offsets.
1096 * ld-insn.c (parse_insn_format): Parse instruction fields
1099 * misc.c (a2i): Allow binary numbers to be specified using the
1101 * ld-insn.c: Allow such numbers to appear in the instruction
1104 * table.c (table_entry_read): Make // a valid comment character.
1105 (table_entry_read): Skip lines containing a leading " - these may
1106 eventually be used in a disasembler.
1110 * filter.c, filter.h, gen-engine.c, gen-engine.h, gen-icache.c,
1111 gen-icache.h, gen-idecode.c, gen-idecode.h, gen-itable.c,
1112 gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c,
1113 gen-semantics.h, gen-support.c, gen-support.h, igen.c, igen.h,
1114 ld-cache.c, ld-cache.h, ld-decode.c, ld-decode.h, ld-insn.c,
1115 ld-insn.h, lf.c, lf.h, misc.c, misc.h, table.c, table.h: Copy in
1116 from the ../ppc directory.
1118 * filter_host.c, filter_host.h: Copy in from the ../ppc directory
1119 renaming from filter_filename.[hc]