Message ID | 20170620205121.26515-3-laurent@vivier.eu |
---|---|
State | New |
Headers | show |
On 06/20/2017 01:51 PM, Laurent Vivier wrote:
> + env->fpcr = 0;
You probably want to use cpu_m68k_set_fpcr here too, so that fp_status matches.
r~
On 06/20/2017 01:51 PM, Laurent Vivier wrote: > on reset, set FP registers to NaN and control registers to 0 > > Signed-off-by: Laurent Vivier<laurent@vivier.eu> > --- > target/m68k/cpu.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) Nevermind the last... it's in 5/6. Reviewed-by: Richard Henderson <rth@twiddle.net> r~
diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c index f068922..f2e031f 100644 --- a/target/m68k/cpu.c +++ b/target/m68k/cpu.c @@ -49,6 +49,8 @@ static void m68k_cpu_reset(CPUState *s) M68kCPU *cpu = M68K_CPU(s); M68kCPUClass *mcc = M68K_CPU_GET_CLASS(cpu); CPUM68KState *env = &cpu->env; + float64 nan = float64_default_nan(NULL); + int i; mcc->parent_reset(s); @@ -57,7 +59,12 @@ static void m68k_cpu_reset(CPUState *s) env->sr = 0x2700; #endif m68k_switch_sp(env); - /* ??? FP regs should be initialized to NaN. */ + for (i = 0; i < 8; i++) { + env->fregs[i] = nan; + } + env->fpcr = 0; + env->fpsr = 0; + cpu_m68k_set_ccr(env, 0); /* TODO: We should set PC from the interrupt vector. */ env->pc = 0;
on reset, set FP registers to NaN and control registers to 0 Signed-off-by: Laurent Vivier <laurent@vivier.eu> --- target/m68k/cpu.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)