From nobody Tue Feb 10 06:57:29 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.42 as permitted sender) client-ip=209.85.128.42; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f42.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1629896655; cv=none; d=zohomail.com; s=zohoarc; b=E20uPQjpR42KjwK5RU63CEVitNzDSJjvDrom/2tP1wJSnYrL+kI/VdxWnxFWkFkl364wsA3fghl/Vz+Rgsis3UsoQUl1fpqAHuRZdg5/5ZZMj7KaX1+Z8T9VsmW0oMOGHpdIQFK2lzQlkO3V3xBAKgJXkEvgoaY6yACmGXYUgZA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629896655; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=S7AhW4qakAQXR7MG6oQIs52Ne0TNOUcGgs1+LT6yXd8=; b=AIvIpqX9yoJlU+kcpNvDsOpyjtajtmkdSUlDseD84nHCGaT3sKgJC4yzBCyLLbaU8jRchDsDnFo85YXmdte55neWqHr2+eeSLnleS6BrI8Z4pAAO92/CtosUCC10UDyhrLFt9vP+oCtrS0EfbTKvibOM1BO5LuocbQQbb9+PLxM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by mx.zohomail.com with SMTPS id 1629896655806123.51434539567992; Wed, 25 Aug 2021 06:04:15 -0700 (PDT) Received: by mail-wm1-f42.google.com with SMTP id z9-20020a7bc149000000b002e8861aff59so79483wmi.0 for ; Wed, 25 Aug 2021 06:04:15 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (163.red-83-52-55.dynamicip.rima-tde.net. [83.52.55.163]) by smtp.gmail.com with ESMTPSA id d9sm11303921wrm.21.2021.08.25.06.04.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Aug 2021 06:04:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=S7AhW4qakAQXR7MG6oQIs52Ne0TNOUcGgs1+LT6yXd8=; b=XeYUK8t0DOiREORdQw4Gzx7FoIlS5cW+vZAX68r2gw/bStvCsadNhFp0gu6WiqBVfG lpldCuvKb8wjLRVwxM/bo0s0LI5mKWQ89IXkjW59Lri4/ippR1EA7MHJZOAAh5aZQQy9 6C53zJuqA6AAP299dUM8Ye/KUdXxayf6nZpZ06nykKmkxQm9r+RF7muLO4KhF4nUkH0T jLN4XRbJ0OV3BjHGXQQxohaY9S0wO/zlwmI4hTj8CDN5HLngiFIxDNRjfneEg4cw1tn1 prujxwI4DDCzI4UWn5BNhO4DWFZ6JRSGkOVkSTPsC+ZLcj14gAF0sQdZfNwG6OS/DwIY o57g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=S7AhW4qakAQXR7MG6oQIs52Ne0TNOUcGgs1+LT6yXd8=; b=tolcJgccwLqL6GADQ8GL5PI7Bure/nuds6WeOVpFN2ua4tBCzSkkvhNDO4WSW6mWCL P10QeTm0gT9GNYmNcKlx9ZedUfVhfuo+OWBt3vY+rm7rAjtfmYqHmcQQUE+bKFj6Zcpr FWN/Av72lM6ypTNJDr1bAOw3moEHHkNsCxcaB+7tvqpoON0pRTAMiCscmnRWiTyRPgIS tvNXP2gqNHYv7cXkVp0bZoy8IC6vkts+V/YxCVa9wt6mPlTRTf5FAbO+WUojuLpyieQB LrsxySPSwouJbCaFKnxWsDVCq/a3FIjTwu0Lq3M64752MDPFhbsQM91s9hG5PNoykMJb t9CA== X-Gm-Message-State: AOAM53350C29QFv/J3mQpFiro5UiRLOTMBmV7HENcPRFXZi/DrFKrZ0Y YmMF7/M9GHc8LCbwwE5Tl+Y= X-Google-Smtp-Source: ABdhPJz1G3TrgQmkbrLQTfCjeo4gjALxxwcm/LMQKHvVbqHyAN8LSDBbNGJmm7yUDd8FA1QU6DKqBw== X-Received: by 2002:a1c:1d3:: with SMTP id 202mr9063624wmb.179.1629896654012; Wed, 25 Aug 2021 06:04:14 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Jiaxun Yang , Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aurelien Jarno , Richard Henderson Subject: [PULL 26/28] target/mips: Replace GET_LMASK64() macro by get_lmask(64) function Date: Wed, 25 Aug 2021 15:02:09 +0200 Message-Id: <20210825130211.1542338-27-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210825130211.1542338-1-f4bug@amsat.org> References: <20210825130211.1542338-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1629896656403100001 The target endianess information is stored in the BigEndian bit of the Config0 register in CP0. Replace the GET_LMASK() macro by an inlined get_lmask() function, passing CPUMIPSState and the word size as argument. We can remove another use of the TARGET_WORDS_BIGENDIAN definition. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210818215517.2560994-4-f4bug@amsat.org> --- target/mips/tcg/ldst_helper.c | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/target/mips/tcg/ldst_helper.c b/target/mips/tcg/ldst_helper.c index 054459703aa..d0bd0267b24 100644 --- a/target/mips/tcg/ldst_helper.c +++ b/target/mips/tcg/ldst_helper.c @@ -124,50 +124,46 @@ void helper_swr(CPUMIPSState *env, target_ulong arg1,= target_ulong arg2, * "half" load and stores. We must do the memory access inline, * or fault handling won't work. */ -#ifdef TARGET_WORDS_BIGENDIAN -#define GET_LMASK64(v) ((v) & 7) -#else -#define GET_LMASK64(v) (((v) & 7) ^ 7) -#endif =20 void helper_sdl(CPUMIPSState *env, target_ulong arg1, target_ulong arg2, int mem_idx) { + target_ulong lmask =3D get_lmask(env, arg2, 64); int dir =3D cpu_is_bigendian(env) ? 1 : -1; =20 cpu_stb_mmuidx_ra(env, arg2, (uint8_t)(arg1 >> 56), mem_idx, GETPC()); =20 - if (GET_LMASK64(arg2) <=3D 6) { + if (lmask <=3D 6) { cpu_stb_mmuidx_ra(env, arg2 + 1 * dir, (uint8_t)(arg1 >> 48), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) <=3D 5) { + if (lmask <=3D 5) { cpu_stb_mmuidx_ra(env, arg2 + 2 * dir, (uint8_t)(arg1 >> 40), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) <=3D 4) { + if (lmask <=3D 4) { cpu_stb_mmuidx_ra(env, arg2 + 3 * dir, (uint8_t)(arg1 >> 32), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) <=3D 3) { + if (lmask <=3D 3) { cpu_stb_mmuidx_ra(env, arg2 + 4 * dir, (uint8_t)(arg1 >> 24), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) <=3D 2) { + if (lmask <=3D 2) { cpu_stb_mmuidx_ra(env, arg2 + 5 * dir, (uint8_t)(arg1 >> 16), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) <=3D 1) { + if (lmask <=3D 1) { cpu_stb_mmuidx_ra(env, arg2 + 6 * dir, (uint8_t)(arg1 >> 8), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) <=3D 0) { + if (lmask <=3D 0) { cpu_stb_mmuidx_ra(env, arg2 + 7 * dir, (uint8_t)arg1, mem_idx, GETPC()); } @@ -176,41 +172,42 @@ void helper_sdl(CPUMIPSState *env, target_ulong arg1,= target_ulong arg2, void helper_sdr(CPUMIPSState *env, target_ulong arg1, target_ulong arg2, int mem_idx) { + target_ulong lmask =3D get_lmask(env, arg2, 64); int dir =3D cpu_is_bigendian(env) ? 1 : -1; =20 cpu_stb_mmuidx_ra(env, arg2, (uint8_t)arg1, mem_idx, GETPC()); =20 - if (GET_LMASK64(arg2) >=3D 1) { + if (lmask >=3D 1) { cpu_stb_mmuidx_ra(env, arg2 - 1 * dir, (uint8_t)(arg1 >> 8), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) >=3D 2) { + if (lmask >=3D 2) { cpu_stb_mmuidx_ra(env, arg2 - 2 * dir, (uint8_t)(arg1 >> 16), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) >=3D 3) { + if (lmask >=3D 3) { cpu_stb_mmuidx_ra(env, arg2 - 3 * dir, (uint8_t)(arg1 >> 24), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) >=3D 4) { + if (lmask >=3D 4) { cpu_stb_mmuidx_ra(env, arg2 - 4 * dir, (uint8_t)(arg1 >> 32), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) >=3D 5) { + if (lmask >=3D 5) { cpu_stb_mmuidx_ra(env, arg2 - 5 * dir, (uint8_t)(arg1 >> 40), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) >=3D 6) { + if (lmask >=3D 6) { cpu_stb_mmuidx_ra(env, arg2 - 6 * dir, (uint8_t)(arg1 >> 48), mem_idx, GETPC()); } =20 - if (GET_LMASK64(arg2) =3D=3D 7) { + if (lmask =3D=3D 7) { cpu_stb_mmuidx_ra(env, arg2 - 7 * dir, (uint8_t)(arg1 >> 56), mem_idx, GETPC()); } --=20 2.31.1