From aa7408ec18c3517b2476a3671cd0b7f171241e2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Sun, 20 Jan 2013 01:30:32 +0100 Subject: target-sh4: Move TCG initialization to SuperHCPU initfn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a tcg_enabled() check to suppress it for qtest. Signed-off-by: Andreas Färber --- target-sh4/cpu.c | 4 ++++ target-sh4/cpu.h | 1 + target-sh4/translate.c | 3 +-- 3 files changed, 6 insertions(+), 2 deletions(-) (limited to 'target-sh4') diff --git a/target-sh4/cpu.c b/target-sh4/cpu.c index c66442f445..dc5d7568ea 100644 --- a/target-sh4/cpu.c +++ b/target-sh4/cpu.c @@ -73,6 +73,10 @@ static void superh_cpu_initfn(Object *obj) cpu_exec_init(env); env->movcal_backup_tail = &(env->movcal_backup); + + if (tcg_enabled()) { + sh4_translate_init(); + } } static const VMStateDescription vmstate_sh_cpu = { diff --git a/target-sh4/cpu.h b/target-sh4/cpu.h index 34e9b0acf7..49dcd9e7f3 100644 --- a/target-sh4/cpu.h +++ b/target-sh4/cpu.h @@ -191,6 +191,7 @@ typedef struct CPUSH4State { #include "cpu-qom.h" +void sh4_translate_init(void); SuperHCPU *cpu_sh4_init(const char *cpu_model); int cpu_sh4_exec(CPUSH4State * s); int cpu_sh4_signal_handler(int host_signum, void *pinfo, diff --git a/target-sh4/translate.c b/target-sh4/translate.c index 2409a103b2..c58d79a5cd 100644 --- a/target-sh4/translate.c +++ b/target-sh4/translate.c @@ -71,7 +71,7 @@ static uint32_t gen_opc_hflags[OPC_BUF_SIZE]; #include "exec/gen-icount.h" -static void sh4_translate_init(void) +void sh4_translate_init(void) { int i; static int done_init = 0; @@ -251,7 +251,6 @@ SuperHCPU *cpu_sh4_init(const char *cpu_model) cpu = SUPERH_CPU(object_new(TYPE_SUPERH_CPU)); env = &cpu->env; env->features = def->features; - sh4_translate_init(); env->cpu_model_str = cpu_model; cpu_register(env, def); -- cgit v1.2.3