diff options
author | Andreas Färber <afaerber@suse.de> | 2013-01-20 01:22:25 +0100 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2013-02-16 14:50:58 +0100 |
commit | 78ce64f492498050083e46cdd7e6cbae6435843c (patch) | |
tree | 87b1d67a38dad4e389e4d97a3fa819e365d41b5b | |
parent | cd0c24f9095b1f825210bb9d9f99532c78668074 (diff) |
target-mips: Move TCG initialization to MIPSCPU initfn
Make mips_tcg_init() non-static and add tcg_enabled() check to suppress
it for qtest.
Signed-off-by: Andreas Färber <afaerber@suse.de>
-rw-r--r-- | target-mips/cpu.c | 4 | ||||
-rw-r--r-- | target-mips/cpu.h | 1 | ||||
-rw-r--r-- | target-mips/translate.c | 3 |
3 files changed, 6 insertions, 2 deletions
diff --git a/target-mips/cpu.c b/target-mips/cpu.c index 18895da80e..09d61723c5 100644 --- a/target-mips/cpu.c +++ b/target-mips/cpu.c @@ -59,6 +59,10 @@ static void mips_cpu_initfn(Object *obj) CPUMIPSState *env = &cpu->env; cpu_exec_init(env); + + if (tcg_enabled()) { + mips_tcg_init(); + } } static void mips_cpu_class_init(ObjectClass *c, void *data) diff --git a/target-mips/cpu.h b/target-mips/cpu.h index 5963d62973..0e198b12db 100644 --- a/target-mips/cpu.h +++ b/target-mips/cpu.h @@ -629,6 +629,7 @@ enum { #define CPU_INTERRUPT_WAKE CPU_INTERRUPT_TGT_INT_0 int cpu_mips_exec(CPUMIPSState *s); +void mips_tcg_init(void); MIPSCPU *cpu_mips_init(const char *cpu_model); int cpu_mips_signal_handler(int host_signum, void *pinfo, void *puc); diff --git a/target-mips/translate.c b/target-mips/translate.c index d7f650e0bf..4ee9615fda 100644 --- a/target-mips/translate.c +++ b/target-mips/translate.c @@ -15836,7 +15836,7 @@ void cpu_dump_state (CPUMIPSState *env, FILE *f, fprintf_function cpu_fprintf, #endif } -static void mips_tcg_init(void) +void mips_tcg_init(void) { int i; static int inited; @@ -15915,7 +15915,6 @@ MIPSCPU *cpu_mips_init(const char *cpu_model) #endif fpu_init(env, def); mvp_init(env, def); - mips_tcg_init(); object_property_set_bool(OBJECT(cpu), true, "realized", NULL); |