On Tue, 26 May 2026 00:26:42 +0900, Matt Turner wrote: > > sh4_cpu_gdb_write_register() wrote the incoming FPSCR value straight > into env->fpscr, leaving the derived env->fp_status (rounding mode and > flush-to-zero) stale, so a gdb-initiated FPSCR change did not take > effect for subsequent FP operations. Use cpu_load_fpscr() instead, the > same way the adjacent case already uses cpu_write_sr() for SR. > > Cc: [email protected] > --- > target/sh4/gdbstub.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git ./target/sh4/gdbstub.c ./target/sh4/gdbstub.c > index 4f36e800d2..bdc8c1d164 100644 > --- ./target/sh4/gdbstub.c > +++ ./target/sh4/gdbstub.c > @@ -113,7 +113,7 @@ int superh_cpu_gdb_write_register(CPUState *cs, uint8_t > *mem_buf, int n) > env->fpul = ldl_p(mem_buf); > break; > case 24: > - env->fpscr = ldl_p(mem_buf); > + cpu_load_fpscr(env, ldl_p(mem_buf)); > break; > case 25 ... 40: > if (env->fpscr & FPSCR_FR) { > -- > 2.53.0 >
Reviewed-by: Yoshinori Sato <[email protected]> -- Yosinori Sato
