From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1734016927840633.7352035430611; Thu, 12 Dec 2024 07:22:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkuA-0003mt-Nj; Thu, 12 Dec 2024 10:15:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktc-0003Do-Aa; Thu, 12 Dec 2024 10:14:32 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktX-0003fa-7o; Thu, 12 Dec 2024 10:14:32 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLksv-0008Ue-Qc; Thu, 12 Dec 2024 15:13:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=WbUDXGEhxSHrpkWM3eyUyp6+0TyshM70AN1M+d/Yjvo=; b=ODCtMQ+A365gCQ7k5LiBYegvTa vtk1PE/asUchTCUuT2Uv+P8irV6RRA+sX6ulUVHTjiKYu4HAhDBWuSph3ELVqIerv1tX/j00XOrLH ZYRASV8dQS+Xjv0zzW1o5RreuX9T8dg8zO+98t+OxG0BCMOV3ut9Sh/1kYGZgBXrAEiQTEySFLTam 1TIY750dMUrMnyA7u2l6hZhyuyAFmjRHVGQfuERK1JMXUyXwUA840P+T3MJBh8QLvWOyk0oHqT4hw NoKwvvS82noM2POWXaRESJQYWqp3acaAmOhJ/snMg9s9vFPbu2toikjFxd4WDirDncJAk5YrGftQm WurCOTMvrWv1QtFeCDoW2xYLdUhzFtz16skDfh5WgQfN02HLN5Qw58FDls4ORTn8yKB8DcyJvf6Kx Yw1zfA1Bm6+GUtu+PMcmXCE8gZIO7YPvu0/YcpECdnY3zJ20PV3OA6aj0B+PdRSxtfBLrP5+4Rrsx 4BZ3TswY6OAtBdKtUTxY3MCXDzFlXAqFrXNOkb+DRjO0Gsy3jFbsbamcGXVK3d7eGilAUj9zHqevy sam9U4+6PR65VIoSAVoF7sz1yCCYBU0qWmqV9XxadrovUtqJLsG2RpdZPqvv4MPsyu3IR3sHV1HwF xN8wy+y/pxfGSENY74mD1/uAMbF7VKOM1hBde13+I=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:02 +0000 Message-Id: <20241212151412.570454-2-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 01/11] target/ppc: introduce gen_ld_tl() function X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016928220116600 Content-Type: text/plain; charset="utf-8" This function is intended to be used for all memory load operations. Conver= t the GEN_QEMU_LOAD_TL() macro to use it as a starting point. Signed-off-by: Mark Cave-Aykand <mark.cave-ayland@ilande.co.uk> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> --- target/ppc/translate.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 47ca50a064..5ddaf69599 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -2575,12 +2575,18 @@ static TCGv do_ea_calc_ra(DisasContext *ctx, int ra) #define DEF_MEMOP(op) ((op) | ctx->default_tcg_memop_mask) #define BSWAP_MEMOP(op) ((op) | (ctx->default_tcg_memop_mask ^ MO_BSWAP)) =20 +static void gen_ld_tl(DisasContext *ctx, TCGv val, TCGv addr, TCGArg idx, + MemOp memop) +{ + tcg_gen_qemu_ld_tl(val, addr, idx, memop); +} + #define GEN_QEMU_LOAD_TL(ldop, op) \ static void glue(gen_qemu_, ldop)(DisasContext *ctx, \ TCGv val, \ TCGv addr) \ { \ - tcg_gen_qemu_ld_tl(val, addr, ctx->mem_idx, op); \ + gen_ld_tl(ctx, val, addr, ctx->mem_idx, op); \ } =20 GEN_QEMU_LOAD_TL(ld8u, DEF_MEMOP(MO_UB)) --=20 2.39.5 From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 173401658939865.40748516069948; Thu, 12 Dec 2024 07:16:29 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkui-0004Qc-J0; Thu, 12 Dec 2024 10:15:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktn-0003Uu-6b; Thu, 12 Dec 2024 10:14:44 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktb-0003g3-Ph; Thu, 12 Dec 2024 10:14:35 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkt0-0008Ue-4E; Thu, 12 Dec 2024 15:13:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=JiMImyXw6R9EQeL/l3lRffTHPCx4YGc8k16oAVbApi4=; b=USNz/DZXDv/MyeQx19vLFQaVtu Ey548ihuSiAiJul/YzkQWOp1x6hQ5p3LnGyi0BeAubfRNZYopbGa3h3iPVI1A34XuAx9UZWHA0bSk 92ugjLE4XxIs//MmwMWUayGi4jQYE8g0ZH8s5ZDbtVJRXzliDfAsrzlOhMC1YMVihZt6yojNN1A4x F0OVhXKcKrQyVVRNuZSXbnIypu2JzFkANegUnwUt/zjbNNMithUUKUZw7i56OMizJFdv07v+JQ6Ff Bwifc0bPVTqgmQBN72yzBkbeSg8eew8mLEYKCJhK2OLrvVEPVbzij/9c2kOaKtVUligr7QUFFKwwX HSREGa21A+1jkIAe1cU+8hNEGd8SgcII9VC1PuLqDs0lmx/7GHwZhdYoaDiQ+OCEzsZ4tYeKILTG5 wo8cdzFZ1+xz3d8qveNFFgZ0RTR7srRAS/fP+Hu1M8x5kCgNDKofz2jW88Ojwu7RYUF1jt0/RAltk ddXPmnIFbKS95F7ecr+tZxJZB9BZ7MljtPIjwC40NndEVFgeUnBj8rTiffqFcrb90SWrD97A6R5VJ rgOQPj2e4coUqZbT89uQJfS4yr0np+Oy95hG6yNWAZd5Wd7Wuk8iTPpm07Mn6qsL4KDwvn9hICKTK 87+S78cctG5oxM+DGPIAxqiOAJ66Ci+Fgm6rTwWlM=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:03 +0000 Message-Id: <20241212151412.570454-3-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 02/11] target/ppc: replace tcg_gen_qemu_ld_tl() with gen_ld_tl() X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016591053116600 Content-Type: text/plain; charset="utf-8" To ensure that all memory loads are performed by gen_ld_tl(), convert all remaining users of tcg_gen_qemu_ld_tl() with gen_ld_tl(). Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> --- target/ppc/translate.c | 14 +++++++------- target/ppc/translate/fixedpoint-impl.c.inc | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 5ddaf69599..5fb0aa36ce 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -2675,7 +2675,7 @@ static void glue(gen_, name##epx)(DisasContext *ctx) = \ gen_set_access_type(ctx, ACCESS_INT); = \ EA =3D tcg_temp_new(); = \ gen_addr_reg_index(ctx, EA); = \ - tcg_gen_qemu_ld_tl(cpu_gpr[rD(ctx->opcode)], EA, PPC_TLB_EPID_LOAD, ld= op);\ + gen_ld_tl(ctx, cpu_gpr[rD(ctx->opcode)], EA, PPC_TLB_EPID_LOAD, ldop);= \ } =20 GEN_LDEPX(lb, DEF_MEMOP(MO_UB), 0x1F, 0x02) @@ -2942,7 +2942,7 @@ static void gen_load_locked(DisasContext *ctx, MemOp = memop) =20 gen_set_access_type(ctx, ACCESS_RES); gen_addr_reg_index(ctx, t0); - tcg_gen_qemu_ld_tl(gpr, t0, ctx->mem_idx, DEF_MEMOP(memop) | MO_ALIGN); + gen_ld_tl(ctx, gpr, t0, ctx->mem_idx, DEF_MEMOP(memop) | MO_ALIGN); tcg_gen_mov_tl(cpu_reserve, t0); tcg_gen_movi_tl(cpu_reserve_length, memop_size(memop)); tcg_gen_mov_tl(cpu_reserve_val, gpr); @@ -2966,9 +2966,9 @@ static void gen_fetch_inc_conditional(DisasContext *c= tx, MemOp memop, TCGv t2 =3D tcg_temp_new(); TCGv u =3D tcg_temp_new(); =20 - tcg_gen_qemu_ld_tl(t, EA, ctx->mem_idx, memop); + gen_ld_tl(ctx, t, EA, ctx->mem_idx, memop); tcg_gen_addi_tl(t2, EA, memop_size(memop)); - tcg_gen_qemu_ld_tl(t2, t2, ctx->mem_idx, memop); + gen_ld_tl(ctx, t2, t2, ctx->mem_idx, memop); tcg_gen_addi_tl(u, t, addend); =20 /* E.g. for fetch and increment bounded... */ @@ -3031,7 +3031,7 @@ static void gen_ld_atomic(DisasContext *ctx, MemOp me= mop) TCGv t0 =3D tcg_temp_new(); TCGv t1 =3D tcg_temp_new(); =20 - tcg_gen_qemu_ld_tl(t0, EA, ctx->mem_idx, memop); + gen_ld_tl(ctx, t0, EA, ctx->mem_idx, memop); if ((memop & MO_SIZE) =3D=3D MO_64 || TARGET_LONG_BITS =3D=3D = 32) { tcg_gen_mov_tl(t1, src); } else { @@ -3138,9 +3138,9 @@ static void gen_st_atomic(DisasContext *ctx, MemOp me= mop) TCGv s2 =3D tcg_temp_new(); TCGv ea_plus_s =3D tcg_temp_new(); =20 - tcg_gen_qemu_ld_tl(t, EA, ctx->mem_idx, memop); + gen_ld_tl(ctx, t, EA, ctx->mem_idx, memop); tcg_gen_addi_tl(ea_plus_s, EA, memop_size(memop)); - tcg_gen_qemu_ld_tl(t2, ea_plus_s, ctx->mem_idx, memop); + gen_ld_tl(ctx, t2, ea_plus_s, ctx->mem_idx, memop); tcg_gen_movcond_tl(TCG_COND_EQ, s, t, t2, src, t); tcg_gen_movcond_tl(TCG_COND_EQ, s2, t, t2, src, t2); tcg_gen_qemu_st_tl(s, EA, ctx->mem_idx, memop); diff --git a/target/ppc/translate/fixedpoint-impl.c.inc b/target/ppc/transl= ate/fixedpoint-impl.c.inc index fa0191e866..717e3f122f 100644 --- a/target/ppc/translate/fixedpoint-impl.c.inc +++ b/target/ppc/translate/fixedpoint-impl.c.inc @@ -37,7 +37,7 @@ static bool do_ldst(DisasContext *ctx, int rt, int ra, TC= Gv displ, bool update, if (store) { tcg_gen_qemu_st_tl(cpu_gpr[rt], ea, ctx->mem_idx, mop); } else { - tcg_gen_qemu_ld_tl(cpu_gpr[rt], ea, ctx->mem_idx, mop); + gen_ld_tl(ctx, cpu_gpr[rt], ea, ctx->mem_idx, mop); } if (update) { tcg_gen_mov_tl(cpu_gpr[ra], ea); --=20 2.39.5 From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 173401664247338.28374420072623; Thu, 12 Dec 2024 07:17:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkuf-0004J8-F8; Thu, 12 Dec 2024 10:15:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkto-0003Xv-UE; Thu, 12 Dec 2024 10:14:45 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktn-0003gR-19; Thu, 12 Dec 2024 10:14:44 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkt4-0008Ue-GE; Thu, 12 Dec 2024 15:14:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=F3Ht+P7WjzdroAbandXO2uGUjJDRBQRsz5euX/kuobI=; b=wP51QS0uzsvIIV+AEaFxVVieu8 4ljWZXZN2la3zEXN/Vhse5GSQfRkR2jS7zvk96VZZJ5UaPz+eXdZDtd6yytRFLYWEG6rSoJoE7xLs g8gJITNU92mqZ/FyqOBfZgNb80bzXzZrLykdceMvchIuCNZUc/+mklMNOHeXQJbdhL1hsOrBPVoGW P908pLqwjPSq4kW3qIiqS1SRFNLqfa3NPQCaQXBPklAbtbr8U40BR2kAbv+GCuVERv7NTdKi7GtVt ULqJ4I8LpwwK+Ct5W095AMEcX9UbPcnhmmerV2aSztL0Uk/uTGAfhaD/2uJFerwq0bMS13qA1sJH1 ri8CMickdwCypm8r14FSwePl+SchRvIJEcMPV0PJp46ciIo5PW3RipQzNXt+swKYQi4bG8HOJ4Dx3 hro8auFBukNsdn+cKkvWZ/j0XJM5YlUWeKIWzu4QPTrfRgtI4Go77pElI022OYSKTchb2VTzQdf2k eLg4M4DaugCRSnm9/WlO9hNb1UkVikQX6A0yPwEOCD/V51hV2jg3hbim/D78GI2xLK9ufa2rW16EX 8PMTxRmz5/RZIRHWMBOYPONxfE9h99Cgjnctjlc44k3r08UwglizRP7lcTiMHsIMeKv/opUlFjsFw joW3gHiNrogslo+VjJb6HdiPoU+ys5UFXI8hxy4iY=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:04 +0000 Message-Id: <20241212151412.570454-4-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 03/11] target/ppc: introduce gen_st_tl() function X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016644665116600 Content-Type: text/plain; charset="utf-8" This function is intended to be used for all memory store operations. Conve= rt the GEN_QEMU_STORE_TL() macro to use it as a starting point. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> --- target/ppc/translate.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 5fb0aa36ce..bf94f3a5de 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -2616,12 +2616,18 @@ GEN_QEMU_LOAD_64(ld64, DEF_MEMOP(MO_UQ)) GEN_QEMU_LOAD_64(ld64ur, BSWAP_MEMOP(MO_UQ)) #endif =20 +static void gen_st_tl(DisasContext *ctx, TCGv val, TCGv addr, TCGArg idx, + MemOp memop) +{ + tcg_gen_qemu_st_tl(val, addr, idx, memop); +} + #define GEN_QEMU_STORE_TL(stop, op) \ static void glue(gen_qemu_, stop)(DisasContext *ctx, \ TCGv val, \ TCGv addr) \ { \ - tcg_gen_qemu_st_tl(val, addr, ctx->mem_idx, op); \ + gen_st_tl(ctx, val, addr, ctx->mem_idx, op); \ } =20 #if defined(TARGET_PPC64) || !defined(CONFIG_USER_ONLY) --=20 2.39.5 From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1734016922135720.6418666907506; Thu, 12 Dec 2024 07:22:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkvL-0005Uo-FH; Thu, 12 Dec 2024 10:16:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktr-0003ex-Jl; Thu, 12 Dec 2024 10:14:51 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktn-0003gt-1H; Thu, 12 Dec 2024 10:14:46 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkt9-0008Ue-Vo; Thu, 12 Dec 2024 15:14:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=cAQZTLK6BzAysn+TUWjXmmrwVyYjM7uScooDVo5CvNI=; b=KJexrUf8LTUrOM8ONh+psdb0zs tfcvXKa9lL+GrOCFsj+EJz60OXX8bADTjz1jd0WL6gIzYc2Ho0bml5lG0zdPWCt+ZeOWZ2RloqOU2 DhhgYse0RcHkhkZk6q+gNAlxIB8rLly0gLRIoeRdB9Lv1DcRJ2c6m037Pa+Kg+canRIboOmdb6zkZ I0rwb+J4f+RqmY9nyJ9Q1vPbhhZGqYZBWGie51Bz9n4RhTaJe7Wf4GXZxES47pukzz7YRjxShgj7h /4y4+nx21QpYOax2QOERtygwE/zfIXWny3eIzeytTrpCqLz60rVQyUdbWqxshGISJPytNYYIb+Kff Fm/bZW2abPKh2RSnsoy/Ulb2cJ3BwZMCTgJM8oJ8XR86Rbtq/CiUFsL4OcEUGF9/UhaggGXlNKvgi +McgreK0lnm5/u+K3ahLh+0XxIpMookvlaUFVX+HNpJg8oQGpfqqCN2VavlD1834A+BDkeRGU5ogG 1T5UNuqBIEBeWQ53YkwQ1MEgYKygOp/Y4WVTwbBTebdb8yiyEhrTlj8QZzQNjNnYGoCneezIQUhMH JjV6iAMZ3GX/tHdELo6g0dTgRTorCOOvuDcv0rK81mcAf1XBJJEima5+/+ce9hKV1zKwbHEYPo3vy s7t5XAGA4CbyqSt/RoyRe+wYrzE4UAVtTk1ZoimnY=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:05 +0000 Message-Id: <20241212151412.570454-5-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 04/11] target/ppc: replace tcg_gen_qemu_st_tl() with gen_st_tl() X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016924294116600 Content-Type: text/plain; charset="utf-8" To ensure that all memory stores are performed by gen_st_tl(), convert all remaining users of tcg_gen_qemu_st_tl() with gen_st_tl(). Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> --- target/ppc/translate.c | 10 +++++----- target/ppc/translate/fixedpoint-impl.c.inc | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index bf94f3a5de..4c47f97607 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -2724,7 +2724,7 @@ static void glue(gen_, name##epx)(DisasContext *ctx) = \ gen_set_access_type(ctx, ACCESS_INT); = \ EA =3D tcg_temp_new(); = \ gen_addr_reg_index(ctx, EA); = \ - tcg_gen_qemu_st_tl( = \ + gen_st_tl(ctx, = \ cpu_gpr[rD(ctx->opcode)], EA, PPC_TLB_EPID_STORE, stop); = \ } =20 @@ -2980,7 +2980,7 @@ static void gen_fetch_inc_conditional(DisasContext *c= tx, MemOp memop, /* E.g. for fetch and increment bounded... */ /* mem(EA,s) =3D (t !=3D t2 ? u =3D t + 1 : t) */ tcg_gen_movcond_tl(cond, u, t, t2, u, t); - tcg_gen_qemu_st_tl(u, EA, ctx->mem_idx, memop); + gen_st_tl(ctx, u, EA, ctx->mem_idx, memop); =20 /* RT =3D (t !=3D t2 ? t : u =3D 1<<(s*8-1)) */ tcg_gen_movcond_tl(cond, cpu_gpr[rD(ctx->opcode)], t, t2, t, @@ -3045,7 +3045,7 @@ static void gen_ld_atomic(DisasContext *ctx, MemOp me= mop) } tcg_gen_movcond_tl(TCG_COND_NE, t1, t0, t1, cpu_gpr[(rt + 2) & 31], t0); - tcg_gen_qemu_st_tl(t1, EA, ctx->mem_idx, memop); + gen_st_tl(ctx, t1, EA, ctx->mem_idx, memop); tcg_gen_mov_tl(dst, t0); } break; @@ -3149,8 +3149,8 @@ static void gen_st_atomic(DisasContext *ctx, MemOp me= mop) gen_ld_tl(ctx, t2, ea_plus_s, ctx->mem_idx, memop); tcg_gen_movcond_tl(TCG_COND_EQ, s, t, t2, src, t); tcg_gen_movcond_tl(TCG_COND_EQ, s2, t, t2, src, t2); - tcg_gen_qemu_st_tl(s, EA, ctx->mem_idx, memop); - tcg_gen_qemu_st_tl(s2, ea_plus_s, ctx->mem_idx, memop); + gen_st_tl(ctx, s, EA, ctx->mem_idx, memop); + gen_st_tl(ctx, s2, ea_plus_s, ctx->mem_idx, memop); } break; default: diff --git a/target/ppc/translate/fixedpoint-impl.c.inc b/target/ppc/transl= ate/fixedpoint-impl.c.inc index 717e3f122f..6b2265bd8f 100644 --- a/target/ppc/translate/fixedpoint-impl.c.inc +++ b/target/ppc/translate/fixedpoint-impl.c.inc @@ -35,7 +35,7 @@ static bool do_ldst(DisasContext *ctx, int rt, int ra, TC= Gv displ, bool update, ea =3D do_ea_calc(ctx, ra, displ); mop ^=3D ctx->default_tcg_memop_mask; if (store) { - tcg_gen_qemu_st_tl(cpu_gpr[rt], ea, ctx->mem_idx, mop); + gen_st_tl(ctx, cpu_gpr[rt], ea, ctx->mem_idx, mop); } else { gen_ld_tl(ctx, cpu_gpr[rt], ea, ctx->mem_idx, mop); } --=20 2.39.5 From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1734016641958429.83305344579594; Thu, 12 Dec 2024 07:17:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkvC-0005Ea-Km; Thu, 12 Dec 2024 10:16:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktq-0003eZ-8L; Thu, 12 Dec 2024 10:14:48 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktn-0003h2-QS; Thu, 12 Dec 2024 10:14:46 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktB-0008Ue-NR; Thu, 12 Dec 2024 15:14:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=VVnaZsJ2GflS1eyAYVQtNIu9ewyB4hBJfRYsfK5TDd4=; b=tGGcwhtoGgWqlpj2g9q+64ohtr D7I12jCHtlMQFA8w59YAFc8EdD49hGmrKkZ0YKx+Q3BOtkdQjJ9x9/E1unHLugqXqI73b+08Hueqd VSNCDyqYJlHmQxOmYIkw+45WvCKDdLUbZWfAKGteAozl7n3NKsEtW01lBvDDSib+86h4FGV1F+rG4 f/QgJXZlbmg+kYoUK/8VAzm3W9NimXvSESM8FppLb4E3jEnDqQC6ebYIXcCUDuDaOKck2/NhzIpPZ QKqJrR5n5iij66Sn3z9oZw1K0LlbT9tvASbYrQLAodDnR4EoaiHV43/qW8FomZzSUCtn3oPbWjHPh K6WOnjWJT7JwjOvQxnaKVYr86jqX5G4G/XwqgsHID2TgVJskUHAKmInpIviQbyoqVTx3EAD+UdToj TzV4aXrKXcbsJ2sf4fHwIzdRltM7mKzP7gcP5xJFjrfCCiY8YSZyqNVrjebHW1LwvN7kmJ6i9kqCt SmJYS/7shL3U3n6AbI3UKo+44rGZj7vf0z8aTF7fnI7TsmyHDNpJ6hT8yr5KWpWfsdtuuUOF3HK7E RvRbS8oLN5JrT3J7Bd947jk0mkz7ruHJoS6FfhjBLYOj2SwwljFz1h8+o7QtJdK3o4mn0s/bbBIYY bQT6oLMjkMjiY2S42mr1AMdHxNUP37nvbdo0k86Os=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:06 +0000 Message-Id: <20241212151412.570454-6-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 05/11] target/ppc: introduce need_addrswizzle_le() function X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016642628116600 Content-Type: text/plain; charset="utf-8" This function determines whether the MSR_LE bit should be used to implement little endian accesses using address swizzling, instead of reversing the byte order. (FIXME: which CPUs?) Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- target/ppc/translate.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 4c47f97607..1211435039 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -208,6 +208,12 @@ struct DisasContext { #define DISAS_CHAIN DISAS_TARGET_2 /* lookup next tb, pc updated */ #define DISAS_CHAIN_UPDATE DISAS_TARGET_3 /* lookup next tb, pc stale */ =20 +/* Return true iff address swizzling required */ +static inline bool need_addrswizzle_le(const DisasContext *ctx) +{ + return ctx->le_mode && true; +} + /* Return true iff byteswap is needed in a scalar memop */ static inline bool need_byteswap(const DisasContext *ctx) { @@ -2578,7 +2584,9 @@ static TCGv do_ea_calc_ra(DisasContext *ctx, int ra) static void gen_ld_tl(DisasContext *ctx, TCGv val, TCGv addr, TCGArg idx, MemOp memop) { - tcg_gen_qemu_ld_tl(val, addr, idx, memop); + if (!need_addrswizzle_le(ctx)) { + tcg_gen_qemu_ld_tl(val, addr, idx, memop); + } } =20 #define GEN_QEMU_LOAD_TL(ldop, op) \ @@ -2619,7 +2627,9 @@ GEN_QEMU_LOAD_64(ld64ur, BSWAP_MEMOP(MO_UQ)) static void gen_st_tl(DisasContext *ctx, TCGv val, TCGv addr, TCGArg idx, MemOp memop) { - tcg_gen_qemu_st_tl(val, addr, idx, memop); + if (!need_addrswizzle_le(ctx)) { + tcg_gen_qemu_st_tl(val, addr, idx, memop); + } } =20 #define GEN_QEMU_STORE_TL(stop, op) \ --=20 2.39.5 From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1734016872665249.67178978654533; Thu, 12 Dec 2024 07:21:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkuy-0004n1-18; Thu, 12 Dec 2024 10:15:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktx-0003hl-9u; Thu, 12 Dec 2024 10:14:56 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktt-0003hv-LQ; Thu, 12 Dec 2024 10:14:53 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktH-0008Ue-Oq; Thu, 12 Dec 2024 15:14:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=yovBj1qlakfYrQHjfPcke/rhqmtrlh6vU+RcUZL1nn8=; b=wodgdZ71QOBiUS789AuGqyWVg/ PGhrFUUUhrGuxWcGGih/WpOqAWEATHrf8t1kMm3mDR1n88CbtYw1xjX2soysoWmDM5LSvMI7E8wYY P5jCATVEjIkAfORn8Zn5xItALBERtA6KsnGsDdhnfx1ZekgksrzPlwQBxAg4NXx4gMAzQ5IYNILIR 2Z95W+bRZ5N0OH3FHKoUGkp21GImfO2318l+BZuUkNnhyXhIBVuSW1kHUWMePMEvPdBv5iJrb7KQX OBP5GFMhZfpHk8V+d1iqU8f53gzjiJRJTqzFo/7SfAGtW5FIMA5TtBAMLJBRFLtMOynOstQngW9zj pDPAuS8QLA/34e2pnEuA9zq3j+lcQXA016XAenl0OZoJ+p9XjJBongUsDrOw41bo6sfoWMcsJdbDs 9dqlQxCN44C1vaHZw8R0p/KyqPUNJA0P7ukMcvRO45jwK+kkimleYYKzQz8PYexKtrbkxVu1OH/6A 0Y4Z5M3xSj3SyfrV/jDheyjeoiiuEe/HWVCRQeg4VChLjtGugEMLMXDwr8gGNBY9cwlZukpcvQoB2 7/Rw1arDfXc9DVpzIvpG02GFC4Vu8yek9WuqdxcFIyujQRy3x3o3eruSbw/mBigfzaKHLwL3y/8wI r8oOh0Nn6AUE1NOPAR6cbIoCfCrYak4zqcuPh2J18=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:07 +0000 Message-Id: <20241212151412.570454-7-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 06/11] target/ppc: introduce gen_addr_swizzle_le() function X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016873940116600 Content-Type: text/plain; charset="utf-8" This function is used to swizzle the address lines to implement little endi= an accesses as used by older CPUs. Add the address line swizzle to the gen_ld_= tl() and gen_st_tl() functions. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- target/ppc/translate.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 1211435039..ddc0f85fb7 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -2561,6 +2561,24 @@ static TCGv do_ea_calc(DisasContext *ctx, int ra, TC= Gv displ) return ea; } =20 +/* + * Swizzle the address lines for little endian accesses as used by older + * CPUs. The bottom 3 address lines are exlusive-ORed by a constant to + * generate the correct address for a little endian access. For more + * information see https://wiki.preterhuman.net/images/f/fc/Endian.pdf + */ +static inline void gen_addr_swizzle_le(TCGv ret, TCGv addr, MemOp op) +{ + MemOp size =3D op & MO_SIZE; + TCGv aoff =3D tcg_temp_new(); + static int c_swizzle[MO_SIZE] =3D { 0x7, 0x6, 0x4, 0x0 }; + + tcg_gen_andi_tl(aoff, addr, (1 << size) - 1); + tcg_gen_andi_tl(ret, addr, ~((1 << size) - 1)); + tcg_gen_xori_tl(ret, ret, c_swizzle[size]); + tcg_gen_sub_tl(ret, ret, aoff); +} + #if defined(TARGET_PPC64) /* EA <- (ra =3D=3D 0) ? 0 : GPR[ra] */ static TCGv do_ea_calc_ra(DisasContext *ctx, int ra) @@ -2586,6 +2604,10 @@ static void gen_ld_tl(DisasContext *ctx, TCGv val, T= CGv addr, TCGArg idx, { if (!need_addrswizzle_le(ctx)) { tcg_gen_qemu_ld_tl(val, addr, idx, memop); + } else { + TCGv taddr =3D tcg_temp_new(); + gen_addr_swizzle_le(taddr, addr, memop); + tcg_gen_qemu_ld_tl(val, taddr, idx, memop); } } =20 @@ -2629,6 +2651,10 @@ static void gen_st_tl(DisasContext *ctx, TCGv val, T= CGv addr, TCGArg idx, { if (!need_addrswizzle_le(ctx)) { tcg_gen_qemu_st_tl(val, addr, idx, memop); + } else { + TCGv taddr =3D tcg_temp_new(); + gen_addr_swizzle_le(taddr, addr, memop); + tcg_gen_qemu_st_tl(val, taddr, idx, memop); } } =20 --=20 2.39.5 From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1734016816663121.08233901376695; Thu, 12 Dec 2024 07:20:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkxN-000865-5u; Thu, 12 Dec 2024 10:18:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLku1-0003nA-A7; Thu, 12 Dec 2024 10:15:02 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktz-0003iQ-Sn; Thu, 12 Dec 2024 10:14:57 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktN-0008Ue-Mu; Thu, 12 Dec 2024 15:14:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=dzeWK8x9CRHtbW2WAWCxYiM6pwOdIgA+XvJuHqKkk48=; b=r0Rj79oow/d5UQH5aB6cZfFZBy PKuWLREDDWP8WqGoHMyixMHYlhuz19MNYwHroC0rGVPDn51BWbM+psnf6plJ+YP96VdKvEQAZ5mTy NDJHPqHR5YjBv/+WHi5qp/0P+XbBt3fMAoRWAYBffj0mCByV+j3uXXvsfgpwcBFurNYJ86AACuyg7 BCgnUSz1NF1Gs8/uNeZvErsZ9q2Zc+VHLAf3HV4op6UIDn8jJX8NUYoCQiMPxfnYxMOq02QivAAmo NXwM4F2FfChbyyIjhOpTzS9pn4wnyWuZJsRURddIuMggHlbMFaPIK5LmrprKo5km/YNTRJDnyM2Xd 0HVwMa0EXYZ5Hbat1P20BomFdEtQYAszhYFLf+ah5Teq5mMybwaghucCpvBWroRou4FwL3vC6ic1a nUII6EwDMRBGd/l8JMpM93/+Xl7CcxPun2WxjqU+aCdgRsh9WYdUwP3ZCrDOo/ocbYa0UdfZxXXcR /ZaCD+nOYmK2XgxHF3ir7UUW4o9jTBuly82+j/XlzQWw6wetV/Tzjx2xvxadEMRfipJ+8QCQWGQqI Z1hO1q2inqpBXguESALMUdPPoYcAvhZdKU8EFx+udlj95UQVFRqA0vAKt7usBh/2ewS2m1JzA48Eg TQXKiHOTEceKvZeECECsNg8VAUhRzLibPKzyrIyBM=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:08 +0000 Message-Id: <20241212151412.570454-8-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 07/11] target/ppc: implement address swizzle for instruction translation X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016817569116600 Content-Type: text/plain; charset="utf-8" Ensure that the address swizzle is implemented when retrieving instructions= from guest memory for translation. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- target/ppc/translate.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index ddc0f85fb7..74aa398f25 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -6600,7 +6600,11 @@ static void ppc_tr_translate_insn(DisasContextBase *= dcbase, CPUState *cs) ctx->base.pc_next, ctx->mem_idx, (int)msr_ir); =20 ctx->cia =3D pc =3D ctx->base.pc_next; - insn =3D translator_ldl_swap(env, dcbase, pc, need_byteswap(ctx)); + if (!need_addrswizzle_le(ctx)) { + insn =3D translator_ldl_swap(env, dcbase, pc, need_byteswap(ctx)); + } else { + insn =3D translator_ldl(env, dcbase, pc ^ 4); + } ctx->base.pc_next =3D pc +=3D 4; =20 if (!is_prefix_insn(ctx, insn)) { @@ -6616,8 +6620,13 @@ static void ppc_tr_translate_insn(DisasContextBase *= dcbase, CPUState *cs) gen_exception_err(ctx, POWERPC_EXCP_ALIGN, POWERPC_EXCP_ALIGN_INSN= ); ok =3D true; } else { - uint32_t insn2 =3D translator_ldl_swap(env, dcbase, pc, - need_byteswap(ctx)); + uint32_t insn2; + + if (!need_addrswizzle_le(ctx)) { + insn2 =3D translator_ldl_swap(env, dcbase, pc, need_byteswap(c= tx)); + } else { + insn2 =3D translator_ldl(env, dcbase, pc ^ 4); + } ctx->base.pc_next =3D pc +=3D 4; ok =3D decode_insn64(ctx, deposit64(insn2, 32, 32, insn)); } --=20 2.39.5 From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1734016741007666.487917457971; Thu, 12 Dec 2024 07:19:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkvC-0005CV-Em; Thu, 12 Dec 2024 10:16:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkuF-0003wL-WF; Thu, 12 Dec 2024 10:15:14 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLku3-0003ik-HP; Thu, 12 Dec 2024 10:15:11 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktS-0008Ue-Vn; Thu, 12 Dec 2024 15:14:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=rlvoZT+6+Va2hBWLqrFSaLkap8KQtdDfAf3TILXFvjQ=; b=gIWdg3kyG0cAzdXDhnp2CMkvxr 7q7eVtxO4juFfaB7A2YwTxdmAmdAUMNtwpYgFWrlDfsLE5zo4ZHt6OV9a3QN+8ExPM2Svu3MSdizf TPzvOmfVGWfi3KtnXp4GT4ZTuWdkYorvPvNk3M6PA7Wp6SZRLXz8yWYtxQ3h9NZu/PxQaquKtZweT n+BLvU4WQqdOpMtcKSX5ai43ktz7/Y09HMizP221DcXr1xZSLUjhS8y5f67WIbXzomPua1Mn6vfdg FkN0YHQaGPvh7c+7u6Zku9NI73Q4NeYl6is2Qn1I/QpRxaPnVpGGhpgjIbwG1MAVHuJ4v3dk2MCoA tyOlJWaj4Vh/11Y0k68y9AQyL2ZGo57aJaXbngYAMqJ6MbsJFFr1WCcRNbjSRXl4yZzQj8qKbKEh2 vpnyAIg+9/hYdMiCL+Ydv5J7F5ykpUURnjICCy5lTIG9o1Q+ZsjC1YbTYSxcMF4dtOM2cP09losHx o1um7MhYuj1If3XkYeOGRGGXJU5nW9T+Cx7dHZHyrkvRdB5BrN1K//LR5pLC8d62dFykcgEa/XzF5 7hP6hLQpkc4qisZ9baK/Uz0nQ4zGAdR5qNUIdZUJzLpSvoWYpQxYp+l/FL0k7ELXxzbMjs/0uhRuO BZFblVto+Kyo7AqgBv7kL0xg3leIwRY4z4ZDeTzJI=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:09 +0000 Message-Id: <20241212151412.570454-9-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 08/11] target/ppc: implement address swizzle for gen_ld_atomic() X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016743530116600 Content-Type: text/plain; charset="utf-8" The gen_ld_atomic() function uses a number of TCG atomic primitives within = its implementation. Update gen_ld_atomic() so that it implements the address sw= izzle if required. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- target/ppc/translate.c | 81 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 72 insertions(+), 9 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 74aa398f25..b549525bb6 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -3039,31 +3039,94 @@ static void gen_ld_atomic(DisasContext *ctx, MemOp = memop) memop |=3D MO_ALIGN; switch (gpr_FC) { case 0: /* Fetch and add */ - tcg_gen_atomic_fetch_add_tl(dst, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_fetch_add_tl(dst, ta, src, ctx->mem_idx, memop); + } else { + tcg_gen_atomic_fetch_add_tl(dst, EA, src, ctx->mem_idx, memop); + } break; case 1: /* Fetch and xor */ - tcg_gen_atomic_fetch_xor_tl(dst, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_fetch_xor_tl(dst, ta, src, ctx->mem_idx, memop); + } else { + tcg_gen_atomic_fetch_xor_tl(dst, EA, src, ctx->mem_idx, memop); + } break; case 2: /* Fetch and or */ - tcg_gen_atomic_fetch_or_tl(dst, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_fetch_or_tl(dst, ta, src, ctx->mem_idx, memop); + } else { + tcg_gen_atomic_fetch_or_tl(dst, EA, src, ctx->mem_idx, memop); + } break; case 3: /* Fetch and 'and' */ - tcg_gen_atomic_fetch_and_tl(dst, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_fetch_and_tl(dst, ta, src, ctx->mem_idx, memop); + } else { + tcg_gen_atomic_fetch_and_tl(dst, EA, src, ctx->mem_idx, memop); + } break; case 4: /* Fetch and max unsigned */ - tcg_gen_atomic_fetch_umax_tl(dst, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_fetch_umax_tl(dst, ta, src, ctx->mem_idx, memop= ); + } else { + tcg_gen_atomic_fetch_umax_tl(dst, EA, src, ctx->mem_idx, memop= ); + } break; case 5: /* Fetch and max signed */ - tcg_gen_atomic_fetch_smax_tl(dst, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_fetch_smax_tl(dst, ta, src, ctx->mem_idx, memop= ); + } else { + tcg_gen_atomic_fetch_smax_tl(dst, EA, src, ctx->mem_idx, memop= ); + } break; case 6: /* Fetch and min unsigned */ - tcg_gen_atomic_fetch_umin_tl(dst, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_fetch_umin_tl(dst, ta, src, ctx->mem_idx, memop= ); + } else { + tcg_gen_atomic_fetch_umin_tl(dst, EA, src, ctx->mem_idx, memop= ); + } break; case 7: /* Fetch and min signed */ - tcg_gen_atomic_fetch_smin_tl(dst, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_fetch_smin_tl(dst, ta, src, ctx->mem_idx, memop= ); + } else { + tcg_gen_atomic_fetch_smin_tl(dst, EA, src, ctx->mem_idx, memop= ); + } break; case 8: /* Swap */ - tcg_gen_atomic_xchg_tl(dst, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_xchg_tl(dst, ta, src, ctx->mem_idx, memop); + } else { + tcg_gen_atomic_xchg_tl(dst, EA, src, ctx->mem_idx, memop); + } break; =20 case 16: /* Compare and swap not equal */ --=20 2.39.5 From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1734016864436744.5341156152944; Thu, 12 Dec 2024 07:21:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkvJ-0005Uq-7b; Thu, 12 Dec 2024 10:16:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkuH-0003wi-38; Thu, 12 Dec 2024 10:15:14 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkuB-0003jP-A7; Thu, 12 Dec 2024 10:15:12 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktX-0008Ue-9r; Thu, 12 Dec 2024 15:14:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=DMGNUjzmKsMvZ/ENfaWJHv64f/zSYMmZ7qFj90kllSk=; b=Yis/fsxi1tHVNHdgW8AG3KYlHm OgBFvVXHATUk5V0M9lk9arwMvgSg1O9dRahYGkL7a9SYU1Nd2s5l4lxlTbRhLCSSRIC0pFeofVtRN 4wDsEPilTuh0dzyX7cIaxkKMLfitnmb/+vc0HuGnHSV5QjM0yU8RXJ8BMnin4/R5o165TYKSujHtJ od5VX8PjVnvTi77nnkt286xtFLfdrlERsmtn2XJohk3N5zuIEcRjuqxX9zr7zvbQKibRNywa5N5/n 9yyYpK03l2flVSAhzjg1SmPYH/QXM/KZ35FPlUvW/vrc82slfNh2RVfSvPfyob0KlIy6XkytZIh4W BY+X8lS5Y061jOP/szyQ7bGPEbiTiQ33R8KqZSIFfV13EL21jbP4D1CBaJ3V+NyBBj9sH+Dp2jH96 Dhr3wfrRwxFOO0nziBLTpH9WROAqqQGRSbWkm3PaAHBu0UmjkGEkFgY45a5HYSdykodvzFzU8Yqrp KlSVWWB8K63E1YuNPEFLWFe27vXkk09hG2m2nWm2vZCgYODozp17nVQa7pQle3B/8eJrgWZgEa/PS Q1me+JEXOlDxXj6eXbL8+AKhlaAWSVjX9o9nb2U0mmCEI3rRYAvawtBPKXWdOgdq/B+/hAWA0lSmh vcBxLYLg0kLj9pZYkMuaTw4f5wqzF+o9uBYEER5ig=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:10 +0000 Message-Id: <20241212151412.570454-10-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 09/11] target/ppc: implement address swizzle for gen_st_atomic() X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016865943116600 Content-Type: text/plain; charset="utf-8" The gen_st_atomic() function uses a number of TCG atomic primitives within = its implementation. Update gen_st_atomic() so that it implements the address sw= izzle if required. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- target/ppc/translate.c | 72 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 64 insertions(+), 8 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index b549525bb6..fc44e3293a 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -3208,28 +3208,84 @@ static void gen_st_atomic(DisasContext *ctx, MemOp = memop) memop |=3D MO_ALIGN; switch (gpr_FC) { case 0: /* add and Store */ - tcg_gen_atomic_add_fetch_tl(discard, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_add_fetch_tl(discard, ta, src, ctx->mem_idx, me= mop); + } else { + tcg_gen_atomic_add_fetch_tl(discard, EA, src, ctx->mem_idx, me= mop); + } break; case 1: /* xor and Store */ - tcg_gen_atomic_xor_fetch_tl(discard, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_xor_fetch_tl(discard, ta, src, ctx->mem_idx, me= mop); + } else { + tcg_gen_atomic_xor_fetch_tl(discard, EA, src, ctx->mem_idx, me= mop); + } break; case 2: /* Or and Store */ - tcg_gen_atomic_or_fetch_tl(discard, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_or_fetch_tl(discard, ta, src, ctx->mem_idx, mem= op); + } else { + tcg_gen_atomic_or_fetch_tl(discard, EA, src, ctx->mem_idx, mem= op); + } break; case 3: /* 'and' and Store */ - tcg_gen_atomic_and_fetch_tl(discard, EA, src, ctx->mem_idx, memop); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_and_fetch_tl(discard, ta, src, ctx->mem_idx, me= mop); + } else { + tcg_gen_atomic_and_fetch_tl(discard, EA, src, ctx->mem_idx, me= mop); + } break; case 4: /* Store max unsigned */ - tcg_gen_atomic_umax_fetch_tl(discard, EA, src, ctx->mem_idx, memop= ); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_umax_fetch_tl(discard, ta, src, ctx->mem_idx, m= emop); + } else { + tcg_gen_atomic_umax_fetch_tl(discard, EA, src, ctx->mem_idx, m= emop); + } break; case 5: /* Store max signed */ - tcg_gen_atomic_smax_fetch_tl(discard, EA, src, ctx->mem_idx, memop= ); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_smax_fetch_tl(discard, ta, src, ctx->mem_idx, m= emop); + } else { + tcg_gen_atomic_smax_fetch_tl(discard, EA, src, ctx->mem_idx, m= emop); + } break; case 6: /* Store min unsigned */ - tcg_gen_atomic_umin_fetch_tl(discard, EA, src, ctx->mem_idx, memop= ); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_umin_fetch_tl(discard, ta, src, ctx->mem_idx, m= emop); + } else { + tcg_gen_atomic_umin_fetch_tl(discard, EA, src, ctx->mem_idx, m= emop); + } break; case 7: /* Store min signed */ - tcg_gen_atomic_smin_fetch_tl(discard, EA, src, ctx->mem_idx, memop= ); + if (need_addrswizzle_le(ctx)) { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, EA, memop); + tcg_gen_atomic_smin_fetch_tl(discard, ta, src, ctx->mem_idx, m= emop); + } else { + tcg_gen_atomic_smin_fetch_tl(discard, EA, src, ctx->mem_idx, m= emop); + } break; case 24: /* Store twin */ if (tb_cflags(ctx->base.tb) & CF_PARALLEL) { --=20 2.39.5 From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1734016864553185.6051237764791; Thu, 12 Dec 2024 07:21:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkws-0007ba-Oi; Thu, 12 Dec 2024 10:17:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkuF-0003va-7e; Thu, 12 Dec 2024 10:15:14 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkuD-0003uJ-2V; Thu, 12 Dec 2024 10:15:10 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktb-0008Ue-Jb; Thu, 12 Dec 2024 15:14:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=wMWr+/32bt+QmZysuEMt/P2NvfOADfqTFHhlBuvcNBU=; b=gqcf4hCXKMEQHJOFo2hc0tTxS5 NsYw+gpjX2QYbSjPu79CardpRN/YPuJvPYHHuQ6FrWmKPjXMX252L4NTwy6b4r47ARlikhwhwvogO mLL3lYviXCX8huiOfDu71ml+/CjDZl8leN1WXa0SkoxCos5noUqrFknrGyyrPsN8cwLvbNF05d72b ouqpW38SE/7Aq0Mt+IPHVXe0WxNCUPP2paMsxY/aBEBEC82w1Ja9nOLZ6bfxwoPNCAH8vFVGhcoP3 umCmeSJTgceJFjAEhRh/rsEzJgUb+0Yw+gWttY/qqM2tniYbU22zZ+Wswwlxl92HAT72zkWhC1xmw QPdC/FVykAaqVm6jEGVZQr2YRhoEgC8fOSmGC/wDW5gPzIeo+I13/1lRYpDE9yaAQtOw1RoS25JPD Tn9clToGItdciBh3/PHNalbPs3EzkTSPZhb22aLx+yNpit5p9fBsdGPzD/zVlWrw/WimVlwN3il0R wynClSKmDnQUHCnOo8KGRajQwy/+kuhtz8S1jIVQGzj70as64FQ/nVtGYM2QWz7r9QI5PlCOPfZ2a wE8tYKLDWH/hSTDgZz4NnvWFLgvHYjckGGc7lz9O1F8flum9SjcOIO4llcaCmOorLHDfzhNfz5EnZ PPkBAIxl8atnhhTQ/5Dl+gFojlL4AEEWQxQWwrpJ4=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:11 +0000 Message-Id: <20241212151412.570454-11-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 10/11] target/ppc: implement address swizzle for gen_conditional_store() X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016865796116600 Content-Type: text/plain; charset="utf-8" The gen_conditional_store() function uses tcg_gen_atomic_cmpxchg_tl() withi= n its implementation. Update gen_conditional_store() so that it implements the ad= dress swizzle if required. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> --- target/ppc/translate.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index fc44e3293a..e8ae96cd46 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -3345,9 +3345,18 @@ static void gen_conditional_store(DisasContext *ctx,= MemOp memop) tcg_gen_brcond_tl(TCG_COND_NE, EA, cpu_reserve, lfail); tcg_gen_brcondi_tl(TCG_COND_NE, cpu_reserve_length, memop_size(memop),= lfail); =20 - tcg_gen_atomic_cmpxchg_tl(t0, cpu_reserve, cpu_reserve_val, - cpu_gpr[rs], ctx->mem_idx, - DEF_MEMOP(memop) | MO_ALIGN); + if (!need_addrswizzle_le(ctx)) { + tcg_gen_atomic_cmpxchg_tl(t0, cpu_reserve, cpu_reserve_val, + cpu_gpr[rs], ctx->mem_idx, + DEF_MEMOP(memop) | MO_ALIGN); + } else { + TCGv ta =3D tcg_temp_new(); + + gen_addr_swizzle_le(ta, cpu_reserve, memop); + tcg_gen_atomic_cmpxchg_tl(t0, ta, cpu_reserve_val, + cpu_gpr[rs], ctx->mem_idx, + DEF_MEMOP(memop) | MO_ALIGN); + } tcg_gen_setcond_tl(TCG_COND_EQ, t0, t0, cpu_reserve_val); tcg_gen_shli_tl(t0, t0, CRF_EQ_BIT); tcg_gen_or_tl(cr0, cr0, t0); --=20 2.39.5 From nobody Wed May 14 08:24:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ilande.co.uk Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org> Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1734016609763474.45217117902973; Thu, 12 Dec 2024 07:16:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <qemu-devel-bounces@nongnu.org>) id 1tLkv2-0004wD-UP; Thu, 12 Dec 2024 10:16:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkuF-0003vZ-7A; Thu, 12 Dec 2024 10:15:14 -0500 Received: from mail.ilande.co.uk ([2001:41c9:1:41f::167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLkuD-0003uV-Dc; Thu, 12 Dec 2024 10:15:10 -0500 Received: from [2a02:8012:c93d:0:260e:bf57:a4e9:8142] (helo=cheesecake.fritz.box) by mail.ilande.co.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mark.cave-ayland@ilande.co.uk>) id 1tLktf-0008Ue-Pw; Thu, 12 Dec 2024 15:14:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ilande.co.uk; s=20220518; h=Subject:Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:To:From:Sender:Reply-To:Cc: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=Px9HUwsmu6zWLJ+nb6mDRAmYsNBhD0kHW7MypdC0u48=; b=ZYZKJ0Pel6kSELakO4meoOuvEU ww69jLW7GoCpiFPzUSh6W9lyEpNZYJg3EGsmo/VlFJ9h7PWg77/mda7AmYxiDYl7D/GXxCrFfjSFQ /yQa5F4aR5AzHaZrO/xK6STMiUNNw+DeZWqK65bkhhoBBEtLDOX7CbH4ob17u87B96l2kQxerm3F9 KbV+qxdPHZ0D49uV/Kemc+uCrpNizpFxmiV8AUdOCp8g8HvMf56H9pKkCvzNU2cnAYlwmX+/tOBHK 7KsW7lw60lW7lb0kPIU8Xs2ywa0m1NLHMC7bCXjbpahD9akZG3+sS8PmR3gwyG38LRpM9cL73so4S bDhSrnotWWUS7o72K8PtOWJ8Vz5/URStn27dXF+uGaHice5lOO3gH3Xr8rTdMBq0hj0YZheWd1t9Y pdr6CYPgDzgVYzr4Ku3RGKIWsCbipgEWbuJBFwtrQxSBSfk13vv0lrSirhWdCuWYrkvZ9a0AdOQ10 XDMdlJdhlVOfx/1bqRZyAn6rddE5/hHkSUxFMxAqqgA6mkBYUrd2iX+nfzrWG11ygZhQSbDHjViyY VUo3Y8k1g5J0K96/bmahdQ35soqNpkQgTwvwkPVchWr0v//r7NFQIWuclmTS+xHcd6E5SH0euWX6b BH2Q+3THmn7xR2wxC5/Y38ImaZBkJewpC10amKNEc=; From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org Date: Thu, 12 Dec 2024 15:14:12 +0000 Message-Id: <20241212151412.570454-12-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> References: <20241212151412.570454-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a02:8012:c93d:0:260e:bf57:a4e9:8142 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [RFC PATCH 11/11] target/ppc: update DisasContext default_tcg_memop_mask value X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.ilande.co.uk) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.ilande.co.uk X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734016610447116600 Content-Type: text/plain; charset="utf-8" If address swizzling is enabled for little endian accesses, don't use littl= e endian memory ordering. This is because the conversion is performed by swizzling t= he physical address lines as opposed to reversing the memory storage order. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- target/ppc/translate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index e8ae96cd46..4a0be4d70c 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -6664,7 +6664,8 @@ static void ppc_tr_init_disas_context(DisasContextBas= e *dcbase, CPUState *cs) ctx->access_type =3D -1; ctx->need_access_type =3D !mmu_is_64bit(env->mmu_model); ctx->le_mode =3D (hflags >> HFLAGS_LE) & 1; - ctx->default_tcg_memop_mask =3D ctx->le_mode ? MO_LE : MO_BE; + ctx->default_tcg_memop_mask =3D (!need_addrswizzle_le(ctx) && + ctx->le_mode) ? MO_LE : MO_BE; ctx->flags =3D env->flags; #if defined(TARGET_PPC64) ctx->excp_model =3D env->excp_model; --=20 2.39.5