Lines Matching refs:file

41 print_engine_issue_prefix_hook (lf *file)  in print_engine_issue_prefix_hook()  argument
43 lf_printf (file, "\n"); in print_engine_issue_prefix_hook()
44 lf_indent_suppress (file); in print_engine_issue_prefix_hook()
45 lf_printf (file, "#if defined (ENGINE_ISSUE_PREFIX_HOOK)\n"); in print_engine_issue_prefix_hook()
46 lf_printf (file, "ENGINE_ISSUE_PREFIX_HOOK();\n"); in print_engine_issue_prefix_hook()
47 lf_indent_suppress (file); in print_engine_issue_prefix_hook()
48 lf_printf (file, "#endif\n"); in print_engine_issue_prefix_hook()
49 lf_printf (file, "\n"); in print_engine_issue_prefix_hook()
53 print_engine_issue_postfix_hook (lf *file) in print_engine_issue_postfix_hook() argument
55 lf_printf (file, "\n"); in print_engine_issue_postfix_hook()
56 lf_indent_suppress (file); in print_engine_issue_postfix_hook()
57 lf_printf (file, "#if defined (ENGINE_ISSUE_POSTFIX_HOOK)\n"); in print_engine_issue_postfix_hook()
58 lf_printf (file, "ENGINE_ISSUE_POSTFIX_HOOK();\n"); in print_engine_issue_postfix_hook()
59 lf_indent_suppress (file); in print_engine_issue_postfix_hook()
60 lf_printf (file, "#endif\n"); in print_engine_issue_postfix_hook()
61 lf_printf (file, "\n"); in print_engine_issue_postfix_hook()
66 print_run_body (lf *file, gen_entry *table) in print_run_body() argument
76 lf_printf (file, "{\n"); in print_run_body()
77 lf_indent (file, +2); in print_run_body()
80 lf_printf (file, "%sinstruction_address cia;\n", in print_run_body()
83 lf_printf (file, "int current_cpu = next_cpu_nr;\n"); in print_run_body()
87 lf_printf (file, "/* flush the icache of a possible break insn */\n"); in print_run_body()
88 lf_printf (file, "{\n"); in print_run_body()
89 lf_printf (file, " int cpu_nr;\n"); in print_run_body()
90 lf_printf (file, " for (cpu_nr = 0; cpu_nr < nr_cpus; cpu_nr++)\n"); in print_run_body()
91 lf_printf (file, " cpu_flush_icache (STATE_CPU (sd, cpu_nr));\n"); in print_run_body()
92 lf_printf (file, "}\n"); in print_run_body()
98 lf_putstr (file, "\ in print_run_body()
115 lf_putstr (file, "\n"); in print_run_body()
116 lf_putstr (file, "/* prime the main loop */\n"); in print_run_body()
117 lf_putstr (file, "SIM_ASSERT (current_cpu == 0);\n"); in print_run_body()
118 lf_putstr (file, "SIM_ASSERT (nr_cpus == 1);\n"); in print_run_body()
119 lf_putstr (file, "cia = CIA_GET (CPU);\n"); in print_run_body()
121 lf_putstr (file, "\n"); in print_run_body()
122 lf_putstr (file, "while (1)\n"); in print_run_body()
123 lf_putstr (file, " {\n"); in print_run_body()
124 lf_indent (file, +4); in print_run_body()
126 lf_printf (file, "%sinstruction_address nia;\n", in print_run_body()
129 lf_printf (file, "\n"); in print_run_body()
132 lf_printf (file, in print_run_body()
135 print_engine_issue_prefix_hook (file); in print_run_body()
136 print_idecode_body (file, table, "nia = "); in print_run_body()
137 print_engine_issue_postfix_hook (file); in print_run_body()
141 lf_putstr (file, "idecode_cache *cache_entry =\n"); in print_run_body()
142 lf_putstr (file, " cpu_icache_entry (cpu, cia);\n"); in print_run_body()
143 lf_putstr (file, "if (cache_entry->address == cia)\n"); in print_run_body()
144 lf_putstr (file, " {\n"); in print_run_body()
145 lf_indent (file, -4); in print_run_body()
146 lf_putstr (file, "/* cache hit */\n"); in print_run_body()
147 lf_putstr (file, in print_run_body()
149 lf_putstr (file, "cia = semantic (cpu, cache_entry, cia);\n"); in print_run_body()
151 lf_indent (file, -4); in print_run_body()
152 lf_putstr (file, " }\n"); in print_run_body()
153 lf_putstr (file, "else\n"); in print_run_body()
154 lf_putstr (file, " {\n"); in print_run_body()
155 lf_indent (file, +4); in print_run_body()
156 lf_putstr (file, "/* cache miss */\n"); in print_run_body()
159 lf_putstr (file, "idecode_semantic *semantic;\n"); in print_run_body()
161 lf_printf (file, "instruction_word instruction = IMEM%d (cia);\n", in print_run_body()
163 lf_putstr (file, "if (WITH_MON != 0)\n"); in print_run_body()
164 lf_putstr (file, in print_run_body()
168 lf_putstr (file, "{\n"); in print_run_body()
169 lf_indent (file, +2); in print_run_body()
170 print_engine_issue_prefix_hook (file); in print_run_body()
171 print_idecode_body (file, table, "nia ="); in print_run_body()
172 print_engine_issue_postfix_hook (file); in print_run_body()
173 lf_indent (file, -2); in print_run_body()
174 lf_putstr (file, "}\n"); in print_run_body()
178 print_engine_issue_prefix_hook (file); in print_run_body()
179 print_idecode_body (file, table, "semantic ="); in print_run_body()
180 lf_putstr (file, "nia = semantic (cpu, cache_entry, cia);\n"); in print_run_body()
181 print_engine_issue_postfix_hook (file); in print_run_body()
183 lf_indent (file, -4); in print_run_body()
184 lf_putstr (file, " }\n"); in print_run_body()
191 lf_printf (file, "\n"); in print_run_body()
192 lf_printf (file, "/* Update the instruction address */\n"); in print_run_body()
193 lf_printf (file, "cia = nia;\n"); in print_run_body()
201 lf_putstr (file, "\n"); in print_run_body()
202 lf_putstr (file, "/* process any events */\n"); in print_run_body()
203 lf_putstr (file, "if (sim_events_tick (sd))\n"); in print_run_body()
204 lf_putstr (file, " {\n"); in print_run_body()
205 lf_putstr (file, " CIA_SET (CPU, cia);\n"); in print_run_body()
206 lf_putstr (file, " sim_events_process (sd);\n"); in print_run_body()
207 lf_putstr (file, " cia = CIA_GET (CPU);\n"); in print_run_body()
208 lf_putstr (file, " }\n"); in print_run_body()
210 lf_indent (file, -4); in print_run_body()
211 lf_printf (file, " }\n"); in print_run_body()
217 lf_putstr (file, "\ in print_run_body()
227 lf_putstr (file, "\n"); in print_run_body()
228 lf_printf (file, in print_run_body()
230 lf_printf (file, "SIM_ASSERT (current_cpu >= 0);\n"); in print_run_body()
231 lf_printf (file, "SIM_ASSERT (current_cpu <= nr_cpus - 1);\n"); in print_run_body()
232 lf_printf (file, "SIM_ASSERT (nr_cpus <= MAX_NR_PROCESSORS);\n"); in print_run_body()
234 lf_putstr (file, "\n"); in print_run_body()
235 lf_putstr (file, "while (1)\n"); in print_run_body()
236 lf_putstr (file, " {\n"); in print_run_body()
237 lf_indent (file, +4); in print_run_body()
238 lf_putstr (file, "sim_cpu *cpu = STATE_CPU (sd, current_cpu);\n"); in print_run_body()
239 lf_putstr (file, "instruction_address cia = CIA_GET (cpu);\n"); in print_run_body()
240 lf_putstr (file, "\n"); in print_run_body()
244 lf_printf (file, "instruction_word instruction_0 = IMEM%d (cia);\n", in print_run_body()
246 print_engine_issue_prefix_hook (file); in print_run_body()
247 print_idecode_body (file, table, "cia ="); in print_run_body()
248 lf_putstr (file, "CIA_SET (cpu, cia);\n"); in print_run_body()
249 print_engine_issue_postfix_hook (file); in print_run_body()
254 lf_putstr (file, "engine_cache *cache_entry =\n"); in print_run_body()
255 lf_putstr (file, " cpu_icache_entry(processor, cia);\n"); in print_run_body()
256 lf_putstr (file, "\n"); in print_run_body()
257 lf_putstr (file, "if (cache_entry->address == cia) {\n"); in print_run_body()
259 lf_indent (file, +2); in print_run_body()
260 lf_putstr (file, "\n"); in print_run_body()
261 lf_putstr (file, "/* cache hit */\n"); in print_run_body()
262 lf_putstr (file, in print_run_body()
264 lf_putstr (file, in print_run_body()
267 lf_putstr (file, "cpu_set_program_counter(processor, cia);\n"); in print_run_body()
268 lf_putstr (file, "\n"); in print_run_body()
269 lf_indent (file, -2); in print_run_body()
271 lf_putstr (file, "}\n"); in print_run_body()
272 lf_putstr (file, "else {\n"); in print_run_body()
274 lf_indent (file, +2); in print_run_body()
275 lf_putstr (file, "\n"); in print_run_body()
276 lf_putstr (file, "/* cache miss */\n"); in print_run_body()
279 lf_putstr (file, "engine_semantic *semantic;\n"); in print_run_body()
281 lf_printf (file, "instruction_word instruction = IMEM%d (cia);\n", in print_run_body()
283 lf_putstr (file, "if (WITH_MON != 0)\n"); in print_run_body()
284 lf_putstr (file, in print_run_body()
288 lf_putstr (file, "{\n"); in print_run_body()
289 lf_indent (file, +2); in print_run_body()
290 print_engine_issue_prefix_hook (file); in print_run_body()
291 print_idecode_body (file, table, "cia ="); in print_run_body()
292 print_engine_issue_postfix_hook (file); in print_run_body()
293 lf_indent (file, -2); in print_run_body()
294 lf_putstr (file, "}\n"); in print_run_body()
298 print_engine_issue_prefix_hook (file); in print_run_body()
299 print_idecode_body (file, table, "semantic = "); in print_run_body()
300 lf_putstr (file, in print_run_body()
302 print_engine_issue_postfix_hook (file); in print_run_body()
305 lf_putstr (file, "cpu_set_program_counter(processor, cia);\n"); in print_run_body()
306 lf_putstr (file, "\n"); in print_run_body()
307 lf_indent (file, -2); in print_run_body()
309 lf_putstr (file, "}\n"); in print_run_body()
312 lf_putstr (file, "\n"); in print_run_body()
313 lf_putstr (file, "current_cpu += 1;\n"); in print_run_body()
314 lf_putstr (file, "if (current_cpu == nr_cpus)\n"); in print_run_body()
315 lf_putstr (file, " {\n"); in print_run_body()
316 lf_putstr (file, " if (sim_events_tick (sd))\n"); in print_run_body()
317 lf_putstr (file, " {\n"); in print_run_body()
318 lf_putstr (file, " sim_events_process (sd);\n"); in print_run_body()
319 lf_putstr (file, " }\n"); in print_run_body()
320 lf_putstr (file, " current_cpu = 0;\n"); in print_run_body()
321 lf_putstr (file, " }\n"); in print_run_body()
324 lf_indent (file, -4); in print_run_body()
325 lf_putstr (file, " }\n"); in print_run_body()
329 lf_indent (file, -2); in print_run_body()
330 lf_putstr (file, "}\n"); in print_run_body()
337 print_engine_run_function_header (lf *file, in print_engine_run_function_header() argument
342 lf_printf (file, "\n"); in print_engine_run_function_header()
346 lf_print__function_type (file, "void", "INLINE_ENGINE", "\n"); in print_engine_run_function_header()
349 lf_print__function_type (file, "void", "INLINE_ENGINE", " "); in print_engine_run_function_header()
352 lf_printf (file, "void (*"); in print_engine_run_function_header()
355 indent = print_function_name (file, "run", NULL, /* format name */ in print_engine_run_function_header()
361 lf_putstr (file, "\n("); in print_engine_run_function_header()
365 indent += lf_printf (file, " ("); in print_engine_run_function_header()
368 lf_putstr (file, ")\n("); in print_engine_run_function_header()
372 lf_indent (file, +indent); in print_engine_run_function_header()
373 lf_printf (file, "SIM_DESC sd,\n"); in print_engine_run_function_header()
374 lf_printf (file, "int next_cpu_nr,\n"); in print_engine_run_function_header()
375 lf_printf (file, "int nr_cpus,\n"); in print_engine_run_function_header()
376 lf_printf (file, "int siggnal)"); in print_engine_run_function_header()
377 lf_indent (file, -indent); in print_engine_run_function_header()
381 lf_putstr (file, "\n"); in print_engine_run_function_header()
385 lf_putstr (file, ";\n"); in print_engine_run_function_header()
392 gen_engine_h (lf *file, in gen_engine_h() argument
398 print_engine_run_function_header (file, in gen_engine_h()
407 gen_engine_c (lf *file, in gen_engine_c() argument
412 print_includes (file); in gen_engine_c()
413 print_include_inline (file, options.module.semantics); in gen_engine_c()
414 print_include (file, options.module.engine); in gen_engine_c()
415 lf_printf (file, "\n"); in gen_engine_c()
416 lf_printf (file, "#include \"sim-assert.h\"\n"); in gen_engine_c()
417 lf_printf (file, "\n"); in gen_engine_c()
418 print_idecode_globals (file); in gen_engine_c()
419 lf_printf (file, "\n"); in gen_engine_c()
426 print_idecode_lookups (file, entry->table, cache_rules); in gen_engine_c()
429 print_engine_run_function_header (file, in gen_engine_c()
433 print_run_body (file, entry->table); in gen_engine_c()