diff options
Diffstat (limited to 'target-sh4/translate.c')
-rw-r--r-- | target-sh4/translate.c | 22 |
1 files changed, 2 insertions, 20 deletions
diff --git a/target-sh4/translate.c b/target-sh4/translate.c index 6309e85b69..d0568e2964 100644 --- a/target-sh4/translate.c +++ b/target-sh4/translate.c @@ -180,25 +180,7 @@ void cpu_dump_state(CPUSH4State * env, FILE * f, void cpu_state_reset(CPUSH4State *env) { - if (qemu_loglevel_mask(CPU_LOG_RESET)) { - qemu_log("CPU Reset (CPU %d)\n", env->cpu_index); - log_cpu_state(env, 0); - } - - memset(env, 0, offsetof(CPUSH4State, breakpoints)); - tlb_flush(env, 1); - - env->pc = 0xA0000000; -#if defined(CONFIG_USER_ONLY) - env->fpscr = FPSCR_PR; /* value for userspace according to the kernel */ - set_float_rounding_mode(float_round_nearest_even, &env->fp_status); /* ?! */ -#else - env->sr = SR_MD | SR_RB | SR_BL | SR_I3 | SR_I2 | SR_I1 | SR_I0; - env->fpscr = FPSCR_DN | FPSCR_RM_ZERO; /* CPU reset value according to SH4 manual */ - set_float_rounding_mode(float_round_to_zero, &env->fp_status); - set_flush_to_zero(1, &env->fp_status); -#endif - set_default_nan_mode(1, &env->fp_status); + cpu_reset(ENV_GET_CPU(env)); } typedef struct { @@ -281,7 +263,7 @@ CPUSH4State *cpu_sh4_init(const char *cpu_model) env->movcal_backup_tail = &(env->movcal_backup); sh4_translate_init(); env->cpu_model_str = cpu_model; - cpu_state_reset(env); + cpu_reset(CPU(cpu)); cpu_register(env, def); qemu_init_vcpu(env); return env; |