summaryrefslogtreecommitdiffstats
path: root/sim/igen
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2011-07-08 02:27:18 +0000
committerHans-Peter Nilsson <hp@axis.com>2011-07-08 02:27:18 +0000
commit7e60d30187f19a9007dc59d3d5aed847d3dada95 (patch)
treeb7d07a72a90acbb6e3b33f70a1694fa15d454e78 /sim/igen
parent26e0f8dbd817f65f3618ea14e8694d5f80eb487f (diff)
downloadppe42-binutils-7e60d30187f19a9007dc59d3d5aed847d3dada95.tar.gz
ppe42-binutils-7e60d30187f19a9007dc59d3d5aed847d3dada95.zip
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 insn_field_is_constant. (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.
Diffstat (limited to 'sim/igen')
-rw-r--r--sim/igen/ChangeLog22
-rw-r--r--sim/igen/filter.c30
-rw-r--r--sim/igen/gen-engine.c325
-rw-r--r--sim/igen/gen-idecode.c321
-rw-r--r--sim/igen/gen-model.c398
-rw-r--r--sim/igen/gen.c111
-rw-r--r--sim/igen/ld-insn.c7
-rw-r--r--sim/igen/misc.h4
8 files changed, 23 insertions, 1195 deletions
diff --git a/sim/igen/ChangeLog b/sim/igen/ChangeLog
index 7d1a9b4e41..576962e3d9 100644
--- a/sim/igen/ChangeLog
+++ b/sim/igen/ChangeLog
@@ -1,3 +1,25 @@
+2011-07-08 Hans-Peter Nilsson <hp@axis.com>
+
+ 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
+ insn_field_is_constant.
+ (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 <vapier@gentoo.org>
* table.c (table_push): Change zfree to free.
diff --git a/sim/igen/filter.c b/sim/igen/filter.c
index 52156952ce..3b36345577 100644
--- a/sim/igen/filter.c
+++ b/sim/igen/filter.c
@@ -216,29 +216,6 @@ is_filtered_out (filter *filters, const char *flags)
}
-#if 0
-int
-it_is (const char *flag, const char *flags)
-{
- int flag_len = strlen (flag);
- while (*flags != '\0')
- {
- if (!strncmp (flags, flag, flag_len)
- && (flags[flag_len] == ',' || flags[flag_len] == '\0'))
- return 1;
- while (*flags != ',')
- {
- if (*flags == '\0')
- return 0;
- flags++;
- }
- flags++;
- }
- return 0;
-}
-#endif
-
-
char *
filter_next (filter *set, char *member)
{
@@ -294,12 +271,7 @@ main (int argc, char **argv)
/* dump various info */
l = lf_open ("-", "stdout", lf_omit_references, lf_is_text, "tmp-filter");
-#if 0
- if (is_filtered_out (argv[1], superset))
- lf_printf (l, "excluded\n");
- else
- lf_printf (l, "included\n");
-#endif
+
/* subset */
{
dump_filter (l, "{", subset, " }");
diff --git a/sim/igen/gen-engine.c b/sim/igen/gen-engine.c
index dd3a46a55b..2e9ec7cbf2 100644
--- a/sim/igen/gen-engine.c
+++ b/sim/igen/gen-engine.c
@@ -333,325 +333,6 @@ after all the other CPU's and the event queue have been processed */\n\
/****************************************************************/
-#if 0
-static void
-print_jump (lf *file, int is_tail)
-{
- if (!options.gen.smp)
- {
- lf_putstr (file, "if (event_queue_tick (sd))\n");
- lf_putstr (file, " {\n");
- lf_putstr (file, " CPU_CIA (processor) = nia;\n");
- lf_putstr (file, " sim_events_process (sd);\n");
- lf_putstr (file, " }\n");
- lf_putstr (file, "}\n");
- }
-
- if (options.gen.smp)
- {
- if (is_tail)
- lf_putstr (file, "cpu_set_program_counter(processor, nia);\n");
- lf_putstr (file, "current_cpu += 1;\n");
- lf_putstr (file, "if (current_cpu >= nr_cpus)\n");
- lf_putstr (file, " {\n");
- lf_putstr (file, " if (sim_events_tick (sd))\n");
- lf_putstr (file, " {\n");
- lf_putstr (file, " sim_events_process (sd);\n");
- lf_putstr (file, " }\n");
- lf_putstr (file, " current_cpu = 0;\n");
- lf_putstr (file, " }\n");
- lf_putstr (file, "processor = processors[current_cpu];\n");
- lf_putstr (file, "nia = cpu_get_program_counter(processor);\n");
- }
-
- if (options.gen.icache)
- {
- lf_putstr (file, "cache_entry = cpu_icache_entry(processor, nia);\n");
- lf_putstr (file, "if (cache_entry->address == nia) {\n");
- lf_putstr (file, " /* cache hit */\n");
- lf_putstr (file, " goto *cache_entry->semantic;\n");
- lf_putstr (file, "}\n");
- if (is_tail)
- {
- lf_putstr (file, "goto cache_miss;\n");
- }
- }
-
- if (!options.gen.icache && is_tail)
- {
- lf_printf (file, "goto engine;\n");
- }
-
-}
-#endif
-
-
-#if 0
-static void
-print_jump_insn (lf *file,
- insn_entry * instruction,
- opcode_bits *expanded_bits,
- opcode_field *opcodes, cache_entry *cache_rules)
-{
- insn_opcodes opcode_path;
-
- memset (&opcode_path, 0, sizeof (opcode_path));
- opcode_path.opcode = opcodes;
-
- /* what we are for the moment */
- lf_printf (file, "\n");
- print_my_defines (file,
- instruction->name,
- instruction->format_name, expanded_bits);
-
- /* output the icache entry */
- if (options.gen.icache)
- {
- lf_printf (file, "\n");
- lf_indent (file, -1);
- print_function_name (file,
- instruction->name,
- instruction->format_name,
- NULL, expanded_bits, function_name_prefix_icache);
- lf_printf (file, ":\n");
- lf_indent (file, +1);
- lf_printf (file, "{\n");
- lf_indent (file, +2);
- lf_putstr (file, "const unsigned_word cia = nia;\n");
- print_itrace (file, instruction, 1 /*putting-value-in-cache */ );
- print_idecode_validate (file, instruction, &opcode_path);
- lf_printf (file, "\n");
- lf_printf (file, "{\n");
- lf_indent (file, +2);
- print_icache_body (file, instruction, expanded_bits, cache_rules, 0, /*use_defines */
- put_values_in_icache);
- lf_printf (file, "cache_entry->address = nia;\n");
- lf_printf (file, "cache_entry->semantic = &&");
- print_function_name (file,
- instruction->name,
- instruction->format_name,
- NULL,
- expanded_bits, function_name_prefix_semantics);
- lf_printf (file, ";\n");
- if (options.gen.semantic_icache)
- {
- print_semantic_body (file,
- instruction, expanded_bits, &opcode_path);
- print_jump (file, 1 /*is-tail */ );
- }
- else
- {
- lf_printf (file, "/* goto ");
- print_function_name (file,
- instruction->name,
- instruction->format_name,
- NULL,
- expanded_bits, function_name_prefix_semantics);
- lf_printf (file, "; */\n");
- }
- lf_indent (file, -2);
- lf_putstr (file, "}\n");
- lf_indent (file, -2);
- lf_printf (file, "}\n");
- }
-
- /* print the semantics */
- lf_printf (file, "\n");
- lf_indent (file, -1);
- print_function_name (file,
- instruction->name,
- instruction->format_name,
- NULL, expanded_bits, function_name_prefix_semantics);
- lf_printf (file, ":\n");
- lf_indent (file, +1);
- lf_printf (file, "{\n");
- lf_indent (file, +2);
- lf_putstr (file, "const unsigned_word cia = nia;\n");
- print_icache_body (file,
- instruction,
- expanded_bits,
- cache_rules,
- (options.gen.direct_access
- ? define_variables
- : declare_variables),
- (options.gen.icache
- ? get_values_from_icache : do_not_use_icache));
- print_semantic_body (file, instruction, expanded_bits, &opcode_path);
- if (options.gen.direct_access)
- print_icache_body (file,
- instruction,
- expanded_bits,
- cache_rules,
- undef_variables,
- (options.gen.icache
- ? get_values_from_icache : do_not_use_icache));
- print_jump (file, 1 /*is tail */ );
- lf_indent (file, -2);
- lf_printf (file, "}\n");
-}
-#endif
-
-
-#if 0
-static void
-print_jump_definition (lf *file, gen_entry *entry, int depth, void *data)
-{
- cache_entry *cache_rules = (cache_entry *) data;
- if (entry->opcode_rule->with_duplicates)
- {
- ASSERT (entry->nr_insns == 1
- && entry->opcode == NULL
- && entry->parent != NULL && entry->parent->opcode != NULL);
- ASSERT (entry->nr_insns == 1
- && entry->opcode == NULL
- && entry->parent != NULL
- && entry->parent->opcode != NULL
- && entry->parent->opcode_rule != NULL);
- print_jump_insn (file,
- entry->insns->insn,
- entry->expanded_bits, entry->opcode, cache_rules);
- }
- else
- {
- print_jump_insn (file, entry->insns->insn, NULL, NULL, cache_rules);
- }
-}
-#endif
-
-
-#if 0
-static void
-print_jump_internal_function (lf *file, function_entry * function, void *data)
-{
- if (function->is_internal)
- {
- lf_printf (file, "\n");
- lf_print__line_ref (file, function->line);
- lf_indent (file, -1);
- print_function_name (file,
- function->name,
- NULL,
- NULL,
- NULL,
- (options.gen.icache
- ? function_name_prefix_icache
- : function_name_prefix_semantics));
- lf_printf (file, ":\n");
- lf_indent (file, +1);
- lf_printf (file, "{\n");
- lf_indent (file, +2);
- lf_printf (file, "const unsigned_word cia = nia;\n");
- table_print_code (file, function->code);
- lf_print__internal_ref (file);
- lf_printf (file, "error(\"Internal function must longjump\\n\");\n");
- lf_indent (file, -2);
- lf_printf (file, "}\n");
- }
-}
-#endif
-
-
-#if 0
-static void
-print_jump_body (lf *file,
- gen_entry *entry, insn_table *isa, cache_entry *cache_rules)
-{
- lf_printf (file, "{\n");
- lf_indent (file, +2);
- lf_putstr (file, "jmp_buf halt;\n");
- lf_putstr (file, "jmp_buf restart;\n");
- lf_putstr (file, "cpu *processor = NULL;\n");
- lf_putstr (file, "unsigned_word nia = -1;\n");
- lf_putstr (file, "instruction_word instruction = 0;\n");
- if (options.gen.icache)
- {
- lf_putstr (file, "engine_cache *cache_entry = NULL;\n");
- }
- if (options.gen.smp)
- {
- lf_putstr (file, "int current_cpu = -1;\n");
- }
-
- /* all the switches and tables - they know about jumping */
- print_idecode_lookups (file, entry, cache_rules);
-
- /* start the simulation up */
- if (options.gen.icache)
- {
- lf_putstr (file, "\n");
- lf_putstr (file, "{\n");
- lf_putstr (file, " int cpu_nr;\n");
- lf_putstr (file, " for (cpu_nr = 0; cpu_nr < nr_cpus; cpu_nr++)\n");
- lf_putstr (file, " cpu_flush_icache(processors[cpu_nr]);\n");
- lf_putstr (file, "}\n");
- }
-
- lf_putstr (file, "\n");
- lf_putstr (file, "psim_set_halt_and_restart(system, &halt, &restart);\n");
-
- lf_putstr (file, "\n");
- lf_putstr (file, "if (setjmp(halt))\n");
- lf_putstr (file, " return;\n");
-
- lf_putstr (file, "\n");
- lf_putstr (file, "setjmp(restart);\n");
-
- lf_putstr (file, "\n");
- if (!options.gen.smp)
- {
- lf_putstr (file, "processor = processors[0];\n");
- lf_putstr (file, "nia = cpu_get_program_counter(processor);\n");
- }
- else
- {
- lf_putstr (file, "current_cpu = psim_last_cpu(system);\n");
- }
-
- if (!options.gen.icache)
- {
- lf_printf (file, "\n");
- lf_indent (file, -1);
- lf_printf (file, "engine:\n");
- lf_indent (file, +1);
- }
-
- print_jump (file, 0 /*is_tail */ );
-
- if (options.gen.icache)
- {
- lf_indent (file, -1);
- lf_printf (file, "cache_miss:\n");
- lf_indent (file, +1);
- }
-
- print_engine_issue_prefix_hook (file);
- lf_putstr (file, "instruction\n");
- lf_putstr (file,
- " = vm_instruction_map_read(cpu_instruction_map(processor),\n");
- lf_putstr (file, " processor, nia);\n");
- print_engine_issue_prefix_hook (file);
- print_idecode_body (file, entry, "/*IGORE*/");
- print_engine_issue_postfix_hook (file);
-
- /* print out a table of all the internals functions */
- function_entry_traverse (file, isa->functions,
- print_jump_internal_function, NULL);
-
- /* print out a table of all the instructions */
- ERROR ("Use the list of semantic functions, not travere_tree");
- gen_entry_traverse_tree (file, entry, 1, NULL, /* start */
- print_jump_definition, /* leaf */
- NULL, /* end */
- cache_rules);
- lf_indent (file, -2);
- lf_printf (file, "}\n");
-}
-#endif
-
-
-/****************************************************************/
-
-
void
print_engine_run_function_header (lf *file,
char *processor,
@@ -754,12 +435,6 @@ gen_engine_c (lf *file,
case generate_jumps:
ERROR ("Jumps currently unimplemented");
-#if 0
- print_engine_run_function_header (file,
- entry->processor,
- is_function_definition);
- print_jump_body (file, entry->table, isa, cache_rules);
-#endif
break;
}
}
diff --git a/sim/igen/gen-idecode.c b/sim/igen/gen-idecode.c
index 1d4f6314de..cb5ae54ece 100644
--- a/sim/igen/gen-idecode.c
+++ b/sim/igen/gen-idecode.c
@@ -706,327 +706,6 @@ print_idecode_body (lf *file, gen_entry *table, const char *result)
/****************************************************************/
-#if 0
-static void
-print_jump (lf *file, int is_tail)
-{
- if (is_tail)
- {
- lf_putstr (file, "if (keep_running != NULL && !*keep_running)\n");
- lf_putstr (file, " cpu_halt(cpu, nia, was_continuing, 0/*na*/);\n");
- }
-
- if (!options.generate_smp)
- {
- lf_putstr (file, "if (WITH_EVENTS) {\n");
- lf_putstr (file, " if (event_queue_tick(events)) {\n");
- lf_putstr (file, " cpu_set_program_counter(cpu, nia);\n");
- lf_putstr (file, " event_queue_process(events);\n");
- lf_putstr (file, " nia = cpu_get_program_counter(cpu);\n");
- lf_putstr (file, " }\n");
- lf_putstr (file, "}\n");
- }
-
- if (options.generate_smp)
- {
- if (is_tail)
- {
- lf_putstr (file, "cpu_set_program_counter(cpu, nia);\n");
- }
- lf_putstr (file, "if (WITH_EVENTS) {\n");
- lf_putstr (file, " current_cpu += 1;\n");
- lf_putstr (file, " if (current_cpu >= nr_cpus) {\n");
- lf_putstr (file, " if (event_queue_tick(events)) {\n");
- lf_putstr (file, " event_queue_process(events);\n");
- lf_putstr (file, " }\n");
- lf_putstr (file, " current_cpu = 0;\n");
- lf_putstr (file, " }\n");
- lf_putstr (file, "}\n");
- lf_putstr (file, "else {\n");
- lf_putstr (file, " current_cpu = (current_cpu + 1) % nr_cpus;\n");
- lf_putstr (file, "}\n");
- lf_putstr (file, "cpu = cpus[current_cpu];\n");
- lf_putstr (file, "nia = cpu_get_program_counter(cpu);\n");
- }
-
- if (options.gen.icache)
- {
- lf_putstr (file, "cache_entry = cpu_icache_entry(cpu, nia);\n");
- lf_putstr (file, "if (cache_entry->address == nia) {\n");
- lf_putstr (file, " /* cache hit */\n");
- lf_putstr (file, " goto *cache_entry->semantic;\n");
- lf_putstr (file, "}\n");
- if (is_tail)
- {
- lf_putstr (file, "goto cache_miss;\n");
- }
- }
-
- if (!options.gen.icache && is_tail)
- {
- lf_printf (file, "goto idecode;\n");
- }
-
-}
-#endif
-
-
-
-#if 0
-static void
-print_jump_insn (lf *file,
- insn_entry * instruction,
- insn_bits * expanded_bits,
- opcode_field *opcodes, cache_entry *cache_rules)
-{
-
- /* what we are for the moment */
- lf_printf (file, "\n");
- print_my_defines (file, expanded_bits, instruction->name);
-
- /* output the icache entry */
- if (options.gen.icache)
- {
- lf_printf (file, "\n");
- lf_indent (file, -1);
- print_function_name (file,
- instruction->name,
- expanded_bits, function_name_prefix_icache);
- lf_printf (file, ":\n");
- lf_indent (file, +1);
- lf_printf (file, "{\n");
- lf_indent (file, +2);
- lf_putstr (file, "const unsigned_word cia = nia;\n");
- print_itrace (file, instruction, 1 /*putting-value-in-cache */ );
- print_idecode_validate (file, instruction, opcodes);
- lf_printf (file, "\n");
- lf_printf (file, "{\n");
- lf_indent (file, +2);
- print_icache_body (file, instruction, expanded_bits, cache_rules, 0, /*use_defines */
- put_values_in_icache);
- lf_printf (file, "cache_entry->address = nia;\n");
- lf_printf (file, "cache_entry->semantic = &&");
- print_function_name (file,
- instruction->name,
- expanded_bits, function_name_prefix_semantics);
- lf_printf (file, ";\n");
- if (options.gen.semantic_icache)
- {
- print_semantic_body (file, instruction, expanded_bits, opcodes);
- print_jump (file, 1 /*is-tail */ );
- }
- else
- {
- lf_printf (file, "/* goto ");
- print_function_name (file,
- instruction->name,
- expanded_bits, function_name_prefix_semantics);
- lf_printf (file, "; */\n");
- }
- lf_indent (file, -2);
- lf_putstr (file, "}\n");
- lf_indent (file, -2);
- lf_printf (file, "}\n");
- }
-
- /* print the semantics */
- lf_printf (file, "\n");
- lf_indent (file, -1);
- print_function_name (file,
- instruction->name,
- expanded_bits, function_name_prefix_semantics);
- lf_printf (file, ":\n");
- lf_indent (file, +1);
- lf_printf (file, "{\n");
- lf_indent (file, +2);
- lf_putstr (file, "const unsigned_word cia = nia;\n");
- print_icache_body (file,
- instruction,
- expanded_bits,
- cache_rules,
- (options.gen.direct_access
- ? define_variables
- : declare_variables),
- (options.gen.icache
- ? get_values_from_icache : do_not_use_icache));
- print_semantic_body (file, instruction, expanded_bits, opcodes);
- if (options.gen.direct_access)
- print_icache_body (file,
- instruction,
- expanded_bits,
- cache_rules,
- undef_variables,
- (options.gen.icache
- ? get_values_from_icache : do_not_use_icache));
- print_jump (file, 1 /*is tail */ );
- lf_indent (file, -2);
- lf_printf (file, "}\n");
-}
-#endif
-
-
-#if 0
-static void
-print_jump_definition (lf *file,
- gen_entry *entry,
- insn_entry * insn, int depth, void *data)
-{
- cache_entry *cache_rules = (cache_entry *) data;
- if (options.generate_expanded_instructions)
- {
- ASSERT (entry->nr_insns == 1
- && entry->opcode == NULL
- && entry->parent != NULL && entry->parent->opcode != NULL);
- ASSERT (entry->nr_insns == 1
- && entry->opcode == NULL
- && entry->parent != NULL
- && entry->parent->opcode != NULL
- && entry->parent->opcode_rule != NULL);
- print_jump_insn (file,
- entry->insns->words[0]->insn,
- entry->expanded_bits, entry->opcode, cache_rules);
- }
- else
- {
- print_jump_insn (file,
- instruction->words[0]->insn, NULL, NULL, cache_rules);
- }
-}
-#endif
-
-#if 0
-static void
-print_jump_internal_function (lf *file,
- gen_entry *table,
- function_entry * function, void *data)
-{
- if (function->is_internal)
- {
- lf_printf (file, "\n");
- lf_print__line_ref (file, function->line);
- lf_indent (file, -1);
- print_function_name (file,
- function->name,
- NULL,
- (options.gen.icache
- ? function_name_prefix_icache
- : function_name_prefix_semantics));
- lf_printf (file, ":\n");
- lf_indent (file, +1);
- lf_printf (file, "{\n");
- lf_indent (file, +2);
- lf_printf (file, "const unsigned_word cia = nia;\n");
- table_print_code (file, function->code);
- lf_print__internal_ref (file);
- print_sim_engine_abort (file, "Internal function must longjump");
- lf_indent (file, -2);
- lf_printf (file, "}\n");
- }
-}
-#endif
-
-
-
-#if 0
-static void
-print_jump_until_stop_body (lf *file,
- insn_table *table, cache_table * cache_rules)
-{
- lf_printf (file, "{\n");
- lf_indent (file, +2);
- lf_putstr (file, "jmp_buf halt;\n");
- lf_putstr (file, "jmp_buf restart;\n");
- lf_putstr (file, "sim_cpu *cpu = NULL;\n");
- lf_putstr (file, "unsigned_word nia = -1;\n");
- lf_putstr (file, "instruction_word instruction = 0;\n");
- if ((code & generate_with_icache))
- {
- lf_putstr (file, "idecode_cache *cache_entry = NULL;\n");
- }
- if (generate_smp)
- {
- lf_putstr (file, "int current_cpu = -1;\n");
- }
-
- /* all the switches and tables - they know about jumping */
- print_idecode_lookups (file, table, cache_rules);
-
- /* start the simulation up */
- if ((code & generate_with_icache))
- {
- lf_putstr (file, "\n");
- lf_putstr (file, "{\n");
- lf_putstr (file, " int cpu_nr;\n");
- lf_putstr (file, " for (cpu_nr = 0; cpu_nr < nr_cpus; cpu_nr++)\n");
- lf_putstr (file, " cpu_flush_icache(cpus[cpu_nr]);\n");
- lf_putstr (file, "}\n");
- }
-
- lf_putstr (file, "\n");
- lf_putstr (file, "psim_set_halt_and_restart(system, &halt, &restart);\n");
-
- lf_putstr (file, "\n");
- lf_putstr (file, "if (setjmp(halt))\n");
- lf_putstr (file, " return;\n");
-
- lf_putstr (file, "\n");
- lf_putstr (file, "setjmp(restart);\n");
-
- lf_putstr (file, "\n");
- if (!generate_smp)
- {
- lf_putstr (file, "cpu = cpus[0];\n");
- lf_putstr (file, "nia = cpu_get_program_counter(cpu);\n");
- }
- else
- {
- lf_putstr (file, "current_cpu = psim_last_cpu(system);\n");
- }
-
- if (!(code & generate_with_icache))
- {
- lf_printf (file, "\n");
- lf_indent (file, -1);
- lf_printf (file, "idecode:\n");
- lf_indent (file, +1);
- }
-
- print_jump (file, 0 /*is_tail */ );
-
- if ((code & generate_with_icache))
- {
- lf_indent (file, -1);
- lf_printf (file, "cache_miss:\n");
- lf_indent (file, +1);
- }
-
- lf_putstr (file, "instruction\n");
- lf_putstr (file, " = vm_instruction_map_read(cpu_instruction_map(cpu),\n");
- lf_putstr (file, " cpu, nia);\n");
- print_idecode_body (file, table, "/*IGORE*/");
-
- /* print out a table of all the internals functions */
- insn_table_traverse_function (table,
- file, NULL, print_jump_internal_function);
-
- /* print out a table of all the instructions */
- if (generate_expanded_instructions)
- insn_table_traverse_tree (table, file, cache_rules, 1, NULL, /* start */
- print_jump_definition, /* leaf */
- NULL, /* end */
- NULL); /* padding */
- else
- insn_table_traverse_insn (table,
- file, cache_rules, print_jump_definition);
- lf_indent (file, -2);
- lf_printf (file, "}\n");
-}
-#endif
-
-/****************************************************************/
-
-
-
/* Output code to do any final checks on the decoded instruction.
This includes things like verifying any on decoded fields have the
correct value and checking that (for floating point) floating point
diff --git a/sim/igen/gen-model.c b/sim/igen/gen-model.c
index fae1ebb3f6..e5e6570a70 100644
--- a/sim/igen/gen-model.c
+++ b/sim/igen/gen-model.c
@@ -36,404 +36,6 @@
#endif
-#if 0
-static void
-model_c_or_h_data (insn_table *table, lf *file, table_entry *data)
-{
- if (data->annex)
- {
- table_entry_print_cpp_line_nr (file, data->annex_line);
- lf_print__c_code (file, data->annex);
- lf_print__internal_reference (file);
- lf_printf (file, "\n");
- }
-}
-
-static void
-model_c_or_h_function (insn_table *entry,
- lf *file, table_entry *function, char *prefix)
-{
- if (function->fields[function_type] == NULL
- || function->fields[function_type][0] == '\0')
- {
- error ("Model function type not specified for %s",
- function->fields[function_name]);
- }
- lf_printf (file, "\n");
- lf_print_function_type (file, function->fields[function_type], prefix, " ");
- lf_printf (file, "%s\n(%s);\n",
- function->fields[function_name],
- function->fields[function_param]);
- lf_printf (file, "\n");
-}
-
-void
-gen_model_h (insn_table *table, lf *file)
-{
- insn *insn_ptr;
- model *model_ptr;
- insn *macro;
- char *name;
- int model_create_p = 0;
- int model_init_p = 0;
- int model_halt_p = 0;
- int model_mon_info_p = 0;
- int model_mon_info_free_p = 0;
-
- for (macro = model_macros; macro; macro = macro->next)
- {
- model_c_or_h_data (table, file, macro->file_entry);
- }
-
- lf_printf (file, "typedef enum _model_enum {\n");
- lf_printf (file, " MODEL_NONE,\n");
- for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
- {
- lf_printf (file, " MODEL_%s,\n", model_ptr->name);
- }
- lf_printf (file, " nr_models\n");
- lf_printf (file, "} model_enum;\n");
- lf_printf (file, "\n");
-
- lf_printf (file, "#define DEFAULT_MODEL MODEL_%s\n",
- (models) ? models->name : "NONE");
- lf_printf (file, "\n");
-
- lf_printf (file, "typedef struct _model_data model_data;\n");
- lf_printf (file, "typedef struct _model_time model_time;\n");
- lf_printf (file, "\n");
-
- lf_printf (file, "extern model_enum current_model;\n");
- lf_printf (file, "extern const char *model_name[ (int)nr_models ];\n");
- lf_printf (file,
- "extern const char *const *const model_func_unit_name[ (int)nr_models ];\n");
- lf_printf (file,
- "extern const model_time *const model_time_mapping[ (int)nr_models ];\n");
- lf_printf (file, "\n");
-
- for (insn_ptr = model_functions; insn_ptr; insn_ptr = insn_ptr->next)
- {
- model_c_or_h_function (table, file, insn_ptr->file_entry,
- "INLINE_MODEL");
- name = insn_ptr->file_entry->fields[function_name];
- if (strcmp (name, "model_create") == 0)
- model_create_p = 1;
- else if (strcmp (name, "model_init") == 0)
- model_init_p = 1;
- else if (strcmp (name, "model_halt") == 0)
- model_halt_p = 1;
- else if (strcmp (name, "model_mon_info") == 0)
- model_mon_info_p = 1;
- else if (strcmp (name, "model_mon_info_free") == 0)
- model_mon_info_free_p = 1;
- }
-
- if (!model_create_p)
- {
- lf_print_function_type (file, "model_data *", "INLINE_MODEL", " ");
- lf_printf (file, "model_create\n");
- lf_printf (file, "(sim_cpu *cpu);\n");
- lf_printf (file, "\n");
- }
-
- if (!model_init_p)
- {
- lf_print_function_type (file, "void", "INLINE_MODEL", " ");
- lf_printf (file, "model_init\n");
- lf_printf (file, "(model_data *model_ptr);\n");
- lf_printf (file, "\n");
- }
-
- if (!model_halt_p)
- {
- lf_print_function_type (file, "void", "INLINE_MODEL", " ");
- lf_printf (file, "model_halt\n");
- lf_printf (file, "(model_data *model_ptr);\n");
- lf_printf (file, "\n");
- }
-
- if (!model_mon_info_p)
- {
- lf_print_function_type (file, "model_print *", "INLINE_MODEL", " ");
- lf_printf (file, "model_mon_info\n");
- lf_printf (file, "(model_data *model_ptr);\n");
- lf_printf (file, "\n");
- }
-
- if (!model_mon_info_free_p)
- {
- lf_print_function_type (file, "void", "INLINE_MODEL", " ");
- lf_printf (file, "model_mon_info_free\n");
- lf_printf (file, "(model_data *model_ptr,\n");
- lf_printf (file, " model_print *info_ptr);\n");
- lf_printf (file, "\n");
- }
-
- lf_print_function_type (file, "void", "INLINE_MODEL", " ");
- lf_printf (file, "model_set\n");
- lf_printf (file, "(const char *name);\n");
-}
-
-/****************************************************************/
-
-typedef struct _model_c_passed_data model_c_passed_data;
-struct _model_c_passed_data
-{
- lf *file;
- model *model_ptr;
-};
-
-static void
-model_c_insn (insn_table *entry,
- lf *phony_file, void *data, insn * instruction, int depth)
-{
- model_c_passed_data *data_ptr = (model_c_passed_data *) data;
- lf *file = data_ptr->file;
- char *current_name = data_ptr->model_ptr->printable_name;
- table_model_entry *model_ptr = instruction->file_entry->model_first;
-
- while (model_ptr)
- {
- if (model_ptr->fields[insn_model_name] == current_name)
- {
- lf_printf (file, " { %-*s }, /* %s */\n",
- max_model_fields_len,
- model_ptr->fields[insn_model_fields],
- instruction->file_entry->fields[insn_name]);
- return;
- }
-
- model_ptr = model_ptr->next;
- }
-
- lf_printf (file, " { %-*s }, /* %s */\n",
- max_model_fields_len,
- data_ptr->model_ptr->insn_default,
- instruction->file_entry->fields[insn_name]);
-}
-
-static void
-model_c_function (insn_table *table,
- lf *file, table_entry *function, const char *prefix)
-{
- if (function->fields[function_type] == NULL
- || function->fields[function_type][0] == '\0')
- {
- error ("Model function return type not specified for %s",
- function->fields[function_name]);
- }
- else
- {
- lf_printf (file, "\n");
- lf_print_function_type (file, function->fields[function_type], prefix,
- "\n");
- lf_printf (file, "%s(%s)\n", function->fields[function_name],
- function->fields[function_param]);
- }
- lf_printf (file, "{\n");
- if (function->annex)
- {
- lf_indent (file, +2);
- table_entry_print_cpp_line_nr (file, function->annex_line);
- lf_print__c_code (file, function->annex);
- lf_indent (file, -2);
- }
- lf_printf (file, "}\n");
- lf_print__internal_reference (file);
- lf_printf (file, "\n");
-}
-
-void
-gen_model_c (insn_table *table, lf *file)
-{
- insn *insn_ptr;
- model *model_ptr;
- char *name;
- int model_create_p = 0;
- int model_init_p = 0;
- int model_halt_p = 0;
- int model_mon_info_p = 0;
- int model_mon_info_free_p = 0;
-
- lf_printf (file, "\n");
- lf_printf (file, "#include \"cpu.h\"\n");
- lf_printf (file, "#include \"mon.h\"\n");
- lf_printf (file, "\n");
- lf_printf (file, "#ifdef HAVE_STDLIB_H\n");
- lf_printf (file, "#include <stdlib.h>\n");
- lf_printf (file, "#endif\n");
- lf_printf (file, "\n");
-
- for (insn_ptr = model_data; insn_ptr; insn_ptr = insn_ptr->next)
- {
- model_c_or_h_data (table, file, insn_ptr->file_entry);
- }
-
- for (insn_ptr = model_static; insn_ptr; insn_ptr = insn_ptr->next)
- {
- model_c_or_h_function (table, file, insn_ptr->file_entry,
- "/*h*/STATIC");
- }
-
- for (insn_ptr = model_internal; insn_ptr; insn_ptr = insn_ptr->next)
- {
- model_c_or_h_function (table, file, insn_ptr->file_entry,
- "STATIC_INLINE_MODEL");
- }
-
- for (insn_ptr = model_static; insn_ptr; insn_ptr = insn_ptr->next)
- {
- model_c_function (table, file, insn_ptr->file_entry, "/*c*/STATIC");
- }
-
- for (insn_ptr = model_internal; insn_ptr; insn_ptr = insn_ptr->next)
- {
- model_c_function (table, file, insn_ptr->file_entry,
- "STATIC_INLINE_MODEL");
- }
-
- for (insn_ptr = model_functions; insn_ptr; insn_ptr = insn_ptr->next)
- {
- model_c_function (table, file, insn_ptr->file_entry, "INLINE_MODEL");
- name = insn_ptr->file_entry->fields[function_name];
- if (strcmp (name, "model_create") == 0)
- model_create_p = 1;
- else if (strcmp (name, "model_init") == 0)
- model_init_p = 1;
- else if (strcmp (name, "model_halt") == 0)
- model_halt_p = 1;
- else if (strcmp (name, "model_mon_info") == 0)
- model_mon_info_p = 1;
- else if (strcmp (name, "model_mon_info_free") == 0)
- model_mon_info_free_p = 1;
- }
-
- if (!model_create_p)
- {
- lf_print_function_type (file, "model_data *", "INLINE_MODEL", "\n");
- lf_printf (file, "model_create(sim_cpu *cpu)\n");
- lf_printf (file, "{\n");
- lf_printf (file, " return (model_data *)0;\n");
- lf_printf (file, "}\n");
- lf_printf (file, "\n");
- }
-
- if (!model_init_p)
- {
- lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
- lf_printf (file, "model_init(model_data *model_ptr)\n");
- lf_printf (file, "{\n");
- lf_printf (file, "}\n");
- lf_printf (file, "\n");
- }
-
- if (!model_halt_p)
- {
- lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
- lf_printf (file, "model_halt(model_data *model_ptr)\n");
- lf_printf (file, "{\n");
- lf_printf (file, "}\n");
- lf_printf (file, "\n");
- }
-
- if (!model_mon_info_p)
- {
- lf_print_function_type (file, "model_print *", "INLINE_MODEL", "\n");
- lf_printf (file, "model_mon_info(model_data *model_ptr)\n");
- lf_printf (file, "{\n");
- lf_printf (file, " return (model_print *)0;\n");
- lf_printf (file, "}\n");
- lf_printf (file, "\n");
- }
-
- if (!model_mon_info_free_p)
- {
- lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
- lf_printf (file, "model_mon_info_free(model_data *model_ptr,\n");
- lf_printf (file, " model_print *info_ptr)\n");
- lf_printf (file, "{\n");
- lf_printf (file, "}\n");
- lf_printf (file, "\n");
- }
-
- lf_printf (file, "/* Insn functional unit info */\n");
- for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
- {
- model_c_passed_data data;
-
- lf_printf (file, "static const model_time model_time_%s[] = {\n",
- model_ptr->name);
- data.file = file;
- data.model_ptr = model_ptr;
- insn_table_traverse_insn (table, NULL, (void *) &data, model_c_insn);
-
- lf_printf (file, "};\n");
- lf_printf (file, "\n");
- lf_printf (file, "\f\n");
- }
-
- lf_printf (file, "#ifndef _INLINE_C_\n");
- lf_printf (file,
- "const model_time *const model_time_mapping[ (int)nr_models ] = {\n");
- lf_printf (file, " (const model_time *const)0,\n");
- for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
- {
- lf_printf (file, " model_time_%s,\n", model_ptr->name);
- }
- lf_printf (file, "};\n");
- lf_printf (file, "#endif\n");
- lf_printf (file, "\n");
-
- lf_printf (file, "\f\n");
- lf_printf (file, "/* map model enumeration into printable string */\n");
- lf_printf (file, "#ifndef _INLINE_C_\n");
- lf_printf (file, "const char *model_name[ (int)nr_models ] = {\n");
- lf_printf (file, " \"NONE\",\n");
- for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
- {
- lf_printf (file, " \"%s\",\n", model_ptr->printable_name);
- }
- lf_printf (file, "};\n");
- lf_printf (file, "#endif\n");
- lf_printf (file, "\n");
-
- lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
- lf_printf (file, "model_set(const char *name)\n");
- lf_printf (file, "{\n");
- if (models)
- {
- lf_printf (file, " model_enum model;\n");
- lf_printf (file,
- " for(model = MODEL_%s; model < nr_models; model++) {\n",
- models->name);
- lf_printf (file, " if(strcmp(name, model_name[model]) == 0) {\n");
- lf_printf (file, " current_model = model;\n");
- lf_printf (file, " return;\n");
- lf_printf (file, " }\n");
- lf_printf (file, " }\n");
- lf_printf (file, "\n");
- lf_printf (file,
- " error(\"Unknown model '%%s', Models which are known are:%%s\n\",\n");
- lf_printf (file, " name,\n");
- lf_printf (file, " \"");
- for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
- {
- lf_printf (file, "\\n\\t%s", model_ptr->printable_name);
- }
- lf_printf (file, "\");\n");
- }
- else
- {
- lf_printf (file, " error(\"No models are currently known about\");\n");
- }
-
- lf_printf (file, "}\n");
-}
-
-#endif
-
-
-
void
gen_model_h (lf *file, insn_table *table)
{
diff --git a/sim/igen/gen.c b/sim/igen/gen.c
index 3db694e39e..5c1b4be52d 100644
--- a/sim/igen/gen.c
+++ b/sim/igen/gen.c
@@ -555,48 +555,6 @@ make_gen_tables (insn_table *isa, decode_table *rules)
/****************************************************************/
-#if 0
-typedef enum
-{
- field_is_not_constant = 0,
- field_constant_int = 1,
- field_constant_reserved = 2,
- field_constant_string = 3
-}
-constant_field_types;
-
-static constant_field_types
-insn_field_is_constant (insn_field * field, decode_table *rule)
-{
- switch (field->type)
- {
- case insn_field_int:
- /* field is an integer */
- return field_constant_int;
- case insn_field_reserved:
- /* field is `/' and treating that as a constant */
- if (rule->with_zero_reserved)
- return field_constant_reserved;
- else
- return field_is_not_constant;
- case insn_field_wild:
- return field_is_not_constant; /* never constant */
- case insn_field_string:
- /* field, though variable, is on the list of forced constants */
- if (filter_is_member (rule->constant_field_names, field->val_string))
- return field_constant_string;
- else
- return field_is_not_constant;
- }
- ERROR ("Internal error");
- return field_is_not_constant;
-}
-#endif
-
-
-/****************************************************************/
-
-
/* Is the bit, according to the decode rule, identical across all the
instructions? */
static int
@@ -766,75 +724,6 @@ gen_entry_find_opcode_field (insn_list *insns,
break;
}
-
-#if 0
- for (entry = insns; entry != NULL; entry = entry->next)
- {
- insn_word_entry *fields = entry->insn->word[rule->word_nr];
- opcode_field new_opcode;
-
- ASSERT (fields != NULL);
-
- /* find a start point for the opcode field */
- new_opcode.first = rule->first;
- while (new_opcode.first <= rule->last
- && (!string_only
- ||
- (insn_field_is_constant (fields->bit[new_opcode.first], rule)
- != field_constant_string)) && (string_only
- ||
- (insn_field_is_constant
- (fields->
- bit[new_opcode.first],
- rule) ==
- field_is_not_constant)))
- {
- int new_first = fields->bit[new_opcode.first]->last + 1;
- ASSERT (new_first > new_opcode.first);
- new_opcode.first = new_first;
- }
- ASSERT (new_opcode.first > rule->last
- || (string_only
- && insn_field_is_constant (fields->bit[new_opcode.first],
- rule) == field_constant_string)
- || (!string_only
- && insn_field_is_constant (fields->bit[new_opcode.first],
- rule)));
-
- /* find the end point for the opcode field */
- new_opcode.last = rule->last;
- while (new_opcode.last >= rule->first
- && (!string_only
- || insn_field_is_constant (fields->bit[new_opcode.last],
- rule) != field_constant_string)
- && (string_only
- || !insn_field_is_constant (fields->bit[new_opcode.last],
- rule)))
- {
- int new_last = fields->bit[new_opcode.last]->first - 1;
- ASSERT (new_last < new_opcode.last);
- new_opcode.last = new_last;
- }
- ASSERT (new_opcode.last < rule->first
- || (string_only
- && insn_field_is_constant (fields->bit[new_opcode.last],
- rule) == field_constant_string)
- || (!string_only
- && insn_field_is_constant (fields->bit[new_opcode.last],
- rule)));
-
- /* now see if our current opcode needs expanding to include the
- interesting fields within this instruction */
- if (new_opcode.first <= rule->last
- && curr_opcode.first > new_opcode.first)
- curr_opcode.first = new_opcode.first;
- if (new_opcode.last >= rule->first
- && curr_opcode.last < new_opcode.last)
- curr_opcode.last = new_opcode.last;
-
- }
-#endif
-
/* did the final opcode field end up being empty? */
if (curr_opcode.first > curr_opcode.last)
{
diff --git a/sim/igen/ld-insn.c b/sim/igen/ld-insn.c
index 6c1d49609e..86506eabed 100644
--- a/sim/igen/ld-insn.c
+++ b/sim/igen/ld-insn.c
@@ -874,13 +874,6 @@ parse_insn_model_record (table *file,
filter_parse (&insn->processors, name);
}
}
-#if 0
- /* for some reason record the max length of any
- function unit field */
- int len = strlen (insn_model_ptr->field[insn_model_fields]);
- if (model->max_model_fields_len < len)
- model->max_model_fields_len = len;
-#endif
/* link it in */
last_insn_model = &insn->models;
while ((*last_insn_model) != NULL)
diff --git a/sim/igen/misc.h b/sim/igen/misc.h
index 808570a349..76a29b6ce6 100644
--- a/sim/igen/misc.h
+++ b/sim/igen/misc.h
@@ -110,10 +110,6 @@ do { \
#define ZALLOC(TYPE) ((TYPE*) zalloc (sizeof(TYPE)))
#define NZALLOC(TYPE,N) ((TYPE*) zalloc (sizeof(TYPE) * (N)))
-#if 0
-#define STRDUP(STRING) (strcpy (zalloc (strlen (STRING) + 1), (STRING)))
-#define STRNDUP(STRING,LEN) (strncpy (zalloc ((LEN) + 1), (STRING), (LEN)))
-#endif
extern void *zalloc (long size);
OpenPOWER on IntegriCloud