@@ -57,7 +57,6 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
uint32_t flags,
int cflags);
-void cpu_exec_init(CPUState *cpu);
void cpu_exec_realize(CPUState *cpu, Error **errp);
void QEMU_NORETURN cpu_loop_exit(CPUState *cpu);
void QEMU_NORETURN cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc);
@@ -946,6 +946,7 @@ AddressSpace *cpu_get_address_space(CPUState *cpu, int asidx);
void QEMU_NORETURN cpu_abort(CPUState *cpu, const char *fmt, ...)
GCC_FMT_ATTR(2, 3);
+void cpu_exec_init(CPUState *cpu);
void cpu_exec_unrealize(CPUState *cpu);
#ifdef CONFIG_SOFTMMU
@@ -362,6 +362,8 @@ static void cpu_common_initfn(Object *obj)
QTAILQ_INIT(&cpu->watchpoints);
cpu->trace_dstate = bitmap_new(trace_get_vcpu_event_count());
+
+ cpu_exec_init(cpu);
}
static void cpu_common_finalize(Object *obj)
@@ -273,7 +273,6 @@ static void alpha_cpu_initfn(Object *obj)
CPUAlphaState *env = &cpu->env;
cs->env_ptr = env;
- cpu_exec_init(cs);
tlb_flush(cs, 1);
alpha_translate_init();
@@ -443,7 +443,6 @@ static void arm_cpu_initfn(Object *obj)
static bool inited;
cs->env_ptr = &cpu->env;
- cpu_exec_init(cs);
cpu->cp_regs = g_hash_table_new_full(g_int_hash, g_int_equal,
g_free, g_free);
@@ -194,7 +194,6 @@ static void cris_cpu_initfn(Object *obj)
static bool tcg_initialized;
cs->env_ptr = env;
- cpu_exec_init(cs);
env->pregs[PR_VR] = ccc->vr;
@@ -3368,7 +3368,6 @@ static void x86_cpu_initfn(Object *obj)
FeatureWord w;
cs->env_ptr = env;
- cpu_exec_init(cs);
object_property_add(obj, "family", "int",
x86_cpuid_version_get_family,
@@ -167,7 +167,6 @@ static void lm32_cpu_initfn(Object *obj)
static bool tcg_initialized;
cs->env_ptr = env;
- cpu_exec_init(cs);
env->flags = 0;
@@ -183,7 +183,6 @@ static void m68k_cpu_initfn(Object *obj)
static bool inited;
cs->env_ptr = env;
- cpu_exec_init(cs);
if (tcg_enabled() && !inited) {
inited = true;
@@ -206,7 +206,6 @@ static void mb_cpu_initfn(Object *obj)
static bool tcg_initialized;
cs->env_ptr = env;
- cpu_exec_init(cs);
set_float_rounding_mode(float_round_nearest_even, &env->fp_status);
@@ -145,7 +145,6 @@ static void mips_cpu_initfn(Object *obj)
CPUMIPSState *env = &cpu->env;
cs->env_ptr = env;
- cpu_exec_init(cs);
if (tcg_enabled()) {
mips_tcg_init();
@@ -82,7 +82,6 @@ static void moxie_cpu_initfn(Object *obj)
static int inited;
cs->env_ptr = &cpu->env;
- cpu_exec_init(cs);
if (tcg_enabled() && !inited) {
inited = 1;
@@ -102,7 +102,6 @@ static void openrisc_cpu_initfn(Object *obj)
static int inited;
cs->env_ptr = &cpu->env;
- cpu_exec_init(cs);
#ifndef CONFIG_USER_ONLY
cpu_openrisc_mmu_init(cpu);
@@ -10432,7 +10432,6 @@ static void ppc_cpu_initfn(Object *obj)
CPUPPCState *env = &cpu->env;
cs->env_ptr = env;
- cpu_exec_init(cs);
env->msr_mask = pcc->msr_mask;
env->mmu_model = pcc->mmu_model;
@@ -289,7 +289,6 @@ static void s390_cpu_initfn(Object *obj)
cs->env_ptr = env;
cs->halted = 1;
cs->exception_index = EXCP_HLT;
- cpu_exec_init(cs);
object_property_add(OBJECT(cpu), "id", "int64_t", s390x_cpu_get_id,
s390x_cpu_set_id, NULL, NULL, NULL);
s390_cpu_model_register_props(obj);
@@ -265,7 +265,6 @@ static void superh_cpu_initfn(Object *obj)
CPUSH4State *env = &cpu->env;
cs->env_ptr = env;
- cpu_exec_init(cs);
env->movcal_backup_tail = &(env->movcal_backup);
@@ -822,7 +822,6 @@ static void sparc_cpu_initfn(Object *obj)
CPUSPARCState *env = &cpu->env;
cs->env_ptr = env;
- cpu_exec_init(cs);
if (tcg_enabled()) {
gen_intermediate_code_init(env);
@@ -114,7 +114,6 @@ static void tilegx_cpu_initfn(Object *obj)
static bool tcg_initialized;
cs->env_ptr = env;
- cpu_exec_init(cs);
if (tcg_enabled() && !tcg_initialized) {
tcg_initialized = true;
@@ -102,7 +102,6 @@ static void tricore_cpu_initfn(Object *obj)
CPUTriCoreState *env = &cpu->env;
cs->env_ptr = env;
- cpu_exec_init(cs);
if (tcg_enabled()) {
tricore_tcg_init();
@@ -124,7 +124,6 @@ static void uc32_cpu_initfn(Object *obj)
static bool inited;
cs->env_ptr = env;
- cpu_exec_init(cs);
#ifdef CONFIG_USER_ONLY
env->uncached_asr = ASR_MODE_USER;
@@ -124,7 +124,6 @@ static void xtensa_cpu_initfn(Object *obj)
cs->env_ptr = env;
env->config = xcc->config;
- cpu_exec_init(cs);
if (tcg_enabled() && !tcg_inited) {
tcg_inited = true;
As all XX_cpu_initfn() call cpu_exec_init(), we can move it to cpu_common_initfn(). CC: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Laurent Vivier <lvivier@redhat.com> --- include/exec/exec-all.h | 1 - include/qom/cpu.h | 1 + qom/cpu.c | 2 ++ target-alpha/cpu.c | 1 - target-arm/cpu.c | 1 - target-cris/cpu.c | 1 - target-i386/cpu.c | 1 - target-lm32/cpu.c | 1 - target-m68k/cpu.c | 1 - target-microblaze/cpu.c | 1 - target-mips/cpu.c | 1 - target-moxie/cpu.c | 1 - target-openrisc/cpu.c | 1 - target-ppc/translate_init.c | 1 - target-s390x/cpu.c | 1 - target-sh4/cpu.c | 1 - target-sparc/cpu.c | 1 - target-tilegx/cpu.c | 1 - target-tricore/cpu.c | 1 - target-unicore32/cpu.c | 1 - target-xtensa/cpu.c | 1 - 21 files changed, 3 insertions(+), 19 deletions(-)