diff --git a/target-lm32/cpu.c b/target-lm32/cpu.c index 70251d0544..48a5fe3f86 100644 --- a/target-lm32/cpu.c +++ b/target-lm32/cpu.c @@ -29,9 +29,17 @@ static void lm32_cpu_reset(CPUState *s) LM32CPUClass *lcc = LM32_CPU_GET_CLASS(cpu); CPULM32State *env = &cpu->env; + if (qemu_loglevel_mask(CPU_LOG_RESET)) { + qemu_log("CPU Reset (CPU %d)\n", env->cpu_index); + log_cpu_state(env, 0); + } + lcc->parent_reset(s); - cpu_state_reset(env); + tlb_flush(env, 1); + + /* reset cpu state */ + memset(env, 0, offsetof(CPULM32State, breakpoints)); } static void lm32_cpu_initfn(Object *obj) diff --git a/target-lm32/helper.c b/target-lm32/helper.c index 9de777f43e..d0bc1931d8 100644 --- a/target-lm32/helper.c +++ b/target-lm32/helper.c @@ -236,14 +236,6 @@ void cpu_lm32_set_phys_msb_ignore(CPULM32State *env, int value) void cpu_state_reset(CPULM32State *env) { - if (qemu_loglevel_mask(CPU_LOG_RESET)) { - qemu_log("CPU Reset (CPU %d)\n", env->cpu_index); - log_cpu_state(env, 0); - } - - tlb_flush(env, 1); - - /* reset cpu state */ - memset(env, 0, offsetof(CPULM32State, breakpoints)); + cpu_reset(ENV_GET_CPU(env)); }