qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Chubb <peter.chubb@nicta.com.au>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Japheth.Lim@nicta.com.au, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH] target-arm: Reinsert SRS missing return statements.
Date: Mon, 15 Apr 2013 14:50:16 +1000	[thread overview]
Message-ID: <84sj2s75yv.wl%peter@chubb.wattle.id.au> (raw)



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

The problem is a return directive that was removed in the
refactoring, so after decoding the instruction, qemu would fall
through to do stuff that it should not have done.

Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>

diff --git a/target-arm/translate.c b/target-arm/translate.c
index 35a21be..c870246 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;
@@ -8209,6 +8210,7 @@ static int disas_thumb2_insn(CPUARMState *env, DisasContext *s, uint16_t insn_hw
                     /* srs */
                     gen_srs(s, (insn & 0x1f), (insn & (1 << 24)) ? 1 : 2,
                             insn & (1 << 21));
+                    return;
                 }
             } else {
                 int i, loaded_base = 0;
-- 
1.7.10.4



Dr Peter Chubb				        peter.chubb AT nicta.com.au
http://www.ssrg.nicta.com.au          Software Systems Research Group/NICTA

             reply	other threads:[~2013-04-15  4:50 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-15  4:50 Peter Chubb [this message]
2013-04-15  7:23 ` [Qemu-devel] [PATCH] target-arm: Reinsert SRS missing return statements Peter Maydell
2013-04-15  7:29   ` Peter Chubb
2013-04-15  7:32     ` Peter Maydell
2013-04-15  9:53       ` [Qemu-devel] [PATCH v2] target-arm: Reinsert SRS missing return statement Peter Chubb
2013-04-15 10:08         ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=84sj2s75yv.wl%peter@chubb.wattle.id.au \
    --to=peter.chubb@nicta.com.au \
    --cc=Japheth.Lim@nicta.com.au \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).