From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:41144) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TtgkZ-0003Xu-CJ for qemu-devel@nongnu.org; Fri, 11 Jan 2013 10:42:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TtgkS-0003bD-3q for qemu-devel@nongnu.org; Fri, 11 Jan 2013 10:42:31 -0500 Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.1.0.0.b.8.0.1.0.0.2.ip6.arpa ([2001:8b0:1d0::1]:59996 helo=mnementh.archaic.org.uk) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TtgkR-0003at-SV for qemu-devel@nongnu.org; Fri, 11 Jan 2013 10:42:24 -0500 From: Peter Maydell Date: Fri, 11 Jan 2013 15:36:55 +0000 Message-Id: <1357918615-24337-3-git-send-email-peter.maydell@linaro.org> In-Reply-To: <1357918615-24337-1-git-send-email-peter.maydell@linaro.org> References: <1357918615-24337-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH 2/2] target-arm: Fix SWI (SVC) instruction in M profile. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno , Blue Swirl Cc: qemu-devel@nongnu.org, Paul Brook From: "Alex_Rozenman@mentor.com" When do_interrupt_v7m is called with EXCP_SWI, the PC already points to the next instruction. Don't modify it here. Signed-off-by: Alex Rozenman Signed-off-by: Peter Maydell --- target-arm/helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target-arm/helper.c b/target-arm/helper.c index 0525aec..66ab78e 100644 --- a/target-arm/helper.c +++ b/target-arm/helper.c @@ -1736,7 +1736,7 @@ static void do_interrupt_v7m(CPUARMState *env) armv7m_nvic_set_pending(env->nvic, ARMV7M_EXCP_USAGE); return; case EXCP_SWI: - env->regs[15] += 2; + /* The PC already points to the next instruction. */ armv7m_nvic_set_pending(env->nvic, ARMV7M_EXCP_SVC); return; case EXCP_PREFETCH_ABORT: -- 1.7.9.5