From nobody Sat Feb 7 09:34:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1499394669514203.53712661011286; Thu, 6 Jul 2017 19:31:09 -0700 (PDT) Received: from localhost ([::1]:54145 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dTJ2y-0000RZ-76 for importer@patchew.org; Thu, 06 Jul 2017 22:31:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34856) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dTIwR-00033D-Pt for qemu-devel@nongnu.org; Thu, 06 Jul 2017 22:24:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dTIwO-0000st-MW for qemu-devel@nongnu.org; Thu, 06 Jul 2017 22:24:23 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:35577) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dTIwO-0000sg-I6 for qemu-devel@nongnu.org; Thu, 06 Jul 2017 22:24:20 -0400 Received: by mail-qk0-x241.google.com with SMTP id 16so2745566qkg.2 for ; Thu, 06 Jul 2017 19:24:20 -0700 (PDT) Received: from bigtime.twiddle.net.com (rrcs-66-91-136-156.west.biz.rr.com. [66.91.136.156]) by smtp.gmail.com with ESMTPSA id i85sm1407176qke.66.2017.07.06.19.24.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Jul 2017 19:24:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=keZowioOsPIQiAiLEkeJageAOyb9qqok4dP3oEqxJdA=; b=SMlzJMEEOFxygy85m4D300wt8B368E0aAGLEndp4gbSN2mCKFNqH8xVZ9KEp+fcCvi njD7/Scg+pkjq7y8WRo1V6LHP50OQEaLnQG3T3jKnlbFJwPXisjOLlOqo2KS+zF7pMvo 2gjhnRrfFF3pa7WnNfyV7vYb9zfygs6qQkcJOwnxDjKIkKJg80AU17TPQa1Zdq/7Nc32 h+ZIZA7n25WVOjNU6qZw7RlGQ2+aQg7MXfOTXeCdxZU5BpitCp7PbpiTeLd0hpE437U1 Ud4lYxSR4xbNs0uT+7WH8J/1c6oe4EUOZSkz3naPwglvTLS+AVEzZFnf753lPzBNMG54 B8uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=keZowioOsPIQiAiLEkeJageAOyb9qqok4dP3oEqxJdA=; b=Le+qrx3yy+v6vsnDUi9GeNU2mQVylfe84WzpsEjVoeUH1s2v1mS5RE17iABFhZhUda 1VVZKBA/RnSxfiBUXDz/ZMtD0GVh/CTFYMpp49680hr3/tw0cegY58srtF6ctBMaOhKD AY+SyXzWwtJ08ZJiJ8DrUPpfEJtFHhAZ12f3fJxM3r5bxEOjeHuJmZsCMquNXEeQ64hy 8/SKdOUdEO25f1HQdsXIu8NRwbMRd9PX2wbZ2oRsjN3x00yXDy0BWYA7E4D+DRWq7ZSW xLyVq3N7Ij11PW/u/FkpWy3dOsNmWjs8d3fARo99FKEsPiuA+JkfZFs2rC4SI5+vjtdP Xa4g== X-Gm-Message-State: AKS2vOz+PVY26XGMI6HnJd7B6f1O1KXl/PnxOIUCL1ELYm6clpY4RCGS Ty2WPg7r/8Lq+05Mw98= X-Received: by 10.55.4.139 with SMTP id 133mr60092379qke.259.1499394259856; Thu, 06 Jul 2017 19:24:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 6 Jul 2017 16:20:57 -1000 Message-Id: <20170707022111.21836-14-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170707022111.21836-1-rth@twiddle.net> References: <20170707022111.21836-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v2 13/27] target/sh4: Hoist fp register bank selection X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: bruno@clisp.org, laurent@vivier.eu, aurelien@aurel32.net, glaubitz@debian.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Compute which register bank to use once at the start of translation. Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/sh4/translate.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/target/sh4/translate.c b/target/sh4/translate.c index 878c0bd..fc743da 100644 --- a/target/sh4/translate.c +++ b/target/sh4/translate.c @@ -42,6 +42,7 @@ typedef struct DisasContext { int bstate; int memidx; int gbank; + int fbank; uint32_t delayed_pc; int singlestep_enabled; uint32_t features; @@ -365,12 +366,12 @@ static inline void gen_store_fpr64(DisasContext *ctx,= TCGv_i64 t, int reg) =20 #define REG(x) cpu_gregs[(x) ^ ctx->gbank] #define ALTREG(x) cpu_gregs[(x) ^ ctx->gbank ^ 0x10] +#define FREG(x) cpu_fregs[(x) ^ ctx->fbank] =20 -#define FREG(x) cpu_fregs[ctx->tbflags & FPSCR_FR ? (x) ^ 0x10 : (x)] #define XHACK(x) ((((x) & 1 ) << 4) | ((x) & 0xe)) -#define XREG(x) FREG(XHACK(x)) +#define XREG(x) FREG(XHACK(x)) /* Assumes lsb of (x) is always 0 */ -#define DREG(x) (ctx->tbflags & FPSCR_FR ? (x) ^ 0x10 : (x)) +#define DREG(x) ((x) ^ ctx->fbank) =20 #define CHECK_NOT_DELAY_SLOT \ if (ctx->envflags & DELAY_SLOT_MASK) { \ @@ -2252,6 +2253,7 @@ void gen_intermediate_code(CPUSH4State * env, struct = TranslationBlock *tb) ctx.has_movcal =3D (ctx.tbflags & TB_FLAG_PENDING_MOVCA); ctx.gbank =3D ((ctx.tbflags & (1 << SR_MD)) && (ctx.tbflags & (1 << SR_RB))) * 0x10; + ctx.fbank =3D ctx.tbflags & FPSCR_FR ? 0x10 : 0; =20 max_insns =3D tb->cflags & CF_COUNT_MASK; if (max_insns =3D=3D 0) { --=20 2.9.4