From: Richard Henderson Date: Tue, 18 Jul 2017 20:02:50 +0000 (-1000) Subject: target/sh4: Add missing FPSCR.PR == 0 checks X-Git-Tag: v2.10.0-rc0~35^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=61dedf2af79fb5866dc7a0f972093682f2185e17;p=thirdparty%2Fqemu.git target/sh4: Add missing FPSCR.PR == 0 checks Both frchg and fschg require PR == 0, otherwise undefined_operation. Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson Message-Id: <20170718200255.31647-26-rth@twiddle.net> Signed-off-by: Aurelien Jarno --- diff --git a/target/sh4/translate.c b/target/sh4/translate.c index 1ed0349374e..92a2c002fc8 100644 --- a/target/sh4/translate.c +++ b/target/sh4/translate.c @@ -473,10 +473,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;