From patchwork Tue Aug 14 09:40:36 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 177199 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id C9B4D2C0089 for ; Tue, 14 Aug 2012 19:41:00 +1000 (EST) Received: from localhost ([::1]:50112 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T1DcQ-0004Pq-EU for incoming@patchwork.ozlabs.org; Tue, 14 Aug 2012 05:40:58 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48746) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T1DcE-0004HZ-3k for qemu-devel@nongnu.org; Tue, 14 Aug 2012 05:40:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T1DcB-0005AD-VW for qemu-devel@nongnu.org; Tue, 14 Aug 2012 05:40:46 -0400 Received: from mnementh.archaic.org.uk ([81.2.115.146]:40686) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T1DcB-0005A9-Oe for qemu-devel@nongnu.org; Tue, 14 Aug 2012 05:40:43 -0400 Received: from pm215 by mnementh.archaic.org.uk with local (Exim 4.72) (envelope-from ) id 1T1Dc4-0000Ae-OC; Tue, 14 Aug 2012 10:40:36 +0100 From: Peter Maydell To: Anthony Liguori , Blue Swirl Date: Tue, 14 Aug 2012 10:40:36 +0100 Message-Id: <1344937236-611-11-git-send-email-peter.maydell@linaro.org> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: <1344937236-611-1-git-send-email-peter.maydell@linaro.org> References: <1344937236-611-1-git-send-email-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 81.2.115.146 Cc: Riku Voipio , qemu-devel@nongnu.org Subject: [Qemu-devel] [PATCH 10/10] linux-user: ARM: Ignore immediate value for svc in thumb mode X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Alexander Graf When running in thumb mode, Linux doesn't evaluate the immediate value of the svc instruction, but instead just always assumes the syscall number to be in r7. This fixes executing go_bootstrap while building go for me. Signed-off-by: Alexander Graf Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- linux-user/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/linux-user/main.c b/linux-user/main.c index 63c1249..7dea084 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -822,8 +822,7 @@ void cpu_loop(CPUARMState *env) } else if (n == ARM_NR_semihosting || n == ARM_NR_thumb_semihosting) { env->regs[0] = do_arm_semihosting (env); - } else if (n == 0 || n >= ARM_SYSCALL_BASE - || (env->thumb && n == ARM_THUMB_SYSCALL)) { + } else if (n == 0 || n >= ARM_SYSCALL_BASE || env->thumb) { /* linux syscall */ if (env->thumb || n == 0) { n = env->regs[7];