Patchwork [1/4] target-arm: Reinsert missing return statement in ARM mode SRS decode

login
register
mail settings
Submitter Peter Maydell
Date April 19, 2013, 3:06 p.m.
Message ID <1366384020-13253-2-git-send-email-peter.maydell@linaro.org>
Download mbox | patch
Permalink /patch/238035/
State New
Headers show

Comments

Peter Maydell - April 19, 2013, 3:06 p.m.
From: Peter Chubb <peter.chubb@nicta.com.au>

Since patch
   81465888c5306cd94abb9847e560796fd13d3c2f
   target-arm: factor out handling of SRS instruction
the ARM mode SRS instruction has not worked in QEMU.

The problem is a missing return directive that was removed in the
refactoring, so after decoding the instruction, qemu would fall through
to generate an UNDEF exception for an illegal instruction.

Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 target-arm/translate.c |    1 +
 1 file changed, 1 insertion(+)

Patch

diff --git a/target-arm/translate.c b/target-arm/translate.c
index 35a21be..a1b7b8c 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -6762,6 +6762,7 @@  static void disas_arm_insn(CPUARMState * env, DisasContext *s)
             }
             ARCH(6);
             gen_srs(s, (insn & 0x1f), (insn >> 23) & 3, insn & (1 << 21));
+            return;
         } else if ((insn & 0x0e50ffe0) == 0x08100a00) {
             /* rfe */
             int32_t offset;