From nobody Sat May 30 20:11:15 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1776373556; cv=none; d=zohomail.com; s=zohoarc; b=GkPTqJzpX+aEEpwB5ztRujt6ewjw5LryPNI2RFX0jjydf8KBw1G0sNMKy5+p/Wmk3PEQWdhOt0Mur7hKLHZSsnSzCESYQuQMph88rGSw1xd0MVsfP7bs0iAq4FXip9E4Zs6Qqwjny/x9+zDioBp3jk0K8lF90MJX2/pa5IvOeu0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776373556; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kbhPEwEniRNXF7YsagHJPcd02n2cHBagQEUfQphYiWw=; b=ZQMM+SLg4lctommhuBga6wn4pRLP0DqSYM5jcrlI8PIUfQvzXh1wOOFphHXXHjOo/zGLTTDQlvpir3ey8pIW9BfZyhP+mmHjAsvti6n6CtfeW5PGe1Z87lT7flzc7DseBSJoNQhIby6fJLtDZEp2kWH8Fe756Zv13C+UBXnWUqs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776373556035750.6370861770971; Thu, 16 Apr 2026 14:05:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wDTuI-0003Hl-Mu; Thu, 16 Apr 2026 17:05:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wDTtq-00032m-39 for qemu-devel@nongnu.org; Thu, 16 Apr 2026 17:05:22 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wDTto-0002Ay-64 for qemu-devel@nongnu.org; Thu, 16 Apr 2026 17:05:21 -0400 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-488d2079582so79588685e9.2 for ; Thu, 16 Apr 2026 14:05:19 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488f5827145sm82763355e9.13.2026.04.16.14.05.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 16 Apr 2026 14:05:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776373518; x=1776978318; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kbhPEwEniRNXF7YsagHJPcd02n2cHBagQEUfQphYiWw=; b=czbAiUMHwptZJcKwYr+nVWvIgrFNKt0GbCaxI+ixqoceL7sf6jeg3YRmxRlCVqiAiP wZDb3wuRscmhvPaQ0A14GbzxPqBIDfB2hmNf+y3KkXc9J5QsFmhD+X6h81ukdBe8qnpx MuNNMxLQ4RIMTHlRZW70x18qyl9B0gCvQ/rNo0h1tNTUAITT67zoHz6izxOG1iAl3G/r I5ua6+Khsj7GCZD/j36ttF9f8ZU8W+NKyPG+HIk8wq6wYyMJq28A7h8ARePiJ1gv9G8Y hkxWXB/aN+lfBKpWbmlV2QS3C9PQjRz9cLCYLTgp3RGJeZvQtfUIYwNVU44K+Zj1edck Ntsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776373518; x=1776978318; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kbhPEwEniRNXF7YsagHJPcd02n2cHBagQEUfQphYiWw=; b=Byo8qaM96RSw3WfEv+cWcHjK2VNVIUjiRAQg3GtPTsk66rBIVKH0D6/sYAd1b7zwvZ l70s0Q+hZgkIkxfijvZhITNqN1P66ObAzSJOUD025HuzIDkGoBTrfKg+boyl8CQcUBWF X8rm3a+Fkxp5tq/jcysUDnXiLc7p+YsdwzEplykd+SPabr699BGFNGDep/d0zqRJoCAw vtW4URO3dkiNdienwltbOoTvWLiRrbQ8Hgq4Dw3X7TEdM5ljDwcSl1jMebPk8Lwydb6C EimHuDUKpMrIGQ4K4Vxwi6z+vChSf3IKEcYB9cUpa8OHe/wwIuYU73ijPMN+AybZ7bMG ol6g== X-Gm-Message-State: AOJu0YzVzU8RjD0xdgkdGOMtMcXJSK0wu9BaVHonDAOg39hA/0vxwpjA 1jw+WN37K9J0RY9fJcc0iuyHQs8wy0iPdiN9KRMxyolaj274E77JtGdi8QPR2UlHpDlERmphOb/ 6TffGGsw= X-Gm-Gg: AeBDiets9ymZRuK/++lSBcoOVi26NOolVBwmfjggPPKQxT5Wd2RyD7f5iVaDKareW7E VNXFpfY9ZW8T8ohP7VD1cahF4MDJfeL5+nF+IBNS+ca3cfWcrEtO10ZoRJhcQOmdwLtD4LFXxtp 53QtQibaB12H7Qnbincu5paDLgTIr/XaD/jLsr7ILYUBXuCX8hyce1ZvcVX8DOtufXzldI8frOh uOyYFMCSihjUv89ub9BexQ1pSbcdRplO24n4fN3EECjxwcRzST8N28Z5sRtOdev7G/QmrMdsOUF II3oudGzkv8rIwKlIupEBrbAP4+DkZAlWlpGW7uX5THzmS+iECMLzbiULdHi/Dby9iJkSCx37hO TGkxN7pu2BtUxkb8plZv42+npBQazWRWyW3euSDrsM2UhXMAoDQ9n3Aqam/4jpXuCiDL8noWN0X dCxSw6dg8YAeDNlp446xiObNezWz2sTIfAaQ818HRrswPqtOnhfQba8tgghea+72MaeTSOxDQ1N haFRSBpefQ= X-Received: by 2002:a05:600c:8485:b0:485:3ee1:eba5 with SMTP id 5b1f17b1804b1-488fb78e02fmr2370345e9.27.1776373517615; Thu, 16 Apr 2026 14:05:17 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Jiaxun Yang , Aurelien Jarno , Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v4 1/4] target/mips: Pass MemOpIdx argument to Load/Store Multiple helpers Date: Thu, 16 Apr 2026 23:05:05 +0200 Message-ID: <20260416210508.30686-2-philmd@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260416210508.30686-1-philmd@linaro.org> References: <20260416210508.30686-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=philmd@linaro.org; helo=mail-wm1-x32f.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1776373556508158500 In preparation of using the MemOp content in the next commit, pass it as MemOpIdx. Include the access size. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/mips/tcg/ldst_helper.c | 16 ++++++++++++---- target/mips/tcg/micromips_translate.c.inc | 16 ++++++++++------ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/target/mips/tcg/ldst_helper.c b/target/mips/tcg/ldst_helper.c index 4ebf72d610e..7be2cad89d6 100644 --- a/target/mips/tcg/ldst_helper.c +++ b/target/mips/tcg/ldst_helper.c @@ -224,8 +224,10 @@ void helper_sdr(CPUMIPSState *env, target_ulong arg1, = target_ulong arg2, static const int multiple_regs[] =3D { 16, 17, 18, 19, 20, 21, 22, 23, 30 = }; =20 void helper_lwm(CPUMIPSState *env, target_ulong addr, target_ulong reglist, - uint32_t mem_idx) + uint32_t memop_idx) { + MemOpIdx oi =3D memop_idx; + unsigned mem_idx =3D get_mmuidx(oi); target_ulong base_reglist =3D reglist & 0xf; target_ulong do_r31 =3D reglist & 0x10; =20 @@ -246,8 +248,10 @@ void helper_lwm(CPUMIPSState *env, target_ulong addr, = target_ulong reglist, } =20 void helper_swm(CPUMIPSState *env, target_ulong addr, target_ulong reglist, - uint32_t mem_idx) + uint32_t memop_idx) { + MemOpIdx oi =3D memop_idx; + unsigned mem_idx =3D get_mmuidx(oi); target_ulong base_reglist =3D reglist & 0xf; target_ulong do_r31 =3D reglist & 0x10; =20 @@ -268,8 +272,10 @@ void helper_swm(CPUMIPSState *env, target_ulong addr, = target_ulong reglist, =20 #if defined(TARGET_MIPS64) void helper_ldm(CPUMIPSState *env, target_ulong addr, target_ulong reglist, - uint32_t mem_idx) + uint32_t memop_idx) { + MemOpIdx oi =3D memop_idx; + unsigned mem_idx =3D get_mmuidx(oi); target_ulong base_reglist =3D reglist & 0xf; target_ulong do_r31 =3D reglist & 0x10; =20 @@ -290,8 +296,10 @@ void helper_ldm(CPUMIPSState *env, target_ulong addr, = target_ulong reglist, } =20 void helper_sdm(CPUMIPSState *env, target_ulong addr, target_ulong reglist, - uint32_t mem_idx) + uint32_t memop_idx) { + MemOpIdx oi =3D memop_idx; + unsigned mem_idx =3D get_mmuidx(oi); target_ulong base_reglist =3D reglist & 0xf; target_ulong do_r31 =3D reglist & 0x10; =20 diff --git a/target/mips/tcg/micromips_translate.c.inc b/target/mips/tcg/mi= cromips_translate.c.inc index 8fda7c8a214..4dca11b84b4 100644 --- a/target/mips/tcg/micromips_translate.c.inc +++ b/target/mips/tcg/micromips_translate.c.inc @@ -693,7 +693,8 @@ static void gen_ldst_multiple(DisasContext *ctx, uint32= _t opc, int reglist, int base, int16_t offset) { TCGv t0, t1; - TCGv_i32 t2; + MemOp mop =3D MO_UNALN; + MemOpIdx oi; =20 if (ctx->hflags & MIPS_HFLAG_BMASK) { gen_reserved_instruction(ctx); @@ -705,22 +706,25 @@ static void gen_ldst_multiple(DisasContext *ctx, uint= 32_t opc, int reglist, gen_base_offset_addr(ctx, t0, base, offset); =20 t1 =3D tcg_constant_tl(reglist); - t2 =3D tcg_constant_i32(ctx->mem_idx); =20 save_cpu_state(ctx, 1); switch (opc) { case LWM32: - gen_helper_lwm(tcg_env, t0, t1, t2); + oi =3D make_memop_idx(mop | MO_UL, ctx->mem_idx); + gen_helper_lwm(tcg_env, t0, t1, tcg_constant_i32(oi)); break; case SWM32: - gen_helper_swm(tcg_env, t0, t1, t2); + oi =3D make_memop_idx(mop | MO_UL, ctx->mem_idx); + gen_helper_swm(tcg_env, t0, t1, tcg_constant_i32(oi)); break; #ifdef TARGET_MIPS64 case LDM: - gen_helper_ldm(tcg_env, t0, t1, t2); + oi =3D make_memop_idx(mop | MO_UQ, ctx->mem_idx); + gen_helper_ldm(tcg_env, t0, t1, tcg_constant_i32(oi)); break; case SDM: - gen_helper_sdm(tcg_env, t0, t1, t2); + oi =3D make_memop_idx(mop | MO_UQ, ctx->mem_idx); + gen_helper_sdm(tcg_env, t0, t1, tcg_constant_i32(oi)); break; #endif } --=20 2.53.0 From nobody Sat May 30 20:11:15 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1776373559; cv=none; d=zohomail.com; s=zohoarc; b=RveVIN4oV1Q3D93M0jwycHMK9ktd/VKzZzvWrIgJYMcBF0gv7776T46plnplFNN2Vtq2S7Ncu8o4Mz6UqbNvG1HWadxSBRIen4YK9nZbXD2cc9GTihb/T93YjeqiBR8h2k8eRDhhHwhH34VllVesSqVHLmF2VVPmwuvEu9VQ7zE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776373559; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=a3+QzwRIxmWw9kXSisKAYHbTtDISxVU5LWF6vZ8RTyg=; b=Cdt2IUboObIEnSSNG+QBZuE/e/2/sWTlu4YYKwpqQIf3EGLZK4xvVlZrp9QY646Ze9qvPs6ZTwBH4gjc+4C26QXK/+CEApZfCLzreBa+oAp5APbOiamgbqu77WH5SP7pu+V9dsLksIhkAUJPtdCARIwGLC0+sVoCaYNuQMG4WhM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177637355992753.609908168332026; Thu, 16 Apr 2026 14:05:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wDTuO-0003Rp-L2; Thu, 16 Apr 2026 17:05:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wDTu1-0003AZ-BF for qemu-devel@nongnu.org; Thu, 16 Apr 2026 17:05:43 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wDTtu-0002Mx-UW for qemu-devel@nongnu.org; Thu, 16 Apr 2026 17:05:28 -0400 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-43cff5dafc3so6008002f8f.1 for ; Thu, 16 Apr 2026 14:05:26 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43ead33d6e9sm16755765f8f.1.2026.04.16.14.05.23 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 16 Apr 2026 14:05:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776373524; x=1776978324; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=a3+QzwRIxmWw9kXSisKAYHbTtDISxVU5LWF6vZ8RTyg=; b=K0qsYkd7G3nJCp00bl4qBjQWQt+4iPHu6uIsw1LStF0UWCi2uV5eml1sv40aIkZPNl P7B1eX64G+7Y6K0A6YyoPQSLv/CvbX82H+tDeYW1eEIGXPSqVTX0RHx5Sqj0snBSfjCf RlmGYxBbyGSiunWODUB6zhnf/8/42tGKF6s92EEfU8D7MT8K5lIDmKmaLkNN4CRPb02K E4/oeR7wIgji0w/gL6/HJ0fImQxt2q3OEgMyhxqSkfeIrRscw3cDvhvmBHpnDuRCSv6t 7vsGUYr1BeOVZRgvtkIPpR9nt1g8GGQyHdjdGFUxo9pqZyW+8vhtxZVTKn/MFK5M7Vh4 OLJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776373524; x=1776978324; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=a3+QzwRIxmWw9kXSisKAYHbTtDISxVU5LWF6vZ8RTyg=; b=o5k6V09u0hdPMNj0hHayy3eYjt0JpfcCEqVFzcvI2uqDmmim7VaVuwTwC0mcua1TFA /4ti9T39BIW/Lo3nsNldVFObmLQRyrkJg8XzJ40meWCA4Ei25L8CDDUIb4GLYnH28AVl JKBfLNYxdt7i6wxBgu4LSCkGBhTWkH0thE/aiOZNBSsTxIex/I0sZFZV5m0r7RFo5mVz FZhqDqW0zj2GAopmz/Dwv9myheDIddoxFliHgfAijNCrkyjD46FgRjEqKRKvpA1OBNhC GZhjgojJ+w32O+a6TGCUha9NTIYkLK30Tc8/Jbp87BvaDJ0PllWrsrQesty3Hf9jqbTx 9htQ== X-Gm-Message-State: AOJu0YzDoxC3fjB5CDFB+mcGc5CnoZxTE4wavSGXQMulI+/elNk++PXW O4I97fIU55gcooNa2E/1esYhqPMVXs2zD37w47B+Y7vhkikLXoyDKMTa+aYq/B3PJkLzv/1FGBB b4WKbPzE= X-Gm-Gg: AeBDievpbNpBo0IiPE11WpYnxEZPNnZlNvMPwVbTQZOxwMTVVqY5I5YJw1ipk/ONEjj +g5ZHY7gk0PZWcgh9jP5K/hB3utnJioejxD6hb9aq6R079oaK9UaTDCiZvL68WN7m/NUlrTWSU0 3Fn62LDaWVdsKKy1BYmI8uiRv8dUPsfK6kT8pBM/VId1IxoI69hSdkPKElGvWtpS4A7+AQIuOyy Ac6mOZboLya9g+eERwd1dDwCacv+VoX5hFnWHJq/DvU6/iCMo9/tdLHWf4ykgN4dYHZbsV4/Svv yL4kIP1rs5vf4scl5yTFKrmcSfJeLgyK/4BYSDwEg9mNoeHHxhY7CEdEZcTr0qXwuLQ1+RgnDK9 d1+JlH+BfWoOcQ1gN581XTw6UeILhtya3ArBY+e721tPralE/2bPw/K2acYpUwppriLLnGxDK2Y /H3/f7Irk4VD8A1HL5Lvi8i5Rsz+OQQF/cORBhWl7ffJAodm80mb4OYS8sXWoYFgiT1rkhRXBUX CSC0cT81Hk= X-Received: by 2002:a5d:584f:0:b0:43d:7d24:b510 with SMTP id ffacd0b85a97d-43fe3e0c921mr122828f8f.22.1776373524507; Thu, 16 Apr 2026 14:05:24 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Jiaxun Yang , Aurelien Jarno , Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v4 2/4] target/mips: Remove unnecessary target_ulong uses in LD/ST Multiple Date: Thu, 16 Apr 2026 23:05:06 +0200 Message-ID: <20260416210508.30686-3-philmd@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260416210508.30686-1-philmd@linaro.org> References: <20260416210508.30686-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::435; envelope-from=philmd@linaro.org; helo=mail-wr1-x435.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1776373561547154100 @do_r31 is a boolean, @base_reglist a size (size_t) and @i an unsigned index. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tcg/ldst_helper.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/target/mips/tcg/ldst_helper.c b/target/mips/tcg/ldst_helper.c index 7be2cad89d6..fdc192e9c14 100644 --- a/target/mips/tcg/ldst_helper.c +++ b/target/mips/tcg/ldst_helper.c @@ -228,13 +228,11 @@ void helper_lwm(CPUMIPSState *env, target_ulong addr,= target_ulong reglist, { MemOpIdx oi =3D memop_idx; unsigned mem_idx =3D get_mmuidx(oi); - target_ulong base_reglist =3D reglist & 0xf; - target_ulong do_r31 =3D reglist & 0x10; + size_t base_reglist =3D reglist & 0xf; + bool do_r31 =3D reglist & 0x10; =20 if (base_reglist > 0 && base_reglist <=3D ARRAY_SIZE(multiple_regs)) { - target_ulong i; - - for (i =3D 0; i < base_reglist; i++) { + for (unsigned i =3D 0; i < base_reglist; i++) { env->active_tc.gpr[multiple_regs[i]] =3D (target_long)cpu_ldl_mmuidx_ra(env, addr, mem_idx, GETPC()= ); addr +=3D 4; @@ -252,13 +250,11 @@ void helper_swm(CPUMIPSState *env, target_ulong addr,= target_ulong reglist, { MemOpIdx oi =3D memop_idx; unsigned mem_idx =3D get_mmuidx(oi); - target_ulong base_reglist =3D reglist & 0xf; - target_ulong do_r31 =3D reglist & 0x10; + size_t base_reglist =3D reglist & 0xf; + bool do_r31 =3D !!(reglist & 0x10); =20 if (base_reglist > 0 && base_reglist <=3D ARRAY_SIZE(multiple_regs)) { - target_ulong i; - - for (i =3D 0; i < base_reglist; i++) { + for (unsigned i =3D 0; i < base_reglist; i++) { cpu_stl_mmuidx_ra(env, addr, env->active_tc.gpr[multiple_regs[= i]], mem_idx, GETPC()); addr +=3D 4; @@ -276,13 +272,11 @@ void helper_ldm(CPUMIPSState *env, target_ulong addr,= target_ulong reglist, { MemOpIdx oi =3D memop_idx; unsigned mem_idx =3D get_mmuidx(oi); - target_ulong base_reglist =3D reglist & 0xf; - target_ulong do_r31 =3D reglist & 0x10; + size_t base_reglist =3D reglist & 0xf; + bool do_r31 =3D !!(reglist & 0x10); =20 if (base_reglist > 0 && base_reglist <=3D ARRAY_SIZE(multiple_regs)) { - target_ulong i; - - for (i =3D 0; i < base_reglist; i++) { + for (unsigned i =3D 0; i < base_reglist; i++) { env->active_tc.gpr[multiple_regs[i]] =3D cpu_ldq_mmuidx_ra(env, addr, mem_idx, GETPC()); addr +=3D 8; @@ -300,13 +294,11 @@ void helper_sdm(CPUMIPSState *env, target_ulong addr,= target_ulong reglist, { MemOpIdx oi =3D memop_idx; unsigned mem_idx =3D get_mmuidx(oi); - target_ulong base_reglist =3D reglist & 0xf; - target_ulong do_r31 =3D reglist & 0x10; + size_t base_reglist =3D reglist & 0xf; + bool do_r31 =3D !!(reglist & 0x10); =20 if (base_reglist > 0 && base_reglist <=3D ARRAY_SIZE(multiple_regs)) { - target_ulong i; - - for (i =3D 0; i < base_reglist; i++) { + for (unsigned i =3D 0; i < base_reglist; i++) { cpu_stq_mmuidx_ra(env, addr, env->active_tc.gpr[multiple_regs[= i]], mem_idx, GETPC()); addr +=3D 8; --=20 2.53.0 From nobody Sat May 30 20:11:15 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1776373575; cv=none; d=zohomail.com; s=zohoarc; b=IeuJJuBifRfa0xDfFX0ibvqqEEqGIaidnoEHSVsDabaDVXVECXxAJ1ifgn6l3vNPnHnUtKKaJcQKV1E7jz28vySOoc9dPz6l7JX7NkUwBZWPQD9WtK2AfKg5+L9Qr6kX6208leC19pMtScUt4y5GWPZHIM0LMcv89KAn8QUDWKU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776373575; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=MD26nLjJpw1YpqaIAYx+Rr+tkzTp5lNUVRFHhNtT6wI=; b=PCwzWpFgTGX9PJiS0A8ngKkiT9VBAPpirhFCx+GkK700ZrsltCOIPSl6HLgB5PTmnycnNXU/rnDOku5glUlUJBWn11SUV/1DRKPdd6bRXGudOe6IfPivJ7180a1FhSYiE77rA7Rc7GYlczQ8hyZP2vHKBTlFIh8QQfWBuI+SpN4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776373575509760.4392534438042; Thu, 16 Apr 2026 14:06:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wDTuW-0003f7-Fo; Thu, 16 Apr 2026 17:06:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wDTu9-0003D4-B0 for qemu-devel@nongnu.org; Thu, 16 Apr 2026 17:05:45 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wDTu2-0002c7-8f for qemu-devel@nongnu.org; Thu, 16 Apr 2026 17:05:38 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-43d03db7f87so5300260f8f.3 for ; Thu, 16 Apr 2026 14:05:32 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43ead3d5ea9sm17001852f8f.21.2026.04.16.14.05.30 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 16 Apr 2026 14:05:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776373531; x=1776978331; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MD26nLjJpw1YpqaIAYx+Rr+tkzTp5lNUVRFHhNtT6wI=; b=wF1f1p85ajP0o2X2CGv4spC76GG6iWJJN6V7pcSq/LWLu2CVe0l1Eh8zxKHcSUJxI5 66oDY8F/wQ5XFcqj5nP3KW7d+7OidveOxoyEeo1yFCGNQ6iEX+N7vNEsopPlMX9i+t5m I0nN9GufAEne5XJF9MQjy3cl0AWh1dNZfOVGbtD73hSKUazQkc5goV+mgtZD+T9B9uDo QKW0seTbl69d7YgG4THFojDvBLih1IVpAFrG+B0pU/gVHaOnghAlk3RzbT6CQtUu/5iO HjXIUVlVfb+3XYwPscQ3bw3OWAc+JmBzbeqgxjDIzL8Ue3ZHonPORqitMNiUOGV/60gh O7Kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776373531; x=1776978331; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MD26nLjJpw1YpqaIAYx+Rr+tkzTp5lNUVRFHhNtT6wI=; b=O187ZpH0hE2Quokpq1KGaNwoL74j+kfU9mqR2txapGOIXfk5OCJkmfwTUFIFruv3mn pMxG/fAt+TcJ8U0vaB++pV0I7LdVsGVNeH28F6W7VBZfOGfsqt9J1cHNsMXk2tUpODJ+ lzQtbLnijpM0+gvGp+bdlGNU7dkrq39O8ykKwCA8I/EUQGL5IvIL704L8HRQgVZfLAuh saILzEyIkkzr5jQxZcBqOI92oa4JgotTSQqwNKHDFGIGR40oQXd1nb/tIlydPZtS1n4E /S7ofp/ltS3Kb1c3iV7Bp2RoId+7xN0ePuPxLKahLpUZDhwDmcYrasrEoLhYE1GWYs1i NwlA== X-Gm-Message-State: AOJu0YzSrgEYB9bk/O+uHM3bRPy/PzRNYdx2HYXeiXQ2L5S4bCU+2wBH euR3WslZ9vq1HHWgajupr8fQcv9yY51gcjPZYuuQafgghtWXthtaFtTpifabIcuVv5kWVgxQNEK Qf7EAT/I= X-Gm-Gg: AeBDieuERHAoNGZCfvRlz7gA5Y9G7en79Vk2OBurx10fE39gwv9X7So810UeM6JE7TS cAjZlkj4a3ckAOS4z5chHltey8uV/f/O9CoxZnkgArmErn/5Bsee9Q0N3apEG/8Ordi3Zg4CP7P tQis3XjqBGt3mTjcbas42RYxPCBAdN+NmXRJBOT32puPuAsh9pyb2JGjhRs1ATqoXIgkugP/rkt SnDbs6vQWVHhXiG/GlY8lN9xYMS+XlEJ+PPN1VzxOaJHxq2pYVJMltZN8pBQD2ACHAb4bRL8tQo YJAxl6oge7/mRtk5NlRkpnM4JY4nYSssz9QXjs0vs3KLFuB2ozT1c338HuM58CuWvhjtom19d1b nfDGUXILG+Bs4XCaLe8iSDasNeKVv04+QwU2ASWmz1hvPR23SX09IXwsRzEdOqUq8rs2/UeH5XN CtHsjVpQb4y6AXTp20IH9FezEYW55ktePS1iNZI0QuweyCIKF2dGIa2UUEueRo8UMW2hVGcCWoh 2yqa4bk3VQ= X-Received: by 2002:a05:6000:25c7:b0:43c:f0c0:c571 with SMTP id ffacd0b85a97d-43fe3e12b2bmr122423f8f.47.1776373531367; Thu, 16 Apr 2026 14:05:31 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Jiaxun Yang , Aurelien Jarno , Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v4 3/4] target/mips: Inline cpu_ld/st_mmuidx_ra() calls in LD/ST Multiple Date: Thu, 16 Apr 2026 23:05:07 +0200 Message-ID: <20260416210508.30686-4-philmd@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260416210508.30686-1-philmd@linaro.org> References: <20260416210508.30686-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=philmd@linaro.org; helo=mail-wr1-x430.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1776373577455154100 In preparation of removing the cpu_ld*_mmuidx_ra() and cpu_st*_mmuidx_ra() calls, inline them. Expand MO_TE to mo_endian_env(env) in gen_ldst_multiple(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/mips/tcg/ldst_helper.c | 40 +++++++++++------------ target/mips/tcg/micromips_translate.c.inc | 2 ++ 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/target/mips/tcg/ldst_helper.c b/target/mips/tcg/ldst_helper.c index fdc192e9c14..81c0631a119 100644 --- a/target/mips/tcg/ldst_helper.c +++ b/target/mips/tcg/ldst_helper.c @@ -227,21 +227,20 @@ void helper_lwm(CPUMIPSState *env, target_ulong addr,= target_ulong reglist, uint32_t memop_idx) { MemOpIdx oi =3D memop_idx; - unsigned mem_idx =3D get_mmuidx(oi); size_t base_reglist =3D reglist & 0xf; bool do_r31 =3D reglist & 0x10; + target_ulong *gpr =3D env->active_tc.gpr; + uintptr_t ra =3D GETPC(); =20 if (base_reglist > 0 && base_reglist <=3D ARRAY_SIZE(multiple_regs)) { for (unsigned i =3D 0; i < base_reglist; i++) { - env->active_tc.gpr[multiple_regs[i]] =3D - (target_long)cpu_ldl_mmuidx_ra(env, addr, mem_idx, GETPC()= ); + gpr[multiple_regs[i]] =3D (target_long)cpu_ldl_mmu(env, addr, = oi, ra); addr +=3D 4; } } =20 if (do_r31) { - env->active_tc.gpr[31] =3D - (target_long)cpu_ldl_mmuidx_ra(env, addr, mem_idx, GETPC()); + gpr[31] =3D (target_long)cpu_ldl_mmu(env, addr, oi, ra); } } =20 @@ -249,20 +248,20 @@ void helper_swm(CPUMIPSState *env, target_ulong addr,= target_ulong reglist, uint32_t memop_idx) { MemOpIdx oi =3D memop_idx; - unsigned mem_idx =3D get_mmuidx(oi); size_t base_reglist =3D reglist & 0xf; - bool do_r31 =3D !!(reglist & 0x10); + bool do_r31 =3D reglist & 0x10; + target_ulong *gpr =3D env->active_tc.gpr; + uintptr_t ra =3D GETPC(); =20 if (base_reglist > 0 && base_reglist <=3D ARRAY_SIZE(multiple_regs)) { for (unsigned i =3D 0; i < base_reglist; i++) { - cpu_stl_mmuidx_ra(env, addr, env->active_tc.gpr[multiple_regs[= i]], - mem_idx, GETPC()); + cpu_stl_mmu(env, addr, gpr[multiple_regs[i]], oi, ra); addr +=3D 4; } } =20 if (do_r31) { - cpu_stl_mmuidx_ra(env, addr, env->active_tc.gpr[31], mem_idx, GETP= C()); + cpu_stl_mmu(env, addr, gpr[31], oi, ra); } } =20 @@ -271,21 +270,20 @@ void helper_ldm(CPUMIPSState *env, target_ulong addr,= target_ulong reglist, uint32_t memop_idx) { MemOpIdx oi =3D memop_idx; - unsigned mem_idx =3D get_mmuidx(oi); size_t base_reglist =3D reglist & 0xf; - bool do_r31 =3D !!(reglist & 0x10); + bool do_r31 =3D reglist & 0x10; + target_ulong *gpr =3D env->active_tc.gpr; + uintptr_t ra =3D GETPC(); =20 if (base_reglist > 0 && base_reglist <=3D ARRAY_SIZE(multiple_regs)) { for (unsigned i =3D 0; i < base_reglist; i++) { - env->active_tc.gpr[multiple_regs[i]] =3D - cpu_ldq_mmuidx_ra(env, addr, mem_idx, GETPC()); + gpr[multiple_regs[i]] =3D cpu_ldq_mmu(env, addr, oi, ra); addr +=3D 8; } } =20 if (do_r31) { - env->active_tc.gpr[31] =3D - cpu_ldq_mmuidx_ra(env, addr, mem_idx, GETPC()); + gpr[31] =3D cpu_ldq_mmu(env, addr, oi, ra); } } =20 @@ -293,20 +291,20 @@ void helper_sdm(CPUMIPSState *env, target_ulong addr,= target_ulong reglist, uint32_t memop_idx) { MemOpIdx oi =3D memop_idx; - unsigned mem_idx =3D get_mmuidx(oi); size_t base_reglist =3D reglist & 0xf; - bool do_r31 =3D !!(reglist & 0x10); + bool do_r31 =3D reglist & 0x10; + target_ulong *gpr =3D env->active_tc.gpr; + uintptr_t ra =3D GETPC(); =20 if (base_reglist > 0 && base_reglist <=3D ARRAY_SIZE(multiple_regs)) { for (unsigned i =3D 0; i < base_reglist; i++) { - cpu_stq_mmuidx_ra(env, addr, env->active_tc.gpr[multiple_regs[= i]], - mem_idx, GETPC()); + cpu_stq_mmu(env, addr, gpr[multiple_regs[i]], oi, ra); addr +=3D 8; } } =20 if (do_r31) { - cpu_stq_mmuidx_ra(env, addr, env->active_tc.gpr[31], mem_idx, GETP= C()); + cpu_stq_mmu(env, addr, gpr[31], oi, ra); } } =20 diff --git a/target/mips/tcg/micromips_translate.c.inc b/target/mips/tcg/mi= cromips_translate.c.inc index 4dca11b84b4..fb107eb91fe 100644 --- a/target/mips/tcg/micromips_translate.c.inc +++ b/target/mips/tcg/micromips_translate.c.inc @@ -701,6 +701,8 @@ static void gen_ldst_multiple(DisasContext *ctx, uint32= _t opc, int reglist, return; } =20 + mop |=3D mo_endian(ctx); + t0 =3D tcg_temp_new(); =20 gen_base_offset_addr(ctx, t0, base, offset); --=20 2.53.0 From nobody Sat May 30 20:11:15 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1776373572; cv=none; d=zohomail.com; s=zohoarc; b=HuRpVSO/IJtcnC0cgQkZhYHm5DSh2PJCeiQGXWpIonlYRocbYXGnmk5t0L5VCF64TtECDe1KjBokGnVLPnpawM3SYzakBRG9NsvodlMUyYhQ5vFnKUCE42xeJIyQD8LvpeT70JdKTeEApYFf9aul3pIVTvgtV//7XNIEJ/XF8js= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776373572; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rUAhKFrbXgJ52TQIirz4eY3ZfxYReDQPGbifO+GayW4=; b=SEPfqL1o47+RazOyctiCg0w8x6cxnniUe1CdWwLglZtBrC+VIhULEfZBX8QDyZ2qNYvH3zAu4NGqOluzQ5X6oOlwa61jmVBobfzDMKvMDInZ+ex+iBYxWCak4ynKJJkd7lNbKcku+JBcdnQzR2zJVOorVY9rz/ig4yV4iFX1GLk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776373572260803.5250479547663; Thu, 16 Apr 2026 14:06:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wDTuZ-0003ii-Fl; Thu, 16 Apr 2026 17:06:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wDTuF-0003Jj-QH for qemu-devel@nongnu.org; Thu, 16 Apr 2026 17:05:50 -0400 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wDTuA-0002o4-3i for qemu-devel@nongnu.org; Thu, 16 Apr 2026 17:05:45 -0400 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-43eada6d900so1955969f8f.0 for ; Thu, 16 Apr 2026 14:05:40 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43ead3d5f11sm17954920f8f.18.2026.04.16.14.05.37 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 16 Apr 2026 14:05:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776373538; x=1776978338; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rUAhKFrbXgJ52TQIirz4eY3ZfxYReDQPGbifO+GayW4=; b=m5+RshzOqMX/rRMrKYydaqUbOO32aoGPLMfj+efTs09tDN6FbMKGkO/1Xhv1ZWbL1X xNEJeNzxYlpU7D9RMjeLy9sE1LMYunp13PxN5eDe1mWAi3Paaeh3/HGD6TVBRoBBMhXg V8/uoWV5WjS4gbcgQV1uyZ4XMe0Obvu6hUp9/xTXYxiPiVvhxozplEK1sEJulCSlNL7k NX4h7xT9+g9Y9aUUOu1TKWzCqV+Lx1oVPIy9cZYfL4DJeDAjXtJajoQAPuEQTyWNGnIe EqJTvCk2S7bTIX1sqI9s8jqebhn55NeduENA1ht3LPtuMzGvQaNc8H+3QYBUbLFQspQQ l/SA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776373538; x=1776978338; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rUAhKFrbXgJ52TQIirz4eY3ZfxYReDQPGbifO+GayW4=; b=EqDPha2iIAPTb2K1p1IK5yA2ro4bTHZ89NK19UMvlBEgh/TA6lFydxpvH1RlcDzSpN h9fI2kxlbf3/7Us5FZqx+pQlbQUOMx/C2h5AJiBdw239jiOpzB0PhJ8FusrOLUVT4Ae2 n8fuvdsCbww6Y/5k5IEeeJN+LN3TnT5Iglt9moFA034jhOkJRtM5kNLervf7CSsl3lvl v6fhbc2ooYpKRHgAvTAGQMK5pP4zEX22iKtvCGN1IMa8EEQKSXb9AjJC0cUjqIT39dDa orSm3xs754D0NoQGXc/pVLsLwLeWmh0Mff2pwTrvHfTePZEqb+TAdP4k7JdUUx0fu3Vz cueg== X-Gm-Message-State: AOJu0YwPGNNLWIjw/LbQ9Se+4cFTkExmhwDijIwULPwr5RRypeB2p9PU TfpzwX3vSGYogM8iL0vUMHU0cNJN2mJToi6b+pL6t4toCfoHZmEtWoTSUCwPmW4XC3e0KXdi0J3 AN/maQF4= X-Gm-Gg: AeBDiessrpqSM5yH/xR40Cj78HjhXG22r053GkvduOaDzzaejpLs2OFb53RsZjfGSuF EL1aF95H18uos0nMWZ/QntD76hR5Uv5L0a8FwRQPKLwQ7Bl2EeWAAMXsizLr/W2GOTzuxj0uM4o vEuZdOrEoiADoQI4EeM8r2Kjeen3vFlyy6btFwGD92vSwuYXN/dXrcadRcYHpPCl2YpRl+qYyhE HrSevPubie2KAqIBI/+AJT4XHXDVdOf4+MDnlRsIPH5dDYmbSsO61in3t5WM7YklyYo3/Yg89ki lRmQ1Getk1hpboJZCnv0JxpyS5NP5h3jP2RQ1UtRX7UKewHTvyUA94+LQP/O5rFqPc7OfAd97lm nT+kyMv6fOwd96wuwFwzNBYXfky8Hj2bgEv/FKFgbsAAWSoZsocAk8x3c6HiO0509aoN1/CX+LS hwuRAgGvPEPrtMprb6fh60XnVwFuE6U965Ixw8vqZAbBAS+KwlIjUhRLJg34tr+lvCXXA0O+u+9 Y0qs7iKqRMd08e/hXjWDw== X-Received: by 2002:a05:6000:18a3:b0:439:b8b2:fabc with SMTP id ffacd0b85a97d-43fe3dd4b7dmr138757f8f.21.1776373538433; Thu, 16 Apr 2026 14:05:38 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Jiaxun Yang , Aurelien Jarno , Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v4 4/4] target/mips: Check alignment for microMIPS pre-R6 LD/ST multiple Date: Thu, 16 Apr 2026 23:05:08 +0200 Message-ID: <20260416210508.30686-5-philmd@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260416210508.30686-1-philmd@linaro.org> References: <20260416210508.30686-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=lists1p.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42a; envelope-from=philmd@linaro.org; helo=mail-wr1-x42a.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1776373573813154100 Pre-REL6 microMIPS requires alignment while REL6 microMIPS does not. Pass the MemOp alignment as argument to gen_ldst_multiple(). Keep using MO_UNALN for REL6 decoder but use MO_ALIGN for the pre-REL6 part. Fixes: 3c824109da0 ("target-mips: microMIPS ASE support") Reported-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/mips/tcg/micromips_translate.c.inc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/target/mips/tcg/micromips_translate.c.inc b/target/mips/tcg/mi= cromips_translate.c.inc index fb107eb91fe..efd9781c53b 100644 --- a/target/mips/tcg/micromips_translate.c.inc +++ b/target/mips/tcg/micromips_translate.c.inc @@ -690,10 +690,9 @@ static void gen_andi16(DisasContext *ctx) } =20 static void gen_ldst_multiple(DisasContext *ctx, uint32_t opc, int reglist, - int base, int16_t offset) + int base, int16_t offset, MemOp mop) { TCGv t0, t1; - MemOp mop =3D MO_UNALN; MemOpIdx oi; =20 if (ctx->hflags & MIPS_HFLAG_BMASK) { @@ -772,7 +771,7 @@ static void gen_pool16c_insn(DisasContext *ctx) int offset =3D ZIMM(ctx->opcode, 0, 4); =20 gen_ldst_multiple(ctx, LWM32, lwm_convert[(ctx->opcode >> 4) &= 0x3], - 29, offset << 2); + 29, offset << 2, MO_ALIGN); } break; case SWM16 + 0: @@ -784,7 +783,7 @@ static void gen_pool16c_insn(DisasContext *ctx) int offset =3D ZIMM(ctx->opcode, 0, 4); =20 gen_ldst_multiple(ctx, SWM32, swm_convert[(ctx->opcode >> 4) &= 0x3], - 29, offset << 2); + 29, offset << 2, MO_ALIGN); } break; case JR16 + 0: @@ -887,7 +886,8 @@ static void gen_pool16c_r6_insn(DisasContext *ctx) { int lwm_converted =3D 0x11 + extract32(ctx->opcode, 8, 2); int offset =3D extract32(ctx->opcode, 4, 4); - gen_ldst_multiple(ctx, LWM32, lwm_converted, 29, offset << 2); + gen_ldst_multiple(ctx, LWM32, lwm_converted, 29, offset << 2, + MO_UNALN); } break; case R6_JRC16: /* JRCADDIUSP */ @@ -927,7 +927,8 @@ static void gen_pool16c_r6_insn(DisasContext *ctx) { int swm_converted =3D 0x11 + extract32(ctx->opcode, 8, 2); int offset =3D extract32(ctx->opcode, 4, 4); - gen_ldst_multiple(ctx, SWM32, swm_converted, 29, offset << 2); + gen_ldst_multiple(ctx, SWM32, swm_converted, 29, offset << 2, + MO_UNALN); } break; case JALRC16: /* BREAK16, SDBBP16 */ @@ -1861,7 +1862,8 @@ static void decode_micromips32_opc(CPUMIPSState *env,= DisasContext *ctx) /* fall through */ case LWM32: case SWM32: - gen_ldst_multiple(ctx, minor, rt, rs, SIMM(ctx->opcode, 0, 12)= ); + gen_ldst_multiple(ctx, minor, rt, rs, SIMM(ctx->opcode, 0, 12), + MO_ALIGN); break; default: MIPS_INVAL("pool32b"); --=20 2.53.0