Commit 12d961385b0216e4dec3a3d9fe9d6441c7832995
1 parent
66ba317c
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
Showing
1 changed file
with
2 additions
and
4 deletions
target-sh4/translate.c
| ... | ... | @@ -1670,15 +1670,13 @@ static void _decode_opc(DisasContext * ctx) |
| 1670 | 1670 | case 0xf08d: /* fldi0 FRn - FPSCR: R[PR] */ |
| 1671 | 1671 | if (!(ctx->fpscr & FPSCR_PR)) { |
| 1672 | 1672 | tcg_gen_movi_i32(cpu_fregs[FREG(B11_8)], 0); |
| 1673 | - return; | |
| 1674 | 1673 | } |
| 1675 | - break; | |
| 1674 | + return; | |
| 1676 | 1675 | case 0xf09d: /* fldi1 FRn - FPSCR: R[PR] */ |
| 1677 | 1676 | if (!(ctx->fpscr & FPSCR_PR)) { |
| 1678 | 1677 | tcg_gen_movi_i32(cpu_fregs[FREG(B11_8)], 0x3f800000); |
| 1679 | - return; | |
| 1680 | 1678 | } |
| 1681 | - break; | |
| 1679 | + return; | |
| 1682 | 1680 | case 0xf0ad: /* fcnvsd FPUL,DRn */ |
| 1683 | 1681 | { |
| 1684 | 1682 | TCGv_i64 fp = tcg_temp_new_i64(); | ... | ... |