blob: 22efdf3260ffbd1c9445d3ce55d14e5dca5c19ef [file] [log] [blame]
2021-06-09 Mike Frysinger <>
* gen-itable.c (NULL): Delete.
* gen-model.c (NULL): Likewise.
* ld-cache.c (NULL): Likewise.
* ld-decode.c (NULL): Likewise.
2021-06-05 Mike Frysinger <>
* (all-recursive): Delete rule.
2021-05-04 Mike Frysinger <>
* (igen/libigen.a): New target.
2021-05-02 Mike Frysinger <>
* lf.h: Include ansidecl.h.
(lf_printf): Change __attribute__((printf)) to ATTRIBUTE_PRINTF.
2021-04-02 Mike Frysinger <>
* New file.
* aclocal.m4,,, configure: Removed.
2021-04-02 Mike Frysinger <>
* aclocal.m4: New file.
* configure: Regenerate.
2021-03-13 Mike Frysinger <>
* configure: Regenerate.
2021-03-13 Mike Frysinger <>
(.c.o, igen.o): Call COMPILE_FOR_BUILD.
(igen, tmp-table, tmp-filter, tmp-ld-decode, tmp-ld-cache, tmp-ld-insn,
tmp-gen): Call LINK_FOR_BUILD.
2021-03-08 Mike Frysinger <>
* (tmp-table, tmp-filter, tmp-ld-decode, tmp-ld-cache,
tmp-ld-insn, tmp-gen): Delete $(BUILD_LIBS).
2021-03-07 Mike Frysinger <>
* gen.c (main): Delete options arg to INIT_OPTIONS.
* ld-decode.c (main): Likewise.
* ld-insn.c (main): Likewise.
2021-03-07 Mike Frysinger <>
* (check): Define.
2021-02-28 Mike Frysinger <>
* (filter_filename.o): Delete unused target.
(distclean): Remove config.h.
(config.h, stamp-h): Delete targets.
* (AC_CONFIG_HEADER): Delete call.
(AC_OUTPUT): Remove 2nd arg.
* filter.c: Remove config.h include.
* filter_host.c, igen.c, lf.c, misc.c, misc.h: Likewise.
* table.c: Likewise. Remove HAVE_UNISTD_H check.
* configure: Regenerate.
* Removed.
2021-02-28 Mike Frysinger <>
* (program_transform_name, AR, RANLIB): Delete.
(AC_SUBST): Delete AR & CFLAGS calls.
* configure: Regenerate.
2021-02-28 Mike Frysinger <>
* Likewise.
* configure: Regenerate.
2021-02-21 Mike Frysinger <>
* (AC_CONFIG_MACRO_DIRS): Replace common with m4.
* configure: Regenerate.
2021-02-13 Mike Frysinger <>
* Replace sinclude with AC_CONFIG_MACRO_DIRS.
* configure: Regenerate.
2021-02-06 Mike Frysinger <>
* (LIBIBERTY_LIB): Delete.
(igen): Delete $(LIBIBERTY_LIB).
* (LIBIBERTY_LIB): Delete.
* configure: Regenerate.
2021-02-06 Mike Frysinger <>
* Delete bfd/ sourcing.
* configure: Regenerate.
2021-01-11 Mike Frysinger <>
* (AC_CHECK_HEADERS): Delete stdlib.h, string.h, and
* configure, Regenerate.
2021-01-11 Mike Frysinger <>
* filter.c, if.c, misc.c, misc.h, table.c: Delete HAVE_STRING_H,
HAVE_STRINGS_H, HAVE_STDLIB_H, and strings.h include.
2021-01-09 Mike Frysinger <>
* configure: Regenerate.
2021-01-04 Mike Frysinger <>
* gen-icache.c, igen.c: Include stdlib.h.
2021-01-04 Mike Frysinger <>
* configure: Regenerate.
2020-07-03 Sebastian Huber <>
PR sim/26194
* lf.h (lf_get_file_type): Declare.
* lf.c (lf_get_file_type): Define.
* gen-idecode.c (print_idecode_issue_function_header): Use
lf_get_file_type() to issue an extern variable declaration in
case of header files.
2019-12-19 Tom Tromey <>
PR build/24572:
* (install-strip): New target.
2016-01-10 Mike Frysinger <>
* configure: Regenerate.
2016-01-10 Mike Frysinger <>
* configure: Regenerate.
2016-01-10 Mike Frysinger <>
* configure: Regenerate.
2016-01-10 Mike Frysinger <>
* configure: Regenerate.
2016-01-04 Mike Frysinger <>
* configure: Regenerate.
2015-06-12 Mike Frysinger <>
* configure: Regenerate.
2015-04-24 David Binderman <>
Nick Clifton <>
PR 18273
* misc.c (a2i): Fix typos checking for uppercase letters.
2015-04-17 Mike Frysinger <>
* gen-engine.c (print_run_body): Change CIA_GET to CPU_PC_GET and
2015-03-31 Mike Frysinger <>
* configure: Regenerate.
2014-11-23 Joel Sherrill <>
* igen/ld-cache.h, igen/table.h: Change immediatly to immediately.
2014-03-04 Mike Frysinger <>
* configure: Regenerate.
2013-11-25 Steve Ellcey <>
* igen/ (igen): Use BUILD_CFLAGS in link.
2013-05-10 Freddie Chopin <>
* configure: Rebuild.
2012-03-24 Mike Frysinger <>
* configure: Regenerate.
2011-10-17 Mike Frysinger <>
* Change include to common/acinclude.m4.
2011-10-17 Mike Frysinger <>
* Change AC_PREREQ to 2.64. Delete AC_CONFIG_HEADER
call. Replace common.m4 include with SIM_AC_COMMON.
* configure: Regenerate.
2011-07-08 Hans-Peter Nilsson <>
* ld-insn.c (print_insn_words): For fields, print conditionals.
Correct handling of constant named fields.
* gen.c (insn_field_cmp): Tweak comment about neither field
being an insn_field_string with a cond_eq-to-value condition.
(insns_bit_useless) <case insn_field_string, case
decode_find_mixed>: Handle cond_eq-to-value fields as
* gen-idecode.c (print_idecode_validate): Handle
insn_field_string cond-equal-to-value fields as insn_field_int.
* gen-icache.c (print_icache_body): Add comment why constant
string fields are handled.
Remove all #if 0'd code.
* filter.c: Remove #if 0'd function it_is.
(main): Remove #if 0'd code.
* gen-engine.c: Remove #if 0'd functions print_jump,
print_jump_insn, print_jump_definition,
print_jump_internal_function, print_jump_body.
(gen_engine_c): Remove #if 0'd code.
* gen-idecode.c: Remove #if 0'd functions print_jump print_jump,
print_jump_insn, print_jump_definition,
print_jump_internal_function, print_jump_until_stop_body.
* gen-model.c: Remove #if 0'd functions model_c_or_h_data,
model_c_or_h_function, gen_model_h, model_c_insn,
model_c_function, gen_model_c and types model_c_passed_data
and struct _model_c_passed_data.
* gen.c: Remove #if 0'd type constant_field_types and function
(gen_entry_find_opcode_field): Remove #if 0'd code.
* ld-insn.c (parse_insn_model_record): Remove #if 0'd code.
* misc.h (STRDUP, STRNDUP): Remove #if 0'd macros.
2011-02-14 Mike Frysinger <>
* table.c (table_push): Change zfree to free.
2009-08-22 Ralf Wildenhues <>
* Regenerate.
* configure: Likewise.
* configure: Regenerate.
2009-07-30 Ralf Wildenhues <>
* (datarootdir): New variable.
2008-08-28 Joel Brobecker <>
* compare_igen_models: Change license to GPL version 3.
2007-08-27 Joel Brobecker <>
* lf.c (lf_print__gnu_copyleft): Change license to GPL version 3.
2006-12-21 Hans-Peter Nilsson <>
* acconfig.h: Remove.
* Regenerate.
2005-01-11 Andrew Cagney <cagney@localhost.localdomain>
* configure: Re-generate.
2005-01-07 Andrew Cagney <>
* Rename, require autoconf 2.59.
* configure: Re-generate.
2003-05-03 Chris Demetriou <>
* compare_igen_models: Tweak attribution slightly.
2002-11-22 Andrew Cagney <>
* gen.c (name_cmp): Rename format_name_cmp.
(insn_list_insert): When a merge, compare the format name and
instruction name. Add trace messages.
2002-11-21 Andrew Cagney <>
* filter.c: Re-indent.
* filter.h, filter_host.h, gen-engine.c, gen-engine.h: Ditto.
* gen-icache.c, gen-icache.h, gen-idecode.c: Ditto.
* gen-idecode.h, gen-itable.c, gen-itable.h: Ditto.
* gen-model.c, gen-model.h, gen-semantics.c: Ditto.
* gen-semantics.h, gen-support.c, gen-support.h: Ditto.
* gen.c, gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
* ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
* lf.h, misc.c, misc.h, table.c, table.h: Ditto.
2002-11-21 Andrew Cagney <>
* Update copyright. IGEN contributed to the FSF.
* filter.c, filter.h, filter_host.c, filter_host.h: Ditto.
* gen-engine.c, gen-engine.h, gen-icache.c, gen-icache.h: Ditto.
* gen-idecode.c, gen-idecode.h, gen-itable.c: Ditto.
* gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c: Ditto.
* gen-semantics.h, gen-support.c, gen-support.h, gen.c: Ditto.
* gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
* ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
* lf.h, misc.c, misc.h, table.c, table.h: Ditto.
2002-11-06 Richard Sandiford <>
* gen-engine.c (print_engine_issue_prefix_hook): Don't add the
global prefix to ENGINE_ISSUE_PREFIX_HOOK.
(print_engine_issue_postfix_hook): Likewise ENGINE_ISSUE_POSTFIX_HOOK.
2002-08-28 Dave Brolley <>
* gen-support.c (gen_support_h): Generate
'#define semantic_illegal <PREFIX>_semantic_illegal'.
2002-08-22 Chris Demetriou <>
* compare_igen_models: New script.
2002-06-17 Andrew Cagney <>
* gen.c (gen_entry_expand_opcode): Initialize ``value'' to -1 and
``t'' to NULL.
* igen.c (main): Add default case to switch.
* gen-icache.c (print_icache_extraction): Ditto.
2002-06-17 Andrew Cagney <>
* (BUILD_CFLAGS): Remove -O0.
2002-06-16 Andrew Cagney <>
* configure: Regenerated to track ../common/aclocal.m4 changes.
2002-06-03 Richard Henderson <>
* gen-engine.c (print_run_body): Avoid multi-line strings.
* lf.c (lf_print__gnu_copyleft): Likewise.
2002-05-01 Chris Demetriou <>
* igen.c: Use 'deprecated' rather than 'depreciated.'
2002-03-23 Andrew Cagney <>
* gen.c (format_name_cmp): New function.
(insn_list_insert): Use the instruction field name as an
additional key. Different field names indicate different
2002-03-07 Chris Demetriou <>
* igen.c (print_itrace_format): Add support for a new "%#lx" format.
Tue May 23 21:39:23 2000 Andrew Cagney <>
* configure: Regenerated to track ../common/aclocal.m4 changes.
2000-04-12 Frank Ch. Eigler <>
* gen-semantics.c (print_semantic_body): Use GPR_CLEAR(N) instead
of GPR_SET(N,0) for gen-zero-rN.
Thu Sep 2 18:15:53 1999 Andrew Cagney <>
* (SIM_WARNINGS): Replace this with.
WARN_CFLAGS): With these.
* configure: Regenerated to track ../common/aclocal.m4 changes.
1999-05-08 Felix Lee <>
* configure: Regenerated to track ../common/aclocal.m4 changes.
Fri Dec 4 15:14:09 1998 Andrew Cagney <>
* igen.c (main): Fix -Pitable=.
* gen-engine.c (print_run_body): Prefix instruction_address.
Wed Oct 28 18:12:43 1998 Andrew Cagney <>
* (SIM_WARNINGS): Update to match ../common/aclocal.m4
Wed Aug 12 10:55:28 1998 Frank Ch. Eigler <>
* gen-icache.c (print_icache_extraction): #undef a generated
symbol before #define'ing it, to remove conflict with system
Wed Jul 29 10:07:27 1998 Andrew Cagney <>
* gen.c (gen_entry_expand_opcode): For conditional, fields. Fix
the extraction of the value from its source - both table and bit
cases were wrong.
Tue Jul 28 11:19:43 1998 Andrew Cagney <>
* ld-insn.c (parse_insn_word): For constant conditional strings,
encode their bit value.
* ld-insn.c (parse_insn_word, parse_insn_words): Allow conditional
operands to refer to fields in earlier instruction words.
* gen.c (sub_val): Replace field argument with val_last_pos.
(gen_entry_expand_opcode): Look in previous tables for a value for
a conditional field as well as the bits from the current table.
(insn_list_insert): Add sort key of instructions where
their operand fields have different conditionals.
(insn_field_cmp): New function.
Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
* configure: Regenerated to track ../common/aclocal.m4 changes.
* Ditto.
Sun Apr 26 15:20:08 1998 Tom Tromey <>
* acconfig.h: New file.
* Reverted change of Apr 24; use sinclude again.
Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
* configure: Regenerated to track ../common/aclocal.m4 changes.
* Ditto.
Fri Apr 24 11:19:33 1998 Tom Tromey <>
* Don't call sinclude.
Fri Apr 24 19:45:00 1998 Andrew Cagney <>
* gen-icache.c (print_icache_extraction): Do not type cast
* ld-insn.c (load_insn_table): Terminate error with NL.
* gen.c (insns_bit_useless): Perform unsigned bit comparisons.
* filter.c (is_filtered_out, filter_parse): Pacify GCC, len is
Wed Apr 22 14:27:39 1998 Michael Meissner <>
* configure: Reconfigure to pick up ../common/aclocal.m4 changes
to suppress inlining by default.
Tue Apr 21 01:37:54 1998 Andrew Cagney <>
* gen-icache.c (print_icache_extraction): When generating #define
force the expression to the correct type.
Thu Apr 16 08:50:29 1998 Andrew Cagney <>
* misc.c (name2i): strlen returns an unsigned.
Tue Apr 14 19:04:28 1998 Andrew Cagney <>
* igen.h (struct igen_warn_options): Add unimplemented option.
* igen.c (main): Update
* ld-insn.c (load_insn_table): Report unimplemented functions.
Tue Apr 14 10:57:26 1998 Andrew Cagney <>
* ld-insn.c (parse_insn_word): Treat `!' and `=' as valid
separator tokens when parsing a conditional.
* igen.h (main): Add option -S so that suffix can be specified.
Tue Apr 14 08:44:53 1998 Andrew Cagney <>
* igen.h (struct igen_trace_options): Add members insn_expansion
and insn_insertion.
* igen.c (main): Add options -Gtrace-insn-expansion,
-Gtrace-insn-insertion and -Gtrace-all.
* gen.c (gen_entry_expand_insns): Trace each instruction as it is
selected for expansion.
(gen_entry_expand_opcode): Trace each expanded instruction as it
is inserted into the table.
Mon Apr 13 19:21:47 1998 Andrew Cagney <>
* ld-insn.c (parse_insn_word): Parse conditional operators.
(parse_insn_word): Verify field conditionals.
* ld-insn.h: Extend syntax to allow macros and field equality.
(struct insn_field_cond): Rename insn_field_exclusion, add type.
* gen.c (gen_entry_expand_opcode): Check type of conditional.
(insns_bit_useless): Ditto.
* ld-insn.c (parse_macro_record): New function.
Mon Apr 13 22:37:47 1998 Andrew Cagney <>
* ld-insn.h (enum insn_field_type): Add insn_field_invalid.
* ld-insn.c (parse_insn_word): Check instruction field type
correctly initialized.
(print_insn_words): Ditto.
(insn_field_type_to_str): Ditto.
(dump_insn_field): Ditto.
* gen.c (insns_bit_useless): Ditto.
Fri Apr 3 18:08:16 1998 Andrew Cagney <>
* gen.h, igen.c (print_include_inline, print_includes,
print_includes): New functions. Generate include list. For for
semantics generate CPP code to inline when
* igen.c (gen_semantics_c): Call print_includes.
* gen-engine.c (gen_engine_c): Ditto.
Sat Apr 4 21:09:11 1998 Andrew Cagney <>
* igen.h: (struct _igen_name_option): Replace with struct
igen_module_option. Contains both module prefix and suffix.
(INIT_OPTIONS): Initialize.
* igen.c (main): Update -P option to fill in full module info.
(gen-engine.c, gen-icache.c, gen-itable.c, gen-semantics.c,
gen-support.c): Update.
Sat Apr 4 02:15:35 1998 Andrew Cagney <>
* igen.c (print_itrace): Use TRACE_ANY_P macro to determine if any
tracing is needed.
Thu Mar 26 20:51:23 1998 Stu Grossman <>
* table.c (table_push): Redo, using stdio. Fixes NT native
problem with <CRLF>=><LF> translation...
Tue Mar 24 23:30:07 1998 Andrew Cagney <>
* gen-engine.c (print_run_body): Re-extract the CIA after
processing any events.
Tue Mar 24 17:46:08 1998 Stu Grossman <>
* Get SHELL from configure.
* configure: Regenerate with autoconf 2.12.1 to fix shell issues for
NT native builds.
Mon Mar 16 12:51:31 1998 Andrew Cagney <>
* igen.c: Pass sim_cia to trace_prefix.
Thu Feb 26 19:25:02 1998 Andrew Cagney <>
* ld-insn.c (parse_function_record): Check models are valid.
(parse_function_record): Only discard function when no model is
Tue Feb 24 01:42:03 1998 Andrew Cagney <>
* gen-engine.c (print_run_body): Always wrap generated idecode
Fri Feb 20 16:22:10 1998 Andrew Cagney <>
* ld-insn.c (parse_function_record): When -Wnodiscard, suppress
discarded function warning.
* igen.c (main): Clarify -Wnodiscard.
* ld-insn.c (parse_function_record): For functions, allow use of
instruction style function model records
* ld-insn.h (nr_function_model_fields): Define.
Tue Feb 17 16:36:27 1998 Andrew Cagney <>
* igen.c (print_itrace_prefix): Generate call to trace_prefix
instead of trace_one_insn.
(print_itrace): Generate trace_prefix call if any tracing enabled,
(print_itrace): Nest generated call to trace_generic inside
conditional for any tracing enabled.
(print_itrace_prefix): Do not pass PHASE to trace_prefix.
Tue Feb 3 14:00:32 1998 Andrew Cagney <>
* gen-engine.c (print_run_body): Add bitsize suffix to IMEM macro.
* gen-icache.c (print_icache_body): Ditto.
* gen-idecode.c (print_idecode_ifetch): Ditto.
* gen-icache.c (print_icache_body): Mark successive instruction
words as unused.
* ld-insn.c (parse_insn_word): Only report insn-width problems
when warning enabled.
* igen.h: Add flag for warning about invalid instruction widths.
* igen.c: Parse -Wwidth option.
* gen-support.c (gen_support_h): Map instruction_word onto
<PREFIX>_instruction_word when needed.
(print_support_function_name): Use support prefix.
(gen_support_h): Ditto for <PREFIX>_idecode_issue.
Sun Feb 1 11:08:48 1998 Andrew Cagney <>
* gen-support.c (gen_support_h): Generate new macro CPU_.
Sat Jan 31 14:50:27 1998 Andrew Cagney <>
* gen-engine.c (gen_engine_h): Don't assume a model is present.
(gen_engine_c): Ditto.
* igen.c (gen_run_c): Ditto.
* gen-engine.c (print_run_body): Use CIA_GET & CIA_SET instead of
CPU_CIA. Parameterize with CPU argument.
Fri Jan 30 09:09:39 1998 Andrew Cagney <>
* gen.h (struct _gen_list): Replace processor with model.
* igen.c (gen_idecode_h): Update.
(gen_run_c): For generated switch, use model->full_name.
* gen.c (print_gen_entry_path): Ditto.
(make_table): Ditto.
(gen_entry_expand_insns): Ditto.
(make_gen_tables): Ditto.
* igen.c (gen_run_c): Add extra argument `nr_cpus' to generated
function sim_engine_run. Pass argument on to engine_run.
* gen-engine.c (print_engine_run_function_header): Add extra
argument `nr_cpus' to generated function engine_run.
(print_run_body): Fix SMP case.
* gen-support.c (support_c_function): Call sim_engine_abort when
internal function fails to long jump.
Wed Jan 21 18:00:22 1998 Andrew Cagney <>
* gen-semantics.c (print_semantic_body): Use GPR_SET to zero
hardwired register.
Wed Dec 17 14:49:03 1997 Jeffrey A Law (
* gen-semantics.c (print_semantic_body): Fix handling of
hardwired zero register.
Tue Dec 9 12:45:00 1997 Andrew Cagney <>
* igen.h (struct _igen_gen_options): Add member default_model.
* igen.c (gen_run_c): Default to the first machine in the
multi-sim list.
(main): Add MODEL parameter to gen-multi-sim option.
* gen.h (function_decl_type): Declare enum.
* gen-engine.c (print_engine_run_function_header), gen-engine.h:
Make global, pass function_decl_type as argument.
(gen_engine_h, gen_engine_c): Update call.
* gen-idecode.c (print_idecode_issue_function_header),
gen-idecode.h: Pass function_decl_type as argument.
* igen.c (gen_idecode_h): For multi-sim, delcare global variable
* igen.c (gen_run_c): For multi-sim, initialize globals
idecode_issue and engine_run.
Fri Nov 14 10:51:44 1997 Andrew Cagney <>
* ld-insn.c (parse_insn_model_record): Allow multiple model names
to be specified in a single instruction model record.
(dump_insn_model_entry): Update.
* ld-insn.h (struct _insn_model_entry): Replace member name with
the filter names. Document syntax change.
Wed Nov 12 15:45:40 1997 Andrew Cagney <>
* gen-engine.c (print_run_body): Add hooks for adding code before
and after an instruction has been issued.
1997-11-04 Brendan Kehoe <>
* gen-idecode.c (print_jump_until_stop_body): Use `#if 0' instead of
`#ifdef 0' around this.
Tue Nov 4 08:18:29 1997 Michael Meissner <>
* ld-decode.c (load_decode_table): Don't assume NULL is an integer
Wed Oct 29 13:17:17 1997 Andrew Cagney <>
* ld-insn.h: Document mnemonic string format.
Tue Oct 28 10:50:35 1997 Andrew Cagney <>
* gen-icache.c (print_icache_extraction): Force result of atol to
* ld-insn.c (parse_function_record): Separate handling of old and
ney fynction records.
(load_insn_table): For %s record, hack function name & type after
it has been parsed.
* filter.h (filter_is_subset): Reverse argument names, wrong
* ld-insn.c (load_insn_table): Move include code to.
(parse_include_record): New function. Check for filtering of
include statement by both flags and models.
(load_insn_table): Check for model filtering of cache and model
(parse_model_data_record): Check for model & flag filtering of
model data records.
(parse_function_record): Check for model & flag filtering of
function records.
* ld-insn.h: Define record_filter_models_field. Add filter-models
field to all but instruction records.
(struct _function_entry, struct _cache_entry): Add models field.
(nr_function_fields): Make parm field mandatory.
Mon Oct 27 15:14:26 1997 Andrew Cagney <>
* igen.c (main): Change -I option to -I<directory>. Add optional
size to -Ggen-icache option. Add -Gno-... support.
* igen.h (struct _igen_options): Add include field.
* ld-insn.c (enum insn_record_type, insn_type_map): Add
(load_insn_table): Call table_push when include record.
* table.c (struct _open table, struct table): Make table object an
indirect ptr to the current table file.
(current_line, new_table_entry, next_line): Make file arg type
(table_open): Use table_push.
(table_read): Point variable file at current table, at eof, pop
last open table.
* table.h, table.c (table_push): New function.
Thu Oct 16 11:03:27 1997 Andrew Cagney <>
* gen-semantics.c (print_semantic_body): Use CIA not
cia.ip. Escape newlines at end of generated call to
Tue Oct 14 11:13:27 1997 Andrew Cagney <>
* igen.c (print_itrace): Output line-ref to igen source file when
generating trace statements.
(print_itrace_prefix, print_itrace_format): Escape newline at end
of each line of generated call to trace function.
Mon Oct 13 11:27:31 1997 Andrew Cagney <>
* gen-support.c (gen_support_h): Generate #define NIA. Definition
dependant on gen-delayed-branch mode.
* ld-insn.c (parse_insn_mnemonic_record): Check for opening and
closing double quote in mnemonic field.
(parse_option_record): Add gen-delayed-branch option.
Wed Oct 8 13:10:16 1997 Andrew Cagney <>
* gen.c (insn_list_insert): Missing \n in warning.
* ld-insn.c (load_insn_table): Only notify of discarded
instrctions when warn.discard enabled.
* igen.h: Add option.warn.discard, default enabled.
* igen.c (main): Add -Wnodiscard option.
* ld-insn.c (record_type): For old record type, check the number
of fields is correct.
(load_insn_table): Allow insn assembler and insn model records to
appear in any order.
(parse_insn_model_record): Rename from parse_insn_model_records.
Parse only one record.
(parse_insn_mnemonic_record): Rename from
parse_insn_mnemonic_records. Parse only one record.
Tue Sep 23 15:52:06 1997 Felix Lee <>
* gen-itable.c (gen_itable_h): [nr_itable_* + 1] to avoid
illegal zero-sized array.
(itable_print_set): likewise, avoid empty initializers.
Mon Sep 22 18:49:07 1997 Felix Lee <>
* i386-windows is a cross, so don't expect
libiberty to be there.
* configure: updated.
Fri Sep 19 10:36:30 1997 Andrew Cagney <>
* igen.c (print_function_name): Put the format name after the
function / instruction name, not before.
(print_itrace): Better format trace code.
Tue Sep 16 11:01:07 1997 Andrew Cagney <>
* gen.c (insns_bit_useless): Don't treat string fields restricted
to a range of values as useless.
Mon Sep 15 15:47:21 1997 Andrew Cagney <>
* igen.c (gen_run_c): Handle non-multi-sim case.
* gen-support.c (gen_support_h): Define SD_ - to replace _SD.
Define CIA from cia.
Thu Sep 11 10:27:39 1997 Andrew Cagney <>
* gen-semantics.c (print_semantic_body): Trace the instruction
after it has been validated.
(print_semantic_body): Count the instruction using sim-profile.
Wed Sep 10 13:35:37 1997 Andrew Cagney <>
* gen-itable.c (gen_itable_h): Collect summary info on instruction
table when traversing it.
(gen_itable_h): Output an enum defining the max size of each of
the itable string members.
Tue Sep 9 03:30:26 1997 Andrew Cagney <>
* igen.c (gen_run_c): New function. Generate sim_engine_run that
looks at the currently selected architecture.
* gen-engine.c, gen-idecode.c: Add multi-sim support - generate
one engine per model.
* gen-semantics.c, gen-icache.c gen-support.c:
* ld-insn.h, ld-insn-h (load_insn_table): Rewrite. table.h only
returns a line at a time. Parse multi-word instructions. Add
multi-sim support.
* table.h, table.c: Simplify. Only parse a single line at a time.
ld-insn can handle the rest.
* filter.h, filter.c (filter_parse, filter_add, filter_is_subset,
filter_is_common, filter_is_member, filter_next): New filter
(dump_filter): Ditto.
* gen.h, gen.c: New file. Takes the insn table and turns it into
a set of decode tables and semantic functions.
* ld-insn.c: Copy generator code from here.
* gen.c: To here.
Fri Aug 8 11:43:45 1997 Andrew Cagney <>
* misc.h (NZALLOC): Allocate an N element array of TYPE.
* table.h, table.c: Simplify table parser so that it only
understands colon delimited lines and code blocks.
(table_read): Parse '{' ... '}' as a code block.
(table_print_code): New function, print out a code block to file.
(main): Add suport for standalone testing.
* ld-insn.h, ld-insn.c:
Mon Sep 1 11:41:12 1997 Andrew Cagney <>
* gen-idecode.c (error_leaf_contains_multiple_insn): Make static.
(print_jump_definition, print_jump, print_jump_internal_function,
print_jump_insn, print_jump_until_stop_body): Delete, moved to
* igen.c (print_itrace_format): Delete unused variable chp.
(gen-engine.h): Include.
* table.c (current_file_name, current_line_entry,
current_line_entry): Make static.
Wed Aug 6 12:31:17 1997 Andrew Cagney <>
* Include simulator common/aclocal.m4.
* Add --enable-sim-warnings option.
* configure: Re-generate.
* Use.
* (tmp-filter): New rule.
(igen.o, tmp-table, tmp-ld-decode, tmp-ld-cache, tmp-ld-insn,
ld-decode.o, ld-cache.o, ld-insn.o): Fix dependencies.
* gen.h, gen.c: New files.
* (gen.o, tmp-gen): New rules, update all
Tue Jun 24 11:46:45 1997 Andrew Cagney <>
* ld-insn.c (load_insn_table): Accept %s as a function type.
Thu Jun 5 17:14:32 1997 Andrew Cagney <>
* igen.c (print_itrace_prefix): Move printing of insn prefix to
(print_itrace_format): Drop printing of MY_NAME in instruction
trace. Printing of insn prefix moved.
(print_itrace): Ditto.
Fri May 30 11:27:37 1997 Andrew Cagney <>
* gen-icache.c (print_icache_function_header): Pass
table_line_entry instead of separate file and line.
* table.c (table_entry_read): Set assembler source file/line-nr to
the current not initial file.
(table_entry_read): Fix line numbering of source files.
table.h (table_line_entry): New structure. Exactly specifies a
source file/line-nr.
(table_*_entry): Add this to all.
table.c (table_entry_print_cpp_line_nr): Change to use values from
a table_line_entry struct.
(table_entry_read): Save table_line_entry in all structures read.
gen-icache.c, gen-support.c, gen-idecode.c, gen-semantics.c,
gen-model.c: Update all references.
Thu May 29 10:29:57 1997 Andrew Cagney <>
* igen.c (print_my_defines): Define MY_NAME - a string. For
MY_PREFIX, undefine the name of the function incase some dumb
header defined it. it.
(print_itrace): Use MY_NAME not MY_PREFIX.
* lf.c (lf_write): New function write an N character buffer to the
* igen.c (print_itrace): When available, use the assembler to
print the insn-trace.
(print_itrace_prefix): New function, print first part of call to
(print_itrace_format): New function, print fmt argument for
* table.c (table_entry_read): Save any assembler lines instead of
discarding them.
Wed May 28 09:55:29 1997 Andrew Cagney <>
* gen-icache.c (print_icache_body): Process immeds.
* gen-semantics.c (print_semantic_body): When computing NIA, skip
any immed words that follow the instruction word.
* ld-insn.c (parse_insn_format): Parse immeds appended to an
* igen.c (main): Allow any register to be specified as the zero
(semantic_zero_reg): Global, index to zero register.
* gen-semantics.c (print_semantic_body): Zero selected register.
Tue May 27 14:12:32 1997 Andrew Cagney <>
* igen.h: Stop options and code gen type bit masks overlaping.
Fri May 23 12:01:08 1997 Andrew Cagney <>
* gen-semantics.c (print_semantic_body): Incorrect test for
zero-r0 code.
Fri May 16 14:32:31 1997 Andrew Cagney <>
* gen-semantics.c (print_semantic_body): Use common sim-engine
Fri May 16 11:48:30 1997 Andrew Cagney <>
* gen-semantics.c (print_semantic_body): Add code to clear r0.
* igen.c (main): Add new option zero-r0, which adds code to clear
GPR(0) each cycle.
Wed May 7 12:31:30 1997 Andrew Cagney <>
* igen.c (print_itrace): Fix so line-nr is passed to trace
* gen-idecode.c (print_idecode_validate): Correct FP code.
* gen-support.c (gen_support_h): Always pass MY_INDEX to support
(print_support_function_name): Ditto.
Tue May 6 06:12:04 1997 Mike Meissner <>
* igen.c (print_itrace): Call trace_one_insn to trace
instructions, rather than doing it directly.
Mon May 5 14:11:46 1997 Mike Meissner <>
* gen-engine.c (engine_switch_leaf): Remove extra %s.
(print_engine_floating_point_unavailable): Wrap in #ifdef
UNUSED/#endif, until somebody uses it.
* gen-idecode.c (error_leaf_contains_multiple_insn): Remove unused
(print_jump_until_stop_body): Wrap in #ifdef UNUSED/#endif, until
somebody uses it.
(print_idecode_validate): Use long formats to print long values.
* gen-semantics.c (print_idecode_invalid): Set name to "unknown"
if we get an unexpected type.
Fri May 2 13:28:06 1997 Andrew Cagney <>
* igen.c (print_itrace): Pass SD as well as CPU to calls to
* gen-support.c (gen_support_h): Always pass sim_cia cia to
support functions.
(print_support_function_name): Ditto.
Wed Apr 30 17:35:51 1997 Andrew Cagney <>
* gen-support.c (support_c_function): Remove unnecessary memset of
* gen-semantics.c (print_semantic_body): Wasn't closing
generated comment.
Tue Apr 29 11:11:12 1997 Andrew Cagney <>
* ld-insn.c (load_insn_table): Report instructions that do not
have at least a format and name.
(insn_table_find_opcode_field): Check progress is being made.
* gen-support.c (support_c_function): Report empty function body.
Thu Apr 24 11:43:45 1997 Andrew Cagney <>
* ld-insn.c (insn_table_expand_opcode): Allow reserved fields to
be broken up.
(insn_table_expand_insns): Allow special rules to apply to groups
of instructions when all members of the group match the special
* gen-semantics.c (print_c_semantic): Ditto.
* igen.c (print_semantic_function_formal): Ditto.
(print_semantic_function_type): Ditto.
* igen.c (print_icache_function_formal): Ditto.
* gen-idecode.c (print_idecode_issue_function_body): Ditto.
* gen-idecode.c (gen_idecode_h): Prepend the global_prefix to the
instruction_address type.
* gen-semantics.c (print_semantic_body): Call cpu_error when an
unimplemented instruction is encountered - gives the interpreter
the chance to stop correctly.
Wed Apr 23 20:06:36 1997 Andrew Cagney <>
* igen.c (print_function_name): Allow dot's in instruction names.
Tue Apr 22 21:46:28 1997 Andrew Cagney <>
* igen.c (main), igen.h: Support new option - delayed-branch -
generate code to drive a delayed branch processor.
* gen-idecode.c (gen_idecode_h): Define instruction_address type.
* igen.c (print_icache_function_formal): Replace address_word with
(print_semantic_function_formal): Ditto.
(print_semantic_function_type): Ditto.
* gen-idecode.c (print_idecode_issue_function_body): Ditto.
* gen-semantics.c (print_semantic_body): Ditto.
(print_c_semantic): Ditto.
* gen-support.c (support_c_function): Return a zeroed CIA instead
of just zero - works with any cia type.
* igen.c (print_itrace): For delayed branch case, print just the
current instruction.
Thu Apr 17 07:02:33 1997 Doug Evans <>
* igen.c (print_itrace): Use TRACE_FOO_P and trace_printf.
Tue Apr 15 15:20:31 1997 Ian Lance Taylor <>
* (INSTALL): Set to @INSTALL@.
Mon Apr 14 16:29:34 1997 Ian Lance Taylor <>
* (INSTALL): Change to install-sh.
Wed Apr 2 18:51:20 1997 Doug Evans <>
* gen-support.c (gen_support_c): sim-state.h renamed to sim-main.h.
* gen-idecode.c (gen_idecode_c): Likewise.
* igen.c (gen_semantics_c): Likewise.
Mon Mar 24 10:10:08 1997 Andrew Cagney <>
* gen-icache.c (print_icache_body): No longer define cpu/sd,
support.h now defines CPU/SD globally.
* gen-model.c (gen_model_h): Ditto.
* gen-idecode.c (print_idecode_issue_function_body): Ditto.
(print_jump): Ditto.
(print_jump_until_stop_body): Ditto.
(print_idecode_validate): Ditto.
* gen-icache.c (print_icache_body): Ditto.
* gen-semantics.c (print_semantic_body): Ditto.
* igen.c (print_semantic_function_formal): Rename cpu to sim_cpu,
processor to cpu.
(print_icache_function_formal): Ditto.
* gen-support.c (print_support_function_name): Include sd/cpu arg
in support function argument list.
(support_c_function): Generate code to cpu/sd from sd/cpu.
(gen_support_h): Define _SD the argument prefix for all support
functions. Define SD/CPU to determine sd/cpu from value of _SD
Tue Mar 18 15:52:24 1997 Andrew Cagney <>
* gen-support.c (gen_support_c): Update for renaming of engine to
* igen.c: Ditto.
* gen-idecode.c (gen_idecode_c): Ditto.
Mon Mar 17 15:17:07 1997 Andrew Cagney <>
* ld-decode.c (load_decode_table): Rename slash to reserved.
(dump_decode_rule): Ditto.
* ld-insn.c (parse_insn_format): Differentiate between a `/' -
reserved bit - and a `*' - wild card.
(parse_insn_format): Change is_slash to more informative reserved.
(dump_insn_field): Ditto.
(insn_field_is_constant): Ditto.
(insn_table_expand_opcode): Ditto.
* gen-idecode.c (print_idecode_validate): Make check_mask and
check_val the correct integer size.
(print_idecode_validate): Fix reserved bit check for 64 bit
Fri Mar 14 11:24:06 1997 Andrew Cagney <>
* ld-insn.c (parse_insn_format): Accept '*' as an alternative of
`/' in bit fields. `/' denotes a wild bit.
Fri Mar 7 18:20:38 1997 Andrew Cagney <>
* igen.h, igen.c (main): New options. Control generation of
conditional issue and slot verification code.
Fri Mar 7 18:17:25 1997 Andrew Cagney <>
* gen-support.c (print_support_function_name): Prepend the global
name prefix when applicable. Provide #define to map the user
specified name the generated globaly unique one.
Fri Mar 7 18:07:45 1997 Andrew Cagney <>
* gen-idecode.c (print_idecode_validate): Wrap each of the checks
- reserved bits, floating point and slot validation - with a
#ifdef so that they are optional.
Fri Mar 7 16:35:13 1997 Andrew Cagney <>
* gen-idecode.c (error_leaf_contains_multiple_insn): New function
- report the error of a leaf node in the decision tree containing
several instructions.
(print_idecode_table_leaf): Detect a leaf with multiple instructions.
(print_idecode_switch_leaf): Ditto.
* gen-semantics.h, gen-semantics.c (print_idecode_illegal,
print_idecode_invalid): Rename former to latter. Add argument so
that one function can generate all invalid instruction cases -
illegal, fp-unavailable, wrong-slot.
* gen-engine.c: Update.
* gen-idecode.c: Use print_idecode_invalid to generate a function
call for cases when fp-unavailable and the slot is wrong.
* gen-idecode.c (print_idecode_validate): New check, generate code
to verify that the instruction slot is correct.
* igen.c (main): Simplify options.
Wed Mar 5 09:55:55 1997 Andrew Cagney <>
* igen.c (print_itrace): Remove source line reference for trace
code - let the user see the generated file.
(print_itrace): Print the trace code rather than reference a
Tue Mar 4 17:31:55 1997 Andrew Cagney <>
* igen.c (print_semantic_function_actual): Pass either the
processor - smp - or the engine - mono - into semantic functions.
Don't pass in both.
* gen-icache.c (print_icache_body): Dependant on smp, derive
processor from engine or engine from processor, and hence ensuring
that both are defined in all semantic functions.
Mon Mar 3 17:11:21 1997 Andrew Cagney <>
* ld-insn.c (parse_insn_format): Make the width field optional.
If missing assume that the number of characters in the value
determines the number of bits in the field.
Thu Feb 27 11:27:48 1997 Andrew Cagney <>
* ld-insn.c (insn_table_expand_opcode): Replace assertion with
more useful error message.
Tue Feb 25 16:43:27 1997 Andrew Cagney <>
* misc.c (error): Output errors on stderr.
* ld-insn.c (parse_insn_format): Skip any leading spaces.
Verify the width of instructions being parsed.
* table.c (table_entry_read): Parse CPP's convention for
specifying original file name/line-nr.
Wed Feb 19 12:30:28 1997 Andrew Cagney <>
* ld-insn.c (parse_insn_format): Allow trailing spaces in
instruction fields.
* Create using ../ppc/ as a starting
* Ditto vis ../ppc/
Mon Feb 17 10:44:18 1997 Andrew Cagney <>
* gen-support.c (gen_support_c): Always include engine.h instead
of cpu.h
* gen-idecode.c (gen_idecode_c): Ditto.
* words.h (instruction_word): Remove instruction_word - now
generated by igen.
(address_word): New. Used by igen.
* lf.c (lf_print_function_type_function): New, pass a function to
print out the type instead of a constant string.
* igen.h, igen.c (print_semantic_function_formal,
SEMANTIC_FUNCTION_FORMAL): Relace macro with function.
(print_semantic_function_actual, SEMANTIC_FUNCTION_ACTUAL): Ditto.
(print_semantic_function_type, SEMANTIC_FUNCTION_TYPE): Ditto.
(print_icache_function_type, ICACHE_FUNCTION_TYPE): Ditto.
(print_icache_function_formal, ICACHE_FUNCTION_FORMAL): Ditto.
(print_icache_function_actual, ICACHE_FUNCTION_ACTUAL): Ditto.
* gen-idecode.c (print_idecode_table): Update.
(idecode_switch_leaf): Update.
(print_idecode_switch_function_header): Ditto.
(print_idecode_floating_point_unavailable): Ditto.
(print_idecode_issue_function_header): Ditto.
* igen.c (gen_icache_h): Ditto.
* gen-engine.c (print_engine_table): Ditto.
(engine_switch_leaf): Ditto.
* gen-support.c (print_support_function_name): Ditto.
* gen-semantics.c (print_semantic_function_header): Update.
* gen-icache.c (print_icache_function_header): Update.
(print_icache_function): Update.
(print_icache_internal_function_declaration): Update.
(print_icache_internal_function_definition): Update.
* gen-idecode.c (gen_idecode_h): Drop including of idecode_*.h
files, will at some stage need to move it into support.
* igen.h, igen.c (main): New option -e <engine> - generate a full
simulation engine. Previously this was the -d <idecode-file>
* gen-engine.h, gen-engine.c: Copies of gen-idecode.*. Will need
to clean these up so that that call upon the updated gen-idecode
* gen-idecode.h, gen-idecode.c: Prune out any code not relevant to
generating a decode table.
* (igen): Add dependencies for new gen-engine.* files.
* igen.h, igen.c (main): New option -M - Control what is returned
by semantic functions - -1/NIA vs CIA+N/NIA. Add
generate_semantic_returning_modified_nia_only to igen_code enum.
* gen-semantics.c (print_semantic_body): As an alternative, make
NIA == -1 instead of CIA+insn_size by default.
* igen.h, igen.c (main, global_name_prefix, global_uname_prefix):
New option -P <prefix> - Prepend all generated functions with the
specified prefix.
(gen_idecode_c): Adjust.
* gen-icache.c (print_icache_struct): Ditto.
* gen-support.c (gen_support_c): Ditto.
Sun Feb 16 15:23:15 1997 Andrew Cagney <>
* igen.c (main): Correct usage. Missleading message about ucase
options dumping internal tables. -F now includes rather then
excludes instructions.
* misc.h, misc.c (a2i): Make 64bit.
* ld-insn.h (max_insn_bit_size, default_insn_bit_size): Increase
max to 64bits, expect trouble. Make the default 32 bits.
* gen-idecode.c (print_idecode_table): Change EXTRACTED* macro's to use the insn_bit_size instead of assuming 32
* gen-icache.c (print_icache_extraction): Ditto.
* gen-idecode.c (idecode_switch_start): Ditto.
* gen-idecode.c (gen_idecode_c): Ditto
* igen.h (insn_specifying_widths), igen.c (main): New option -W.
Indicates that the instruction field of the table is specifying
bit widths instead of bit offsets.
* ld-insn.c (parse_insn_format): Parse instruction fields
specifying widths.
* misc.c (a2i): Allow binary numbers to be specified using the
syntax 0bNNNN.
* ld-insn.c: Allow such numbers to appear in the instruction
* table.c (table_entry_read): Make // a valid comment character.
(table_entry_read): Skip lines containing a leading " - these may
eventually be used in a disasembler.
Fri Feb 14 15:23:15 1997 Andrew Cagney <>
* filter.c, filter.h, gen-engine.c, gen-engine.h, gen-icache.c,
gen-icache.h, gen-idecode.c, gen-idecode.h, gen-itable.c,
gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c,
gen-semantics.h, gen-support.c, gen-support.h, igen.c, igen.h,
ld-cache.c, ld-cache.h, ld-decode.c, ld-decode.h, ld-insn.c,
ld-insn.h, lf.c, lf.h, misc.c, misc.h, table.c, table.h: Copy in
from the ../ppc directory.
* filter_host.c, filter_host.h: Copy in from the ../ppc directory
renaming from filter_filename.[hc]