Message ID | 20170707022111.21836-26-rth@twiddle.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2017-07-06 16:21, Richard Henderson wrote: > Both frchg and fschg require PR == 0, otherwise undefined_operation. > > Signed-off-by: Richard Henderson <rth@twiddle.net> > --- > target/sh4/translate.c | 2 ++ > 1 file changed, 2 insertions(+) Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
diff --git a/target/sh4/translate.c b/target/sh4/translate.c index 35a5c91..2b62e39 100644 --- a/target/sh4/translate.c +++ b/target/sh4/translate.c @@ -485,10 +485,12 @@ static void _decode_opc(DisasContext * ctx) tcg_gen_movi_i32(cpu_sr_t, 1); return; case 0xfbfd: /* frchg */ + CHECK_FPSCR_PR_0 tcg_gen_xori_i32(cpu_fpscr, cpu_fpscr, FPSCR_FR); ctx->bstate = BS_STOP; return; case 0xf3fd: /* fschg */ + CHECK_FPSCR_PR_0 tcg_gen_xori_i32(cpu_fpscr, cpu_fpscr, FPSCR_SZ); ctx->bstate = BS_STOP; return;
Both frchg and fschg require PR == 0, otherwise undefined_operation. Signed-off-by: Richard Henderson <rth@twiddle.net> --- target/sh4/translate.c | 2 ++ 1 file changed, 2 insertions(+)