aboutsummaryrefslogtreecommitdiff
path: root/sim/ppc/igen.c
diff options
context:
space:
mode:
Diffstat (limited to 'sim/ppc/igen.c')
-rw-r--r--sim/ppc/igen.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/sim/ppc/igen.c b/sim/ppc/igen.c
index 07a825b..79010ed 100644
--- a/sim/ppc/igen.c
+++ b/sim/ppc/igen.c
@@ -1747,9 +1747,13 @@ gen_icache_h(icache_tree *tree,
}
else {
/* alernativly, since no cache, #define the fields to be
- extractions from the instruction variable */
+ extractions from the instruction variable. Emit a dummy
+ definition for idecode_cache to allow model_issue to not
+ be #ifdefed at the call level */
cache_rules *cache_rule;
lf_printf(file, "\n");
+ lf_printf(file, "typedef void idecode_cache;\n");
+ lf_printf(file, "\n");
for (cache_rule = cache_table;
cache_rule != NULL;
cache_rule = cache_rule->next) {
@@ -2136,7 +2140,9 @@ lf_print_c_semantic(lf *file,
instruction->file_entry->fields[insn_name],
NULL,
function_name_prefix_itable);
- lf_printf(file, ", processor, cpu_model(processor), cia);\n");
+ lf_printf(file, ", cpu_model(processor), cia, %s);\n",
+ ((idecode_cache) ? "cache_entry, 0" : "(idecode_cache *)0, instruction"));
+
lf_printf(file, "}\n");
lf_printf(file, "\n");
@@ -3050,24 +3056,23 @@ gen_model_h(insn_table *table, lf *file)
if (!model_init_p) {
lf_printf(file, "INLINE_MODEL void model_init\n");
- lf_printf(file, "(cpu *processor,\n");
- lf_printf(file, " model_data *model_ptr);\n");
+ lf_printf(file, "(model_data *model_ptr);\n");
lf_printf(file, "\n");
}
if (!model_halt_p) {
lf_printf(file, "INLINE_MODEL void model_halt\n");
- lf_printf(file, "(cpu *processor,\n");
- lf_printf(file, " model_data *model_ptr);\n");
+ lf_printf(file, "(model_data *model_ptr);\n");
lf_printf(file, "\n");
}
if (!model_issue_p) {
lf_printf(file, "INLINE_MODEL void model_issue\n");
lf_printf(file, "(itable_index index,\n");
- lf_printf(file, " cpu *processor,\n");
lf_printf(file, " model_data *model_ptr,\n");
- lf_printf(file, " unsigned_word cia);\n");
+ lf_printf(file, " unsigned_word cia,\n");
+ lf_printf(file, " idecode_cache *cache_entry,\n");
+ lf_printf(file, " instruction_word instruction);\n");
lf_printf(file, "\n");
}
@@ -3220,16 +3225,14 @@ gen_model_c(insn_table *table, lf *file)
}
if (!model_init_p) {
- lf_printf(file, "INLINE_MODEL void model_init(cpu *processor,\n");
- lf_printf(file, " model_data *model_ptr)\n");
+ lf_printf(file, "INLINE_MODEL void model_init(model_data *model_ptr)\n");
lf_printf(file, "{\n");
lf_printf(file, "}\n");
lf_printf(file, "\n");
}
if (!model_halt_p) {
- lf_printf(file, "INLINE_MODEL void model_halt(cpu *processor,\n");
- lf_printf(file, " model_data *model_ptr)\n");
+ lf_printf(file, "INLINE_MODEL void model_halt(model_data *model_ptr)\n");
lf_printf(file, "{\n");
lf_printf(file, "}\n");
lf_printf(file, "\n");
@@ -3237,9 +3240,10 @@ gen_model_c(insn_table *table, lf *file)
if (!model_issue_p) {
lf_printf(file, "INLINE_MODEL void model_issue(itable_index index,\n");
- lf_printf(file, " cpu *processor,\n");
lf_printf(file, " model_data *model_ptr,\n");
- lf_printf(file, " unsigned_word cia);\n");
+ lf_printf(file, " unsigned_word cia,\n");
+ lf_printf(file, " idecode_cache *cache_entry,\n");
+ lf_printf(file, " instruction_word instruction)\n");
lf_printf(file, "{\n");
lf_printf(file, "}\n");
lf_printf(file, "\n");