From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366058; cv=none; d=zohomail.com; s=zohoarc; b=JylmpXiajJBqmPbofAVAhXqTm5LhQeEaOfPpekesoXogqdyzix0IxMmY8tagA/PQstmPdAAIIUKBylbping26d/J9iKKKSX8yIn7gM2npYDepBbFutSgrIT/i64mLHcBRZgIocjQSHJqIb0xZEuvtVpFxLyUZN/HSziipccnlvY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366058; h=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=i5xqQGmlWDxi1LmZ2ClirqJ/75e4RmGThjr5rHPhrog=; b=OEnqwQCJstG+8ydK/CX7EGSvzsIrUetX5/2JhLN0tQi6UTut/pc7fV1PlRM3yLoto0sLzzEc6XRv4+/UKmKfa24B3IJP7weUAnX5RbkRt3xGXq0j49dfWo4z2slo8bgYc5jM2OTXACs5TlqPLJCQFlK81KC7AKcztRhtiRnR6qM= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366058313339.3814851884713; Tue, 1 Jul 2025 03:34:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYIH-0004Zg-FW; Tue, 01 Jul 2025 06:32:53 -0400 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 ) id 1uWYI6-0004UR-CA; Tue, 01 Jul 2025 06:32:42 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYI3-0002Eo-HX; Tue, 01 Jul 2025 06:32:41 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-73c17c770a7so3889710b3a.2; Tue, 01 Jul 2025 03:32:36 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id 41be03b00d2f7-b34e31db02esm10172589a12.63.2025.07.01.03.32.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751365954; x=1751970754; 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=i5xqQGmlWDxi1LmZ2ClirqJ/75e4RmGThjr5rHPhrog=; b=GT4FFM6+X9ygT5xq8Qd5gOKrQY/vVzgmLUV4hjo/6JR+XzAMCw8F3H+EX1z4E14xw8 u36B+N3+xB7XBBN7i5NaPNZ73UlNfvnoutBfD8poMcwGaaz5WYz+iAJoCSnyCFOXe+8x 2BXUgEeVDRGsNcM1UPwSv0AGDQrfhvQ9oZjc+1H8VFB6pQk9lYibo25piAiY2+/T508M YHt2A5gOVm5f+WaC4LegbcthRxMsAcZDs+KG07/UymUPAQCzjMNIkxiq8dWkvfhdD7iZ LiQJQCQhCoOtVlbmJdeD5H5m9wp6balF4pjx26WIHXQdSdQ+v+PE8C8qsdwnnktIyJ4j zQmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751365954; x=1751970754; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=i5xqQGmlWDxi1LmZ2ClirqJ/75e4RmGThjr5rHPhrog=; b=Ydu+1cvYwdrsyuBP98ROtLJxw3FSfEgpbf2hqSqCBqNGsVxwCOkwoilfl3/1RXOD7u P9mLZa61LwQzolbDH9nM4neXXuBcbqngssMhYnNw2lyeB5cEvkp0HYmoeUz60wUa3K9N KOsrBW5/XoxLrOXHFlDeE19g4n5K9qSFtWs0JFRcQkb9jkHH66l+qHDO8d6L9HlZtUoz rOY9vm8myWIj/LXjU7xOWDGIDUMUmEhtfGXX0dasFTA5OQd6mh0rlVwlMxT1hB4TnUIr BTfKziLKzibmVoSGioADn//YNKq99qF3Oer79vTbry/NZu7TVSl8GmcBUpZwLQ2TwPFy aInA== X-Gm-Message-State: AOJu0Yybsd3zzpL+fwQYM3+miegtsWV/LNGyleSP8JmnIsXKaZnk+svW oJ+NPAmGYZwPOr+MHEf/g64k4H9Q3EvUtlG3BE+vhbsp7oygwcR2/gZqbJaTiWMTjfk= X-Gm-Gg: ASbGnctLVT9cIILAghUXxP3EjmxMWPOx0YHwaCei++hzpYJN8LAK2iMI9CJODrjAEZH 7TOY9SyEEb6Al2Dh0wYxaiXS1xC7rNXdmwNP7IUBUjuzDHAxCyjpV4jEs7lUqPMR3rAbu5jYfhk 1uOvR8ze6AtBcKFkKG/IOyzSpYX//kDg96dBWRtW1JiJmxxyMBPi+gib/D9MFvj4DpICTtHfQia 9+KYaxNe1dX0p+8VGOtcOoUd8fplV6IKfXPYbv/XYRJI8HdJdE+4rUOwReKP6bbuttcCDuA2jcr Tn+nmlAJN/z0XVh0anbzKjki9oMx3BGEy+eywJorJh6rQAvVOzPvfO7K7KiplK3lURHZKMXmIdw zHT9V9VKt7GPu9MNjxKsIsIrCs+7Kedpthpc29P7E5dI= X-Google-Smtp-Source: AGHT+IG6uvXGmSbxW5lroVeFT11dBMl3BemDxljnjeavGNgNvSorTBzUTWNzfn4rg7C0szEO0UXzFg== X-Received: by 2002:a05:6a20:2d0b:b0:215:dee4:4808 with SMTP id adf61e73a8af0-220a1292cb0mr29649925637.18.1751365954395; Tue, 01 Jul 2025 03:32:34 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 01/12] target/arm: Fix VLSTM/VLLDM helper load/store alignment checks Date: Tue, 1 Jul 2025 20:01:48 +0930 Message-ID: <20250701103159.62661-2-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pf1-x432.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366059677116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the load operations in the VLLDM instruction, and in the store operations in the VLSTM instruction. Manual alignment checks in the both helpers are retained because they enforce an 8-byte alignment requirement (instead of the 4-byte alignment for ordinary long loads/stores). References to cpu_*_data_* are still replaced with cpu_*_mmu(), so that the individual word accesses themselves also perform the standard alignment checks, in keeping with the ARM pseudocode. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/m_helper.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c index 6614719832..251e12edf9 100644 --- a/target/arm/tcg/m_helper.c +++ b/target/arm/tcg/m_helper.c @@ -1048,6 +1048,9 @@ void HELPER(v7m_vlstm)(CPUARMState *env, uint32_t fpt= r) bool s =3D env->v7m.fpccr[M_REG_S] & R_V7M_FPCCR_S_MASK; bool lspact =3D env->v7m.fpccr[s] & R_V7M_FPCCR_LSPACT_MASK; uintptr_t ra =3D GETPC(); + ARMMMUIdx mmu_idx =3D arm_mmu_idx(env); + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, + arm_to_core_mmu_idx(mmu_idx)); =20 assert(env->v7m.secure); =20 @@ -1073,7 +1076,7 @@ void HELPER(v7m_vlstm)(CPUARMState *env, uint32_t fpt= r) * Note that we do not use v7m_stack_write() here, because the * accesses should not set the FSR bits for stacking errors if they * fail. (In pseudocode terms, they are AccType_NORMAL, not AccType_ST= ACK - * or AccType_LAZYFP). Faults in cpu_stl_data_ra() will throw exceptio= ns + * or AccType_LAZYFP). Faults in cpu_stl_mmu() will throw exceptions * and longjmp out. */ if (!(env->v7m.fpccr[M_REG_S] & R_V7M_FPCCR_LSPEN_MASK)) { @@ -1089,12 +1092,12 @@ void HELPER(v7m_vlstm)(CPUARMState *env, uint32_t f= ptr) if (i >=3D 16) { faddr +=3D 8; /* skip the slot for the FPSCR */ } - cpu_stl_data_ra(env, faddr, slo, ra); - cpu_stl_data_ra(env, faddr + 4, shi, ra); + cpu_stl_mmu(env, faddr, slo, oi, ra); + cpu_stl_mmu(env, faddr + 4, shi, oi, ra); } - cpu_stl_data_ra(env, fptr + 0x40, vfp_get_fpscr(env), ra); + cpu_stl_mmu(env, fptr + 0x40, vfp_get_fpscr(env), oi, ra); if (cpu_isar_feature(aa32_mve, cpu)) { - cpu_stl_data_ra(env, fptr + 0x44, env->v7m.vpr, ra); + cpu_stl_mmu(env, fptr + 0x44, env->v7m.vpr, oi, ra); } =20 /* @@ -1121,6 +1124,9 @@ void HELPER(v7m_vlldm)(CPUARMState *env, uint32_t fpt= r) { ARMCPU *cpu =3D env_archcpu(env); uintptr_t ra =3D GETPC(); + ARMMMUIdx mmu_idx =3D arm_mmu_idx(env); + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, + arm_to_core_mmu_idx(mmu_idx)); =20 /* fptr is the value of Rn, the frame pointer we load the FP regs from= */ assert(env->v7m.secure); @@ -1155,16 +1161,16 @@ void HELPER(v7m_vlldm)(CPUARMState *env, uint32_t f= ptr) faddr +=3D 8; /* skip the slot for the FPSCR and VPR */ } =20 - slo =3D cpu_ldl_data_ra(env, faddr, ra); - shi =3D cpu_ldl_data_ra(env, faddr + 4, ra); + slo =3D cpu_ldl_mmu(env, faddr, oi, ra); + shi =3D cpu_ldl_mmu(env, faddr + 4, oi, ra); =20 dn =3D (uint64_t) shi << 32 | slo; *aa32_vfp_dreg(env, i / 2) =3D dn; } - fpscr =3D cpu_ldl_data_ra(env, fptr + 0x40, ra); + fpscr =3D cpu_ldl_mmu(env, fptr + 0x40, oi, ra); vfp_set_fpscr(env, fpscr); if (cpu_isar_feature(aa32_mve, cpu)) { - env->v7m.vpr =3D cpu_ldl_data_ra(env, fptr + 0x44, ra); + env->v7m.vpr =3D cpu_ldl_mmu(env, fptr + 0x44, oi, ra); } } =20 --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366016; cv=none; d=zohomail.com; s=zohoarc; b=h4OmnVq00tiLm3ewbL2ExozmXHOqS35KQW+oxXP6Nt3YmmBc9FY1tF4G3JKqRZjxaxuX5CGfroSkFcDr5o5gTra/uFe/8e0g42FGxbmM60/0kE7vrBQq84MUzCW+rTCnwIk0BUzQXw5MEHNrEDi0GPIr4INRUNlkI6OZa1zkH+M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366016; h=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=XxWORJNR5cWeeNL6wFpxR5xESZhNAoZLn5RWItiQ610=; b=i/xF3+aRiaQLNbqmMaw/L27E66iCJUPju6+9zEFymtFzuVbwqAF1vuEH1Dt5wIPsOsqLCAxRLTm/ym/WjZ1Ungwer4WoLDwVdm8PONcBB6rU7CxHU8lfUrqVj4hJqn3Csp+zKnxfunKbD5LVjDMlJrh9JfOMbJXt0crDCT1G7Y4= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175136601648825.710376794032868; Tue, 1 Jul 2025 03:33:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYIH-0004aF-Gg; Tue, 01 Jul 2025 06:32:53 -0400 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 ) id 1uWYIE-0004Wd-JF; Tue, 01 Jul 2025 06:32:51 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYIB-0002GN-OL; Tue, 01 Jul 2025 06:32:49 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-3138e64b3fcso2196931a91.2; Tue, 01 Jul 2025 03:32:46 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id 98e67ed59e1d1-315f5382f0dsm17009961a91.3.2025.07.01.03.32.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:32:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751365963; x=1751970763; 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=XxWORJNR5cWeeNL6wFpxR5xESZhNAoZLn5RWItiQ610=; b=XE1LMpodA4PFMcFTZpLfg/uH8A8ZUmy8o+3LLqsLW3MIatvQb+FrRFhTPfmeMJb9QZ vUb/6b45mFDN15M4BTPIYH/kKFuOLwu0aKl/bbB7gUyNum/AGCxk4MP4Xi5yAaeumL2k EI127pQ4vAJFmarKfBtMhNOYd/5YzfC3ee/sIRoaKFFzrWpONCICW55JzUe7WRSvfVsn IIvpeRyyhmAvMYjCao1mKwGxbZMvG09ctldCS7+6Zebt0KaYPghoant9/D3HmjPCPvwS RRAfBTV+ksaadp3/E2dVo1+k1cy7QgKQTZ/6U2I3uKuvCI51rLV3AVO3qqQ5AMcncOdi 2HSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751365963; x=1751970763; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XxWORJNR5cWeeNL6wFpxR5xESZhNAoZLn5RWItiQ610=; b=TuL0T92NMS0jliRpWBdn9ykZxyOnLPRTufv08NEHaxUSGDEom3n8rrfw3fi7v+5hcy N7jpHw5q8b65pLqdfzoV68+5lOD4iiNlacn8V52eG9tj7dDHrrIOG6k0qhzrYyzlvmxV H8eCuGoCm1Fdq+thyXzetQUidu9rF9F7A7RR+vbfsIdvuELbCMS61+OCbYyYCkMW1f94 warNf1523GnflL1eHfCgHgsAZr0Iv3MGkMOMLuMTHL6jP5cWfC+8sSxyTe+YHbhOlj8f hqBR63xb8/Tb/i+8BQUaYBqHxXjFAoUTtkCvsc4+TorTaQZyJaSLZUpdLjKr04KFQAIS fc7g== X-Gm-Message-State: AOJu0Yw/6zHg4G/pDDAsymBJHoE6wjexCbmh6dFC6sqsLd9mf/Eaz3sf iHg2w73/M8S1jNi5uugk4l2ITzGbqOZyS3jFU95UtX7vK/PaZMXcPG7RcqlZq/DvOXo= X-Gm-Gg: ASbGncsXZYdH/0Fogkooh3eDWj2ULIzD2LUf91swvBHxLnNE73FbIH3RmbJ1vfAlqrd GW99plr4r8X6+IeBZWFXuYwEUJ6L30jiW2nxcbO2aUiMhdcR7Ca8vEf0lc46K/zZlsMmvmPLrQY dhBCVcwtCUi+d/eLoppoBr77vRBP3lC5raRIu4X/BRYxC4THPzEoUMdNoXPcpKg+Wx0J0RP5Mvu ky5pNnOBviPNn5oLIWRg0H9COV5+/Q0WtzotXc1QDAsV7x1durZNSY+vQN+aavHnQNmtfh2wwqH +LdrEwwGkuo3quOi4OheP/DyXO2zNcQ2M4fgOKY0A+FpV45VVYBsc22Vd42/yGW+IhlgZk7alhm 2FQV89BweyzmYweuqpm1JI/8aS/4JK8gNbwUVx4X78yE= X-Google-Smtp-Source: AGHT+IGDcxJUxgcHCmT8Qy4Y041NEpkE9gvknd5PWsVcxlnB1QJSG/k8gY7DS5awUjv9faRJd0qxDg== X-Received: by 2002:a17:90b:4e8f:b0:313:fab4:1df6 with SMTP id 98e67ed59e1d1-318c9280acfmr21462390a91.32.1751365963281; Tue, 01 Jul 2025 03:32:43 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 02/12] target/arm: Fix BLXNS helper store alignment checks Date: Tue, 1 Jul 2025 20:01:49 +0930 Message-ID: <20250701103159.62661-3-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pj1-x1030.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366017191116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the store operations (when stacking the return pc and psr) in the BLXNS instruction. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/m_helper.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c index 251e12edf9..f342d93489 100644 --- a/target/arm/tcg/m_helper.c +++ b/target/arm/tcg/m_helper.c @@ -632,8 +632,11 @@ void HELPER(v7m_blxns)(CPUARMState *env, uint32_t dest) } =20 /* Note that these stores can throw exceptions on MPU faults */ - cpu_stl_data_ra(env, sp, nextinst, GETPC()); - cpu_stl_data_ra(env, sp + 4, saved_psr, GETPC()); + ARMMMUIdx mmu_idx =3D arm_mmu_idx(env); + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, + arm_to_core_mmu_idx(mmu_idx)); + cpu_stl_mmu(env, sp, nextinst, oi, GETPC()); + cpu_stl_mmu(env, sp + 4, saved_psr, oi, GETPC()); =20 env->regs[13] =3D sp; env->regs[14] =3D 0xfeffffff; --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366008; cv=none; d=zohomail.com; s=zohoarc; b=Zg7Ic0p/j7nPHvzSKXbRMgVvbN+mReGB8KkN/aN5OGsAFIR8f9hbnBp9YjNaBdNA8LYeXkUdG3CvJvIr5OHFHu96ekF50EVaN4wbSFUw16Q3WqruVSTNP12Uw4d+tHoH4nVS5tpCe7HIFp0JRKr4SZFp+IcIrDYH4FKID5qX0Ho= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366008; h=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=wnu/gBrofYGPtwFVydQpKrmYxzDenOFmEobdvM+2Gm8=; b=CC48Jsas+IEP9nndBfUDCUyg6wBnurxEp3m24yU3rxM+1Td9T9swPXMWS/q3erW0sTK4E6Wdg4Auv1YXDnVSSPK+J6JS8Bl24ceZoONHmhJ+s93jb09q9WD8UMiyJHP/OQ0pk/crdZN2pFkvEmNZ2fUzS9W+ZgUb5Bm7gl62be4= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366008183637.5155775107824; Tue, 1 Jul 2025 03:33:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYIJ-0004h7-Jh; Tue, 01 Jul 2025 06:32:55 -0400 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 ) id 1uWYIH-0004ai-Iy; Tue, 01 Jul 2025 06:32:53 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYIF-0002H0-Md; Tue, 01 Jul 2025 06:32:53 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b2c4e46a89fso2844098a12.2; Tue, 01 Jul 2025 03:32:49 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id 98e67ed59e1d1-318c14e18bbsm10938410a91.23.2025.07.01.03.32.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:32:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751365968; x=1751970768; 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=wnu/gBrofYGPtwFVydQpKrmYxzDenOFmEobdvM+2Gm8=; b=EPqbGeW1vlk+Qkeas2Y2W9DpUXGs2R9z3SoZGfnTPnU/maUmz2XcIVoOZtYHxEFobd BxMjFoHdoPpRO30kEnsh3ZthlJtnggDZYBAxvtqOSmMiAvL7ki1sH5WioX8PRXMmjQ+O Vx/702c+egZpDftzBT4Vw++l04ei3MVrb0QH3eqTeNg9savPmwAYdMDYC1r8knyaMj17 qwpMgODgsxTp+ONspahZ+nrP7yJEAFV9vs960qlkm7qJI9b6annJnn6xkG2QCfYIWTQ9 E5M5esmRzfsH7prnRI7RMB1hLeDQZDQ3CQaKfyJzI80VpSBBGgztipO3PFtVhCNUBmgq fw4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751365968; x=1751970768; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wnu/gBrofYGPtwFVydQpKrmYxzDenOFmEobdvM+2Gm8=; b=jEcNHnM79yY5ehk8HrBfbHHi/YKc05+XCkooXWrgAiep2bScCkuPlwM/+QXimW1KhM wILXJ9XHg1x1Ok9iRBGVjcRPhnhq51SkDwWnKHzfMiJwtVDgPRc9DEoLftcbDykjcEkm nQgBhxei7gjKc9AkbOhFH7RnEySFOARCH2UJlzo4QLFb77UDfw6Ylz8dp1xeSENZzkZQ j6xA54grRHaSd6vqntpzrsNF+hn2yx1llEBaW/rSSmztpVYhteRZwS6Ad43VAd64A9E/ ws1f0nSjn1V/aExJNamfrHT1UL0YPa+rxTL9w7DQoGTgW7G12oh/VYAhqPZ6uE9aHhFx YKeA== X-Gm-Message-State: AOJu0YyGK6F751BDmzXMJRWmFmsBwEOUdF1/kpUm0rENYbcRFdie3XXI 7X8JDgHlZxGODWdF+EKgin40gOZYjWt8Aq46zl9zf/ni5DkMl+jZucqAQ8RzLjKZcl8= X-Gm-Gg: ASbGncsSWCMgExJ9rGgNRx++qFdNQ73E6qrcX+fOOOYz1iOdtsNisesGshz2oEBE8c2 qJGn0yzpfFEeal82gX12caLW5m0NmUMLDdSHgUgnfHzpGw0FINM8LB4cNXPQb+td6IQtgBTLd1z qfL7CDRwGk3cEMln4AF3aaAb0CRFA2hNHlc5VaZY9QhfEPM0/1q9qqW7Nnp4fksdDqzjgYz2dP1 HnI+StGE3KZFGffIdNdJ6vxfSmnxGbjLLCgcUi0cf+2KLHixQkqag7zD0AItdMLBUm+WUicPkZM 3gMio4XPRSUDnJmj4dUzXm0T0gDj/HCcl8ifa2fKA7QZZVJzbUGrC1zvTsDc5sJm1uHocQf0xc4 wXB9XIRSBxJJaNGemwYke6gz1Nc9Dz5jIp52pQZmxa/I= X-Google-Smtp-Source: AGHT+IH01rCbS22b4X9Zpsx5hBSu+tVjO1ARxIQWAZgfMMlaqZHL4xeAb2R6uSaNb8kM70Y2Kq7yJg== X-Received: by 2002:a17:90b:1f89:b0:312:1cd7:b337 with SMTP id 98e67ed59e1d1-318c911e00dmr23172062a91.5.1751365967787; Tue, 01 Jul 2025 03:32:47 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 03/12] target/arm: Fix function_return helper load alignment checks Date: Tue, 1 Jul 2025 20:01:50 +0930 Message-ID: <20250701103159.62661-4-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::534; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pg1-x534.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366008838116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the load operations (when unstacking the return pc and psr) in the FunctionReturn pseudocode. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/m_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c index f342d93489..28307b5615 100644 --- a/target/arm/tcg/m_helper.c +++ b/target/arm/tcg/m_helper.c @@ -1946,7 +1946,7 @@ static bool do_v7m_function_return(ARMCPU *cpu) * do them as secure, so work out what MMU index that is. */ mmu_idx =3D arm_v7m_mmu_idx_for_secstate(env, true); - oi =3D make_memop_idx(MO_LEUL, arm_to_core_mmu_idx(mmu_idx)); + oi =3D make_memop_idx(MO_LEUL | MO_ALIGN, arm_to_core_mmu_idx(mmu_= idx)); newpc =3D cpu_ldl_mmu(env, frameptr, oi, 0); newpsr =3D cpu_ldl_mmu(env, frameptr + 4, oi, 0); =20 --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366122; cv=none; d=zohomail.com; s=zohoarc; b=T4kgtMKRByZbyi/Q2YXqv8gKHnRY9K22WqgshNSTHXYJ2UWwT5yb6aphKo8m1jtBeQFF+xt+Zj7k+MuCbXns8Op6fnmSi9uK9d9EsjYS6pdK5kDdd8fQLoPdN7AhC4qeRWgYG02Ova8pI8U26IdhX7hRAzbK6SY4Y5vzHfk1M+4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366122; h=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=KKaMETbB6c5cIkRuEznIr/CWZ85mI68zPqbRPb0CIv4=; b=hBPPE7UnGNq/eT0V4COo2DWLvoJjYJHzrxWXSzRBf7lghw4kYI6BvfQkQh0cTpO82NXbv/0wxiHE1/6HBq0jg0SwVIwR2ahjGYRlB5c5rGviAJMK6QaC953On7RchX3Zmyyt61thSW7gaudU51XN0GLab5UjpnfVS9D67BxiY4k= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366122182196.62818001059918; Tue, 1 Jul 2025 03:35:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYIP-0004nE-0W; Tue, 01 Jul 2025 06:33:01 -0400 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 ) id 1uWYIM-0004me-Iv; Tue, 01 Jul 2025 06:32:58 -0400 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYIK-0002ID-8l; Tue, 01 Jul 2025 06:32:58 -0400 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-23aeac7d77aso26255465ad.3; Tue, 01 Jul 2025 03:32:53 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-23acb39b90bsm106444465ad.91.2025.07.01.03.32.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:32:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751365972; x=1751970772; 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=KKaMETbB6c5cIkRuEznIr/CWZ85mI68zPqbRPb0CIv4=; b=lxq5UjoUQ/tb4BxYHfCh8qxKqyITGnXJUAKN5DqSrn039FuZLt2RTRc6twsUM1qlPE F4CZOozCfT37Bjl5YLHtaxwfeanvo5yG1JCDxAHOeZOmFMrA0kdoVVqmOOl1WP59ZQ0X hff6ipQhM7iCQmLxq7J7mk3qJcBgrEqt9oN1nXR+Afm6LOgX3dpCzJHWNWglFTy8qIqu mzDuO2gE8c8RUUWUTiOTWSqMqxbKS90kOaXEXF/kikVvXynivvLN+gMWT9dlQu3PEiZ7 vxPrRo7Qc3yiFUV4I1oU4eQX6xlvyFsWfZ6Ly1daYd5S0gj30VRRj4PAewd/bT3/Xw4Z wHxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751365972; x=1751970772; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KKaMETbB6c5cIkRuEznIr/CWZ85mI68zPqbRPb0CIv4=; b=MdoV8N3BhQI9HifFqZErpGKMIaR3IsVa8K8F71bFHKT2sVPP+wG1UQ0H3PJfte71Nj TKvfIo4mdv8Zz1G4HMnBX5jcE3kQErN88ozL35fo+UPcLJbPeSttO0Fxr+iuCEUoIJzq hAmW5NHFxU6PYRvjo8agh+M9JUoiVnrbXOqMcztK0xj7bwEt5+N5kYzlUfRp51tkl28E h9e+soJMVeR6aASiHEVyoG2j2FpRQli1gWVIzkU5WyM0JfNPzYU+uioYLd/0vqkIDpNE UKuouhuZs5JBFXD6DIqdRX1e7ZRpsMgOPM/Z3pMmcVxkAYaWD+m+hma5yXuqmSHDcWi4 +v5Q== X-Gm-Message-State: AOJu0Yx0RFvGrcjnP/TV2TZhdpOgjcqD26/VEqMtxXe8m2ePLEutvahX h6Ag7QBRX9/SHCl6z4jGhjuJjsTaNz1w6uqmRUkLq19lPOkufcvyS+u374ps2RaaTSU= X-Gm-Gg: ASbGnctpQJO4DwsNFeKqVtTPvbQFPT9hPmIgl9zZL9LA0Kih+ydfI6fpwnr3qGSpcJu FYqOm/my1gJsRKcnbVv0v2w15uVu0K1/rdN85pEWWH9U4KJ09GDAssx30Xhk4jw5NXDmkN+2BSp fLL91M3XEAuGVxgP5bfmTCBd3LM8yMTQXeN6Ak1b+dY1/g/EAUd9IptUSen1ZrBzJVQyLyKNr5G BvIaEgKiJ4/IWZAyTxcEP6jTiWZ59SiLj34pPce+UmhDMv+4euqYB2taq9Qfo/sGvZNTv9iGHJp K/3/jwdvDyDy28cT/v6VEipWNPYP5wrl9woH8Qu5CSBOIJ/VJhX3YYvBd52UDUvbraCi4uyqzwf Gxz9UG3MShZtU4rO4Fj0YOIVh5RWaGwEmfH7rFYm2Q74= X-Google-Smtp-Source: AGHT+IHdFUODDvuKgSq7BSZFR2e1qfo0GDsmXLfQp0Eu+YAm5B+6Hs92AuRn9UB2hxXoPQUAf/w2Rw== X-Received: by 2002:a17:902:ce8d:b0:224:26fd:82e5 with SMTP id d9443c01a7336-23ac463fad4mr259898845ad.48.1751365972359; Tue, 01 Jul 2025 03:32:52 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 04/12] target/arm: Fix VLDR helper load alignment checks Date: Tue, 1 Jul 2025 20:01:51 +0930 Message-ID: <20250701103159.62661-5-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::633; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pl1-x633.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366124435116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the load operations in the VLDR instruction. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/mve_helper.c | 41 ++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index 506d1c3475..922cd2371a 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -147,6 +147,22 @@ static void mve_advance_vpt(CPUARMState *env) env->v7m.vpr =3D vpr; } =20 +/* Mapping of LDTYPE/STTYPE to the number of bytes accessed */ +#define MSIZE_b 1 +#define MSIZE_w 2 +#define MSIZE_l 4 + +/* Mapping of LDTYPE/STTYPE to MemOp flag */ +#define MFLAG_b MO_UB +#define MFLAG_w MO_TEUW +#define MFLAG_l MO_TEUL + +#define MSIZE(t) MSIZE_##t +#define MFLAG(t) MFLAG_##t + +#define SIGN_EXT(v, T, B) { \ + ((T)(v) << (sizeof(T) * 8 - (B))) >> (sizeof(T) * 8 - (B)) } + /* For loads, predicated lanes are zeroed instead of keeping their old val= ues */ #define DO_VLDR(OP, MSIZE, LDTYPE, ESIZE, TYPE) \ void HELPER(mve_##OP)(CPUARMState *env, void *vd, uint32_t addr) \ @@ -155,6 +171,8 @@ static void mve_advance_vpt(CPUARMState *env) uint16_t mask =3D mve_element_mask(env); \ uint16_t eci_mask =3D mve_eci_mask(env); \ unsigned b, e; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MFLAG(LDTYPE) | MO_ALIGN, mmu_idx);\ /* \ * R_SXTM allows the dest reg to become UNKNOWN for abandoned \ * beats so we don't care if we update part of the dest and \ @@ -163,7 +181,10 @@ static void mve_advance_vpt(CPUARMState *env) for (b =3D 0, e =3D 0; b < 16; b +=3D ESIZE, e++) { = \ if (eci_mask & (1 << b)) { \ d[H##ESIZE(e)] =3D (mask & (1 << b)) ? \ - cpu_##LDTYPE##_data_ra(env, addr, GETPC()) : 0; \ + SIGN_EXT(cpu_ld##LDTYPE##_mmu(env, addr, oi, GETPC()),\ + TYPE, \ + MSIZE * 8) \ + : 0; \ } \ addr +=3D MSIZE; \ } \ @@ -185,20 +206,20 @@ static void mve_advance_vpt(CPUARMState *env) mve_advance_vpt(env); \ } =20 -DO_VLDR(vldrb, 1, ldub, 1, uint8_t) -DO_VLDR(vldrh, 2, lduw, 2, uint16_t) -DO_VLDR(vldrw, 4, ldl, 4, uint32_t) +DO_VLDR(vldrb, 1, b, 1, uint8_t) +DO_VLDR(vldrh, 2, w, 2, uint16_t) +DO_VLDR(vldrw, 4, l, 4, uint32_t) =20 DO_VSTR(vstrb, 1, stb, 1, uint8_t) DO_VSTR(vstrh, 2, stw, 2, uint16_t) DO_VSTR(vstrw, 4, stl, 4, uint32_t) =20 -DO_VLDR(vldrb_sh, 1, ldsb, 2, int16_t) -DO_VLDR(vldrb_sw, 1, ldsb, 4, int32_t) -DO_VLDR(vldrb_uh, 1, ldub, 2, uint16_t) -DO_VLDR(vldrb_uw, 1, ldub, 4, uint32_t) -DO_VLDR(vldrh_sw, 2, ldsw, 4, int32_t) -DO_VLDR(vldrh_uw, 2, lduw, 4, uint32_t) +DO_VLDR(vldrb_sh, 1, b, 2, int16_t) +DO_VLDR(vldrb_sw, 1, b, 4, int32_t) +DO_VLDR(vldrb_uh, 1, b, 2, uint16_t) +DO_VLDR(vldrb_uw, 1, b, 4, uint32_t) +DO_VLDR(vldrh_sw, 2, w, 4, int32_t) +DO_VLDR(vldrh_uw, 2, w, 4, uint32_t) =20 DO_VSTR(vstrb_h, 1, stb, 2, int16_t) DO_VSTR(vstrb_w, 1, stb, 4, int32_t) --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366081; cv=none; d=zohomail.com; s=zohoarc; b=b9xTDW1/YcU6ePovupizgM15WEVRg2tqVZtLQ+5OqKQZPuPztXgrx2EzWwUDddKlaFRpZ4F6vlArRogCJ8EaTGcp53SsUr0kPEnbj/Bl+SNnE7rWkLuKtmz2OSyzQndPBaJo/x1xyFowgMYvR4qT/PctPw78qg4+jtjmg3m8aDw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366081; h=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=nn7pEBa0qW7/HK5JWwan6hjx8tL/xhtvqcSy45ddR/M=; b=E/A1Uvrc/UQz5Zvr+D3rbayU1K21E1VCtYAmn7LYz/o3ZfxyOPPdl7BAKjRvCXQEcUvAnRqSembvSFIRopQVMo3M34gF/vhbeLhYaPaRRBV1HNWZ9tb7gteyHT+4esxFnFz5GbDNnkvAISNofZnO6M2L5S7mK1ngRZxNJpP7uAA= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366081085207.10581361734341; Tue, 1 Jul 2025 03:34:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYIS-0004oY-7S; Tue, 01 Jul 2025 06:33:04 -0400 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 ) id 1uWYIQ-0004oB-JR; Tue, 01 Jul 2025 06:33:02 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYIO-0002Ik-DG; Tue, 01 Jul 2025 06:33:02 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2353a2bc210so26827145ad.2; Tue, 01 Jul 2025 03:32:58 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-23b0b3bc0f1sm59135935ad.171.2025.07.01.03.32.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:32:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751365977; x=1751970777; 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=nn7pEBa0qW7/HK5JWwan6hjx8tL/xhtvqcSy45ddR/M=; b=YEQ96SlXBJ7ODkbOHcvhZnTNA4DTtaK1NjFmzA/19zkVfzZg6dNrruhOLD6T+D1nk9 C7WKLfrPuPL2MXAAZv0ep05ojG0FFIiKZkL63WSoQoex3gg+JWwGImnn8nwc8mr8z4Wl ybL6OK3LTx9Nth+rQULDofheWnUR5Jz11sS1V2+YvToIMoLFa2PXLBjqoTJ+JtqWkh2E 7t2H3kaDEg81DllE/LFS11Y/IZp4u2YoQPqOg2USG5jEEJNstgC2RV/ByS0gM4fqQaBD Ww5BMl3ck5ahPiPAW8aDcDA8zpBevrJ9C2KUe5+MUNKxTW/sAkGF8Vq0nzHGPDImpDAp IC6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751365977; x=1751970777; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nn7pEBa0qW7/HK5JWwan6hjx8tL/xhtvqcSy45ddR/M=; b=BbMOqQvBEE5wjqDnTNTjdN1EOzKRgOj1QZRv3rftZnfCZF7DX4b/2Hg1vJfPD3Awmp olEzUt0hZAc06ty3RGTa7QG5u5ob7oBo0iCNTdS2vxJvWqlWLqhWRt1Jcg9g17dNYxMp ImGrYHVRfWwQDT3Nch/ZG5j06gUCIDOYtbyoWewLRuaajTfNhJ8qr3MnY4dgsq0QOYM8 5qbA3NxjFafre0JHiAe5h7MMxmusrOUFD7InUg1A4035NUzPH4kPpxwN4IFDlw9Adfgg wwaIHbO9EOs4A+9lVco6qDf1VmP7sjvamDyB++k67mcv2f5NqIRvffvJCH5y1NU3d9Gw OPEQ== X-Gm-Message-State: AOJu0Yxy+yNLBFVzYqE9fqBuXczHfGMcytBtmZ/q/1P17EtUtiXROh// 28A/ZV+/LqJesKppHacQ4DWzanIejrOYpZP5/i8e1uulXC6m0X9RCpMBjtFxP3rBBHo= X-Gm-Gg: ASbGncv8KALBhR8JvEweWU7mcerk8nJOvh5ksnM+/dTc5ZX+BgyQY1XS6BAYhIpt7QK u+dvGr1z4aKcQDsCq5MI0SXAyBD+MQfytYP8ptz2mTcK8n/MVPjGglhDZvF0cAtRCEg9N6yVMgz my6eJkerx7SjpYCDIivTzz7wlOAwocP2IHbP1MgJkO6VlL1vgX7FecQuxbpEQJcFWzd4M4VSJU0 oZkPprfANIi0TYAQF89Tm1L3hOyo5gAGgAjwyIaXAXqRPPJqgD8Zv3bqQRyeS7zlp5KmFrTYpEz 0CKFDXEedt/1ifbS+Y+5+xY/DQ/XJsy5zy8POWZPSwhYCb1bnaTDe4XJU+wLi5y6sf4XmXOGZOu 4cxkheiL8xVxjaMXKFg/5g3NYqiTITI2o6rC+Jv/a2k4= X-Google-Smtp-Source: AGHT+IHgDxSV/kW7fBL3pV73lDJ1+9GytYSwtIEBuz0vG+qRgNVwvYEMawvgOb+u3bSLXWLr3l74nQ== X-Received: by 2002:a17:902:ce87:b0:235:7c6:ebbf with SMTP id d9443c01a7336-23ac46342d3mr287965775ad.35.1751365976659; Tue, 01 Jul 2025 03:32:56 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 05/12] target/arm: Fix VSTR helper store alignment checks Date: Tue, 1 Jul 2025 20:01:52 +0930 Message-ID: <20250701103159.62661-6-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::632; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pl1-x632.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366081739116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the store operations in the VSTR instruction. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/mve_helper.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index 922cd2371a..a49b8842e3 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -197,9 +197,11 @@ static void mve_advance_vpt(CPUARMState *env) TYPE *d =3D vd; \ uint16_t mask =3D mve_element_mask(env); \ unsigned b, e; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MFLAG(STTYPE) | MO_ALIGN, mmu_idx);\ for (b =3D 0, e =3D 0; b < 16; b +=3D ESIZE, e++) { = \ if (mask & (1 << b)) { \ - cpu_##STTYPE##_data_ra(env, addr, d[H##ESIZE(e)], GETPC())= ; \ + cpu_st##STTYPE##_mmu(env, addr, d[H##ESIZE(e)], oi, GETPC(= ));\ } \ addr +=3D MSIZE; \ } \ @@ -210,9 +212,9 @@ DO_VLDR(vldrb, 1, b, 1, uint8_t) DO_VLDR(vldrh, 2, w, 2, uint16_t) DO_VLDR(vldrw, 4, l, 4, uint32_t) =20 -DO_VSTR(vstrb, 1, stb, 1, uint8_t) -DO_VSTR(vstrh, 2, stw, 2, uint16_t) -DO_VSTR(vstrw, 4, stl, 4, uint32_t) +DO_VSTR(vstrb, 1, b, 1, uint8_t) +DO_VSTR(vstrh, 2, w, 2, uint16_t) +DO_VSTR(vstrw, 4, l, 4, uint32_t) =20 DO_VLDR(vldrb_sh, 1, b, 2, int16_t) DO_VLDR(vldrb_sw, 1, b, 4, int32_t) @@ -221,9 +223,9 @@ DO_VLDR(vldrb_uw, 1, b, 4, uint32_t) DO_VLDR(vldrh_sw, 2, w, 4, int32_t) DO_VLDR(vldrh_uw, 2, w, 4, uint32_t) =20 -DO_VSTR(vstrb_h, 1, stb, 2, int16_t) -DO_VSTR(vstrb_w, 1, stb, 4, int32_t) -DO_VSTR(vstrh_w, 2, stw, 4, int32_t) +DO_VSTR(vstrb_h, 1, b, 2, int16_t) +DO_VSTR(vstrb_w, 1, b, 4, int32_t) +DO_VSTR(vstrh_w, 2, w, 4, int32_t) =20 #undef DO_VLDR #undef DO_VSTR --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366078; cv=none; d=zohomail.com; s=zohoarc; b=i07V2wo5iBHuLgDmQj1vc8AuW6O5ZqORhh8l2XUzofNSnIxBjUZrnS/7gX0V++tDn+F5tMUKIPr+CcwDNMgecUm1WK88aybVf/5K+OI0nM7opgX1P9SUqyiT2dwqm05gwo7EdIB2b7zV0/oFxzkgm+rT/khjS4bDCgFYwroZNjI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366078; h=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=T2dW301DNNE9JzkR+6OYVpca6YVZm0Fl9xz3Jz5KOIM=; b=Xk9PUogB6R1S/00yKScuu7x3DrlS0PkbNdcFwg7l7CX7bOVZiVEs2zCplbZL5m7s9yeGuIfmo0qUC5ZAuOuEfVwLc4sv8vPh0O8kNZX8Jqnlru1Ru0UfhXQJXAW3G9kpAHL6DgH6oVhBI3tcMOT5M7vA9HmXdnO4HcBxoQ0EGoU= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366078413658.8487743095152; Tue, 1 Jul 2025 03:34:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYIg-0005D4-44; Tue, 01 Jul 2025 06:33:19 -0400 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 ) id 1uWYIe-00059x-Bq; Tue, 01 Jul 2025 06:33:16 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYIZ-0002Kb-SL; Tue, 01 Jul 2025 06:33:14 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-23649faf69fso26719265ad.0; Tue, 01 Jul 2025 03:33:08 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-23acb3b7986sm108148705ad.164.2025.07.01.03.33.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:33:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751365987; x=1751970787; 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=T2dW301DNNE9JzkR+6OYVpca6YVZm0Fl9xz3Jz5KOIM=; b=HGqy+SyEDZ5mEugl9kLzvRKFM/Dfq9JQbhL7GibxjGKHyf+MJ+InwHyxytbkFIWjMZ iAegMuKR3a1REEYwGX+IFJ32tvUgzd2BcZp+TVQJ+cS7jJ5bwdV7+EmZ8/46pYxstZ5V 0cnxZuIytKCxeLo1XDx41SP/yVvu45zJriMJCTLe57tW20MTieva5ldWNlN+c3kSYJeY /cK2BAo4lsC2mZV/adUBq84iP2KzPaCfkPK0ACZ5H21tFDmCHEFykscuIcCVKO3VwwT8 Vz8MwuoJ7L9J6ruLtoN04Fr57voIJ2wv0NDJI85QSfJugm0zSdLQv7hSSzTHNjdD5a08 GkCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751365987; x=1751970787; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=T2dW301DNNE9JzkR+6OYVpca6YVZm0Fl9xz3Jz5KOIM=; b=aFh6siK6Cq81Kp9w6sjhB/r5fcWyvsqBuI/2ajjPe1gZ6USxzwG7mnx+NVj+19Ibpr OjD77ROzR8OSK5hg1P8XIUjabj/lFodwR5NfKjDL+hVCqINpAVrA+PvC/KdnZ9b7/RG1 uexoWZiqvT6Kfav9GCygLl0hXWdmcX/H6CsLrJIZxq7QN4PO2cZipaJx3FEDs07KDRxq 7bnSrhkh3g6XtO8DHP0erXoZkNklpmfAASXCTJXhNpcAqulTvJ0c8SGIxOQ4WX41VLlu oulD6JBiGbceZNZP0q9pf1ruA5hrYa8EeF0vVvinhM/vBq3pkhVYUxwZeNemr0A8aLzj dYig== X-Gm-Message-State: AOJu0YzxpfiDL0NlUg9H08nkOQRu0vxhYiqOSXUt3Ykt/QaMKdKDfyKP A0cTNkI43J3J0ZFADVWhzUIXdQhlDhRheAXWxI+qcKK3kzOn3If86MmpkLACsp7zCCw= X-Gm-Gg: ASbGncsMJEC5985SFKOk3W7UJroae56Gc21VfrYgNgrx7YIGWWvWOc+GqV92UPOkzkr WbKPxK4q1ovj3nHOFK0InyJTbCfN6d8YumufkT0UqlNmjZd069dW/rfia7CL7T4heFpzHJLvuoL OJVWAWL2xQ9e28eA0+qh5WzpAvI4uSE66JAxL8LMzZ53HX2qDsU/1RXKS8KzzhP5m1oxP22UWFG Epkm+kEOGgyZWAJqnayC8qUTfo9FeFAu2TRQ+IUu728kVeBJL5AHdCcSNSeA1uqIJsV1voOrxrV kNIAZlydm37oinls6knUNelREXpk7/RkEcqz6OY2WMVsCFIM+8L6IoAWvpg5OO2oVUThUr9QlHE VWeemHrsDqXc9U0uz3apRFITLaPO4RvqIqc6RxvFUeUY= X-Google-Smtp-Source: AGHT+IHDXhLcT8STI8D9enWtVqQkCQzEOCY1+Zc330B1UUAnI+t+bPn+UXusdycT+u7l5hxAMEVZbQ== X-Received: by 2002:a17:903:2b05:b0:234:948b:91c7 with SMTP id d9443c01a7336-23ac4892231mr241723875ad.51.1751365987323; Tue, 01 Jul 2025 03:33:07 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 06/12] target/arm: Fix VLDR_SG helper load alignment checks Date: Tue, 1 Jul 2025 20:01:53 +0930 Message-ID: <20250701103159.62661-7-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366079813116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the load operations in the VLDR_SG instructions. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/mve_helper.c | 41 ++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index a49b8842e3..f1e9c87e6a 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -247,13 +247,18 @@ DO_VSTR(vstrh_w, 2, w, 4, int32_t) uint16_t eci_mask =3D mve_eci_mask(env); \ unsigned e; \ uint32_t addr; \ - for (e =3D 0; e < 16 / ESIZE; e++, mask >>=3D ESIZE, eci_mask >>= =3D ESIZE) { \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MFLAG(LDTYPE) | MO_ALIGN, mmu_idx);\ + for (e =3D 0; e < 16 / ESIZE; e++, mask >>=3D ESIZE, eci_mask >>= =3D ESIZE) {\ if (!(eci_mask & 1)) { \ continue; \ } \ addr =3D ADDRFN(base, m[H##ESIZE(e)]); \ d[H##ESIZE(e)] =3D (mask & 1) ? \ - cpu_##LDTYPE##_data_ra(env, addr, GETPC()) : 0; \ + SIGN_EXT(cpu_ld##LDTYPE##_mmu(env, addr, oi, GETPC()), \ + TYPE, \ + MSIZE(LDTYPE) * 8) \ + : 0; \ if (WB) { \ m[H##ESIZE(e)] =3D addr; \ } \ @@ -305,13 +310,15 @@ DO_VSTR(vstrh_w, 2, w, 4, int32_t) uint16_t eci_mask =3D mve_eci_mask(env); \ unsigned e; \ uint32_t addr; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (e =3D 0; e < 16 / 4; e++, mask >>=3D 4, eci_mask >>=3D 4) { = \ if (!(eci_mask & 1)) { \ continue; \ } \ addr =3D ADDRFN(base, m[H4(e & ~1)]); \ addr +=3D 4 * (e & 1); \ - d[H4(e)] =3D (mask & 1) ? cpu_ldl_data_ra(env, addr, GETPC()) = : 0; \ + d[H4(e)] =3D (mask & 1) ? cpu_ldl_mmu(env, addr, oi, GETPC()) = : 0;\ if (WB && (e & 1)) { \ m[H4(e & ~1)] =3D addr - 4; \ } \ @@ -350,22 +357,22 @@ DO_VSTR(vstrh_w, 2, w, 4, int32_t) #define ADDR_ADD_OSW(BASE, OFFSET) ((BASE) + ((OFFSET) << 2)) #define ADDR_ADD_OSD(BASE, OFFSET) ((BASE) + ((OFFSET) << 3)) =20 -DO_VLDR_SG(vldrb_sg_sh, ldsb, 2, int16_t, uint16_t, ADDR_ADD, false) -DO_VLDR_SG(vldrb_sg_sw, ldsb, 4, int32_t, uint32_t, ADDR_ADD, false) -DO_VLDR_SG(vldrh_sg_sw, ldsw, 4, int32_t, uint32_t, ADDR_ADD, false) +DO_VLDR_SG(vldrb_sg_sh, b, 2, int16_t, uint16_t, ADDR_ADD, false) +DO_VLDR_SG(vldrb_sg_sw, b, 4, int32_t, uint32_t, ADDR_ADD, false) +DO_VLDR_SG(vldrh_sg_sw, w, 4, int32_t, uint32_t, ADDR_ADD, false) =20 -DO_VLDR_SG(vldrb_sg_ub, ldub, 1, uint8_t, uint8_t, ADDR_ADD, false) -DO_VLDR_SG(vldrb_sg_uh, ldub, 2, uint16_t, uint16_t, ADDR_ADD, false) -DO_VLDR_SG(vldrb_sg_uw, ldub, 4, uint32_t, uint32_t, ADDR_ADD, false) -DO_VLDR_SG(vldrh_sg_uh, lduw, 2, uint16_t, uint16_t, ADDR_ADD, false) -DO_VLDR_SG(vldrh_sg_uw, lduw, 4, uint32_t, uint32_t, ADDR_ADD, false) -DO_VLDR_SG(vldrw_sg_uw, ldl, 4, uint32_t, uint32_t, ADDR_ADD, false) +DO_VLDR_SG(vldrb_sg_ub, b, 1, uint8_t, uint8_t, ADDR_ADD, false) +DO_VLDR_SG(vldrb_sg_uh, b, 2, uint16_t, uint16_t, ADDR_ADD, false) +DO_VLDR_SG(vldrb_sg_uw, b, 4, uint32_t, uint32_t, ADDR_ADD, false) +DO_VLDR_SG(vldrh_sg_uh, w, 2, uint16_t, uint16_t, ADDR_ADD, false) +DO_VLDR_SG(vldrh_sg_uw, w, 4, uint32_t, uint32_t, ADDR_ADD, false) +DO_VLDR_SG(vldrw_sg_uw, l, 4, uint32_t, uint32_t, ADDR_ADD, false) DO_VLDR64_SG(vldrd_sg_ud, ADDR_ADD, false) =20 -DO_VLDR_SG(vldrh_sg_os_sw, ldsw, 4, int32_t, uint32_t, ADDR_ADD_OSH, false) -DO_VLDR_SG(vldrh_sg_os_uh, lduw, 2, uint16_t, uint16_t, ADDR_ADD_OSH, fals= e) -DO_VLDR_SG(vldrh_sg_os_uw, lduw, 4, uint32_t, uint32_t, ADDR_ADD_OSH, fals= e) -DO_VLDR_SG(vldrw_sg_os_uw, ldl, 4, uint32_t, uint32_t, ADDR_ADD_OSW, false) +DO_VLDR_SG(vldrh_sg_os_sw, w, 4, int32_t, uint32_t, ADDR_ADD_OSH, false) +DO_VLDR_SG(vldrh_sg_os_uh, w, 2, uint16_t, uint16_t, ADDR_ADD_OSH, false) +DO_VLDR_SG(vldrh_sg_os_uw, w, 4, uint32_t, uint32_t, ADDR_ADD_OSH, false) +DO_VLDR_SG(vldrw_sg_os_uw, l, 4, uint32_t, uint32_t, ADDR_ADD_OSW, false) DO_VLDR64_SG(vldrd_sg_os_ud, ADDR_ADD_OSD, false) =20 DO_VSTR_SG(vstrb_sg_ub, stb, 1, uint8_t, ADDR_ADD, false) @@ -381,7 +388,7 @@ DO_VSTR_SG(vstrh_sg_os_uw, stw, 4, uint32_t, ADDR_ADD_O= SH, false) DO_VSTR_SG(vstrw_sg_os_uw, stl, 4, uint32_t, ADDR_ADD_OSW, false) DO_VSTR64_SG(vstrd_sg_os_ud, ADDR_ADD_OSD, false) =20 -DO_VLDR_SG(vldrw_sg_wb_uw, ldl, 4, uint32_t, uint32_t, ADDR_ADD, true) +DO_VLDR_SG(vldrw_sg_wb_uw, l, 4, uint32_t, uint32_t, ADDR_ADD, true) DO_VLDR64_SG(vldrd_sg_wb_ud, ADDR_ADD, true) DO_VSTR_SG(vstrw_sg_wb_uw, stl, 4, uint32_t, ADDR_ADD, true) DO_VSTR64_SG(vstrd_sg_wb_ud, ADDR_ADD, true) --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366085; cv=none; d=zohomail.com; s=zohoarc; b=G2CyAebjbrqp5FF0PR9S+MypZKBO8ybUphBwaGVeTtMtYQ574B4HaiwytTR+XIzpFLAOcRdoahC2b/NWRU1YZRLj7Pb+Id7aFmY8lQH/37uA5j7OfEWToe6925keuTvp3PXNubJsh2tKBmDKebAl+hmfSVJPpZJabuu4wGhJzQg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366085; h=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=u8gx/O/oVNZBpyXKxn932jEFKdRih4fkiB4W5c1ZnaU=; b=OMAPB8yZcM6NrPVMWiCtic+drJMn8mKQKjbUusbETL97kC3Z396hNzsIZalKNOhU3hqTG7syfCGe9I5EYV4xjwOOkPzoyzM8miAfKGvRLrco911ceI00tMGfrX8gbQ8o9Hm6Z+VldchrZc4YlmRx/XeM4Wh68XyraA/zHu0s5oo= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366085137628.6545361162227; Tue, 1 Jul 2025 03:34:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYJ1-0005W4-Qy; Tue, 01 Jul 2025 06:33:39 -0400 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 ) id 1uWYIq-0005ON-9I; Tue, 01 Jul 2025 06:33:29 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYIj-0002Lh-3h; Tue, 01 Jul 2025 06:33:26 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-23526264386so27804335ad.2; Tue, 01 Jul 2025 03:33:17 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-23acb2f2183sm109168435ad.75.2025.07.01.03.33.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:33:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751365996; x=1751970796; 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=u8gx/O/oVNZBpyXKxn932jEFKdRih4fkiB4W5c1ZnaU=; b=fhx7cDbnrTCotSbyjIltOlkWQAmRVbdxpTvudkMX6b/wAQ31a9hfmHxOtSopv3LXGm UBwVGaKCbqWCQeYyOf7ATWVrfcRwRBayIpVkuEe0Rt6Fv7mYXNlGVOg/z6LdcmUyQs7D BfKYa8kf18wN4qHVsQ0n1f8UJKj5Tr2dGaXltyuvedX3jGvYIz/v3vaWKOAZT3RfWMQt TE+Jiuxm9JPrK/RPDNOyC0KxKawcFaANRHrAknakNxI+L9PgkDsUkoL1MRS2TFMSovWq QXvQj1og1O/8kP/FxAK+FOeCS1JrcVRZAhxN1HKd5VgiT3W5quq9SM/DedGEfIS4TKVp uqEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751365996; x=1751970796; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u8gx/O/oVNZBpyXKxn932jEFKdRih4fkiB4W5c1ZnaU=; b=tdVCJvXSh+fXTuUOvvsR2+6/5bYSe4+CepNjlSeSGYudN98GC5xhk5mhdEQIL6NGlw pQr9v/J/vSju3l8L4EcbUqQ9y8UU2xWzLEC/hGSxyYewfC32ig06MF9YshokzAocXqzE R+bnywy7KPUb4hA7zwzGR7fPGPLpNwG/E6LGxL8mqQ7LAnSRSVrgRq5Hx35EQ3k+DVC4 7pH007jU7402X0iFm4y1rdMvc9Fz95lGe5Bb+P/hnWf9JFXsK41LeG9sKs4yh7N0lc5U pGGyP3gLqH2AM80p62g8aHgP8NgZ/m/w/qzz0CJZh7ukgEMfvQAFKCTdvTvX2UAduPLp 3lLw== X-Gm-Message-State: AOJu0YwBwhLlKJA6GM6D+hCB76pNATf0Jh1WSiVo5NZ6tuprAqEjMBb5 Ac/TWvy7LzTM2ZueUvJw9Lrj6atgF2tkd5hfa63VQdeZvN69muMWNWZEp+OXKPdcWFE= X-Gm-Gg: ASbGncs3wgR0iziD14FRPkh/TV155Zcb8Rr4HSmbWqCVVE3zRZ8TzdmGEoeLxf9+6Tm D6vVjvygV7IzskDm3gr9EEBO92WJfN/Svnt/e94408WaUyOn494g7xyWLUYVjD1ZGIeJR17m3Go rbXRIt5p/F8DO/8EDOnO8ETZ2FzhYiRLv+zvREOt7bTU0NTds5r17OkWZtbB3yi0JhzGoPF1axN XKzhnKkHwFbgpl7+32mkJRpW9KC3ci4zearJYaenF9Ba7K6Dg4mdyOGVxjtbfPNWr+CAZ/ehzfj LltqhukZff4y4DAbU11vDrCi+pWjNr76qjGTopkONvL/xNIG5+ucMzuJ1vVm74e0wPvBv6mJ1/c FUDdw7fz/uiQZ70fuSCII91djUzb/Efrq3IkmxVZOVeM= X-Google-Smtp-Source: AGHT+IFGahn7qLg9A6EjJVwpy4Lb1HV53n4Mr4DY7MCbV0MvDHh+7fSasI1GrVYXrNf169UnIoY5JA== X-Received: by 2002:a17:902:d607:b0:235:129a:175f with SMTP id d9443c01a7336-23ac46527famr260661515ad.34.1751365995661; Tue, 01 Jul 2025 03:33:15 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 07/12] target/arm: Fix VSTR_SG helper store alignment checks Date: Tue, 1 Jul 2025 20:01:54 +0930 Message-ID: <20250701103159.62661-8-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366087873116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the store operations in the VSTR_SG instructions. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/mve_helper.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index f1e9c87e6a..5b04fa4425 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -277,13 +277,15 @@ DO_VSTR(vstrh_w, 2, w, 4, int32_t) uint16_t eci_mask =3D mve_eci_mask(env); \ unsigned e; \ uint32_t addr; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MFLAG(STTYPE) | MO_ALIGN, mmu_idx);\ for (e =3D 0; e < 16 / ESIZE; e++, mask >>=3D ESIZE, eci_mask >>= =3D ESIZE) { \ if (!(eci_mask & 1)) { \ continue; \ } \ addr =3D ADDRFN(base, m[H##ESIZE(e)]); \ if (mask & 1) { \ - cpu_##STTYPE##_data_ra(env, addr, d[H##ESIZE(e)], GETPC())= ; \ + cpu_st##STTYPE##_mmu(env, addr, d[H##ESIZE(e)], oi, GETPC(= )); \ } \ if (WB) { \ m[H##ESIZE(e)] =3D addr; \ @@ -336,6 +338,8 @@ DO_VSTR(vstrh_w, 2, w, 4, int32_t) uint16_t eci_mask =3D mve_eci_mask(env); \ unsigned e; \ uint32_t addr; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (e =3D 0; e < 16 / 4; e++, mask >>=3D 4, eci_mask >>=3D 4) { = \ if (!(eci_mask & 1)) { \ continue; \ @@ -343,7 +347,7 @@ DO_VSTR(vstrh_w, 2, w, 4, int32_t) addr =3D ADDRFN(base, m[H4(e & ~1)]); \ addr +=3D 4 * (e & 1); \ if (mask & 1) { \ - cpu_stl_data_ra(env, addr, d[H4(e)], GETPC()); \ + cpu_stl_mmu(env, addr, d[H4(e)], oi, GETPC()); \ } \ if (WB && (e & 1)) { \ m[H4(e & ~1)] =3D addr - 4; \ @@ -375,22 +379,22 @@ DO_VLDR_SG(vldrh_sg_os_uw, w, 4, uint32_t, uint32_t, = ADDR_ADD_OSH, false) DO_VLDR_SG(vldrw_sg_os_uw, l, 4, uint32_t, uint32_t, ADDR_ADD_OSW, false) DO_VLDR64_SG(vldrd_sg_os_ud, ADDR_ADD_OSD, false) =20 -DO_VSTR_SG(vstrb_sg_ub, stb, 1, uint8_t, ADDR_ADD, false) -DO_VSTR_SG(vstrb_sg_uh, stb, 2, uint16_t, ADDR_ADD, false) -DO_VSTR_SG(vstrb_sg_uw, stb, 4, uint32_t, ADDR_ADD, false) -DO_VSTR_SG(vstrh_sg_uh, stw, 2, uint16_t, ADDR_ADD, false) -DO_VSTR_SG(vstrh_sg_uw, stw, 4, uint32_t, ADDR_ADD, false) -DO_VSTR_SG(vstrw_sg_uw, stl, 4, uint32_t, ADDR_ADD, false) +DO_VSTR_SG(vstrb_sg_ub, b, 1, uint8_t, ADDR_ADD, false) +DO_VSTR_SG(vstrb_sg_uh, b, 2, uint16_t, ADDR_ADD, false) +DO_VSTR_SG(vstrb_sg_uw, b, 4, uint32_t, ADDR_ADD, false) +DO_VSTR_SG(vstrh_sg_uh, w, 2, uint16_t, ADDR_ADD, false) +DO_VSTR_SG(vstrh_sg_uw, w, 4, uint32_t, ADDR_ADD, false) +DO_VSTR_SG(vstrw_sg_uw, l, 4, uint32_t, ADDR_ADD, false) DO_VSTR64_SG(vstrd_sg_ud, ADDR_ADD, false) =20 -DO_VSTR_SG(vstrh_sg_os_uh, stw, 2, uint16_t, ADDR_ADD_OSH, false) -DO_VSTR_SG(vstrh_sg_os_uw, stw, 4, uint32_t, ADDR_ADD_OSH, false) -DO_VSTR_SG(vstrw_sg_os_uw, stl, 4, uint32_t, ADDR_ADD_OSW, false) +DO_VSTR_SG(vstrh_sg_os_uh, w, 2, uint16_t, ADDR_ADD_OSH, false) +DO_VSTR_SG(vstrh_sg_os_uw, w, 4, uint32_t, ADDR_ADD_OSH, false) +DO_VSTR_SG(vstrw_sg_os_uw, l, 4, uint32_t, ADDR_ADD_OSW, false) DO_VSTR64_SG(vstrd_sg_os_ud, ADDR_ADD_OSD, false) =20 DO_VLDR_SG(vldrw_sg_wb_uw, l, 4, uint32_t, uint32_t, ADDR_ADD, true) DO_VLDR64_SG(vldrd_sg_wb_ud, ADDR_ADD, true) -DO_VSTR_SG(vstrw_sg_wb_uw, stl, 4, uint32_t, ADDR_ADD, true) +DO_VSTR_SG(vstrw_sg_wb_uw, l, 4, uint32_t, ADDR_ADD, true) DO_VSTR64_SG(vstrd_sg_wb_ud, ADDR_ADD, true) =20 /* --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366148; cv=none; d=zohomail.com; s=zohoarc; b=YUhVYg4m0hPqYNTeFo2DxdqCDmjMI35Xf/8Y5Xx28/YB8W9Rb2xbYwGX8LdnwuVGRT2J9eiBxJuphWO6TE+8CvEgMzQRQSXHdKiW/GCBgYwowvR4JNyLn0NBIx0z/1fT3GOKa+fzG4fn3Enx2YmlFWzFHwqfTxV57hRMsl793Wg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366148; h=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=JyGD103OZ4Hk2SYZr4SYZ7rCbtWK1S69PA+W1WpCH/w=; b=RTzMrTFqUQsFmnfR0lzG/PnuPRxowcis3GsdhtgC/pbWlFfJkaGnB8Xk8S/AGBlbge5JWP79XB1lsue9bttlu95hOkVtMepOBw3+SLdgDydOybMDAJDQ9OzA934U7EHA3WQMizaWab/GDlyz+IpfC9JW62eCxfWu7hTBw6FbRYo= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366148429127.97888300977854; Tue, 1 Jul 2025 03:35:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYJ7-0005kh-2q; Tue, 01 Jul 2025 06:33:45 -0400 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 ) id 1uWYIr-0005Og-71; Tue, 01 Jul 2025 06:33:31 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYIo-0002NF-Eb; Tue, 01 Jul 2025 06:33:28 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-74264d1832eso3847694b3a.0; Tue, 01 Jul 2025 03:33:24 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id d2e1a72fcca58-74af56d91d7sm11185740b3a.141.2025.07.01.03.33.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:33:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751366003; x=1751970803; 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=JyGD103OZ4Hk2SYZr4SYZ7rCbtWK1S69PA+W1WpCH/w=; b=MV1iWUTi4oTVFHgnkuLPV5sKjUkjgnj17SGchmHqFMfR3TNz+2wO/msmYoswO8RaTI 4jecV5L+o9XhD3RfHv3kDf+4JJePK3CKKhLEVdUG7Y97IHPHgNlOJ4afRUbBjQjiKaFV 76WfN3q3ZOG/qJm1krtnE7wbR/CJkoa+NnEU4PTGoc8V0niBimyH8cwM+TsKuEOPAW+6 0jvkIfU1IOEm9MiKwyniaxk1ylK+pOBUv/8ErgSFycwGddFaYIud1G7qf7Rs+TGnM09s oKBS7L/z7iw8NLcBmjhCGSDU02pWSgoU0RcaN4HayHGWcGE8qbVMCvu1v815ITIbSzW7 6N5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751366003; x=1751970803; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JyGD103OZ4Hk2SYZr4SYZ7rCbtWK1S69PA+W1WpCH/w=; b=O3DB0xpxI1ymLboe23thdBgF3jENmOgkVk1VDVc9HjBJ3sVqwRd+9cqT8x/OaoLHLR BAdAskG47tC6SbpkVNVc4EIhuy9UohXCWg3INkXREOF8P+S6WiDNNXp6SQ+OGQXFrt/v 4i+XZXGGkZ1nhMFQjEdIMi/lOrNifNxS1OLEcJ6lkPhGKhJU6JhPx411VZbBJQ1+DmSL loiwLIxFSClWrFNKOKQ0k9H1R3ZUElyjP19AFXJh3aY7xxdjuOJmV57M5r3/DqHlYtK8 wo2omVkwOrH7TxXjWj/fqCxOUgyXI9m7UpR0L0ffEQ3IRhBmNS5gAne1LtFSZvvI8Kd5 MhLA== X-Gm-Message-State: AOJu0YzGYVnTpQQHvnfWcL988bsGqdPQjx3MfNzCBZAIXCgXrVj9MZtQ Y45rZo7ZiQDkpEIdHieNu8O4MczOuLnHZ3+k/SaCJY0DfSGcPq1wnWiZZE5n174HPWU= X-Gm-Gg: ASbGncswSG/C53Vk0caqMWRR9jDlqtIrUxpStBZ+8Uf0anCwGMdsDWfB2QMO02csD2H kStXb6TOZo//btETp//2bimCxLiJX9UdXvttRh57dtaSuYOS9NxNXm4s5JG6UC8c5AUs/gUbO/m /K/POYKzdFX8MVhA8FM8txhcekwdY7TLTLCdYzDCL6g+EbPhwHnEHXzup7UVGkfS3rOsBSp2yNL xgFp3Iy92h5nBUST8PwDX2fTeHvAx+Xgk4M40mVMFHNx7xbsSpfBgiaauYgC7Jtx4rifek0UDWZ AemgROg2/eI4m52igGPhk0oQxhXq4LIkEL41SRuTehsDLZY4VgLV4Oo7xEGi8zA3PBHhW3ntIxQ xqdG1mTNNU8WW7rs340QDM9Z68i+wtx3NUhgNx7ttUXG4aTmxxur3mQ== X-Google-Smtp-Source: AGHT+IGRL4/qbhb6pw/8cxlR65Gygj1MGSgXQC+6P/ll9oM8WYDNel4T4YKA4qASnQDOyWFCroAoow== X-Received: by 2002:aa7:88c3:0:b0:736:35d4:f03f with SMTP id d2e1a72fcca58-74af6e6620fmr23199013b3a.6.1751366003127; Tue, 01 Jul 2025 03:33:23 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 08/12] target/arm: Fix VLD4 helper load alignment checks Date: Tue, 1 Jul 2025 20:01:55 +0930 Message-ID: <20250701103159.62661-9-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pf1-x431.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366150848116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the load operations in the VLD4 instruction. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/mve_helper.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index 5b04fa4425..2d2936abde 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -421,13 +421,15 @@ DO_VSTR64_SG(vstrd_sg_wb_ud, ADDR_ADD, true) uint16_t mask =3D mve_eci_mask(env); \ static const uint8_t off[4] =3D { O1, O2, O3, O4 }; \ uint32_t addr, data; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0; beat < 4; beat++, mask >>=3D 4) { = \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ continue; \ } \ addr =3D base + off[beat] * 4; \ - data =3D cpu_ldl_le_data_ra(env, addr, GETPC()); \ + data =3D cpu_ldl_mmu(env, addr, oi, GETPC()); \ for (e =3D 0; e < 4; e++, data >>=3D 8) { = \ uint8_t *qd =3D (uint8_t *)aa32_vfp_qreg(env, qnidx + e); \ qd[H1(off[beat])] =3D data; \ @@ -445,13 +447,15 @@ DO_VSTR64_SG(vstrd_sg_wb_ud, ADDR_ADD, true) uint32_t addr, data; \ int y; /* y counts 0 2 0 2 */ \ uint16_t *qd; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0, y =3D 0; beat < 4; beat++, mask >>=3D 4, y ^=3D 2= ) { \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ continue; \ } \ addr =3D base + off[beat] * 8 + (beat & 1) * 4; \ - data =3D cpu_ldl_le_data_ra(env, addr, GETPC()); \ + data =3D cpu_ldl_mmu(env, addr, oi, GETPC()); \ qd =3D (uint16_t *)aa32_vfp_qreg(env, qnidx + y); \ qd[H2(off[beat])] =3D data; \ data >>=3D 16; \ @@ -470,13 +474,15 @@ DO_VSTR64_SG(vstrd_sg_wb_ud, ADDR_ADD, true) uint32_t addr, data; \ uint32_t *qd; \ int y; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0; beat < 4; beat++, mask >>=3D 4) { = \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ continue; \ } \ addr =3D base + off[beat] * 4; \ - data =3D cpu_ldl_le_data_ra(env, addr, GETPC()); \ + data =3D cpu_ldl_mmu(env, addr, oi, GETPC()); \ y =3D (beat + (O1 & 2)) & 3; \ qd =3D (uint32_t *)aa32_vfp_qreg(env, qnidx + y); \ qd[H4(off[beat] >> 2)] =3D data; \ --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366048; cv=none; d=zohomail.com; s=zohoarc; b=ZYC/6OUtH1D/Vi/g8Nw1Jl1fwhTb3JU231Vj723W8rXTJa2qTv5/G62mZ9U2n/Mq/h4XUkeZeRX+GTSAUpd46Snmz/E+1zUKt6wgTr5b+Cq6IPgQzsc7tQu9n8FHfBbzjXdrPPelHhPwusPP3Kpg54S7EQxOOF+LzylNRM/bR3g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366048; h=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=7aRIcodaoxwPOVqLMAiD3Xs6uLadGOPk1WBQF+3EBdA=; b=QuRaWYfxhUpSYM7/1fRpoSEjwiWTe/hCFWKokkTVkoPzIJNpSsTPH9U06qThSCytWqCGN8uBroq71yhgMy2SPAud0mLfw89+PSZ5dy/5N8gy38PVXbROoL/6fIL+tHcUIgXyouchGyGR8DMJhGwJaECl7RB+QTprLKpL1vVoBmo= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366048280735.9044698394047; Tue, 1 Jul 2025 03:34:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYJ2-0005WM-0X; Tue, 01 Jul 2025 06:33:40 -0400 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 ) id 1uWYIu-0005PL-Rq; Tue, 01 Jul 2025 06:33:36 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYIs-0002Ni-JU; Tue, 01 Jul 2025 06:33:32 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-23602481460so55691665ad.0; Tue, 01 Jul 2025 03:33:29 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-23acb2f1c40sm104476955ad.67.2025.07.01.03.33.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:33:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751366007; x=1751970807; 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=7aRIcodaoxwPOVqLMAiD3Xs6uLadGOPk1WBQF+3EBdA=; b=C5u+RIgWcMaJUTSwBeneo74yAfQQzh+tOsFefx9jFakGXJwt8zQQ8s3hx5fgk4Wjw4 yO5aal9jU257JNtXTJTKLuU7PHxyQybLRnFwpgBe0cWi+APWt7mBcyYaFQl7C1ybStBT +e+7A2FeJ4mqT3yZv4ItqcfXmAepA0AznxfuCZoi5mwGSYUiZmUwnQdUBtlx0VQX4lZh r885kfT3U00lULLTQZSV+JuuuoTMkul8gmUnJKC5x1TzVIwMcJsiRMgldQkTDb4WU9uO PbT9U9+OxYk34fCE/sUzwqjXdjHUnUf/XmQJLq3wdebj2LljTXmcpj8A2R2d/EyEKhPP hBRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751366007; x=1751970807; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7aRIcodaoxwPOVqLMAiD3Xs6uLadGOPk1WBQF+3EBdA=; b=aSYu1vnwYgi4CwlqgCqfk4ZaXIIDLI/R93IlaAoL2dT16MmdXSB1ordI2LATL0roEc P0c58gOulKBejjAkW8xVYDaFMq77C4KulVSqF/14AiVtPHGp8kyZPo96R4MSSWKsKZbk O3fcbbzptKve1nqU4j2rL/zz56LngPyggo+2u3y1Lnsp+a/RKTly6Ox5yayU+QCyyI1U JpAG8mLYgViElN2xI+9wivsv0WhSjr7yo0DzRMprK+9q+l+3zopzJ09SDSijC5tZFUBP qL/Q9lgH1lZ6022a3d2SeWGMfviCiaKgHV2WZ8uYia05mQo3+xcy7Cf7N+W1Izu6Pjw/ ju7A== X-Gm-Message-State: AOJu0YxGbnpuvn9IxAVgJL5asnwes2lRM31JSjw22EXEo33YrqipA2Dj w5LXOI/pqwwrUl3FGNqfWn64yyZ/Uu/FAG/2iTL40fgGfOR4N0Bp89Xk4/WyY2Dt9pc= X-Gm-Gg: ASbGncv9H+09ltNLpkKFZuL/MCDd34HWSwPGS5uWSU228cXxoTDxjQTaPKeSwflZJZF kRo+ll1dhAHM026+2aMeEc7gPnOMdIlCf8GC4Oh5pK0xQvAc8vjm2R1edHwiC1YLgGErfAJgj2M K+BlsIGaCyw77sTE5iAqeRi+a+8WI/lD96lSUzmr+vBS3NtlX4kI7mrtikwVA3dlUylQsq3PKGl K05kUnwp8+64hoCgNus4J2N7EAQH0zkOrTNuoe1ME/9G9eAL3tFdsftKU71WMdDuhUc3MFv6w7J mpY3vFz96YzCB5yovfb6SccweHMg13UTlEtcyck7reBxeSal4vRUqO7c8qc6QlLSvDKj+DpEN2l IPlyEOGI38/nJTtiSC5y5f9T3DEMaKibTvGgIrt9J/hA= X-Google-Smtp-Source: AGHT+IGM3ppVDuzRwXOuBF6/7ine2kkFnd3QIiy1osrAHX94x6RbrBd1KeYYf3dEOSKYIjydoBhSgA== X-Received: by 2002:a17:903:1a67:b0:236:7333:f183 with SMTP id d9443c01a7336-23ac3afd8e4mr245773125ad.19.1751366007307; Tue, 01 Jul 2025 03:33:27 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 09/12] target/arm: Fix VLD2 helper load alignment checks Date: Tue, 1 Jul 2025 20:01:56 +0930 Message-ID: <20250701103159.62661-10-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366049446116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the load operations in the VLD2 instruction. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/mve_helper.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index 2d2936abde..9e8ea04074 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -513,13 +513,15 @@ DO_VLD4W(vld43w, 6, 7, 8, 9) static const uint8_t off[4] =3D { O1, O2, O3, O4 }; \ uint32_t addr, data; \ uint8_t *qd; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0; beat < 4; beat++, mask >>=3D 4) { = \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ continue; \ } \ addr =3D base + off[beat] * 2; \ - data =3D cpu_ldl_le_data_ra(env, addr, GETPC()); \ + data =3D cpu_ldl_mmu(env, addr, oi, GETPC()); \ for (e =3D 0; e < 4; e++, data >>=3D 8) { = \ qd =3D (uint8_t *)aa32_vfp_qreg(env, qnidx + (e & 1)); \ qd[H1(off[beat] + (e >> 1))] =3D data; \ @@ -537,13 +539,15 @@ DO_VLD4W(vld43w, 6, 7, 8, 9) uint32_t addr, data; \ int e; \ uint16_t *qd; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0; beat < 4; beat++, mask >>=3D 4) { = \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ continue; \ } \ addr =3D base + off[beat] * 4; \ - data =3D cpu_ldl_le_data_ra(env, addr, GETPC()); \ + data =3D cpu_ldl_mmu(env, addr, oi, GETPC()); \ for (e =3D 0; e < 2; e++, data >>=3D 16) { = \ qd =3D (uint16_t *)aa32_vfp_qreg(env, qnidx + e); \ qd[H2(off[beat])] =3D data; \ @@ -560,13 +564,15 @@ DO_VLD4W(vld43w, 6, 7, 8, 9) static const uint8_t off[4] =3D { O1, O2, O3, O4 }; \ uint32_t addr, data; \ uint32_t *qd; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0; beat < 4; beat++, mask >>=3D 4) { = \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ continue; \ } \ addr =3D base + off[beat]; \ - data =3D cpu_ldl_le_data_ra(env, addr, GETPC()); \ + data =3D cpu_ldl_mmu(env, addr, oi, GETPC()); \ qd =3D (uint32_t *)aa32_vfp_qreg(env, qnidx + (beat & 1)); \ qd[H4(off[beat] >> 3)] =3D data; \ } \ --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366166; cv=none; d=zohomail.com; s=zohoarc; b=UZudt3ZtKNdp/UGpdYgEdlBfbadEJlKa9BAM/uDtn2WxdNEJ4yxiAi54Kvy2RstwXGYKFrKzJxtToJrdYSkC29KifClJArm6X6kSuIRRkvpw02qNY/IYqm4HFvWsfkY1WJj8+TvQDS658nElNRTEF9dZla0CHsebGNsSr1b8V3o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366166; h=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=YaRnx40pfqe2LWdyO+Phw71MFavCwwYSk+ZdTDx9hxA=; b=f2CrdKHFyjLfvfYQ/AZeFOXZac7VekwPPjj3WpsPVJnD46Za4jviIt+5tgM24GWQhvZ7dZmjic50qBDGSiXo9qhthA2ewZxAZWT71O0UjrsIqHdexrBafgIzgU1Z2Zt352+VwdplzhNW3Z0JdGLMiiVvMQzg6zkyDESI8xhITe8= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366166332572.8306021103538; Tue, 1 Jul 2025 03:36:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYJ7-0005lH-7a; Tue, 01 Jul 2025 06:33:45 -0400 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 ) id 1uWYJ2-0005bP-NS; Tue, 01 Jul 2025 06:33:40 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYIx-0002OD-Gb; Tue, 01 Jul 2025 06:33:40 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-23636167b30so27519295ad.1; Tue, 01 Jul 2025 03:33:33 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-23acb3acc00sm99523915ad.142.2025.07.01.03.33.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:33:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751366012; x=1751970812; 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=YaRnx40pfqe2LWdyO+Phw71MFavCwwYSk+ZdTDx9hxA=; b=kiwd5gHoGdsLocZzEXP8oBANVFtQLEaDep9xrvypZMNUPGL+0B0/aUvZJsKOGjsjD8 XDAg3gww7Yxj1MXMkZ5LnEFOSA14FX8iyThKceXyN0+CKbnjHE6pOyFYy6WsSlCc6Puz E9pKspG9Jw/S1MPCoGLkc3ATQRc39+K15lEc6hicn688p566LhDQ3TFURaajOI5gnMJi HgOudJ4LRt6cURtx7bSvJwIOetsI/sVYd400QQbcGwQk0mw3RkxW/oeH0h+jEADFVZpz YzH3yTKDAwIz24k5IKDh+6tRvn8KW0ev+I0OpJi1QpNCFvUKlfK5zwSvf5M3+2w/Gl8l 7NzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751366012; x=1751970812; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YaRnx40pfqe2LWdyO+Phw71MFavCwwYSk+ZdTDx9hxA=; b=ff59mpAyCsZVKxeBhgqT4WRQppNb+WOI9J6rBApDQSUEgXtIbYy64cbu/uW2r95Pv5 lNQKWekjKKTjeFnMHb7G+A1xmp5yWYePINO/INjmer6yaJ+VR7oMpkHtpMJg5jYVvws1 Dml6WZhH++yDhpG9o49kxTCrkOX89LYC8N9aVrgWOwVihZ4mhm/49ghE3o0d8crCvEEI jlSqdv7fIpT7h6MXFne6KwWK3P4EcYCTMah5K51mQQjPd87QucAQMRdxAoXMmsgViQux qMKUZ7nZL3lURKkF3w5PoH3VPDCtCQq09F4zP+lK3BXODIrxbIvQzxXso5s73tRze7OM DpOg== X-Gm-Message-State: AOJu0YwAgxyGly6gB+clMS4nTndTjyi+cKha0zucnfktr89neD56vuIV Uqq3ByIBfIP/TN8MOOIhl10pUzG7YwCAJvyjJ9kJ85s6dvAmc4SRu2iwajJbyFojNIg= X-Gm-Gg: ASbGnct/S1dlRJdMJwEsiZ5iEwGEiaN0DMTnx/hVfdo/2PWx8sV+k9kv2Zx66kWRfgn 4FX9NHnPbBVq3S+8/F7K5/m7eSMD6B5FgsrwvphtH1edqL5Jld/KXetYwbLI7yRnB4AFHIawObs Gx+dzJ99KExvw2UuI8EQfw2/ncio5yPkVBZisq02yD3WhxcpcblVAde4vGyY0MDK11nLim7YfnM V2ZO+wtXdBq54Da2co4DIRzH2CV4i0He9Nu+EUekd4bF4s50+jv3AUY272ssjZxL+6EdFjIvuen +icEdGf2FR4mr/6r11mQ3Taa+LeJIqUZ6iPJqfjkUxIVPGKtnUplnanzFuRRl/heVY1HYiIOO7t tG5WIgqvvIErFJr56rz63EkDU/KqIROAvbYq1iL1FsoI= X-Google-Smtp-Source: AGHT+IG3J3CPFENhldOUjXYuQsOculAHuS0R7o9ec7yY+KFAmQQi2I/TBYJ9I7GUVEUJyYONBDCjbg== X-Received: by 2002:a17:903:1ac8:b0:235:225d:30a2 with SMTP id d9443c01a7336-23ac4664161mr255766415ad.48.1751366011834; Tue, 01 Jul 2025 03:33:31 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 10/12] target/arm: Fix VST4 helper store alignment checks Date: Tue, 1 Jul 2025 20:01:57 +0930 Message-ID: <20250701103159.62661-11-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pl1-x631.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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 @gmail.com) X-ZM-MESSAGEID: 1751366177288116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the store operations in the VST4 instruction. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/mve_helper.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index 9e8ea04074..f16877ba45 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -595,6 +595,8 @@ DO_VLD2W(vld21w, 8, 12, 16, 20) uint16_t mask =3D mve_eci_mask(env); \ static const uint8_t off[4] =3D { O1, O2, O3, O4 }; \ uint32_t addr, data; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0; beat < 4; beat++, mask >>=3D 4) { = \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ @@ -606,7 +608,7 @@ DO_VLD2W(vld21w, 8, 12, 16, 20) uint8_t *qd =3D (uint8_t *)aa32_vfp_qreg(env, qnidx + e); \ data =3D (data << 8) | qd[H1(off[beat])]; \ } \ - cpu_stl_le_data_ra(env, addr, data, GETPC()); \ + cpu_stl_mmu(env, addr, data, oi, GETPC()); \ } \ } =20 @@ -620,6 +622,8 @@ DO_VLD2W(vld21w, 8, 12, 16, 20) uint32_t addr, data; \ int y; /* y counts 0 2 0 2 */ \ uint16_t *qd; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0, y =3D 0; beat < 4; beat++, mask >>=3D 4, y ^=3D 2= ) { \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ @@ -630,7 +634,7 @@ DO_VLD2W(vld21w, 8, 12, 16, 20) data =3D qd[H2(off[beat])]; \ qd =3D (uint16_t *)aa32_vfp_qreg(env, qnidx + y + 1); \ data |=3D qd[H2(off[beat])] << 16; \ - cpu_stl_le_data_ra(env, addr, data, GETPC()); \ + cpu_stl_mmu(env, addr, data, oi, GETPC()); \ } \ } =20 @@ -644,6 +648,8 @@ DO_VLD2W(vld21w, 8, 12, 16, 20) uint32_t addr, data; \ uint32_t *qd; \ int y; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0; beat < 4; beat++, mask >>=3D 4) { = \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ @@ -653,7 +659,7 @@ DO_VLD2W(vld21w, 8, 12, 16, 20) y =3D (beat + (O1 & 2)) & 3; \ qd =3D (uint32_t *)aa32_vfp_qreg(env, qnidx + y); \ data =3D qd[H4(off[beat] >> 2)]; \ - cpu_stl_le_data_ra(env, addr, data, GETPC()); \ + cpu_stl_mmu(env, addr, data, oi, GETPC()); \ } \ } =20 --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366105; cv=none; d=zohomail.com; s=zohoarc; b=Z95XBN7FjeWsXVj1G/rmZ7aQwYYsQta7/5905xz03Fys95HLSy18Xi2HSwQ5AVvjJOP97DK1SROtmr/ABSrW5AODODIL/Qu72ldKiXA6VodvgZalt2ndzKbf4s9SCqgF3xcGg/TKRABRIgcKS0H5DT2Qeiy03y3Sf44FR1BhJxI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366105; h=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=9TVIYWzs/Fc2hFT84TP2ybPMoeIM8ttt4z8oppooWkA=; b=luwKnHzD5YrmuknrtzEMPUGGP8JMH6MY5K5cenL5KHlC72M8K3CDISoYkxWt6XBN9k9TdRBTuOu0gAki0ELI5xLDFIv9cEm6n5E9I+vLZawJdrpudmYL4jZBkEQNUZPLa+9uFXBjDHGHvFqNqklZ5SZjKU5ExMnkBjiWWeOsESk= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366105667695.0361989962956; Tue, 1 Jul 2025 03:35:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYJA-0005uD-5O; Tue, 01 Jul 2025 06:33:48 -0400 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 ) id 1uWYJ8-0005qc-Op; Tue, 01 Jul 2025 06:33:46 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYJ1-0002Op-Ur; Tue, 01 Jul 2025 06:33:46 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-74264d1832eso3847877b3a.0; Tue, 01 Jul 2025 03:33:37 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id d2e1a72fcca58-74af558102bsm12219844b3a.105.2025.07.01.03.33.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:33:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751366016; x=1751970816; 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=9TVIYWzs/Fc2hFT84TP2ybPMoeIM8ttt4z8oppooWkA=; b=GjoFdhZEydUyL+8F/wrOxsu8CcNVlnUVdw8WPTbSy8rYmyxzezbt7cRRwBuXpz1lJq eHmiY86s39pDwPhPvQcWXTUl/4pE6RJBFhLyH44f3J250iBFyt/eD8ffxSkkremN+WiA JfAsqbrJICLfVIuevkXydQHYwtZphxnscgfZkawpSNbE47qWjXZypRHTrGzmxVusfbuv 3RAKq6+pT4Y7bl/fuw17+p0q6GiM6WhtMXPl4StUsfrkQb4RbreXpreEVkv4xvQEYERM xhXZ3UVl5bsEokfk0Hiyq4uc94FPgIYO57/rpCWO1Wxudqj5UHcTQMuOCI+Ikz8jn22d eS1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751366016; x=1751970816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9TVIYWzs/Fc2hFT84TP2ybPMoeIM8ttt4z8oppooWkA=; b=bWezNzqw5v3V3QjDArwaCcgL6TSiVycWPQoG7F1CYBH6t9ijK+s+K7XMOMB+ZTzhkF UEKIleGGRppcTXzzbpCQxDXSrVMRzjzFugwc7LgO0cChtDZmWwHFmkUpwbT/xp/xRxa2 MfmIs5Qj0sTiqI19ZiuJCNgeuTOJ+NNlTUBHHNq+Mvx3KZp/YSYeDibzLxRQyL/QA/iG ssrGiUKG0RXRJgQu6RQ/wjc5rI34Z3FkGHy/v4MLA19yMtm3veCgdXZSAsIE9jzxJm8+ y9hjvvUWfVLR3hRrlzMhVKbl4WlGwaacX9AQfy4v78KUQuReLD8dUQHe/4whwExPznuL jcdA== X-Gm-Message-State: AOJu0YyIoK3jYfFkDV/Q4ECKai1y62FYEq37nk199so0b55Kgj+88EhJ 4hKpcrR8QIbT8fjPdGUlNq6Zea9dBBr7iEO04yDul9UxBoxIrNxx+JtXQGIk7hP6/74= X-Gm-Gg: ASbGnctu3PSSFIp/QYid6hZ99nclO+rrq02jU/bZx7JcGPUpsqlqZCB9m8SROH9YyBD 9PLA2u5nfsz2D3JlTnq0LmtnFdiPY2OCqKTv7g3pS1ZdqUZ+a6pRQyBEfeDkuAIlo7RXRZ6wuK4 LkeyGXbdx3cN/xtX11IkjlQ4Mw0sMMbLtfawNB3cSTulAm/MuIWHo26vgmlBrw6LFNkZmx7fwTL xKVn4FwgotGJuEAR1G1GViEHY7b0Zzy/sP0MPvzRdjhkOiB/jtBCEmTDjLU275hYP5dDsaEXExw WCuAe+T4DyM0x4AAwA3TTIGSmTqMFIRwed8nUNCf8HhTpDzvz5GVNV2Q0gVo/0vBFiUqgsOP6vq THEi33deb53Kz7lqnTcQZQ/wZPM9IV3BsI2WGc7b56dc= X-Google-Smtp-Source: AGHT+IF7rQknMxumcflw/Vv9U7ZJvPIYci/CgUuZ6JmosKn8lrOhqUTyL5mO42Q6EdN+yluW1NTgwA== X-Received: by 2002:a05:6a00:929f:b0:748:f750:14c6 with SMTP id d2e1a72fcca58-74af6f26d05mr24105152b3a.14.1751366016103; Tue, 01 Jul 2025 03:33:36 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 11/12] target/arm: Fix VST2 helper store alignment checks Date: Tue, 1 Jul 2025 20:01:58 +0930 Message-ID: <20250701103159.62661-12-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42c; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pf1-x42c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366106515116600 Content-Type: text/plain; charset="utf-8" This patch adds alignment checks in the store operations in the VST2 instruction. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1154 Signed-off-by: William Kosasih --- target/arm/tcg/mve_helper.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index f16877ba45..6dffd9cb35 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -687,6 +687,8 @@ DO_VST4W(vst43w, 6, 7, 8, 9) static const uint8_t off[4] =3D { O1, O2, O3, O4 }; \ uint32_t addr, data; \ uint8_t *qd; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0; beat < 4; beat++, mask >>=3D 4) { = \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ @@ -698,7 +700,7 @@ DO_VST4W(vst43w, 6, 7, 8, 9) qd =3D (uint8_t *)aa32_vfp_qreg(env, qnidx + (e & 1)); \ data =3D (data << 8) | qd[H1(off[beat] + (e >> 1))]; \ } \ - cpu_stl_le_data_ra(env, addr, data, GETPC()); \ + cpu_stl_mmu(env, addr, data, oi, GETPC()); \ } \ } =20 @@ -712,6 +714,8 @@ DO_VST4W(vst43w, 6, 7, 8, 9) uint32_t addr, data; \ int e; \ uint16_t *qd; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0; beat < 4; beat++, mask >>=3D 4) { = \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ @@ -723,7 +727,7 @@ DO_VST4W(vst43w, 6, 7, 8, 9) qd =3D (uint16_t *)aa32_vfp_qreg(env, qnidx + e); \ data =3D (data << 16) | qd[H2(off[beat])]; \ } \ - cpu_stl_le_data_ra(env, addr, data, GETPC()); \ + cpu_stl_mmu(env, addr, data, oi, GETPC()); \ } \ } =20 @@ -736,6 +740,8 @@ DO_VST4W(vst43w, 6, 7, 8, 9) static const uint8_t off[4] =3D { O1, O2, O3, O4 }; \ uint32_t addr, data; \ uint32_t *qd; \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ for (beat =3D 0; beat < 4; beat++, mask >>=3D 4) { = \ if ((mask & 1) =3D=3D 0) { = \ /* ECI says skip this beat */ \ @@ -744,7 +750,7 @@ DO_VST4W(vst43w, 6, 7, 8, 9) addr =3D base + off[beat]; \ qd =3D (uint32_t *)aa32_vfp_qreg(env, qnidx + (beat & 1)); \ data =3D qd[H4(off[beat] >> 3)]; \ - cpu_stl_le_data_ra(env, addr, data, GETPC()); \ + cpu_stl_mmu(env, addr, data, oi, GETPC()); \ } \ } =20 --=20 2.48.1 From nobody Sat Nov 15 12:39:02 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1751366112; cv=none; d=zohomail.com; s=zohoarc; b=fwHG5L8GVsAXoRSoz3ULSgWrAUFaufxpIGA70QlQSX88xhB8tqtGVsTs4HkfNJh1vd0mLyn/j6q0Q6EKrgLibc8gY2vAU53vC0V9TugjiHtsyOUuCUBEm6j7Lz0THLYf4WZvo+lEF9SmM0nMgWki3TcAqEKJi2EA4YxR5+DKBz4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751366112; h=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=8ANEeeXFNou7PoIjW7yOiOz8sk3zkXq4bZ+pgAyMZ1Y=; b=dmpXTaSzfJ4LP6PIl3KQvk0qf+plOmfO2z7SCE6+fSuUa4/kBF/pbi9xYheGE+YdtiskiuljYEniyE1MbG9WPPY2jbGQLiuofhUfpxCpVnB9Z3CP6cIc3CEa3wgnIEKxQCFm8yBmMMHLAn9ccxcT1n9WGfyK1V2N6ceJNqiGSYg= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751366112537417.2258512571133; Tue, 1 Jul 2025 03:35:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWYJA-0005tl-1i; Tue, 01 Jul 2025 06:33:48 -0400 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 ) id 1uWYJ8-0005pR-3k; Tue, 01 Jul 2025 06:33:46 -0400 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWYJ5-0002Pd-Go; Tue, 01 Jul 2025 06:33:45 -0400 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-b31d578e774so6066854a12.1; Tue, 01 Jul 2025 03:33:42 -0700 (PDT) Received: from localhost (pa49-178-74-199.pa.nsw.optusnet.com.au. [49.178.74.199]) by smtp.gmail.com with UTF8SMTPSA id 98e67ed59e1d1-315f542e494sm15233336a91.31.2025.07.01.03.33.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 03:33:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751366021; x=1751970821; 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=8ANEeeXFNou7PoIjW7yOiOz8sk3zkXq4bZ+pgAyMZ1Y=; b=cJCWDBUv6+Yroetb5s2lFDZ5vS+DdoqV64BrZW6ZV8vjngDhpuN6ivxTyIbN/H+ZTU J6F5H6T2lOoFrbOC05Ip8wa370myjitdO0ONbVBNP2NRTZH7esg9mHZSKSEEqqOjO0TK 7DqgCTXZgPSc+jnSRUaVvMTXgE4dNq0BtjdoEK5/lT6QY7fxmIqD9DGrRKFy95oj0d4C g+I4/Y7pfuhh2//9EjKHCOLV4ckDaeOeDtvijtxyZgc3xifUNg4uSmmYJeXgbMP/WQuK IZMvV8IwX5Phw3TdjbU1d+b6Kj9sagAq7nS62cTC5DULHJnSBhFg1MEmPDL9VsTMigc/ w64Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751366021; x=1751970821; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8ANEeeXFNou7PoIjW7yOiOz8sk3zkXq4bZ+pgAyMZ1Y=; b=oNV9TN7DBM4KP9HOC+5DgiD6B5K/+1q9dHISSVN7t8r3kXL9b/MobRfbpeekspj4OA AuvXKvresdWg+3meK8GnUO3XX0Sa/Ltftvs+Pp71bGLDmhFtqbvpXYpttmt5l8+9GTUt /LM3wPwxoZ3Vi/cv04L6TuqMBk2UUaBgUZ2cTbudwJLFDhy1Ka1/RNSHR0LMpVCaJt7M 5df2e6/WA9svEglPkbSwweRfPCfU3VvnVse+rAd5pYblfeCm90KE1zZJDCUisF7K+rme vZ34z/5TCiKAom4tXM6/piWWi0ukFHv63JqXh7NbFFVACdKO+c3S6VsNGj+AngzO/dTV jz2Q== X-Gm-Message-State: AOJu0YyQCI5Iny1Y1uNExRQmPWCSo3d9hI3cMqMedbp1BypaqVMocisB ImRTflijyxFbvImt8qOMWLsr8EwXxtjLPNORZzTDwt62Uxmy/e6AJ2mQ4QMaaiP/aoA= X-Gm-Gg: ASbGnctXpKrV5N51mRqnKvNCtm3JPTdZwBeM1wscUVPAHZmlBlhRE75t9hK4ta0TSxx 3PwrSLzroXKPLKy0pZ+l0B6zeiBCDrqoSh6aJUiuGGzpf1k7A3NmxOSyeLm+RPEVi/2lsS0zEBo f952OzAMU+0eqOeMtrS6bLIAKl5B6An16+/Zw/OLRMW/aVECpPmqy9v1QbI/3PtYQrVgWFPKwxn giqojJe5ovE9Kd2xwsAM3bQo4c5MM7C7XedXv3c8HzNJiGjbbPnRdQLtLwjj65qkz51XqTduaad D2j7HjJBZeG6T6jccfmCUEKiSiO0OiMDnOMhRCwv0cnmMdo/WlS8kPC1s2nsGoJaWKnTSSP2M2X spZwX92CMcE0bAWNJVlhSIwEZH3PEOhl2+pQSqCo/Kk1lKQw30UK3jQ== X-Google-Smtp-Source: AGHT+IFPJQcBEORDhZWHiifmQXlR0YeAtaipEe92oDHqWe6hOf2tHGeLS2SDBW1cb7lmBzlI4kNTDA== X-Received: by 2002:a17:90b:48c8:b0:30e:3737:7c87 with SMTP id 98e67ed59e1d1-31939af5b45mr4256466a91.5.1751366020858; Tue, 01 Jul 2025 03:33:40 -0700 (PDT) From: William Kosasih To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell , William Kosasih Subject: [PATCH v2 12/12] target/arm: Fix helper macros indentation in mve_helper.c Date: Tue, 1 Jul 2025 20:01:59 +0930 Message-ID: <20250701103159.62661-13-kosasihwilliam4@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250701103159.62661-1-kosasihwilliam4@gmail.com> References: <20250701103159.62661-1-kosasihwilliam4@gmail.com> MIME-Version: 1.0 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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::533; envelope-from=kosasihwilliam4@gmail.com; helo=mail-pg1-x533.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1751366114317116600 Content-Type: text/plain; charset="utf-8" Recent helper function load and store alignment fix caused the continuation backslashes in those macro definitions to shift out of alignment. This patch restores a uniform indentation for those trailing backslashes, making them consistent. Signed-off-by: William Kosasih --- target/arm/tcg/mve_helper.c | 280 ++++++++++++++++++------------------ 1 file changed, 140 insertions(+), 140 deletions(-) diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index 6dffd9cb35..72c07262c0 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -164,48 +164,48 @@ static void mve_advance_vpt(CPUARMState *env) ((T)(v) << (sizeof(T) * 8 - (B))) >> (sizeof(T) * 8 - (B)) } =20 /* For loads, predicated lanes are zeroed instead of keeping their old val= ues */ -#define DO_VLDR(OP, MSIZE, LDTYPE, ESIZE, TYPE) \ - void HELPER(mve_##OP)(CPUARMState *env, void *vd, uint32_t addr) \ - { \ - TYPE *d =3D vd; \ - uint16_t mask =3D mve_element_mask(env); \ - uint16_t eci_mask =3D mve_eci_mask(env); \ - unsigned b, e; \ - int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ - MemOpIdx oi =3D make_memop_idx(MFLAG(LDTYPE) | MO_ALIGN, mmu_idx);\ - /* \ - * R_SXTM allows the dest reg to become UNKNOWN for abandoned \ - * beats so we don't care if we update part of the dest and \ - * then take an exception. \ - */ \ - for (b =3D 0, e =3D 0; b < 16; b +=3D ESIZE, e++) { = \ - if (eci_mask & (1 << b)) { \ - d[H##ESIZE(e)] =3D (mask & (1 << b)) ? \ - SIGN_EXT(cpu_ld##LDTYPE##_mmu(env, addr, oi, GETPC()),\ - TYPE, \ - MSIZE * 8) \ - : 0; \ - } \ - addr +=3D MSIZE; \ - } \ - mve_advance_vpt(env); \ +#define DO_VLDR(OP, MSIZE, LDTYPE, ESIZE, TYPE) = \ + void HELPER(mve_##OP)(CPUARMState *env, void *vd, uint32_t addr) = \ + { = \ + TYPE *d =3D vd; = \ + uint16_t mask =3D mve_element_mask(env); = \ + uint16_t eci_mask =3D mve_eci_mask(env); = \ + unsigned b, e; = \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); = \ + MemOpIdx oi =3D make_memop_idx(MFLAG(LDTYPE) | MO_ALIGN, mmu_idx);= \ + /* = \ + * R_SXTM allows the dest reg to become UNKNOWN for abandoned = \ + * beats so we don't care if we update part of the dest and = \ + * then take an exception. = \ + */ = \ + for (b =3D 0, e =3D 0; b < 16; b +=3D ESIZE, e++) { = \ + if (eci_mask & (1 << b)) { = \ + d[H##ESIZE(e)] =3D (mask & (1 << b)) ? = \ + SIGN_EXT(cpu_ld##LDTYPE##_mmu(env, addr, oi, GETPC()),= \ + TYPE, = \ + MSIZE * 8) = \ + : 0; = \ + } = \ + addr +=3D MSIZE; = \ + } = \ + mve_advance_vpt(env); = \ } =20 -#define DO_VSTR(OP, MSIZE, STTYPE, ESIZE, TYPE) \ - void HELPER(mve_##OP)(CPUARMState *env, void *vd, uint32_t addr) \ - { \ - TYPE *d =3D vd; \ - uint16_t mask =3D mve_element_mask(env); \ - unsigned b, e; \ - int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ - MemOpIdx oi =3D make_memop_idx(MFLAG(STTYPE) | MO_ALIGN, mmu_idx);\ - for (b =3D 0, e =3D 0; b < 16; b +=3D ESIZE, e++) { = \ - if (mask & (1 << b)) { \ - cpu_st##STTYPE##_mmu(env, addr, d[H##ESIZE(e)], oi, GETPC(= ));\ - } \ - addr +=3D MSIZE; \ - } \ - mve_advance_vpt(env); \ +#define DO_VSTR(OP, MSIZE, STTYPE, ESIZE, TYPE) = \ + void HELPER(mve_##OP)(CPUARMState *env, void *vd, uint32_t addr) = \ + { = \ + TYPE *d =3D vd; = \ + uint16_t mask =3D mve_element_mask(env); = \ + unsigned b, e; = \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); = \ + MemOpIdx oi =3D make_memop_idx(MFLAG(STTYPE) | MO_ALIGN, mmu_idx);= \ + for (b =3D 0, e =3D 0; b < 16; b +=3D ESIZE, e++) { = \ + if (mask & (1 << b)) { = \ + cpu_st##STTYPE##_mmu(env, addr, d[H##ESIZE(e)], oi, GETPC(= )); \ + } = \ + addr +=3D MSIZE; = \ + } = \ + mve_advance_vpt(env); = \ } =20 DO_VLDR(vldrb, 1, b, 1, uint8_t) @@ -237,61 +237,61 @@ DO_VSTR(vstrh_w, 2, w, 4, int32_t) * For loads, predicated lanes are zeroed instead of retaining * their previous values. */ -#define DO_VLDR_SG(OP, LDTYPE, ESIZE, TYPE, OFFTYPE, ADDRFN, WB) \ - void HELPER(mve_##OP)(CPUARMState *env, void *vd, void *vm, \ - uint32_t base) \ - { \ - TYPE *d =3D vd; \ - OFFTYPE *m =3D vm; \ - uint16_t mask =3D mve_element_mask(env); \ - uint16_t eci_mask =3D mve_eci_mask(env); \ - unsigned e; \ - uint32_t addr; \ - int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ - MemOpIdx oi =3D make_memop_idx(MFLAG(LDTYPE) | MO_ALIGN, mmu_idx);\ +#define DO_VLDR_SG(OP, LDTYPE, ESIZE, TYPE, OFFTYPE, ADDRFN, WB) = \ + void HELPER(mve_##OP)(CPUARMState *env, void *vd, void *vm, = \ + uint32_t base) = \ + { = \ + TYPE *d =3D vd; = \ + OFFTYPE *m =3D vm; = \ + uint16_t mask =3D mve_element_mask(env); = \ + uint16_t eci_mask =3D mve_eci_mask(env); = \ + unsigned e; = \ + uint32_t addr; = \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); = \ + MemOpIdx oi =3D make_memop_idx(MFLAG(LDTYPE) | MO_ALIGN, mmu_idx);= \ for (e =3D 0; e < 16 / ESIZE; e++, mask >>=3D ESIZE, eci_mask >>= =3D ESIZE) {\ - if (!(eci_mask & 1)) { \ - continue; \ - } \ - addr =3D ADDRFN(base, m[H##ESIZE(e)]); \ - d[H##ESIZE(e)] =3D (mask & 1) ? \ - SIGN_EXT(cpu_ld##LDTYPE##_mmu(env, addr, oi, GETPC()), \ - TYPE, \ - MSIZE(LDTYPE) * 8) \ - : 0; \ - if (WB) { \ - m[H##ESIZE(e)] =3D addr; \ - } \ - } \ - mve_advance_vpt(env); \ + if (!(eci_mask & 1)) { = \ + continue; = \ + } = \ + addr =3D ADDRFN(base, m[H##ESIZE(e)]); = \ + d[H##ESIZE(e)] =3D (mask & 1) ? = \ + SIGN_EXT(cpu_ld##LDTYPE##_mmu(env, addr, oi, GETPC()), = \ + TYPE, = \ + MSIZE(LDTYPE) * 8) = \ + : 0; = \ + if (WB) { = \ + m[H##ESIZE(e)] =3D addr; = \ + } = \ + } = \ + mve_advance_vpt(env); = \ } =20 /* We know here TYPE is unsigned so always the same as the offset type */ -#define DO_VSTR_SG(OP, STTYPE, ESIZE, TYPE, ADDRFN, WB) \ - void HELPER(mve_##OP)(CPUARMState *env, void *vd, void *vm, \ - uint32_t base) \ - { \ - TYPE *d =3D vd; \ - TYPE *m =3D vm; \ - uint16_t mask =3D mve_element_mask(env); \ - uint16_t eci_mask =3D mve_eci_mask(env); \ - unsigned e; \ - uint32_t addr; \ - int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ - MemOpIdx oi =3D make_memop_idx(MFLAG(STTYPE) | MO_ALIGN, mmu_idx);\ - for (e =3D 0; e < 16 / ESIZE; e++, mask >>=3D ESIZE, eci_mask >>= =3D ESIZE) { \ - if (!(eci_mask & 1)) { \ - continue; \ - } \ - addr =3D ADDRFN(base, m[H##ESIZE(e)]); \ - if (mask & 1) { \ +#define DO_VSTR_SG(OP, STTYPE, ESIZE, TYPE, ADDRFN, WB) = \ + void HELPER(mve_##OP)(CPUARMState *env, void *vd, void *vm, = \ + uint32_t base) = \ + { = \ + TYPE *d =3D vd; = \ + TYPE *m =3D vm; = \ + uint16_t mask =3D mve_element_mask(env); = \ + uint16_t eci_mask =3D mve_eci_mask(env); = \ + unsigned e; = \ + uint32_t addr; = \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); = \ + MemOpIdx oi =3D make_memop_idx(MFLAG(STTYPE) | MO_ALIGN, mmu_idx);= \ + for (e =3D 0; e < 16 / ESIZE; e++, mask >>=3D ESIZE, eci_mask >>= =3D ESIZE) {\ + if (!(eci_mask & 1)) { = \ + continue; = \ + } = \ + addr =3D ADDRFN(base, m[H##ESIZE(e)]); = \ + if (mask & 1) { = \ cpu_st##STTYPE##_mmu(env, addr, d[H##ESIZE(e)], oi, GETPC(= )); \ - } \ - if (WB) { \ - m[H##ESIZE(e)] =3D addr; \ - } \ - } \ - mve_advance_vpt(env); \ + } = \ + if (WB) { = \ + m[H##ESIZE(e)] =3D addr; = \ + } = \ + } = \ + mve_advance_vpt(env); = \ } =20 /* @@ -302,58 +302,58 @@ DO_VSTR(vstrh_w, 2, w, 4, int32_t) * Address writeback happens on the odd beats and updates the address * stored in the even-beat element. */ -#define DO_VLDR64_SG(OP, ADDRFN, WB) \ - void HELPER(mve_##OP)(CPUARMState *env, void *vd, void *vm, \ - uint32_t base) \ - { \ - uint32_t *d =3D vd; \ - uint32_t *m =3D vm; \ - uint16_t mask =3D mve_element_mask(env); \ - uint16_t eci_mask =3D mve_eci_mask(env); \ - unsigned e; \ - uint32_t addr; \ - int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ - MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ - for (e =3D 0; e < 16 / 4; e++, mask >>=3D 4, eci_mask >>=3D 4) { = \ - if (!(eci_mask & 1)) { \ - continue; \ - } \ - addr =3D ADDRFN(base, m[H4(e & ~1)]); \ - addr +=3D 4 * (e & 1); \ - d[H4(e)] =3D (mask & 1) ? cpu_ldl_mmu(env, addr, oi, GETPC()) = : 0;\ - if (WB && (e & 1)) { \ - m[H4(e & ~1)] =3D addr - 4; \ - } \ - } \ - mve_advance_vpt(env); \ +#define DO_VLDR64_SG(OP, ADDRFN, WB) = \ + void HELPER(mve_##OP)(CPUARMState *env, void *vd, void *vm, = \ + uint32_t base) = \ + { = \ + uint32_t *d =3D vd; = \ + uint32_t *m =3D vm; = \ + uint16_t mask =3D mve_element_mask(env); = \ + uint16_t eci_mask =3D mve_eci_mask(env); = \ + unsigned e; = \ + uint32_t addr; = \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); = \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); = \ + for (e =3D 0; e < 16 / 4; e++, mask >>=3D 4, eci_mask >>=3D 4) { = \ + if (!(eci_mask & 1)) { = \ + continue; = \ + } = \ + addr =3D ADDRFN(base, m[H4(e & ~1)]); = \ + addr +=3D 4 * (e & 1); = \ + d[H4(e)] =3D (mask & 1) ? cpu_ldl_mmu(env, addr, oi, GETPC()) = : 0; \ + if (WB && (e & 1)) { = \ + m[H4(e & ~1)] =3D addr - 4; = \ + } = \ + } = \ + mve_advance_vpt(env); = \ } =20 -#define DO_VSTR64_SG(OP, ADDRFN, WB) \ - void HELPER(mve_##OP)(CPUARMState *env, void *vd, void *vm, \ - uint32_t base) \ - { \ - uint32_t *d =3D vd; \ - uint32_t *m =3D vm; \ - uint16_t mask =3D mve_element_mask(env); \ - uint16_t eci_mask =3D mve_eci_mask(env); \ - unsigned e; \ - uint32_t addr; \ - int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); \ - MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); \ - for (e =3D 0; e < 16 / 4; e++, mask >>=3D 4, eci_mask >>=3D 4) { = \ - if (!(eci_mask & 1)) { \ - continue; \ - } \ - addr =3D ADDRFN(base, m[H4(e & ~1)]); \ - addr +=3D 4 * (e & 1); \ - if (mask & 1) { \ - cpu_stl_mmu(env, addr, d[H4(e)], oi, GETPC()); \ - } \ - if (WB && (e & 1)) { \ - m[H4(e & ~1)] =3D addr - 4; \ - } \ - } \ - mve_advance_vpt(env); \ +#define DO_VSTR64_SG(OP, ADDRFN, WB) = \ + void HELPER(mve_##OP)(CPUARMState *env, void *vd, void *vm, = \ + uint32_t base) = \ + { = \ + uint32_t *d =3D vd; = \ + uint32_t *m =3D vm; = \ + uint16_t mask =3D mve_element_mask(env); = \ + uint16_t eci_mask =3D mve_eci_mask(env); = \ + unsigned e; = \ + uint32_t addr; = \ + int mmu_idx =3D arm_to_core_mmu_idx(arm_mmu_idx(env)); = \ + MemOpIdx oi =3D make_memop_idx(MO_TEUL | MO_ALIGN, mmu_idx); = \ + for (e =3D 0; e < 16 / 4; e++, mask >>=3D 4, eci_mask >>=3D 4) { = \ + if (!(eci_mask & 1)) { = \ + continue; = \ + } = \ + addr =3D ADDRFN(base, m[H4(e & ~1)]); = \ + addr +=3D 4 * (e & 1); = \ + if (mask & 1) { = \ + cpu_stl_mmu(env, addr, d[H4(e)], oi, GETPC()); = \ + } = \ + if (WB && (e & 1)) { = \ + m[H4(e & ~1)] =3D addr - 4; = \ + } = \ + } = \ + mve_advance_vpt(env); = \ } =20 #define ADDR_ADD(BASE, OFFSET) ((BASE) + (OFFSET)) --=20 2.48.1