3 * configure.ac: Delete AC_CONFIG_AUX_DIR.
4 * configure: Re-generate.
8 * configure.ac: Rename configure.in, require autoconf 2.59.
9 * configure: Re-generate.
13 * compare_igen_models: Tweak attribution slightly.
17 * gen.c (name_cmp): Rename format_name_cmp.
18 (insn_list_insert): When a merge, compare the format name and
19 instruction name. Add trace messages.
23 * filter.c: Re-indent.
24 * filter.h, filter_host.h, gen-engine.c, gen-engine.h: Ditto.
25 * gen-icache.c, gen-icache.h, gen-idecode.c: Ditto.
26 * gen-idecode.h, gen-itable.c, gen-itable.h: Ditto.
27 * gen-model.c, gen-model.h, gen-semantics.c: Ditto.
28 * gen-semantics.h, gen-support.c, gen-support.h: Ditto.
29 * gen.c, gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
30 * ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
31 * lf.h, misc.c, misc.h, table.c, table.h: Ditto.
35 * Makefile.in: Update copyright. IGEN contributed to the FSF.
36 * filter.c, filter.h, filter_host.c, filter_host.h: Ditto.
37 * gen-engine.c, gen-engine.h, gen-icache.c, gen-icache.h: Ditto.
38 * gen-idecode.c, gen-idecode.h, gen-itable.c: Ditto.
39 * gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c: Ditto.
40 * gen-semantics.h, gen-support.c, gen-support.h, gen.c: Ditto.
41 * gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
42 * ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
43 * lf.h, misc.c, misc.h, table.c, table.h: Ditto.
47 * gen-engine.c (print_engine_issue_prefix_hook): Don't add the
48 global prefix to ENGINE_ISSUE_PREFIX_HOOK.
49 (print_engine_issue_postfix_hook): Likewise ENGINE_ISSUE_POSTFIX_HOOK.
53 * gen-support.c (gen_support_h): Generate
54 '#define semantic_illegal <PREFIX>_semantic_illegal'.
58 * compare_igen_models: New script.
62 * gen.c (gen_entry_expand_opcode): Initialize ``value'' to -1 and
64 * igen.c (main): Add default case to switch.
65 * gen-icache.c (print_icache_extraction): Ditto.
69 * Makefile.in (BUILD_CFLAGS): Remove -O0.
73 * configure: Regenerated to track ../common/aclocal.m4 changes.
77 * gen-engine.c (print_run_body): Avoid multi-line strings.
78 * lf.c (lf_print__gnu_copyleft): Likewise.
82 * igen.c: Use 'deprecated' rather than 'depreciated.'
86 * gen.c (format_name_cmp): New function.
87 (insn_list_insert): Use the instruction field name as an
88 additional key. Different field names indicate different
93 * igen.c (print_itrace_format): Add support for a new "%#lx" format.
97 * configure: Regenerated to track ../common/aclocal.m4 changes.
101 * gen-semantics.c (print_semantic_body): Use GPR_CLEAR(N) instead
102 of GPR_SET(N,0) for gen-zero-rN.
106 * Makefile.in (SIM_WARNINGS): Replace this with.
107 (IGEN_WERROR_CFLAGS, IGEN_WARN_CFLAGS, WERROR_CFLAGS,
108 WARN_CFLAGS): With these.
109 (BUILD_CFLAGS): Update.
111 * configure: Regenerated to track ../common/aclocal.m4 changes.
115 * configure: Regenerated to track ../common/aclocal.m4 changes.
119 * igen.c (main): Fix -Pitable=.
121 * gen-engine.c (print_run_body): Prefix instruction_address.
125 * Makefile.in (SIM_WARNINGS): Update to match ../common/aclocal.m4
130 * gen-icache.c (print_icache_extraction): #undef a generated
131 symbol before #define'ing it, to remove conflict with system
136 * gen.c (gen_entry_expand_opcode): For conditional, fields. Fix
137 the extraction of the value from its source - both table and bit
142 * ld-insn.c (parse_insn_word): For constant conditional strings,
143 encode their bit value.
145 * ld-insn.c (parse_insn_word, parse_insn_words): Allow conditional
146 operands to refer to fields in earlier instruction words.
148 * gen.c (sub_val): Replace field argument with val_last_pos.
149 (gen_entry_expand_opcode): Look in previous tables for a value for
150 a conditional field as well as the bits from the current table.
151 (insn_list_insert): Add sort key of instructions where
152 their operand fields have different conditionals.
153 (insn_field_cmp): New function.
155 Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
157 * configure: Regenerated to track ../common/aclocal.m4 changes.
162 * acconfig.h: New file.
163 * configure.in: Reverted change of Apr 24; use sinclude again.
165 Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
167 * configure: Regenerated to track ../common/aclocal.m4 changes.
172 * configure.in: Don't call sinclude.
176 * gen-icache.c (print_icache_extraction): Do not type cast
179 * ld-insn.c (load_insn_table): Terminate error with NL.
181 * gen.c (insns_bit_useless): Perform unsigned bit comparisons.
183 * filter.c (is_filtered_out, filter_parse): Pacify GCC, len is
188 * configure: Reconfigure to pick up ../common/aclocal.m4 changes
189 to suppress inlining by default.
193 * gen-icache.c (print_icache_extraction): When generating #define
194 force the expression to the correct type.
198 * misc.c (name2i): strlen returns an unsigned.
202 * igen.h (struct igen_warn_options): Add unimplemented option.
203 * igen.c (main): Update
205 * ld-insn.c (load_insn_table): Report unimplemented functions.
209 * ld-insn.c (parse_insn_word): Treat `!' and `=' as valid
210 separator tokens when parsing a conditional.
212 * igen.h (main): Add option -S so that suffix can be specified.
216 * igen.h (struct igen_trace_options): Add members insn_expansion
219 * igen.c (main): Add options -Gtrace-insn-expansion,
220 -Gtrace-insn-insertion and -Gtrace-all.
222 * gen.c (gen_entry_expand_insns): Trace each instruction as it is
223 selected for expansion.
224 (gen_entry_expand_opcode): Trace each expanded instruction as it
225 is inserted into the table.
229 * ld-insn.c (parse_insn_word): Parse conditional operators.
230 (parse_insn_word): Verify field conditionals.
232 * ld-insn.h: Extend syntax to allow macros and field equality.
233 (struct insn_field_cond): Rename insn_field_exclusion, add type.
235 * gen.c (gen_entry_expand_opcode): Check type of conditional.
236 (insns_bit_useless): Ditto.
238 * ld-insn.c (parse_macro_record): New function.
242 * ld-insn.h (enum insn_field_type): Add insn_field_invalid.
244 * ld-insn.c (parse_insn_word): Check instruction field type
245 correctly initialized.
246 (print_insn_words): Ditto.
247 (insn_field_type_to_str): Ditto.
248 (dump_insn_field): Ditto.
250 * gen.c (insns_bit_useless): Ditto.
254 * gen.h, igen.c (print_include_inline, print_includes,
255 print_includes): New functions. Generate include list. For for
256 semantics et.al. generate CPP code to inline when
259 * igen.c (gen_semantics_c): Call print_includes.
260 * gen-engine.c (gen_engine_c): Ditto.
264 * igen.h: (struct _igen_name_option): Replace with struct
265 igen_module_option. Contains both module prefix and suffix.
266 (INIT_OPTIONS): Initialize.
268 * igen.c (main): Update -P option to fill in full module info.
269 (gen-engine.c, gen-icache.c, gen-itable.c, gen-semantics.c,
270 gen-support.c): Update.
274 * igen.c (print_itrace): Use TRACE_ANY_P macro to determine if any
279 * table.c (table_push): Redo, using stdio. Fixes NT native
280 problem with <CRLF>=><LF> translation...
284 * gen-engine.c (print_run_body): Re-extract the CIA after
285 processing any events.
289 * Makefile.in: Get SHELL from configure.
290 * configure: Regenerate with autoconf 2.12.1 to fix shell issues for
295 * igen.c: Pass sim_cia to trace_prefix.
299 * ld-insn.c (parse_function_record): Check models are valid.
300 (parse_function_record): Only discard function when no model is
305 * gen-engine.c (print_run_body): Always wrap generated idecode
306 body in ENGINE_ISSUE_PREFIX_HOOK / ENGINE_ISSUE_POSTFIX_HOOK.
310 * ld-insn.c (parse_function_record): When -Wnodiscard, suppress
311 discarded function warning.
313 * igen.c (main): Clarify -Wnodiscard.
315 * ld-insn.c (parse_function_record): For functions, allow use of
316 instruction style function model records
318 * ld-insn.h (nr_function_model_fields): Define.
322 * igen.c (print_itrace_prefix): Generate call to trace_prefix
323 instead of trace_one_insn.
324 (print_itrace): Generate trace_prefix call if any tracing enabled,
325 (print_itrace): Nest generated call to trace_generic inside
326 conditional for any tracing enabled.
327 (print_itrace_prefix): Do not pass PHASE to trace_prefix.
331 * gen-engine.c (print_run_body): Add bitsize suffix to IMEM macro.
332 * gen-icache.c (print_icache_body): Ditto.
333 * gen-idecode.c (print_idecode_ifetch): Ditto.
335 * gen-icache.c (print_icache_body): Mark successive instruction
338 * ld-insn.c (parse_insn_word): Only report insn-width problems
339 when warning enabled.
341 * igen.h: Add flag for warning about invalid instruction widths.
342 * igen.c: Parse -Wwidth option.
344 * gen-support.c (gen_support_h): Map instruction_word onto
345 <PREFIX>_instruction_word when needed.
346 (print_support_function_name): Use support prefix.
347 (gen_support_h): Ditto for <PREFIX>_idecode_issue.
351 * gen-support.c (gen_support_h): Generate new macro CPU_.
355 * gen-engine.c (gen_engine_h): Don't assume a model is present.
356 (gen_engine_c): Ditto.
358 * igen.c (gen_run_c): Ditto.
360 * gen-engine.c (print_run_body): Use CIA_GET & CIA_SET instead of
361 CPU_CIA. Parameterize with CPU argument.
365 * gen.h (struct _gen_list): Replace processor with model.
367 * igen.c (gen_idecode_h): Update.
368 (gen_run_c): For generated switch, use model->full_name.
370 * gen.c (print_gen_entry_path): Ditto.
372 (gen_entry_expand_insns): Ditto.
373 (make_gen_tables): Ditto.
375 * igen.c (gen_run_c): Add extra argument `nr_cpus' to generated
376 function sim_engine_run. Pass argument on to engine_run.
378 * gen-engine.c (print_engine_run_function_header): Add extra
379 argument `nr_cpus' to generated function engine_run.
380 (print_run_body): Fix SMP case.
382 * gen-support.c (support_c_function): Call sim_engine_abort when
383 internal function fails to long jump.
387 * gen-semantics.c (print_semantic_body): Use GPR_SET to zero
392 * gen-semantics.c (print_semantic_body): Fix handling of
393 hardwired zero register.
397 * igen.h (struct _igen_gen_options): Add member default_model.
399 * igen.c (gen_run_c): Default to the first machine in the
401 (main): Add MODEL parameter to gen-multi-sim option.
403 * gen.h (function_decl_type): Declare enum.
405 * gen-engine.c (print_engine_run_function_header), gen-engine.h:
406 Make global, pass function_decl_type as argument.
407 (gen_engine_h, gen_engine_c): Update call.
409 * gen-idecode.c (print_idecode_issue_function_header),
410 gen-idecode.h: Pass function_decl_type as argument.
412 * igen.c (gen_idecode_h): For multi-sim, delcare global variable
415 * igen.c (gen_run_c): For multi-sim, initialize globals
416 idecode_issue and engine_run.
420 * ld-insn.c (parse_insn_model_record): Allow multiple model names
421 to be specified in a single instruction model record.
422 (dump_insn_model_entry): Update.
424 * ld-insn.h (struct _insn_model_entry): Replace member name with
425 the filter names. Document syntax change.
429 * gen-engine.c (print_run_body): Add hooks for adding code before
430 and after an instruction has been issued.
434 * gen-idecode.c (print_jump_until_stop_body): Use `#if 0' instead of
435 `#ifdef 0' around this.
439 * ld-decode.c (load_decode_table): Don't assume NULL is an integer
444 * ld-insn.h: Document mnemonic string format.
448 * gen-icache.c (print_icache_extraction): Force result of atol to
451 * ld-insn.c (parse_function_record): Separate handling of old and
452 ney fynction records.
453 (load_insn_table): For %s record, hack function name & type after
456 * filter.h (filter_is_subset): Reverse argument names, wrong
459 * ld-insn.c (load_insn_table): Move include code to.
460 (parse_include_record): New function. Check for filtering of
461 include statement by both flags and models.
462 (load_insn_table): Check for model filtering of cache and model
464 (parse_model_data_record): Check for model & flag filtering of
466 (parse_function_record): Check for model & flag filtering of
469 * ld-insn.h: Define record_filter_models_field. Add filter-models
470 field to all but instruction records.
471 (struct _function_entry, struct _cache_entry): Add models field.
472 (nr_function_fields): Make parm field mandatory.
476 * igen.c (main): Change -I option to -I<directory>. Add optional
477 size to -Ggen-icache option. Add -Gno-... support.
479 * igen.h (struct _igen_options): Add include field.
481 * ld-insn.c (enum insn_record_type, insn_type_map): Add
483 (load_insn_table): Call table_push when include record.
485 * table.c (struct _open table, struct table): Make table object an
486 indirect ptr to the current table file.
487 (current_line, new_table_entry, next_line): Make file arg type
489 (table_open): Use table_push.
490 (table_read): Point variable file at current table, at eof, pop
493 * table.h, table.c (table_push): New function.
497 * gen-semantics.c (print_semantic_body): Use CIA not
498 cia.ip. Escape newlines at end of generated call to
503 * igen.c (print_itrace): Output line-ref to igen source file when
504 generating trace statements.
505 (print_itrace_prefix, print_itrace_format): Escape newline at end
506 of each line of generated call to trace function.
510 * gen-support.c (gen_support_h): Generate #define NIA. Definition
511 dependant on gen-delayed-branch mode.
513 * ld-insn.c (parse_insn_mnemonic_record): Check for opening and
514 closing double quote in mnemonic field.
515 (parse_option_record): Add gen-delayed-branch option.
519 * gen.c (insn_list_insert): Missing \n in warning.
521 * ld-insn.c (load_insn_table): Only notify of discarded
522 instrctions when warn.discard enabled.
524 * igen.h: Add option.warn.discard, default enabled.
526 * igen.c (main): Add -Wnodiscard option.
528 * ld-insn.c (record_type): For old record type, check the number
529 of fields is correct.
530 (load_insn_table): Allow insn assembler and insn model records to
532 (parse_insn_model_record): Rename from parse_insn_model_records.
533 Parse only one record.
534 (parse_insn_mnemonic_record): Rename from
535 parse_insn_mnemonic_records. Parse only one record.
539 * gen-itable.c (gen_itable_h): [nr_itable_* + 1] to avoid
540 illegal zero-sized array.
541 (itable_print_set): likewise, avoid empty initializers.
545 * configure.in: i386-windows is a cross, so don't expect
546 libiberty to be there.
547 * configure: updated.
551 * igen.c (print_function_name): Put the format name after the
552 function / instruction name, not before.
553 (print_itrace): Better format trace code.
557 * gen.c (insns_bit_useless): Don't treat string fields restricted
558 to a range of values as useless.
562 * igen.c (gen_run_c): Handle non-multi-sim case.
564 * gen-support.c (gen_support_h): Define SD_ - to replace _SD.
569 * gen-semantics.c (print_semantic_body): Trace the instruction
570 after it has been validated.
571 (print_semantic_body): Count the instruction using sim-profile.
575 * gen-itable.c (gen_itable_h): Collect summary info on instruction
576 table when traversing it.
577 (gen_itable_h): Output an enum defining the max size of each of
578 the itable string members.
582 * igen.c (gen_run_c): New function. Generate sim_engine_run that
583 looks at the currently selected architecture.
585 * gen-engine.c, gen-idecode.c: Add multi-sim support - generate
586 one engine per model.
588 * gen-semantics.c, gen-icache.c gen-support.c:
591 * ld-insn.h, ld-insn-h (load_insn_table): Rewrite. table.h only
592 returns a line at a time. Parse multi-word instructions. Add
595 * table.h, table.c: Simplify. Only parse a single line at a time.
596 ld-insn can handle the rest.
598 * filter.h, filter.c (filter_parse, filter_add, filter_is_subset,
599 filter_is_common, filter_is_member, filter_next): New filter
601 (dump_filter): Ditto.
603 * gen.h, gen.c: New file. Takes the insn table and turns it into
604 a set of decode tables and semantic functions.
606 * ld-insn.c: Copy generator code from here.
611 * misc.h (NZALLOC): Allocate an N element array of TYPE.
613 * table.h, table.c: Simplify table parser so that it only
614 understands colon delimited lines and code blocks.
615 (table_read): Parse '{' ... '}' as a code block.
616 (table_print_code): New function, print out a code block to file.
617 (main): Add suport for standalone testing.
619 * ld-insn.h, ld-insn.c:
624 * gen-idecode.c (error_leaf_contains_multiple_insn): Make static.
625 (print_jump_definition, print_jump, print_jump_internal_function,
626 print_jump_insn, print_jump_until_stop_body): Delete, moved to
629 * igen.c (print_itrace_format): Delete unused variable chp.
630 (gen-engine.h): Include.
632 * table.c (current_file_name, current_line_entry,
633 current_line_entry): Make static.
637 * configure.in: Define AR_FOR_BUILD, AR_FLAGS_FOR_BUILD,
638 RANLIB_FOR_BUILD and CFLAGS_FOR_BUILD.
639 * configure.in: Include simulator common/aclocal.m4.
640 * configure.in: Add --enable-sim-warnings option.
641 * configure: Re-generate.
645 * Makefile.in (tmp-filter): New rule.
646 (igen.o, tmp-table, tmp-ld-decode, tmp-ld-cache, tmp-ld-insn,
647 ld-decode.o, ld-cache.o, ld-insn.o): Fix dependencies.
649 * gen.h, gen.c: New files.
651 * Makefile.in (gen.o, tmp-gen): New rules, update all
656 * ld-insn.c (load_insn_table): Accept %s as a function type.
660 * igen.c (print_itrace_prefix): Move printing of insn prefix to
662 (print_itrace_format): Drop printing of MY_NAME in instruction
663 trace. Printing of insn prefix moved.
664 (print_itrace): Ditto.
668 * gen-icache.c (print_icache_function_header): Pass
669 table_line_entry instead of separate file and line.
671 * table.c (table_entry_read): Set assembler source file/line-nr to
672 the current not initial file.
673 (table_entry_read): Fix line numbering of source files.
675 table.h (table_line_entry): New structure. Exactly specifies a
677 (table_*_entry): Add this to all.
679 table.c (table_entry_print_cpp_line_nr): Change to use values from
680 a table_line_entry struct.
681 (table_entry_read): Save table_line_entry in all structures read.
683 gen-icache.c, gen-support.c, gen-idecode.c, gen-semantics.c,
684 gen-model.c: Update all references.
688 * igen.c (print_my_defines): Define MY_NAME - a string. For
689 MY_PREFIX, undefine the name of the function incase some dumb
690 header defined it. it.
691 (print_itrace): Use MY_NAME not MY_PREFIX.
693 * lf.c (lf_write): New function write an N character buffer to the
696 * igen.c (print_itrace): When available, use the assembler to
697 print the insn-trace.
698 (print_itrace_prefix): New function, print first part of call to
700 (print_itrace_format): New function, print fmt argument for
703 * table.c (table_entry_read): Save any assembler lines instead of
708 * gen-icache.c (print_icache_body): Process immeds.
710 * gen-semantics.c (print_semantic_body): When computing NIA, skip
711 any immed words that follow the instruction word.
713 * ld-insn.c (parse_insn_format): Parse immeds appended to an
716 * igen.c (main): Allow any register to be specified as the zero
718 (semantic_zero_reg): Global, index to zero register.
720 * gen-semantics.c (print_semantic_body): Zero selected register.
724 * igen.h: Stop options and code gen type bit masks overlaping.
728 * gen-semantics.c (print_semantic_body): Incorrect test for
733 * gen-semantics.c (print_semantic_body): Use common sim-engine
738 * gen-semantics.c (print_semantic_body): Add code to clear r0.
740 * igen.c (main): Add new option zero-r0, which adds code to clear
745 * igen.c (print_itrace): Fix so line-nr is passed to trace
748 * gen-idecode.c (print_idecode_validate): Correct FP code.
750 * gen-support.c (gen_support_h): Always pass MY_INDEX to support
752 (print_support_function_name): Ditto.
756 * igen.c (print_itrace): Call trace_one_insn to trace
757 instructions, rather than doing it directly.
761 * gen-engine.c (engine_switch_leaf): Remove extra %s.
762 (print_engine_floating_point_unavailable): Wrap in #ifdef
763 UNUSED/#endif, until somebody uses it.
765 * gen-idecode.c (error_leaf_contains_multiple_insn): Remove unused
767 (print_jump_until_stop_body): Wrap in #ifdef UNUSED/#endif, until
769 (print_idecode_validate): Use long formats to print long values.
771 * gen-semantics.c (print_idecode_invalid): Set name to "unknown"
772 if we get an unexpected type.
776 * igen.c (print_itrace): Pass SD as well as CPU to calls to
779 * gen-support.c (gen_support_h): Always pass sim_cia cia to
781 (print_support_function_name): Ditto.
785 * gen-support.c (support_c_function): Remove unnecessary memset of
787 * gen-semantics.c (print_semantic_body): Wasn't closing
792 * ld-insn.c (load_insn_table): Report instructions that do not
793 have at least a format and name.
794 (insn_table_find_opcode_field): Check progress is being made.
796 * gen-support.c (support_c_function): Report empty function body.
800 * ld-insn.c (insn_table_expand_opcode): Allow reserved fields to
802 (insn_table_expand_insns): Allow special rules to apply to groups
803 of instructions when all members of the group match the special
806 * gen-semantics.c (print_c_semantic): Ditto.
807 * igen.c (print_semantic_function_formal): Ditto.
808 (print_semantic_function_type): Ditto.
809 * igen.c (print_icache_function_formal): Ditto.
810 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
812 * gen-idecode.c (gen_idecode_h): Prepend the global_prefix to the
813 instruction_address type.
815 * gen-semantics.c (print_semantic_body): Call cpu_error when an
816 unimplemented instruction is encountered - gives the interpreter
817 the chance to stop correctly.
821 * igen.c (print_function_name): Allow dot's in instruction names.
825 * igen.c (main), igen.h: Support new option - delayed-branch -
826 generate code to drive a delayed branch processor.
828 * gen-idecode.c (gen_idecode_h): Define instruction_address type.
830 * igen.c (print_icache_function_formal): Replace address_word with
832 (print_semantic_function_formal): Ditto.
833 (print_semantic_function_type): Ditto.
834 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
836 * gen-semantics.c (print_semantic_body): Ditto.
837 (print_c_semantic): Ditto.
839 * gen-support.c (support_c_function): Return a zeroed CIA instead
840 of just zero - works with any cia type.
842 * igen.c (print_itrace): For delayed branch case, print just the
847 * igen.c (print_itrace): Use TRACE_FOO_P and trace_printf.
851 * Makefile.in (INSTALL): Set to @INSTALL@.
852 (INSTALL_XFORM, INSTALL_XFORM1): Remove.
856 * Makefile.in (INSTALL): Change install.sh to install-sh.
860 * gen-support.c (gen_support_c): sim-state.h renamed to sim-main.h.
861 * gen-idecode.c (gen_idecode_c): Likewise.
862 * igen.c (gen_semantics_c): Likewise.
866 * gen-icache.c (print_icache_body): No longer define cpu/sd,
867 support.h now defines CPU/SD globally.
869 * gen-model.c (gen_model_h): Ditto.
871 * gen-idecode.c (print_idecode_issue_function_body): Ditto.
873 (print_jump_until_stop_body): Ditto.
874 (print_idecode_validate): Ditto.
876 * gen-icache.c (print_icache_body): Ditto.
878 * gen-semantics.c (print_semantic_body): Ditto.
880 * igen.c (print_semantic_function_formal): Rename cpu to sim_cpu,
882 (print_icache_function_formal): Ditto.
884 * gen-support.c (print_support_function_name): Include sd/cpu arg
885 in support function argument list.
886 (support_c_function): Generate code to cpu/sd from sd/cpu.
887 (gen_support_h): Define _SD the argument prefix for all support
888 functions. Define SD/CPU to determine sd/cpu from value of _SD
893 * gen-support.c (gen_support_c): Update for renaming of engine to
897 * gen-idecode.c (gen_idecode_c): Ditto.
901 * ld-decode.c (load_decode_table): Rename slash to reserved.
902 (dump_decode_rule): Ditto.
904 * ld-insn.c (parse_insn_format): Differentiate between a `/' -
905 reserved bit - and a `*' - wild card.
906 (parse_insn_format): Change is_slash to more informative reserved.
907 (dump_insn_field): Ditto.
908 (insn_field_is_constant): Ditto.
909 (insn_table_expand_opcode): Ditto.
911 * gen-idecode.c (print_idecode_validate): Make check_mask and
912 check_val the correct integer size.
913 (print_idecode_validate): Fix reserved bit check for 64 bit
918 * ld-insn.c (parse_insn_format): Accept '*' as an alternative of
919 `/' in bit fields. `/' denotes a wild bit.
923 * igen.h, igen.c (main): New options. Control generation of
924 conditional issue and slot verification code.
928 * gen-support.c (print_support_function_name): Prepend the global
929 name prefix when applicable. Provide #define to map the user
930 specified name the generated globaly unique one.
934 * gen-idecode.c (print_idecode_validate): Wrap each of the checks
935 - reserved bits, floating point and slot validation - with a
936 #ifdef so that they are optional.
940 * gen-idecode.c (error_leaf_contains_multiple_insn): New function
941 - report the error of a leaf node in the decision tree containing
942 several instructions.
943 (print_idecode_table_leaf): Detect a leaf with multiple instructions.
944 (print_idecode_switch_leaf): Ditto.
946 * gen-semantics.h, gen-semantics.c (print_idecode_illegal,
947 print_idecode_invalid): Rename former to latter. Add argument so
948 that one function can generate all invalid instruction cases -
949 illegal, fp-unavailable, wrong-slot.
950 * gen-engine.c: Update.
952 * gen-idecode.c: Use print_idecode_invalid to generate a function
953 call for cases when fp-unavailable and the slot is wrong.
955 * gen-idecode.c (print_idecode_validate): New check, generate code
956 to verify that the instruction slot is correct.
958 * igen.c (main): Simplify options.
962 * igen.c (print_itrace): Remove source line reference for trace
963 code - let the user see the generated file.
964 (print_itrace): Print the trace code rather than reference a
969 * igen.c (print_semantic_function_actual): Pass either the
970 processor - smp - or the engine - mono - into semantic functions.
973 * gen-icache.c (print_icache_body): Dependant on smp, derive
974 processor from engine or engine from processor, and hence ensuring
975 that both are defined in all semantic functions.
979 * ld-insn.c (parse_insn_format): Make the width field optional.
980 If missing assume that the number of characters in the value
981 determines the number of bits in the field.
985 * ld-insn.c (insn_table_expand_opcode): Replace assertion with
986 more useful error message.
990 * misc.c (error): Output errors on stderr.
992 * ld-insn.c (parse_insn_format): Skip any leading spaces.
993 Verify the width of instructions being parsed.
995 * table.c (table_entry_read): Parse CPP's convention for
996 specifying original file name/line-nr.
1000 * ld-insn.c (parse_insn_format): Allow trailing spaces in
1003 * Makefile.in: Create using ../ppc/Makefile.in as a starting
1005 * configure.in: Ditto vis ../ppc/configure.in
1009 * gen-support.c (gen_support_c): Always include engine.h instead
1011 * gen-idecode.c (gen_idecode_c): Ditto.
1013 * words.h (instruction_word): Remove instruction_word - now
1015 (address_word): New. Used by igen.
1017 * lf.c (lf_print_function_type_function): New, pass a function to
1018 print out the type instead of a constant string.
1020 * igen.h, igen.c (print_semantic_function_formal,
1021 SEMANTIC_FUNCTION_FORMAL): Relace macro with function.
1022 (print_semantic_function_actual, SEMANTIC_FUNCTION_ACTUAL): Ditto.
1023 (print_semantic_function_type, SEMANTIC_FUNCTION_TYPE): Ditto.
1024 (print_icache_function_type, ICACHE_FUNCTION_TYPE): Ditto.
1025 (print_icache_function_formal, ICACHE_FUNCTION_FORMAL): Ditto.
1026 (print_icache_function_actual, ICACHE_FUNCTION_ACTUAL): Ditto.
1027 * gen-idecode.c (print_idecode_table): Update.
1028 (idecode_switch_leaf): Update.
1029 (print_idecode_switch_function_header): Ditto.
1030 (print_idecode_floating_point_unavailable): Ditto.
1031 (print_idecode_issue_function_header): Ditto.
1032 * igen.c (gen_icache_h): Ditto.
1033 * gen-engine.c (print_engine_table): Ditto.
1034 (engine_switch_leaf): Ditto.
1035 * gen-support.c (print_support_function_name): Ditto.
1036 * gen-semantics.c (print_semantic_function_header): Update.
1038 * gen-icache.c (print_icache_function_header): Update.
1039 (print_icache_function): Update.
1040 (print_icache_internal_function_declaration): Update.
1041 (print_icache_internal_function_definition): Update.
1043 * gen-idecode.c (gen_idecode_h): Drop including of idecode_*.h
1044 files, will at some stage need to move it into support.
1046 * igen.h, igen.c (main): New option -e <engine> - generate a full
1047 simulation engine. Previously this was the -d <idecode-file>
1049 * gen-engine.h, gen-engine.c: Copies of gen-idecode.*. Will need
1050 to clean these up so that that call upon the updated gen-idecode
1053 * gen-idecode.h, gen-idecode.c: Prune out any code not relevant to
1054 generating a decode table.
1056 * Makefile.in (igen): Add dependencies for new gen-engine.* files.
1058 * igen.h, igen.c (main): New option -M - Control what is returned
1059 by semantic functions - -1/NIA vs CIA+N/NIA. Add
1060 generate_semantic_returning_modified_nia_only to igen_code enum.
1061 * gen-semantics.c (print_semantic_body): As an alternative, make
1062 NIA == -1 instead of CIA+insn_size by default.
1064 * igen.h, igen.c (main, global_name_prefix, global_uname_prefix):
1065 New option -P <prefix> - Prepend all generated functions with the
1067 (gen_idecode_c): Adjust.
1068 * gen-icache.c (print_icache_struct): Ditto.
1069 * gen-support.c (gen_support_c): Ditto.
1073 * igen.c (main): Correct usage. Missleading message about ucase
1074 options dumping internal tables. -F now includes rather then
1075 excludes instructions.
1077 * misc.h, misc.c (a2i): Make 64bit.
1079 * ld-insn.h (max_insn_bit_size, default_insn_bit_size): Increase
1080 max to 64bits, expect trouble. Make the default 32 bits.
1081 * gen-idecode.c (print_idecode_table): Change EXTRACTED*
1082 et.al. macro's to use the insn_bit_size instead of assuming 32
1084 * gen-icache.c (print_icache_extraction): Ditto.
1085 * gen-idecode.c (idecode_switch_start): Ditto.
1086 * gen-idecode.c (gen_idecode_c): Ditto
1088 * igen.h (insn_specifying_widths), igen.c (main): New option -W.
1089 Indicates that the instruction field of the table is specifying
1090 bit widths instead of bit offsets.
1091 * ld-insn.c (parse_insn_format): Parse instruction fields
1094 * misc.c (a2i): Allow binary numbers to be specified using the
1096 * ld-insn.c: Allow such numbers to appear in the instruction
1099 * table.c (table_entry_read): Make // a valid comment character.
1100 (table_entry_read): Skip lines containing a leading " - these may
1101 eventually be used in a disasembler.
1105 * filter.c, filter.h, gen-engine.c, gen-engine.h, gen-icache.c,
1106 gen-icache.h, gen-idecode.c, gen-idecode.h, gen-itable.c,
1107 gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c,
1108 gen-semantics.h, gen-support.c, gen-support.h, igen.c, igen.h,
1109 ld-cache.c, ld-cache.h, ld-decode.c, ld-decode.h, ld-insn.c,
1110 ld-insn.h, lf.c, lf.h, misc.c, misc.h, table.c, table.h: Copy in
1111 from the ../ppc directory.
1113 * filter_host.c, filter_host.h: Copy in from the ../ppc directory
1114 renaming from filter_filename.[hc]