From patchwork Thu May 23 11:59:59 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 17119 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-qa0-f70.google.com (mail-qa0-f70.google.com [209.85.216.70]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id D718D23976 for ; Thu, 23 May 2013 12:01:12 +0000 (UTC) Received: by mail-qa0-f70.google.com with SMTP id o13sf3860206qaj.5 for ; Thu, 23 May 2013 05:00:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-beenthere:x-forwarded-to:x-forwarded-for :delivered-to:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references:x-gm-message-state:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-google-group-id:list-post:list-help:list-archive:list-unsubscribe; bh=Dv6d3Jsb7kaABGkNH+eeNMqYbyWWqeU5YcCY33nd7Us=; b=E0kZciErJXtXJpBCxvDa7KQL8v9e86QBdesFWXfKQce6FqWEeKtolC4dTyxhiUfQWQ SvzZoNgcG6H+ZN6B+tgRp6KHNzGZ2UeLyZ+u57X6EDuo3JHtX0PmvBHDE9QRPk4Issbx V3q27JyOXM7h+Y+4Vxtn9f4/mvdLSlDX1C+6CzOY8Mj/Quj57rzE3B34h2E9sVdcCi4Z mqDUsK8r+V2/mQf/tjjYuNQrOjXmMC6HrXddR4pel7iLiNsQcF1g4ksTxSB4+WwS5sLD WwVMv+KIQKdHiaCCTH4ltnOscP/R/FupRVTIldN3INkGemuWsWTTBqfQB+rdPQUY04Xm hFrg== X-Received: by 10.236.28.43 with SMTP id f31mr6085175yha.1.1369310417796; Thu, 23 May 2013 05:00:17 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.49.82.50 with SMTP id f18ls1262882qey.20.gmail; Thu, 23 May 2013 05:00:17 -0700 (PDT) X-Received: by 10.52.21.52 with SMTP id s20mr4133512vde.62.1369310417575; Thu, 23 May 2013 05:00:17 -0700 (PDT) Received: from mail-vc0-f173.google.com (mail-vc0-f173.google.com [209.85.220.173]) by mx.google.com with ESMTPS id gr7si6126714vdc.77.2013.05.23.05.00.17 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 23 May 2013 05:00:17 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.220.173 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.220.173; Received: by mail-vc0-f173.google.com with SMTP id ht10so2130204vcb.32 for ; Thu, 23 May 2013 05:00:17 -0700 (PDT) X-Received: by 10.52.34.114 with SMTP id y18mr4209025vdi.56.1369310417443; Thu, 23 May 2013 05:00:17 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patches@linaro.org Received: by 10.220.126.138 with SMTP id c10csp47551vcs; Thu, 23 May 2013 05:00:16 -0700 (PDT) X-Received: by 10.66.102.97 with SMTP id fn1mr13003253pab.116.1369310412127; Thu, 23 May 2013 05:00:12 -0700 (PDT) Received: from mnementh.archaic.org.uk (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]) by mx.google.com with ESMTPS id pr6si8847982pbb.171.2013.05.23.05.00.09 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 23 May 2013 05:00:12 -0700 (PDT) Received-SPF: neutral (google.com: 2001:8b0:1d0::1 is neither permitted nor denied by best guess record for domain of pm215@archaic.org.uk) client-ip=2001:8b0:1d0::1; Received: from pm215 by mnementh.archaic.org.uk with local (Exim 4.72) (envelope-from ) id 1UfUBg-0001Nq-Dk; Thu, 23 May 2013 13:00:04 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Cc: patches@linaro.org, Richard Henderson , John Rigby , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Blue Swirl , Aurelien Jarno Subject: [PATCH 05/10] target-arm: Remove use of gen_{ld, st}* from ldrex/strex Date: Thu, 23 May 2013 12:59:59 +0100 Message-Id: <1369310404-5285-6-git-send-email-peter.maydell@linaro.org> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: <1369310404-5285-1-git-send-email-peter.maydell@linaro.org> References: <1369310404-5285-1-git-send-email-peter.maydell@linaro.org> X-Gm-Message-State: ALoCoQkFfnTiyuEI9GarRHxIeI/+hH6ger5fgYjwJdkM/6gt5T3Yp1sxT/oJUIjj0oO8r6XXLXez X-Original-Sender: peter.maydell@linaro.org X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.220.173 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Precedence: list Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org List-ID: X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Signed-off-by: Peter Maydell --- target-arm/translate.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/target-arm/translate.c b/target-arm/translate.c index 057b180..3899d0a 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -6493,18 +6493,18 @@ static void gen_logicq_cc(TCGv_i32 lo, TCGv_i32 hi) static void gen_load_exclusive(DisasContext *s, int rt, int rt2, TCGv_i32 addr, int size) { - TCGv_i32 tmp; + TCGv_i32 tmp = tcg_temp_new_i32(); switch (size) { case 0: - tmp = gen_ld8u(addr, IS_USER(s)); + tcg_gen_qemu_ld8u(tmp, addr, IS_USER(s)); break; case 1: - tmp = gen_ld16u(addr, IS_USER(s)); + tcg_gen_qemu_ld16u(tmp, addr, IS_USER(s)); break; case 2: case 3: - tmp = gen_ld32(addr, IS_USER(s)); + tcg_gen_qemu_ld32u(tmp, addr, IS_USER(s)); break; default: abort(); @@ -6514,7 +6514,8 @@ static void gen_load_exclusive(DisasContext *s, int rt, int rt2, if (size == 3) { TCGv_i32 tmp2 = tcg_temp_new_i32(); tcg_gen_addi_i32(tmp2, addr, 4); - tmp = gen_ld32(tmp2, IS_USER(s)); + tmp = tcg_temp_new_i32(); + tcg_gen_qemu_ld32u(tmp, tmp2, IS_USER(s)); tcg_temp_free_i32(tmp2); tcg_gen_mov_i32(cpu_exclusive_high, tmp); store_reg(s, rt2, tmp); @@ -6553,16 +6554,17 @@ static void gen_store_exclusive(DisasContext *s, int rd, int rt, int rt2, fail_label = gen_new_label(); done_label = gen_new_label(); tcg_gen_brcond_i32(TCG_COND_NE, addr, cpu_exclusive_addr, fail_label); + tmp = tcg_temp_new_i32(); switch (size) { case 0: - tmp = gen_ld8u(addr, IS_USER(s)); + tcg_gen_qemu_ld8u(tmp, addr, IS_USER(s)); break; case 1: - tmp = gen_ld16u(addr, IS_USER(s)); + tcg_gen_qemu_ld16u(tmp, addr, IS_USER(s)); break; case 2: case 3: - tmp = gen_ld32(addr, IS_USER(s)); + tcg_gen_qemu_ld32u(tmp, addr, IS_USER(s)); break; default: abort(); @@ -6572,7 +6574,8 @@ static void gen_store_exclusive(DisasContext *s, int rd, int rt, int rt2, if (size == 3) { TCGv_i32 tmp2 = tcg_temp_new_i32(); tcg_gen_addi_i32(tmp2, addr, 4); - tmp = gen_ld32(tmp2, IS_USER(s)); + tmp = tcg_temp_new_i32(); + tcg_gen_qemu_ld32u(tmp, tmp2, IS_USER(s)); tcg_temp_free_i32(tmp2); tcg_gen_brcond_i32(TCG_COND_NE, tmp, cpu_exclusive_high, fail_label); tcg_temp_free_i32(tmp); @@ -6580,22 +6583,24 @@ static void gen_store_exclusive(DisasContext *s, int rd, int rt, int rt2, tmp = load_reg(s, rt); switch (size) { case 0: - gen_st8(tmp, addr, IS_USER(s)); + tcg_gen_qemu_st8(tmp, addr, IS_USER(s)); break; case 1: - gen_st16(tmp, addr, IS_USER(s)); + tcg_gen_qemu_st16(tmp, addr, IS_USER(s)); break; case 2: case 3: - gen_st32(tmp, addr, IS_USER(s)); + tcg_gen_qemu_st32(tmp, addr, IS_USER(s)); break; default: abort(); } + tcg_temp_free_i32(tmp); if (size == 3) { tcg_gen_addi_i32(addr, addr, 4); tmp = load_reg(s, rt2); - gen_st32(tmp, addr, IS_USER(s)); + tcg_gen_qemu_st32(tmp, addr, IS_USER(s)); + tcg_temp_free_i32(tmp); } tcg_gen_movi_i32(cpu_R[rd], 0); tcg_gen_br(done_label);