target-arm: Fix CP15 based WFI
authorPaul Brook <paul@codesourcery.com>
Thu, 12 Jul 2012 10:58:35 +0000 (10:58 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 12 Jul 2012 10:58:35 +0000 (10:58 +0000)
The coprocessor register rework broke cp15 based WFI instructions.
We incorrectly fall through the normal register write case, which
incorrectly adds a forced block termination.  We've already done
a special version of this (DISAS_WFI), so return immediately.

Signed-off-by: Paul Brook <paul@codesourcery.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target-arm/translate.c

index a2a0ecd..f39b9ca 100644 (file)
@@ -6236,7 +6236,7 @@ static int disas_coproc_insn(CPUARMState * env, DisasContext *s, uint32_t insn)
             }
             gen_set_pc_im(s->pc);
             s->is_jmp = DISAS_WFI;
-            break;
+            return 0;
         default:
             break;
         }