summary refs log tree commit diff stats
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-11-20 06:41:29 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-11-20 06:41:29 +0000
commit12d961385b0216e4dec3a3d9fe9d6441c7832995 (patch)
tree7fe5f31fe3e23245561ad0e849653d94cb023d67
parent66ba317c90fc9b668374574e3dc4f45586f56dca (diff)
downloadfocaccia-qemu-12d961385b0216e4dec3a3d9fe9d6441c7832995.tar.gz
focaccia-qemu-12d961385b0216e4dec3a3d9fe9d6441c7832995.zip
target-sh4: fix fldi0/fldi1
fldi0/fldi1 should be executed as a nop if FPSCR.FR is set instead of
generating an exception. Reported by Laurent Desnogues.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5759 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--target-sh4/translate.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/target-sh4/translate.c b/target-sh4/translate.c
index f8371e2e00..84a3f4094a 100644
--- a/target-sh4/translate.c
+++ b/target-sh4/translate.c
@@ -1670,15 +1670,13 @@ static void _decode_opc(DisasContext * ctx)
     case 0xf08d: /* fldi0 FRn - FPSCR: R[PR] */
 	if (!(ctx->fpscr & FPSCR_PR)) {
 	    tcg_gen_movi_i32(cpu_fregs[FREG(B11_8)], 0);
-	    return;
 	}
-	break;
+	return;
     case 0xf09d: /* fldi1 FRn - FPSCR: R[PR] */
 	if (!(ctx->fpscr & FPSCR_PR)) {
 	    tcg_gen_movi_i32(cpu_fregs[FREG(B11_8)], 0x3f800000);
-	    return;
 	}
-	break;
+	return;
     case 0xf0ad: /* fcnvsd FPUL,DRn */
 	{
 	    TCGv_i64 fp = tcg_temp_new_i64();