target-i386: Move TCG initialization check to tcg_x86_init()
Instead of requiring cpu.c to check if TCG was already initialized, simply let the function be called multiple times. Suggested-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
3e2c0e062f
commit
4fe15cdedf
|
@ -3088,7 +3088,6 @@ static void x86_cpu_initfn(Object *obj)
|
||||||
X86CPUClass *xcc = X86_CPU_GET_CLASS(obj);
|
X86CPUClass *xcc = X86_CPU_GET_CLASS(obj);
|
||||||
CPUX86State *env = &cpu->env;
|
CPUX86State *env = &cpu->env;
|
||||||
FeatureWord w;
|
FeatureWord w;
|
||||||
static int inited;
|
|
||||||
|
|
||||||
cs->env_ptr = env;
|
cs->env_ptr = env;
|
||||||
cpu_exec_init(cs, &error_abort);
|
cpu_exec_init(cs, &error_abort);
|
||||||
|
@ -3139,8 +3138,7 @@ static void x86_cpu_initfn(Object *obj)
|
||||||
x86_cpu_load_def(cpu, xcc->cpu_def, &error_abort);
|
x86_cpu_load_def(cpu, xcc->cpu_def, &error_abort);
|
||||||
|
|
||||||
/* init various static tables used in TCG mode */
|
/* init various static tables used in TCG mode */
|
||||||
if (tcg_enabled() && !inited) {
|
if (tcg_enabled()) {
|
||||||
inited = 1;
|
|
||||||
tcg_x86_init();
|
tcg_x86_init();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8144,6 +8144,12 @@ void tcg_x86_init(void)
|
||||||
"bnd0_ub", "bnd1_ub", "bnd2_ub", "bnd3_ub"
|
"bnd0_ub", "bnd1_ub", "bnd2_ub", "bnd3_ub"
|
||||||
};
|
};
|
||||||
int i;
|
int i;
|
||||||
|
static bool initialized;
|
||||||
|
|
||||||
|
if (initialized) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
initialized = true;
|
||||||
|
|
||||||
cpu_env = tcg_global_reg_new_ptr(TCG_AREG0, "env");
|
cpu_env = tcg_global_reg_new_ptr(TCG_AREG0, "env");
|
||||||
cpu_cc_op = tcg_global_mem_new_i32(cpu_env,
|
cpu_cc_op = tcg_global_mem_new_i32(cpu_env,
|
||||||
|
|
Loading…
Reference in New Issue