From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607457485; cv=none; d=zohomail.com; s=zohoarc; b=IiLubhbKkRi0pKr0YoAiCdleEG00mUEfNyWBLGokx7f9tKWBGFCPTf71nPASHZ94rq3OKGnLC+cp/fBDK8HQLw0vy3TTbMIeaDRnqaOODswrVDhjlxENhBiZuE0XvPqY9XmXoqskYMyT2Gz7NeE05wBY7vN9pPmLKfMwkzDqeqQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607457485; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8XIA/+X37AvNazV2jisISm3ZiIWDvYr5zvekcj4Rlqc=; b=WBmAwPHFiXiS1q4knNtNnqGdcNVf/uRX4S/1nazNZ8REh7Xda4hDsrpb5Oyf59wWMeR0rSansvTh3HVdy4O3V/o0Wk53iLGrK//Ir6oYzDzRUdE94q6mtpB7vqX/+zasntMNGB+7Re3p0qEkEOIUPDSLOUbsSJdoJkwWJwOgjR8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607457485471657.6288910836147; Tue, 8 Dec 2020 11:58:05 -0800 (PST) Received: from localhost ([::1]:43244 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhPv-00055x-5G for importer@patchew.org; Tue, 08 Dec 2020 13:08:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56670) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhIl-0007ST-T0 for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:28 -0500 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:36429) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIh-0006Jx-Ty for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:27 -0500 Received: by mail-ot1-x342.google.com with SMTP id y24so16643069otk.3 for ; Tue, 08 Dec 2020 10:01:23 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8XIA/+X37AvNazV2jisISm3ZiIWDvYr5zvekcj4Rlqc=; b=MEyfdmHyO5ZYzYpavTxAJgaKdPXfX0uLswewoIjU7PV5ffg2kHSDQLvWX5AOIngtdV EGltvz0+Lu9jW/ILjtYAHvKcHJA0BDOawSzUiJOdt7b/Wbe0xJioYpy6/t1tcfY1kMEB ipWbwChENe/xXJJF8IZvm4Vj9lDYkl0UpIjTpq/QZP+TqTWhLWZQe9BfThCufKt79PdW KRQuMGERdePhh0hQ0elY44i1gmzNrAtHgOYywR+AQuCaaFyQJlxd6A2S1mKNP7ROI/tO RKkUSZtv+KLj/5YDcONEaNI6qD29desxcsThKTQDzqvJgSNG/jJlVW8R9v2vQiZQ+yOE KIXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8XIA/+X37AvNazV2jisISm3ZiIWDvYr5zvekcj4Rlqc=; b=b38LzA+6WPMzLL3Jt52mfJUjENThSic6EdDAhDzUBr0g2v7jKaR3MaT0BmJu4SWVK1 B4ilp0Bjc7i5qt9JCXvfZfQp7PAj/ZfDAYeRSCwGRW0an9bm726LJiZTD6JrTlsWUXTO znHr3LM+3CFL1fNr9D0JDyNTqOSiG3zFP1bDWokHz7yXLB7dYNcbMhYDnihxB5Cn/A3/ Wq5snlPGH2LmX+Nv6L7AenbiFKW05EYeQ+PwgZ55ehIIKpHB1bDSpUHnwgFM556sBNNq SR1OZPvFWFc1XviWAeqWaZWmeHhFy6YI5+a2qHn7xVR4frI/CP3Q348Bs6dGBam6bO0K aU3g== X-Gm-Message-State: AOAM531IyClpUpLgDkR7zYjVK48HLnEe0usnnovT/rdcjEALtLQnuUTV 1397WqL9Tre2TQ62Sh6tzrXyexmqOWHw+bhW X-Google-Smtp-Source: ABdhPJxX1ox/32eXbkRrjoawpmn8B1b9jsKe0IMJ1o29h47h8yo2MyPyqIlrKh4cyMJTeZDmHqRoCw== X-Received: by 2002:a05:6830:10c3:: with SMTP id z3mr12056061oto.143.1607450482176; Tue, 08 Dec 2020 10:01:22 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 01/24] target/arm: Fix decode of align in VLDST_single Date: Tue, 8 Dec 2020 12:00:55 -0600 Message-Id: <20201208180118.157911-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::342; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x342.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The encoding of size =3D 2 and size =3D 3 had the incorrect decode for align, overlapping the stride field. This error was hidden by what should have been unnecessary masking in translate. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/neon-ls.decode | 4 ++-- target/arm/translate-neon.c.inc | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/arm/neon-ls.decode b/target/arm/neon-ls.decode index c17f5019e3..0a2a0e15db 100644 --- a/target/arm/neon-ls.decode +++ b/target/arm/neon-ls.decode @@ -46,7 +46,7 @@ VLD_all_lanes 1111 0100 1 . 1 0 rn:4 .... 11 n:2 size:2 = t:1 a:1 rm:4 \ =20 VLDST_single 1111 0100 1 . l:1 0 rn:4 .... 00 n:2 reg_idx:3 align:1 rm:4= \ vd=3D%vd_dp size=3D0 stride=3D1 -VLDST_single 1111 0100 1 . l:1 0 rn:4 .... 01 n:2 reg_idx:2 align:2 rm:4= \ +VLDST_single 1111 0100 1 . l:1 0 rn:4 .... 01 n:2 reg_idx:2 . align:1 rm= :4 \ vd=3D%vd_dp size=3D1 stride=3D%imm1_5_p1 -VLDST_single 1111 0100 1 . l:1 0 rn:4 .... 10 n:2 reg_idx:1 align:3 rm:4= \ +VLDST_single 1111 0100 1 . l:1 0 rn:4 .... 10 n:2 reg_idx:1 . align:2 rm= :4 \ vd=3D%vd_dp size=3D2 stride=3D%imm1_6_p1 diff --git a/target/arm/translate-neon.c.inc b/target/arm/translate-neon.c.= inc index f6c68e30ab..0e5828744b 100644 --- a/target/arm/translate-neon.c.inc +++ b/target/arm/translate-neon.c.inc @@ -606,7 +606,7 @@ static bool trans_VLDST_single(DisasContext *s, arg_VLD= ST_single *a) switch (nregs) { case 1: if (((a->align & (1 << a->size)) !=3D 0) || - (a->size =3D=3D 2 && ((a->align & 3) =3D=3D 1 || (a->align & 3= ) =3D=3D 2))) { + (a->size =3D=3D 2 && (a->align =3D=3D 1 || a->align =3D=3D 2))= ) { return false; } break; @@ -621,7 +621,7 @@ static bool trans_VLDST_single(DisasContext *s, arg_VLD= ST_single *a) } break; case 4: - if ((a->size =3D=3D 2) && ((a->align & 3) =3D=3D 3)) { + if (a->size =3D=3D 2 && a->align =3D=3D 3) { return false; } break; --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607450667; cv=none; d=zohomail.com; s=zohoarc; b=DzKKtsmNp9/RxjlBG7dy3SKbc9JskNxgfU7R/Qjk8f1OeC724g6U3fsnr4iOzfBKNW3NoIX9kbxhl4wpv8xx1kgqB5ujd3Nr5kz0dLTZoYbJ19RkcPBJEEw/E886KDydYZjIm9jofocCxED9vuFJnoJr1fUUTHikd+GM2w8VBlQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607450667; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MdDu37ss80QY7DCisG0r9GlSmZqYdahSNVKXZieNIjo=; b=ayJmVrB9hHB8k8UEtGFV08nswNvsoXk2l4VW6UFKOUdpOcoMN1yQ/0REy/wryyYsor/Lg4CdIiIXWzBs+L87oRCAfNfWnxMrP9iNN6fc3yL7DMUiXLHnaIV2tfpbHAUIQzugSL6PIOcZ4u0Qy9rM/anJheU8QncoCBN5Pkv85+Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607450667615468.7738323669778; Tue, 8 Dec 2020 10:04:27 -0800 (PST) Received: from localhost ([::1]:34732 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhLe-0001O8-CF for importer@patchew.org; Tue, 08 Dec 2020 13:04:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56672) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhIm-0007SU-0n for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:28 -0500 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]:39956) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIj-0006KO-QD for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:27 -0500 Received: by mail-oi1-x243.google.com with SMTP id p126so20306143oif.7 for ; Tue, 08 Dec 2020 10:01:25 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MdDu37ss80QY7DCisG0r9GlSmZqYdahSNVKXZieNIjo=; b=OD716RSDs5Hl3rpUhzwnedKSPfBYZNEY2IcFOSPsmq1Z2wF7tjda0u3+rJ5E8YCwCn ObxrPgr5PQgavHRyK6gO3IerfWyXOkAHRPZ87ubktDhjnMy0NycgiCYElt+C75SbCvAt nUYrry7jQHVtN+GZif0uPe7qGE4dLPrKDd4aitX1emYtugDsqS3j7A2RnFYt+aHomuqG w9ChWVeJkGKUwUxS7RA3I7w2zGBGIkYtBsTrfytjJjPPys40r1VyYm79gSEPb1J26taU GWKWazWOH76GdoDVYoNb4BgX0USHLVHjxnpZX2rFwPv1ovEdyh1z4W4HUF1HDo5hoHF4 XUlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MdDu37ss80QY7DCisG0r9GlSmZqYdahSNVKXZieNIjo=; b=MFFU3EX8LouaOjrQpzdzvZPUXCkd5kUrZGM8lpuNzUS8tJ1SMluIkzmyCunWkZx+Ph +tWGqM/67TeJVQBnalIFggho7qqPZ+coFt7/jaKA4vOWq5ELXcT66km4UMaLPyqkUmgF 0Uw1d0aJkKI4zUq31USbY2xoe1U9tfJE61QS0ZdUdN+x2+Nby0SVkMkbp41APgS5BKD6 uRp1usPDr8pxnFko59+ghV4TxEjddJENBfOivXOG7uheTlbtZdZ/D5uQuuTtIj4EKmAx VX2ikYY04k4WNdZ04EPb3dDPCd306XdaVadslRsTIvjvMWbtRKrJ3D3H5uLYYuRU4lB+ Sz8w== X-Gm-Message-State: AOAM533bltMGRf8bcyI6tmMu8zT50nZejk0k7RyQjCU3S0XsK4su3JCt uk6SsyPQmREottJz1m95ALPChReAoD7sinlZ X-Google-Smtp-Source: ABdhPJz7ZxZKxQnggJNAm5UUmBIEwhHX98hhaKGkAd2S56YGaNSm663csn9MksLGKS/iSkTS3KXXXw== X-Received: by 2002:aca:f289:: with SMTP id q131mr3589855oih.159.1607450483692; Tue, 08 Dec 2020 10:01:23 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 02/24] target/arm: Add ALIGN_MEM to TBFLAG_ANY Date: Tue, 8 Dec 2020 12:00:56 -0600 Message-Id: <20201208180118.157911-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::243; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x243.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Use this to signal when memory access alignment is required. This value comes from the CCR register for M-profile, and from the SCTLR register for A-profile. Signed-off-by: Richard Henderson --- target/arm/cpu.h | 20 +++++++++++--------- target/arm/translate.h | 2 ++ target/arm/helper.c | 19 +++++++++++++++++-- target/arm/translate.c | 7 +++---- 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index e5514c8286..e074055a94 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -3220,15 +3220,15 @@ typedef ARMCPU ArchCPU; * We put flags which are shared between 32 and 64 bit mode at the top * of the word, and flags which apply to only one mode at the bottom. * - * 31 20 18 14 9 0 - * +--------------+-----+-----+----------+--------------+ - * | | | TBFLAG_A32 | | - * | | +-----+----------+ TBFLAG_AM32 | - * | TBFLAG_ANY | |TBFLAG_M32| | - * | +-----------+----------+--------------| - * | | TBFLAG_A64 | - * +--------------+-------------------------------------+ - * 31 20 0 + * 31 19 18 14 9 0 + * +--------------+---+-----+----------+--------------+ + * | | | TBFLAG_A32 | | + * | | +-----+----------+ TBFLAG_AM32 | + * | TBFLAG_ANY | |TBFLAG_M32| | + * | +---------+----------+--------------| + * | | TBFLAG_A64 | + * +--------------+-----------------------------------+ + * 31 19 0 * * Unless otherwise noted, these bits are cached in env->hflags. */ @@ -3241,6 +3241,8 @@ FIELD(TBFLAG_ANY, MMUIDX, 24, 4) FIELD(TBFLAG_ANY, FPEXC_EL, 22, 2) /* For A-profile only, target EL for debug exceptions. */ FIELD(TBFLAG_ANY, DEBUG_TARGET_EL, 20, 2) +/* Memory operations require alignment: SCTLR_ELx.A or CCR.UNALIGN_TRP */ +FIELD(TBFLAG_ANY, ALIGN_MEM, 19, 1) =20 /* * Bit usage when in AArch32 state, both A- and M-profile. diff --git a/target/arm/translate.h b/target/arm/translate.h index 423b0e08df..fb66b4d8a0 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -87,6 +87,8 @@ typedef struct DisasContext { bool bt; /* True if any CP15 access is trapped by HSTR_EL2 */ bool hstr_active; + /* True if memory operations require alignment */ + bool align_mem; /* * >=3D 0, a copy of PSTATE.BTYPE, which will be 0 without v8.5-BTI. * < 0, set by the current instruction. diff --git a/target/arm/helper.c b/target/arm/helper.c index 38cd35c049..a5b237ac92 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -12775,6 +12775,12 @@ static uint32_t rebuild_hflags_m32(CPUARMState *en= v, int fp_el, ARMMMUIdx mmu_idx) { uint32_t flags =3D 0; + uint32_t ccr =3D env->v7m.ccr[env->v7m.secure]; + + /* Without HaveMainExt, CCR.UNALIGN_TRP is RES1. */ + if (ccr & R_V7M_CCR_UNALIGN_TRP_MASK) { + flags =3D FIELD_DP32(flags, TBFLAG_ANY, ALIGN_MEM, 1); + } =20 if (arm_v7m_is_handler_mode(env)) { flags =3D FIELD_DP32(flags, TBFLAG_M32, HANDLER, 1); @@ -12787,7 +12793,7 @@ static uint32_t rebuild_hflags_m32(CPUARMState *env= , int fp_el, */ if (arm_feature(env, ARM_FEATURE_V8) && !((mmu_idx & ARM_MMU_IDX_M_NEGPRI) && - (env->v7m.ccr[env->v7m.secure] & R_V7M_CCR_STKOFHFNMIGN_MASK))) { + (ccr & R_V7M_CCR_STKOFHFNMIGN_MASK))) { flags =3D FIELD_DP32(flags, TBFLAG_M32, STACKCHECK, 1); } =20 @@ -12807,12 +12813,17 @@ static uint32_t rebuild_hflags_a32(CPUARMState *e= nv, int fp_el, ARMMMUIdx mmu_idx) { uint32_t flags =3D rebuild_hflags_aprofile(env); + int el =3D arm_current_el(env); + + if (arm_sctlr(env, el) & SCTLR_A) { + flags =3D FIELD_DP32(flags, TBFLAG_ANY, ALIGN_MEM, 1); + } =20 if (arm_el_is_aa64(env, 1)) { flags =3D FIELD_DP32(flags, TBFLAG_A32, VFPEN, 1); } =20 - if (arm_current_el(env) < 2 && env->cp15.hstr_el2 && + if (el < 2 && env->cp15.hstr_el2 && (arm_hcr_el2_eff(env) & (HCR_E2H | HCR_TGE)) !=3D (HCR_E2H | HCR_T= GE)) { flags =3D FIELD_DP32(flags, TBFLAG_A32, HSTR_ACTIVE, 1); } @@ -12857,6 +12868,10 @@ static uint32_t rebuild_hflags_a64(CPUARMState *en= v, int el, int fp_el, =20 sctlr =3D regime_sctlr(env, stage1); =20 + if (sctlr & SCTLR_A) { + flags =3D FIELD_DP32(flags, TBFLAG_ANY, ALIGN_MEM, 1); + } + if (arm_cpu_data_is_big_endian_a64(el, sctlr)) { flags =3D FIELD_DP32(flags, TBFLAG_ANY, BE_DATA, 1); } diff --git a/target/arm/translate.c b/target/arm/translate.c index 6d04ca3a8a..4bd93e66c8 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -900,8 +900,7 @@ static void gen_aa32_ld_i32(DisasContext *s, TCGv_i32 v= al, TCGv_i32 a32, { TCGv addr; =20 - if (arm_dc_feature(s, ARM_FEATURE_M) && - !arm_dc_feature(s, ARM_FEATURE_M_MAIN)) { + if (s->align_mem) { opc |=3D MO_ALIGN; } =20 @@ -915,8 +914,7 @@ static void gen_aa32_st_i32(DisasContext *s, TCGv_i32 v= al, TCGv_i32 a32, { TCGv addr; =20 - if (arm_dc_feature(s, ARM_FEATURE_M) && - !arm_dc_feature(s, ARM_FEATURE_M_MAIN)) { + if (s->align_mem) { opc |=3D MO_ALIGN; } =20 @@ -8779,6 +8777,7 @@ static void arm_tr_init_disas_context(DisasContextBas= e *dcbase, CPUState *cs) dc->user =3D (dc->current_el =3D=3D 0); #endif dc->fp_excp_el =3D FIELD_EX32(tb_flags, TBFLAG_ANY, FPEXC_EL); + dc->align_mem =3D FIELD_EX32(tb_flags, TBFLAG_ANY, ALIGN_MEM); =20 if (arm_feature(env, ARM_FEATURE_M)) { dc->vfp_enabled =3D 1; --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607450684; cv=none; d=zohomail.com; s=zohoarc; b=ck7LFtuNiLUlX9G7GxCfzDg8CNXx0dgaBQ7nVSVlv39Fbb/tnLrXM3X8TQ4mxj/aZ0TrjO06kAiCsLZ1cGlwNhbcff2LrYB6LdBimEu8NWWl9XINLg2IvsIrDMyvTHvgs4/y0JmBVeBjfXB9s4HqLQeuTNOgTlfDH5aAZU48fQw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607450684; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=OIeG0HtO8d8Mwa7eQJ7M8KIfL8fiUCeADCRKHk2MWcU=; b=WMoul8GW5ciTeEOvoDmHIyre7PRwXNOm+QElrqgjarr1cVj3pd+YyWHrQMbhHe2vO3HUUpYLUpXv4r6rHsGp2EguQ07oBvifJiOk/VZnZG6XNR1AJkClcA8KIASAbQI8rm7kiUOM4cgGBZOXS48Ind6BElW6zrpUgJo0qbnTGI0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607450684722892.6377233177319; Tue, 8 Dec 2020 10:04:44 -0800 (PST) Received: from localhost ([::1]:34952 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhLv-0001UR-E2 for importer@patchew.org; Tue, 08 Dec 2020 13:04:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56722) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhIp-0007TN-HT for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:32 -0500 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:34252) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIl-0006Kc-KS for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:30 -0500 Received: by mail-oi1-x244.google.com with SMTP id s75so17233182oih.1 for ; Tue, 08 Dec 2020 10:01:26 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OIeG0HtO8d8Mwa7eQJ7M8KIfL8fiUCeADCRKHk2MWcU=; b=w3NeguE+vuY5Q+0D6kskU9qmGWIEJ5nJHMi9JgVPWnMaKdvmr2FEDVOZUB0jn28pQH ab9WdCzsMmgqCY7EIxUJ1+GHZJZr7osqVMqI7gV67xKPvLO4QZBGI/EWyzmjcpz4CRUl 0oN4NllSXVMgWFZ73dKJ+cD8F0foeiOc543DIkYe5MlyH2NzK4+HbgrjlLjUiElV+LdX 9y5Dz41zdFu+ZiVhKitYnFF7iDmLSZ9il1itENpbuNNq+jGq/JtLW7uw+dkDxVDJOSBG cpQEAE+K6My/MH5CwbMoUpSE3c2DZ9W4Jptt0DQil5X+Fx8FoaINiPoyD9MIcyP2+u0P gUlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OIeG0HtO8d8Mwa7eQJ7M8KIfL8fiUCeADCRKHk2MWcU=; b=De3iPlVpXRf0XeHG8brYSA/ZnvbDo0JmKZTjywZTCZIpvFENNOFgDshMZWPMOoUcES FKZuynZ4y/6M5PaRuGxyU3i9Zt9ai1hkdZpYSwOCNS2Nhf9Knour1UY0qOlx7PSjxOXO IoJ5Q+hovJGxnWpzeRKzvGChjERRpMR6ulwh/VT9GcFl3GVIwhOeJ5X9FtoebCZ2g4Up lslxArB6l/i3P06iNn4GcaEML9uSNIeRlFZIH5ajaHgwe6QjFV66hX9TBPN/ldmyV5VY 2v65c7Tj2VTqWekuzjuk+53c6/cnNQCkUWpN08QaPnkAsnrIcanpoB9AX2TE8ORzMqK/ 0ZLA== X-Gm-Message-State: AOAM532GGAmAXnaYbf7DO9WrCUHaCeAHB0O8Sv1xIacEdwXBeXKNmQLC S5I/Dr6ndJMs5CiVkp9zTZ+tE3vyK8yKNH+I X-Google-Smtp-Source: ABdhPJwuAth5KvGmHgvaMlIHh/KEbYVb1abxt8uzZTNbxM1hx2jQHh0AQEmiEgHgzj2IQx69xrkrPg== X-Received: by 2002:aca:d4cf:: with SMTP id l198mr3636045oig.170.1607450485203; Tue, 08 Dec 2020 10:01:25 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 03/24] target/arm: Adjust gen_aa32_{ld, st}_i32 for align+endianness Date: Tue, 8 Dec 2020 12:00:57 -0600 Message-Id: <20201208180118.157911-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::244; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x244.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Create a finalize_memop function that computes alignment and endianness and returns the final MemOp for the operation. Split out gen_aa32_{ld,st}_internal_i32 which bypasses any special handling of endianness or alignment. Adjust gen_aa32_{ld,st}_i32 so that s->be_data is not added by the callers. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate.h | 24 ++++++++ target/arm/translate.c | 100 +++++++++++++++++--------------- target/arm/translate-neon.c.inc | 9 +-- 3 files changed, 79 insertions(+), 54 deletions(-) diff --git a/target/arm/translate.h b/target/arm/translate.h index fb66b4d8a0..22a4b15d45 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -448,4 +448,28 @@ static inline TCGv_ptr fpstatus_ptr(ARMFPStatusFlavour= flavour) return statusptr; } =20 +/** + * finalize_memop: + * @s: DisasContext + * @opc: size+sign+align of the memory operation + * + * Build the complete MemOp for a memory operation, including alignment + * and endianness. + * + * If (op & MO_AMASK) then the operation already contains the required + * alignment, e.g. for AccType_ATOMIC. Otherwise, this an optionally + * unaligned operation, e.g. for AccType_NORMAL. + * + * In the later case, there are configuration bits that require alignment, + * and this is applied here. Note that there is no way to indicate that + * no alignment should ever be enforced; this must be handled manually. + */ +static inline MemOp finalize_memop(DisasContext *s, MemOp opc) +{ + if (s->align_mem && !(opc & MO_AMASK)) { + opc |=3D MO_ALIGN; + } + return opc | s->be_data; +} + #endif /* TARGET_ARM_TRANSLATE_H */ diff --git a/target/arm/translate.c b/target/arm/translate.c index 4bd93e66c8..7b3ebf44ae 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -875,7 +875,8 @@ static inline void store_reg_from_load(DisasContext *s,= int reg, TCGv_i32 var) #define IS_USER_ONLY 0 #endif =20 -/* Abstractions of "generate code to do a guest load/store for +/* + * Abstractions of "generate code to do a guest load/store for * AArch32", where a vaddr is always 32 bits (and is zero * extended if we're a 64 bit core) and data is also * 32 bits unless specifically doing a 64 bit access. @@ -883,7 +884,7 @@ static inline void store_reg_from_load(DisasContext *s,= int reg, TCGv_i32 var) * that the address argument is TCGv_i32 rather than TCGv. */ =20 -static inline TCGv gen_aa32_addr(DisasContext *s, TCGv_i32 a32, MemOp op) +static TCGv gen_aa32_addr(DisasContext *s, TCGv_i32 a32, MemOp op) { TCGv addr =3D tcg_temp_new(); tcg_gen_extu_i32_tl(addr, a32); @@ -895,47 +896,51 @@ static inline TCGv gen_aa32_addr(DisasContext *s, TCG= v_i32 a32, MemOp op) return addr; } =20 +/* + * Internal routines are used for NEON cases where the endianness + * and/or alignment has already been taken into account and manipulated. + */ +static void gen_aa32_ld_internal_i32(DisasContext *s, TCGv_i32 val, + TCGv_i32 a32, int index, MemOp opc) +{ + TCGv addr =3D gen_aa32_addr(s, a32, opc); + tcg_gen_qemu_ld_i32(val, addr, index, opc); + tcg_temp_free(addr); +} + +static void gen_aa32_st_internal_i32(DisasContext *s, TCGv_i32 val, + TCGv_i32 a32, int index, MemOp opc) +{ + TCGv addr =3D gen_aa32_addr(s, a32, opc); + tcg_gen_qemu_st_i32(val, addr, index, opc); + tcg_temp_free(addr); +} + static void gen_aa32_ld_i32(DisasContext *s, TCGv_i32 val, TCGv_i32 a32, int index, MemOp opc) { - TCGv addr; - - if (s->align_mem) { - opc |=3D MO_ALIGN; - } - - addr =3D gen_aa32_addr(s, a32, opc); - tcg_gen_qemu_ld_i32(val, addr, index, opc); - tcg_temp_free(addr); + gen_aa32_ld_internal_i32(s, val, a32, index, finalize_memop(s, opc)); } =20 static void gen_aa32_st_i32(DisasContext *s, TCGv_i32 val, TCGv_i32 a32, int index, MemOp opc) { - TCGv addr; + gen_aa32_st_internal_i32(s, val, a32, index, finalize_memop(s, opc)); +} =20 - if (s->align_mem) { - opc |=3D MO_ALIGN; +#define DO_GEN_LD(SUFF, OPC) \ + static inline void gen_aa32_ld##SUFF(DisasContext *s, TCGv_i32 val, \ + TCGv_i32 a32, int index) \ + { \ + gen_aa32_ld_i32(s, val, a32, index, OPC); \ } =20 - addr =3D gen_aa32_addr(s, a32, opc); - tcg_gen_qemu_st_i32(val, addr, index, opc); - tcg_temp_free(addr); -} - -#define DO_GEN_LD(SUFF, OPC) \ -static inline void gen_aa32_ld##SUFF(DisasContext *s, TCGv_i32 val, \ - TCGv_i32 a32, int index) \ -{ \ - gen_aa32_ld_i32(s, val, a32, index, OPC | s->be_data); \ -} - -#define DO_GEN_ST(SUFF, OPC) \ -static inline void gen_aa32_st##SUFF(DisasContext *s, TCGv_i32 val, \ - TCGv_i32 a32, int index) \ -{ \ - gen_aa32_st_i32(s, val, a32, index, OPC | s->be_data); \ -} +#define DO_GEN_ST(SUFF, OPC) \ + static inline void gen_aa32_st##SUFF(DisasContext *s, TCGv_i32 val, \ + TCGv_i32 a32, int index) \ + { \ + gen_aa32_st_i32(s, val, a32, index, OPC); \ + } =20 static inline void gen_aa32_frob64(DisasContext *s, TCGv_i64 val) { @@ -6412,7 +6417,7 @@ static bool op_load_rr(DisasContext *s, arg_ldst_rr *= a, addr =3D op_addr_rr_pre(s, a); =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, mem_idx, mop | s->be_data); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, mop); disas_set_da_iss(s, mop, issinfo); =20 /* @@ -6433,7 +6438,7 @@ static bool op_store_rr(DisasContext *s, arg_ldst_rr = *a, addr =3D op_addr_rr_pre(s, a); =20 tmp =3D load_reg(s, a->rt); - gen_aa32_st_i32(s, tmp, addr, mem_idx, mop | s->be_data); + gen_aa32_st_i32(s, tmp, addr, mem_idx, mop); disas_set_da_iss(s, mop, issinfo); tcg_temp_free_i32(tmp); =20 @@ -6456,13 +6461,13 @@ static bool trans_LDRD_rr(DisasContext *s, arg_ldst= _rr *a) addr =3D op_addr_rr_pre(s, a); =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL | s->be_data); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL); store_reg(s, a->rt, tmp); =20 tcg_gen_addi_i32(addr, addr, 4); =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL | s->be_data); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL); store_reg(s, a->rt + 1, tmp); =20 /* LDRD w/ base writeback is undefined if the registers overlap. */ @@ -6485,13 +6490,13 @@ static bool trans_STRD_rr(DisasContext *s, arg_ldst= _rr *a) addr =3D op_addr_rr_pre(s, a); =20 tmp =3D load_reg(s, a->rt); - gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL | s->be_data); + gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL); tcg_temp_free_i32(tmp); =20 tcg_gen_addi_i32(addr, addr, 4); =20 tmp =3D load_reg(s, a->rt + 1); - gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL | s->be_data); + gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL); tcg_temp_free_i32(tmp); =20 op_addr_rr_post(s, a, addr, -4); @@ -6556,7 +6561,7 @@ static bool op_load_ri(DisasContext *s, arg_ldst_ri *= a, addr =3D op_addr_ri_pre(s, a); =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, mem_idx, mop | s->be_data); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, mop); disas_set_da_iss(s, mop, issinfo); =20 /* @@ -6577,7 +6582,7 @@ static bool op_store_ri(DisasContext *s, arg_ldst_ri = *a, addr =3D op_addr_ri_pre(s, a); =20 tmp =3D load_reg(s, a->rt); - gen_aa32_st_i32(s, tmp, addr, mem_idx, mop | s->be_data); + gen_aa32_st_i32(s, tmp, addr, mem_idx, mop); disas_set_da_iss(s, mop, issinfo); tcg_temp_free_i32(tmp); =20 @@ -6593,13 +6598,13 @@ static bool op_ldrd_ri(DisasContext *s, arg_ldst_ri= *a, int rt2) addr =3D op_addr_ri_pre(s, a); =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL | s->be_data); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL); store_reg(s, a->rt, tmp); =20 tcg_gen_addi_i32(addr, addr, 4); =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL | s->be_data); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL); store_reg(s, rt2, tmp); =20 /* LDRD w/ base writeback is undefined if the registers overlap. */ @@ -6632,13 +6637,13 @@ static bool op_strd_ri(DisasContext *s, arg_ldst_ri= *a, int rt2) addr =3D op_addr_ri_pre(s, a); =20 tmp =3D load_reg(s, a->rt); - gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL | s->be_data); + gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL); tcg_temp_free_i32(tmp); =20 tcg_gen_addi_i32(addr, addr, 4); =20 tmp =3D load_reg(s, rt2); - gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL | s->be_data); + gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL); tcg_temp_free_i32(tmp); =20 op_addr_ri_post(s, a, addr, -4); @@ -6864,7 +6869,7 @@ static bool op_stl(DisasContext *s, arg_STL *a, MemOp= mop) addr =3D load_reg(s, a->rn); tmp =3D load_reg(s, a->rt); tcg_gen_mb(TCG_MO_ALL | TCG_BAR_STRL); - gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), mop | s->be_data); + gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), mop); disas_set_da_iss(s, mop, a->rt | ISSIsAcqRel | ISSIsWrite); =20 tcg_temp_free_i32(tmp); @@ -7020,7 +7025,7 @@ static bool op_lda(DisasContext *s, arg_LDA *a, MemOp= mop) =20 addr =3D load_reg(s, a->rn); tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), mop | s->be_data); + gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), mop); disas_set_da_iss(s, mop, a->rt | ISSIsAcqRel); tcg_temp_free_i32(addr); =20 @@ -8166,8 +8171,7 @@ static bool op_tbranch(DisasContext *s, arg_tbranch *= a, bool half) addr =3D load_reg(s, a->rn); tcg_gen_add_i32(addr, addr, tmp); =20 - gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), - half ? MO_UW | s->be_data : MO_UB); + gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), half ? MO_UW : MO_UB); tcg_temp_free_i32(addr); =20 tcg_gen_add_i32(tmp, tmp, tmp); diff --git a/target/arm/translate-neon.c.inc b/target/arm/translate-neon.c.= inc index 0e5828744b..c82aa1412e 100644 --- a/target/arm/translate-neon.c.inc +++ b/target/arm/translate-neon.c.inc @@ -559,8 +559,7 @@ static bool trans_VLD_all_lanes(DisasContext *s, arg_VL= D_all_lanes *a) addr =3D tcg_temp_new_i32(); load_reg_var(s, addr, a->rn); for (reg =3D 0; reg < nregs; reg++) { - gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), - s->be_data | size); + gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), size); if ((vd & 1) && vec_size =3D=3D 16) { /* * We cannot write 16 bytes at once because the @@ -650,13 +649,11 @@ static bool trans_VLDST_single(DisasContext *s, arg_V= LDST_single *a) */ for (reg =3D 0; reg < nregs; reg++) { if (a->l) { - gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), - s->be_data | a->size); + gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), a->size); neon_store_element(vd, a->reg_idx, a->size, tmp); } else { /* Store */ neon_load_element(tmp, vd, a->reg_idx, a->size); - gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), - s->be_data | a->size); + gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), a->size); } vd +=3D a->stride; tcg_gen_addi_i32(addr, addr, 1 << a->size); --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607452218; cv=none; d=zohomail.com; s=zohoarc; b=Png6Y5dvkkqYnkZU2draAdSMwhWyMcBfOcDxbzcfjILOVIaTA9ESWNLcH6q9wzp+Z1uCY3eXkunzhoDv4/eNyRjwqVbQ5ClGX9exK7EjscKwPidbLOILFGbZ7ClOW3KoBvk2T79vjKX32004Y34V0xG/TEt97MjPMKttLFLyeCE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607452218; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BbcpleEZKyhprJSQbmMTNOGh64QQmS1NjHgoZYuCqSw=; b=Yp1N26fMB2WRJd72ICPBV9fUxuptGdYdTj8cwLneNFl/izoNGuV5mtTSz8VNEfuS/9H8+brOkrEXtDpyamh89aIO9BjVXWaxL/ok0v9eYDXDGX/o6BPruykV+6Z9Pj/YOY7kTm1dPB2/zlxfVdIftRQvpNQ/fv55xHJPw61sr3M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607452218606526.9176113625388; Tue, 8 Dec 2020 10:30:18 -0800 (PST) Received: from localhost ([::1]:53004 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhTE-0000of-AZ for importer@patchew.org; Tue, 08 Dec 2020 13:12:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56760) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhIr-0007U5-9F for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:33 -0500 Received: from mail-oi1-x241.google.com ([2607:f8b0:4864:20::241]:35494) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIm-0006L2-U7 for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:32 -0500 Received: by mail-oi1-x241.google.com with SMTP id s2so10841377oij.2 for ; Tue, 08 Dec 2020 10:01:28 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BbcpleEZKyhprJSQbmMTNOGh64QQmS1NjHgoZYuCqSw=; b=NRrPdEVVkQlX9xp4tMaisqz23qIimHNK4rKLvD9M03ojTP6jJY6YiqRkgTWCVZIi3W SZc922+gvlV+VWKTDA3Ny6jHvjahSWq9icDP2T8YrzcjW1IzLLkh7AYIr+7GJoxhLP3y HVZgO+XeVI2Bj2ZpSkyWahoXm+jlbg96OlVYlL9WDLF0XF59RRa9qRP6EmcK+nlmqkX1 fIrBKQ+m9SWcVuUJmg5b3javhQtDCelCDAr/oWjXgzOchYFMI9FckEzBV/zJfe7LD8Z5 vj//7PQp0YCHtxwJJLwali2tD1uFAjsHNLzPt4tH5okvM2Br0xXbsTuv18rrXDVz1bvd 3xcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BbcpleEZKyhprJSQbmMTNOGh64QQmS1NjHgoZYuCqSw=; b=SQ7IYXzMbMCzv37EfijjBd1eRjCaVrQPS5dloBx1hnQ6auw7z8wiMV1HhpyYEwH+ck rjCCzXRHS6NSr3v2c8kvETfZeKe7RhctSSaQ1j90ulR34gTD4AaLORrNzuGu1gmUVArA fNMf+Vy0mLKwQmB4Yyzy+LJ7Nxdigm3AOJihfqkLqfwwTyfhUsEl1mCauVOzwyZyEqMR terNdEkuH9nGNLb40wYq8vFxpwYueGsZChelbrg04cjfUieA4Em6KOz2j+vFdt9Pm9ld tnmU+/PnRjBVv3xVmwC2Rc955G5ps7ibQQkqjraAKKvMQkDSYsWAYpL/C1tnKVR8ARSx gCPQ== X-Gm-Message-State: AOAM530VZiOcioHD5YmSZry4djs9xZE8BIBMJngxQ+tJV3owsdFt3QWw zOiclKlUUlGdIrEwRw6zuzujLEDr3O3gFjAQ X-Google-Smtp-Source: ABdhPJxpFGQ4t1STahqz7EK0xBQhQkezpv8HT8DRqGyB5JZgcOnlUEzU9ukTffa2oEvIPEVCj3tvPg== X-Received: by 2002:a05:6808:a1a:: with SMTP id n26mr3636377oij.94.1607450486901; Tue, 08 Dec 2020 10:01:26 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 04/24] target/arm: Merge gen_aa32_frob64 into gen_aa32_ld_i64 Date: Tue, 8 Dec 2020 12:00:58 -0600 Message-Id: <20201208180118.157911-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::241; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x241.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This is the only caller. Adjust some commentary to talk about SCTLR_B instead of the vanishing function. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate.c | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index 7b3ebf44ae..f35d376341 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -942,20 +942,17 @@ static void gen_aa32_st_i32(DisasContext *s, TCGv_i32= val, TCGv_i32 a32, gen_aa32_st_i32(s, val, a32, index, OPC); \ } =20 -static inline void gen_aa32_frob64(DisasContext *s, TCGv_i64 val) -{ - /* Not needed for user-mode BE32, where we use MO_BE instead. */ - if (!IS_USER_ONLY && s->sctlr_b) { - tcg_gen_rotri_i64(val, val, 32); - } -} - static void gen_aa32_ld_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32, int index, MemOp opc) { TCGv addr =3D gen_aa32_addr(s, a32, opc); tcg_gen_qemu_ld_i64(val, addr, index, opc); - gen_aa32_frob64(s, val); + + /* Not needed for user-mode BE32, where we use MO_BE instead. */ + if (!IS_USER_ONLY && s->sctlr_b) { + tcg_gen_rotri_i64(val, val, 32); + } + tcg_temp_free(addr); } =20 @@ -4921,16 +4918,13 @@ static void gen_load_exclusive(DisasContext *s, int= rt, int rt2, TCGv_i32 tmp2 =3D tcg_temp_new_i32(); TCGv_i64 t64 =3D tcg_temp_new_i64(); =20 - /* For AArch32, architecturally the 32-bit word at the lowest + /* + * For AArch32, architecturally the 32-bit word at the lowest * address is always Rt and the one at addr+4 is Rt2, even if * the CPU is big-endian. That means we don't want to do a - * gen_aa32_ld_i64(), which invokes gen_aa32_frob64() as if - * for an architecturally 64-bit access, but instead do a - * 64-bit access using MO_BE if appropriate and then split - * the two halves. - * This only makes a difference for BE32 user-mode, where - * frob64() must not flip the two halves of the 64-bit data - * but this code must treat BE32 user-mode like BE32 system. + * gen_aa32_ld_i64(), which checks SCTLR_B as if for an + * architecturally 64-bit access, but instead do a 64-bit access + * using MO_BE if appropriate and then split the two halves. */ TCGv taddr =3D gen_aa32_addr(s, addr, opc); =20 @@ -4990,14 +4984,15 @@ static void gen_store_exclusive(DisasContext *s, in= t rd, int rt, int rt2, TCGv_i64 n64 =3D tcg_temp_new_i64(); =20 t2 =3D load_reg(s, rt2); - /* For AArch32, architecturally the 32-bit word at the lowest + + /* + * For AArch32, architecturally the 32-bit word at the lowest * address is always Rt and the one at addr+4 is Rt2, even if * the CPU is big-endian. Since we're going to treat this as a * single 64-bit BE store, we need to put the two halves in the * opposite order for BE to LE, so that they end up in the right - * places. - * We don't want gen_aa32_frob64() because that does the wrong - * thing for BE32 usermode. + * places. We don't want gen_aa32_st_i64, because that checks + * SCTLR_B as if for an architectural 64-bit access. */ if (s->be_data =3D=3D MO_BE) { tcg_gen_concat_i32_i64(n64, t2, t1); --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607453479; cv=none; d=zohomail.com; s=zohoarc; b=NMSrCk1TX23qUfPAyu+fUlfE9roggvXU8RNkz4sAcem+R6zOxCrmeQ2jGCMed93TE+6acKFAd2PwLt4TyVtNJQHGJkzNCKeSrylpSx7tpuQ1wGOiJmoBy1ib54LktQxm+RdHSaP8fLjCYKIrMgZrSHMtGpPAfBK1e+HpBmz4mW0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607453479; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ST8z3iXy65XpIqpPPS3C3oOPVYpkO0PbHbv3ibdmUyU=; b=WLzFYAwERLATHJsJfW2+J3tF4fXuR0zGJekyGS7Cp3GcrjxxtM8QBIYCT3Au6bjf+0auuTvJtV9eX6AyJWeRaLRP7ilNEhRuAb6cMIVHEE/kh7U/nF0KZ13ZsqEajvH1X3Y96GtEupe4TnCXoGankXns8+CDW1CoUFTu/EuiQPs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607453479823687.6528573343911; Tue, 8 Dec 2020 10:51:19 -0800 (PST) Received: from localhost ([::1]:33426 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhWk-0004T0-19 for importer@patchew.org; Tue, 08 Dec 2020 13:15:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56800) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhIt-0007VA-8d for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:36 -0500 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:42311) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIp-0006LH-7b for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:34 -0500 Received: by mail-ot1-x342.google.com with SMTP id 11so16601120oty.9 for ; Tue, 08 Dec 2020 10:01:29 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ST8z3iXy65XpIqpPPS3C3oOPVYpkO0PbHbv3ibdmUyU=; b=zaamZuy2WtYxIW4kqK4LXrhb+L/YXJImcZ/LNoUVfWeGghEp65FmFu/kq75QaoE3+e 7LtKzOpiTbAaVwU8p5gd2vypSR1ahrxEBnbwWwPMwRd8Q15LYeR31BmwmdWJeppmxkyY CERSrukQjLwVxAjyljTKLZAwkSf7eCxlhUj3fQDYO7sJchGXa6xg8Zd0QUx65rDqE4Vv kvpxUez+e2oCjsUHRxlstUxwceqaOP0R3fvdyxhkP3Cz5o+MTUYfbegSeKv+S4ciGdKp vNV2kp719gV7iQxA7uQVnWPNzrcHixhkgSEFcFon3R3kaNmGZdnFumvpLJf94qzsWNT0 hgkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ST8z3iXy65XpIqpPPS3C3oOPVYpkO0PbHbv3ibdmUyU=; b=KMBV0POifCHdIQnOZQwY12DNXrMs4vPY+IYghG95u9A2CPtNDKcEwWhDRckIoCnllS RM4iDQ9i3TxdujGZ3OBHaPgZVk/m7IbH0lv0eTMmm2yMzzf8gpt+c5Q09rDaLu9aXuIn h98RFrgCDw3ZJncOToYmB4kg4Zp8Y04OVlDTx078OGD02VxyP5Ishq/lBmVv88Q9HcUm tOK7hmn7O5kmScipk5xzsIKXEJGvr/n5bbD8Mb4YM+x8GP1+0Gggkf3/3M28WEqZAw0p aattUwSEotxuAaAhM/qGNzCJCrxMzeDeJgGNZVD/nY4nKMW+EQfl9OU9PfpZRBT92RFO Z1bA== X-Gm-Message-State: AOAM530QPr4hYDlPJAJFrbmHYR42DUWuZ80B8zsk8IQPE1VmHvFHb0M+ 5wXlaycRxzYm4c/W2BMsI5bMLoR88Q8QW2tm X-Google-Smtp-Source: ABdhPJz104giqjm4gZbTNe6S5jQ0zug1gCr06qdvy5+4JXHZULXxeATlaDb2n+oPR/UBdr1LEV4rww== X-Received: by 2002:a05:6830:1610:: with SMTP id g16mr8736901otr.345.1607450488559; Tue, 08 Dec 2020 10:01:28 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 05/24] target/arm: Fix SCTLR_B test for TCGv_i64 load/store Date: Tue, 8 Dec 2020 12:00:59 -0600 Message-Id: <20201208180118.157911-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::342; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x342.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Just because operating on a TCGv_i64 temporary does not mean that we're performing a 64-bit operation. Restrict the frobbing to actual 64-bit operations. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index f35d376341..ef9192cf6b 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -949,7 +949,7 @@ static void gen_aa32_ld_i64(DisasContext *s, TCGv_i64 v= al, TCGv_i32 a32, tcg_gen_qemu_ld_i64(val, addr, index, opc); =20 /* Not needed for user-mode BE32, where we use MO_BE instead. */ - if (!IS_USER_ONLY && s->sctlr_b) { + if (!IS_USER_ONLY && s->sctlr_b && (opc & MO_SIZE) =3D=3D MO_64) { tcg_gen_rotri_i64(val, val, 32); } =20 @@ -968,7 +968,7 @@ static void gen_aa32_st_i64(DisasContext *s, TCGv_i64 v= al, TCGv_i32 a32, TCGv addr =3D gen_aa32_addr(s, a32, opc); =20 /* Not needed for user-mode BE32, where we use MO_BE instead. */ - if (!IS_USER_ONLY && s->sctlr_b) { + if (!IS_USER_ONLY && s->sctlr_b && (opc & MO_SIZE) =3D=3D MO_64) { TCGv_i64 tmp =3D tcg_temp_new_i64(); tcg_gen_rotri_i64(tmp, val, 32); tcg_gen_qemu_st_i64(tmp, addr, index, opc); --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607453658; cv=none; d=zohomail.com; s=zohoarc; b=HJ+UO0vYe6HncNdLf4NtLGU8i/lwpJWJ1lIRZBEiUAah705zBY85I44qwHf/U6RHota9wKKAKqxVZYXUcJT057RwgBlcsXitcoS3I+3NTJ3RUVofHbiLfRRySVTFsxj8EgMbE3nRnBNXX1udCUlttFBtl+C09tKhitKQNgfcO8I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607453658; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wXxlIHEHV0RVDyckAtbEiZsJCIXIPBDl5ZKGc44kZZY=; b=OVeflvdUCJx63W0whGdbrF0idLiOkvT++oPSY+HmEb1ta2CzrzUJqzNPS4tYh0e0fG7dBqAt+uHop+W2BZJbbo4Gir2RB9QbLVjJnv/E1DKcJb7lrHkgCf+njDZxcAC6kV+xNjfbNkPwrIAUjEqi3wyEZ7eKSmZLebbQOQxg+Pc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607453658685598.3123276969352; Tue, 8 Dec 2020 10:54:18 -0800 (PST) Received: from localhost ([::1]:45838 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhQp-0006CH-Fm for importer@patchew.org; Tue, 08 Dec 2020 13:09:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56830) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhIv-0007Xg-MP for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:37 -0500 Received: from mail-oi1-x22b.google.com ([2607:f8b0:4864:20::22b]:34569) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIq-0006LZ-Uj for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:37 -0500 Received: by mail-oi1-x22b.google.com with SMTP id s75so17233527oih.1 for ; Tue, 08 Dec 2020 10:01:31 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wXxlIHEHV0RVDyckAtbEiZsJCIXIPBDl5ZKGc44kZZY=; b=HLjHtvA0lWB8x7nePXTlbZplRmtil20swZHbwsJjXiZBDzVJjtx7j4FF/9VViwRd/Q Pvk6c4hbY+ozKQ2FcNkg1H8s+/9LOTB+d+RXw1QUdfR2VeB0Ltx02UWxbJ2EjSfFQERE uG609SXQg36wYiRUFE4q1Skt4AKKTrB1JLtIscMGOFurQ6m1O1r60pOXRU3snqqUcVNc IqmX74DA2niLK6cJn4t71DT22W/DM1KDHZqoCl8jGCtIngGEMQ3vppiWl6KDcAzC4GVe voaaDauT6ntGVRyFbQTwnd6uLZ3sWUP7Wy+Ggk3Lra8my/MYT8vhuuUqrs/TKI763r7B SrCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wXxlIHEHV0RVDyckAtbEiZsJCIXIPBDl5ZKGc44kZZY=; b=GAV3HDCTdNlLNc2adAOT4pV3+SlXayKaFZ9SQ0YGq1bS8axgV3K2lEv6eiJkJ2C7bP wNhRyh+OgHkxTcCtaQ3de2S8O5ZwbYK8DaVyR0YWLaCetYYXCu37B0Z5DvNWgxvlrN+P xJFf9REH5/X3LDO22V7cdJZCbrYHUnxqJ41s2829xM5aqV0Cf1J1g1P0uWckucWnVtTZ XEH/mksUpTzuYr+mZCnO5tXXrOAcebTH2ScscZa7oXghnPIbizTObXgewGjo5uDQG5Cq 9AqS29Cn74SLJVduPjNjckwMMi8/qXYsbz1EBWLj+xzIuwSWJ8jj7JBhiAMQGjMbgqCs DiVg== X-Gm-Message-State: AOAM533SmM07r+RdqWQEae+AYH/bauzNjQLvzjOwRIO9kO3OWd6Qqzle 8I72/6gQyV4eGanyfuMFGa1WUcHcxZYlGQNj X-Google-Smtp-Source: ABdhPJwqzvjWftluD5JRXoYAVJAa0MvQFtrbeYeBMdKEVnSjtRcXf1DVeAJZ0qQfvugyUOy3UWpcNQ== X-Received: by 2002:aca:bb0b:: with SMTP id l11mr3630747oif.16.1607450489984; Tue, 08 Dec 2020 10:01:29 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 06/24] target/arm: Adjust gen_aa32_{ld, st}_i64 for align+endianness Date: Tue, 8 Dec 2020 12:01:00 -0600 Message-Id: <20201208180118.157911-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::22b; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x22b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Adjust the interface to match what has been done to the TCGv_i32 load/store functions. This is less obvious, because at present the only user of these functions, trans_VLDST_multiple, also wants to manipulate the endianness to speed up loading multiple bytes. Thus we retain an "internal" interface which is identical to the current gen_aa32_{ld,st}_i64 interface. The "new" interface will gain users as we remove the legacy interfaces, gen_aa32_ld64 and gen_aa32_st64. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate.c | 78 +++++++++++++++++++-------------- target/arm/translate-neon.c.inc | 6 ++- 2 files changed, 49 insertions(+), 35 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index ef9192cf6b..f6007c23a6 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -916,6 +916,37 @@ static void gen_aa32_st_internal_i32(DisasContext *s, = TCGv_i32 val, tcg_temp_free(addr); } =20 +static void gen_aa32_ld_internal_i64(DisasContext *s, TCGv_i64 val, + TCGv_i32 a32, int index, MemOp opc) +{ + TCGv addr =3D gen_aa32_addr(s, a32, opc); + + tcg_gen_qemu_ld_i64(val, addr, index, opc); + + /* Not needed for user-mode BE32, where we use MO_BE instead. */ + if (!IS_USER_ONLY && s->sctlr_b && (opc & MO_SIZE) =3D=3D MO_64) { + tcg_gen_rotri_i64(val, val, 32); + } + tcg_temp_free(addr); +} + +static void gen_aa32_st_internal_i64(DisasContext *s, TCGv_i64 val, + TCGv_i32 a32, int index, MemOp opc) +{ + TCGv addr =3D gen_aa32_addr(s, a32, opc); + + /* Not needed for user-mode BE32, where we use MO_BE instead. */ + if (!IS_USER_ONLY && s->sctlr_b && (opc & MO_SIZE) =3D=3D MO_64) { + TCGv_i64 tmp =3D tcg_temp_new_i64(); + tcg_gen_rotri_i64(tmp, val, 32); + tcg_gen_qemu_st_i64(tmp, addr, index, opc); + tcg_temp_free_i64(tmp); + } else { + tcg_gen_qemu_st_i64(val, addr, index, opc); + } + tcg_temp_free(addr); +} + static void gen_aa32_ld_i32(DisasContext *s, TCGv_i32 val, TCGv_i32 a32, int index, MemOp opc) { @@ -928,6 +959,18 @@ static void gen_aa32_st_i32(DisasContext *s, TCGv_i32 = val, TCGv_i32 a32, gen_aa32_st_internal_i32(s, val, a32, index, finalize_memop(s, opc)); } =20 +static void gen_aa32_ld_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32, + int index, MemOp opc) +{ + gen_aa32_ld_internal_i64(s, val, a32, index, finalize_memop(s, opc)); +} + +static void gen_aa32_st_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32, + int index, MemOp opc) +{ + gen_aa32_st_internal_i64(s, val, a32, index, finalize_memop(s, opc)); +} + #define DO_GEN_LD(SUFF, OPC) \ static inline void gen_aa32_ld##SUFF(DisasContext *s, TCGv_i32 val, \ TCGv_i32 a32, int index) \ @@ -942,47 +985,16 @@ static void gen_aa32_st_i32(DisasContext *s, TCGv_i32= val, TCGv_i32 a32, gen_aa32_st_i32(s, val, a32, index, OPC); \ } =20 -static void gen_aa32_ld_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32, - int index, MemOp opc) -{ - TCGv addr =3D gen_aa32_addr(s, a32, opc); - tcg_gen_qemu_ld_i64(val, addr, index, opc); - - /* Not needed for user-mode BE32, where we use MO_BE instead. */ - if (!IS_USER_ONLY && s->sctlr_b && (opc & MO_SIZE) =3D=3D MO_64) { - tcg_gen_rotri_i64(val, val, 32); - } - - tcg_temp_free(addr); -} - static inline void gen_aa32_ld64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32, int index) { - gen_aa32_ld_i64(s, val, a32, index, MO_Q | s->be_data); -} - -static void gen_aa32_st_i64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32, - int index, MemOp opc) -{ - TCGv addr =3D gen_aa32_addr(s, a32, opc); - - /* Not needed for user-mode BE32, where we use MO_BE instead. */ - if (!IS_USER_ONLY && s->sctlr_b && (opc & MO_SIZE) =3D=3D MO_64) { - TCGv_i64 tmp =3D tcg_temp_new_i64(); - tcg_gen_rotri_i64(tmp, val, 32); - tcg_gen_qemu_st_i64(tmp, addr, index, opc); - tcg_temp_free_i64(tmp); - } else { - tcg_gen_qemu_st_i64(val, addr, index, opc); - } - tcg_temp_free(addr); + gen_aa32_ld_i64(s, val, a32, index, MO_Q); } =20 static inline void gen_aa32_st64(DisasContext *s, TCGv_i64 val, TCGv_i32 a32, int index) { - gen_aa32_st_i64(s, val, a32, index, MO_Q | s->be_data); + gen_aa32_st_i64(s, val, a32, index, MO_Q); } =20 DO_GEN_LD(8u, MO_UB) diff --git a/target/arm/translate-neon.c.inc b/target/arm/translate-neon.c.= inc index c82aa1412e..18d9042130 100644 --- a/target/arm/translate-neon.c.inc +++ b/target/arm/translate-neon.c.inc @@ -494,11 +494,13 @@ static bool trans_VLDST_multiple(DisasContext *s, arg= _VLDST_multiple *a) int tt =3D a->vd + reg + spacing * xs; =20 if (a->l) { - gen_aa32_ld_i64(s, tmp64, addr, mmu_idx, endian | size= ); + gen_aa32_ld_internal_i64(s, tmp64, addr, mmu_idx, + endian | size); neon_store_element64(tt, n, size, tmp64); } else { neon_load_element64(tmp64, tt, n, size); - gen_aa32_st_i64(s, tmp64, addr, mmu_idx, endian | size= ); + gen_aa32_st_internal_i64(s, tmp64, addr, mmu_idx, + endian | size); } tcg_gen_add_i32(addr, addr, tmp); } --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607450712; cv=none; d=zohomail.com; s=zohoarc; b=FEZ0k5tb5oCjMJ1Xd79JfBvGBNrOFdfp97+J/8oV41VnjXxrIsnoJkHdJAA9G7NckRHHRFr5nA38zPVZjPLcKu/T6LXSCKTUMevt+EHn+/PJwb6AFO6JNz5FzNqBL0ryODCh0kVrf+l7bX4vBfDIXNYW8JPw3X9A+2tQN277cxA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607450712; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vv1BLXikhvXOC7shYMx2SJNp4mEHjfewjMXNyOaAtsI=; b=RT0EV/RzansbLKiQ0TMnM5nHPyqfAF2opL2sBi234HA0sPldsQYnQ2bJBOYs3DXYyx9eNaGo8PHG6c8V9wWsW3H3gkZErzHYMXmyfj4aXbOyux0Pc+bQg5qHecKci6NrWXFTgD3rg6jB/ezpS4uYNVIA1oOOr2Vapd+BEiNjBIg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607450712165327.78190594885336; Tue, 8 Dec 2020 10:05:12 -0800 (PST) Received: from localhost ([::1]:35884 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhMI-0001uZ-Ce for importer@patchew.org; Tue, 08 Dec 2020 13:05:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56864) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhIw-0007aZ-Pp for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:38 -0500 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]:38726) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIr-0006Lq-KP for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:38 -0500 Received: by mail-oi1-x243.google.com with SMTP id o25so20325614oie.5 for ; Tue, 08 Dec 2020 10:01:33 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vv1BLXikhvXOC7shYMx2SJNp4mEHjfewjMXNyOaAtsI=; b=LQtZumpoD4FiWXM+q8BthmPzMJA1ijwPSx8M4BsEQprSIptE+9PXw3NGxCRhk/8Qjw FRgNaLgOhz3zie1nUQTYxqT7mXZrBubfc8SqyIQorCEglxo+KIiHP7sA4L/v4rFt4sIO OSAP82Z4AJj5da3x6tM1Yzd+Im0Ha7hTNCxs/NOpxfl6jNj9//RGNFO7n0MjcSUkVKpA dpVUsbSOmtM9UZkvag3TxkuVFRUDM72+hg8vL1WvdNR9EGBVnhSAHsvbfy6Zs00onhiY Psx+gNjOLUTX/qwZeGco2JMgf9yksqyxWrbmqWI2vFFsTZZZthqLT3x+FKGPHJQ/KhEu MXlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vv1BLXikhvXOC7shYMx2SJNp4mEHjfewjMXNyOaAtsI=; b=rcPfjk0eYEmoUCDroI+NXkA9glqAzOyYqJHJBm4l8cJQADpIZyx+TNE2hXX+xJRsWW E7btMNwsiwismZpD0VVd9qVgQojrUg5/eEIH3g8BHfbzRWovhv0nvb0UckKuhavRbzU5 vGeEv6/xPM54JevWM8X48gKVoVyR+/SLL/9yAk5Fjxr9BCeVLAO6QA6O7YlisQEWcYNX vHzvRXKRgPr2onwd9M2MTOPmi0ZPrSCaJt2bQxYotbxu0EGiavrONBbl+Yb211KuDImi KwkRtD3W71YDmFber1FFFHFnI7hQBHY9o6fvrJt9FDZAIvIP9rZfVfHQ87+4T3HdlIcU gjJw== X-Gm-Message-State: AOAM533IQDD09MPdvhYWtphuT3F1mDtltE2P/8Z8nzTn6YSEplJOLqQp An9xfSXS50JKVeQpOnDbsJM/Bp9lXfnBk3Iq X-Google-Smtp-Source: ABdhPJwFwOzh0i2EuoHA6nsUBsmoTfQcyPpIDQKFm0EGOggP98kLYwfMXzNRN2xhmh1jENp5opDYcQ== X-Received: by 2002:aca:f1c1:: with SMTP id p184mr3745605oih.54.1607450492148; Tue, 08 Dec 2020 10:01:32 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 07/24] target/arm: Enforce word alignment for LDRD/STRD Date: Tue, 8 Dec 2020 12:01:01 -0600 Message-Id: <20201208180118.157911-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::243; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x243.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Buglink: https://bugs.launchpad.net/qemu/+bug/1905356 Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index f6007c23a6..9ca06cb373 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -6468,13 +6468,13 @@ static bool trans_LDRD_rr(DisasContext *s, arg_ldst= _rr *a) addr =3D op_addr_rr_pre(s, a); =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL | MO_ALIGN); store_reg(s, a->rt, tmp); =20 tcg_gen_addi_i32(addr, addr, 4); =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL | MO_ALIGN); store_reg(s, a->rt + 1, tmp); =20 /* LDRD w/ base writeback is undefined if the registers overlap. */ @@ -6497,13 +6497,13 @@ static bool trans_STRD_rr(DisasContext *s, arg_ldst= _rr *a) addr =3D op_addr_rr_pre(s, a); =20 tmp =3D load_reg(s, a->rt); - gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL); + gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL | MO_ALIGN); tcg_temp_free_i32(tmp); =20 tcg_gen_addi_i32(addr, addr, 4); =20 tmp =3D load_reg(s, a->rt + 1); - gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL); + gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL | MO_ALIGN); tcg_temp_free_i32(tmp); =20 op_addr_rr_post(s, a, addr, -4); @@ -6605,13 +6605,13 @@ static bool op_ldrd_ri(DisasContext *s, arg_ldst_ri= *a, int rt2) addr =3D op_addr_ri_pre(s, a); =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL | MO_ALIGN); store_reg(s, a->rt, tmp); =20 tcg_gen_addi_i32(addr, addr, 4); =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL | MO_ALIGN); store_reg(s, rt2, tmp); =20 /* LDRD w/ base writeback is undefined if the registers overlap. */ @@ -6644,13 +6644,13 @@ static bool op_strd_ri(DisasContext *s, arg_ldst_ri= *a, int rt2) addr =3D op_addr_ri_pre(s, a); =20 tmp =3D load_reg(s, a->rt); - gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL); + gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL | MO_ALIGN); tcg_temp_free_i32(tmp); =20 tcg_gen_addi_i32(addr, addr, 4); =20 tmp =3D load_reg(s, rt2); - gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL); + gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL | MO_ALIGN); tcg_temp_free_i32(tmp); =20 op_addr_ri_post(s, a, addr, -4); --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607453624; cv=none; d=zohomail.com; s=zohoarc; b=SMja2Y6MGVaPuQuHp2xKP6L+2g54HF1ur2s4MLJYHRD/n6quy966DngO5OsFpbGnPAWpLzCnsBuyu7CUknlAmbW1zvd6R7WIhMDenH72/HlrpcfccSCrM9GyZKb23kCTktzKRJFNIOkxegGkfTDcUzBn0y9vKBjIY1qYm636pkI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607453624; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WUfNI6lSQTHtTIy/R3dj+quaDZ+MrAap7g+O0IjmyH8=; b=QH6RWZptlDjngXwlteeHdXRN9FD8yRGHGhx9JqlqeAJ08ax0iBlntNK83GeNVJYwmWzAaRV8lxyFaYMbAIX6ZtcIXAF3jNBP/PnZuT7KktESCx0uhT0TxWgkuU3zEhQXO9YEqomJjn3zNNWfrrIcjXcGegN3+e0m0NI3oLmWg/A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 160745362465222.99478200492456; Tue, 8 Dec 2020 10:53:44 -0800 (PST) Received: from localhost ([::1]:54612 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhU0-0001WD-2d for importer@patchew.org; Tue, 08 Dec 2020 13:13:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56912) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhIx-0007cZ-U4 for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:39 -0500 Received: from mail-oi1-x242.google.com ([2607:f8b0:4864:20::242]:37230) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIs-0006M8-Um for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:39 -0500 Received: by mail-oi1-x242.google.com with SMTP id l207so17414004oib.4 for ; Tue, 08 Dec 2020 10:01:34 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WUfNI6lSQTHtTIy/R3dj+quaDZ+MrAap7g+O0IjmyH8=; b=XP8TVatDueQeXKCgPRZA8Y4OOTa2lT8MrzBY2MU3P44NYgOWuUOcebfowwALjA6vKl FmAzAf2BeRwnTqKVP178WlnDXg2l0GaNR70B+ac4I8jIHS0IXswM1wloVKU5FvioAGAq eSakmxEvtyMUVzvDPYkp+maQOBctI83QeVh2c2z2IdG6lZjPNqKNwA0T+oyXFJSHpO3Y SAmi9d+8TADd4Odt8moOjqlaPYa8C1BuV0Q7+J6cZlBhO8IxIQ6DakIgucfql69Bhjoh VryqozlkKjfDH5POZogG71JqiQgT282ZUg6ghEmCDk/aSGYpIxDHKZBI3p0uVLw4JWuh 48Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WUfNI6lSQTHtTIy/R3dj+quaDZ+MrAap7g+O0IjmyH8=; b=VGf3o1NBZWsFFyISM4XZwgJkvA+hAbT0ZOPGHbamq0pipkzO4ia6FHWSUE2QuyAUpn 9UFkXWxtw35ELsHE/QdMnmcEs75dhb269Tzq1v/hvzsnCT3IKaYT9s73jbMocUPoPBUP Q0N583y1T/tRdZeX3pmWNSyWB4KJIDlHR9fSSB2/q+72L/G5Tcd0Yu2YrnxRNBym6QQS mtDlZUM9hQuGjQgUuU3Pxtyb0z+tTDHgojXITmA+ptI0vL5+PvG626/KzW/e5HvHmzWd yNtOeXaBe3N5nIQzkLm0gICEFxhVWtprvkNucEGDAz95VowRr/XHQuHJB6+e3ASqXMBR OXXg== X-Gm-Message-State: AOAM531roQCXrNCy16t6YrITVYBCjMwLF1ne8yAKi6okaZB8/eaiSPcd b6YrXp9BSl6r30Xs5398iAMX69jL/AvzoNkz X-Google-Smtp-Source: ABdhPJxiDf5mI80rEtfScP+BGF/CCFhPZkQUy1oz5f9rtiwDalci+5YtGubL9cghpYAPUh2HrvqgWA== X-Received: by 2002:aca:3ad6:: with SMTP id h205mr3700619oia.119.1607450493653; Tue, 08 Dec 2020 10:01:33 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 08/24] target/arm: Enforce alignment for LDA/LDAH/STL/STLH Date: Tue, 8 Dec 2020 12:01:02 -0600 Message-Id: <20201208180118.157911-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::242; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x242.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index 9ca06cb373..1bfa209884 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -6876,7 +6876,7 @@ static bool op_stl(DisasContext *s, arg_STL *a, MemOp= mop) addr =3D load_reg(s, a->rn); tmp =3D load_reg(s, a->rt); tcg_gen_mb(TCG_MO_ALL | TCG_BAR_STRL); - gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), mop); + gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), mop | MO_ALIGN); disas_set_da_iss(s, mop, a->rt | ISSIsAcqRel | ISSIsWrite); =20 tcg_temp_free_i32(tmp); @@ -7032,7 +7032,7 @@ static bool op_lda(DisasContext *s, arg_LDA *a, MemOp= mop) =20 addr =3D load_reg(s, a->rn); tmp =3D tcg_temp_new_i32(); - gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), mop); + gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), mop | MO_ALIGN); disas_set_da_iss(s, mop, a->rt | ISSIsAcqRel); tcg_temp_free_i32(addr); =20 --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607453696; cv=none; d=zohomail.com; s=zohoarc; b=mCGZbl8dkowshKLb0NrkSW3yrwo6U9Kmb9mJTsEo3+iEBmUF79AEaTGlLepvrpZXRHkd78vqiMmiqFk8xqBil6oyUmQSVSBebzd7zlekrgJwo2iFcxQQVNMQtaQvHsHjTscZoIBxD1K52+x8Rwi8ku7jU2WHF29rEW1M5e1B/uQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607453696; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=eOhAHCW00JObSCY/rSv+9NXC22vyXoa7uj8AYdXLfgI=; b=WzkupXkLSYp9sIuOwa/HaPzLqvUzkueQljBpHn3G9KZ3CT3VLsubDa6rOHZAiK+pY5+M2uKHW7PJTukvZgGKhbxUM02zsHepptqvKp030rNCVBeBIINi5BRfhHSahQS+HkmLxvy6xxhEq/1KVVjz9tG7Y++OQPNutc1QHyd9C+4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607453696874117.27934326151092; Tue, 8 Dec 2020 10:54:56 -0800 (PST) Received: from localhost ([::1]:43650 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhQ6-0005G2-5I for importer@patchew.org; Tue, 08 Dec 2020 13:09:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56936) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhIy-0007de-OU for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:41 -0500 Received: from mail-oi1-x242.google.com ([2607:f8b0:4864:20::242]:42697) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIv-0006MY-UT for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:40 -0500 Received: by mail-oi1-x242.google.com with SMTP id l200so20280908oig.9 for ; Tue, 08 Dec 2020 10:01:37 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eOhAHCW00JObSCY/rSv+9NXC22vyXoa7uj8AYdXLfgI=; b=qM3Bi5GKQf9muZHpSYP/1xwnGfbBGA4DjdVfG5jIVRKTojhuiNR+v36xp+EdI+wkFG 47iowSrWTFk6HVrdNKZjWex21cM7pe2by9ZLMDZ4ahtvirPGqEFbkcoLmsWQBvxAVbLW FXu1kl0//TX+ZeBOjgnrjW/jKUFghvF+XM76fY9BE9UwWZeBKal5QVwTocX0nFtMh743 Ltxa7m4uUaTTk/ba4RxmezAFuvC8mCAj82OZfBP06VT2BAX3WUzgBYqVFJCjXaVRwuLS Nl4685FsseB1Pi+k7CLLGB9ggtHkq/MtfS2fEb+kldyPmqmVW4SLZvqDDXM/fHVZtt/0 xbPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eOhAHCW00JObSCY/rSv+9NXC22vyXoa7uj8AYdXLfgI=; b=Rfpi8oCRDFMJNxQO1vFpXTtOo6Q9Y9VzEUPLy5+PXwc0/Mo9JOj2NJoLx+4u03TWAc nVpurf5+RDQdno7/o1kuAnFVNtDHa7PN4HF3w4f/8aeFZRllaiHsuRobwir3VA1EfI7i yn5dI9/peljlnjZtPkmivGAlaeAHyGWwijgERsc+DweI/tF3csm6caQtMu8kVyNn51fQ 3nBO8nzn64KXdGGQ7DWvgPcLvl2YOr6E3kaC68IhmWjqrY3ezd4y4D0n0+d5cwVI3Vex utP5o+sW6g5tlVu0n/59O2WX416K0tpX3U9nnK9Xi0f7TBOzMZZrut3gxBbFvRrSseUY C9hw== X-Gm-Message-State: AOAM530UeacyUkWRl24zNYMn+pAnqWRf3qZj9LzXSSyA/42DMRNf6vRc teWf46qLit+hWCP35GM8JlSPOJP3D8ABmS80 X-Google-Smtp-Source: ABdhPJxJo+BH3fYZpwxIxH5NPBB5Xg91qSe9Ixd6uMeaWXt4M2WIcDVSSF4FaJAZZvHjVUgJWRAoNQ== X-Received: by 2002:aca:4989:: with SMTP id w131mr3621219oia.83.1607450496633; Tue, 08 Dec 2020 10:01:36 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 09/24] target/arm: Enforce alignment for LDM/STM Date: Tue, 8 Dec 2020 12:01:03 -0600 Message-Id: <20201208180118.157911-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::242; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x242.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index 1bfa209884..6c76bc521d 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -7824,7 +7824,7 @@ static bool op_stm(DisasContext *s, arg_ldst_block *a= , int min_n) } else { tmp =3D load_reg(s, i); } - gen_aa32_st32(s, tmp, addr, mem_idx); + gen_aa32_st_i32(s, tmp, addr, mem_idx, MO_UL | MO_ALIGN); tcg_temp_free_i32(tmp); =20 /* No need to add after the last transfer. */ @@ -7899,7 +7899,7 @@ static bool do_ldm(DisasContext *s, arg_ldst_block *a= , int min_n) } =20 tmp =3D tcg_temp_new_i32(); - gen_aa32_ld32u(s, tmp, addr, mem_idx); + gen_aa32_ld_i32(s, tmp, addr, mem_idx, MO_UL | MO_ALIGN); if (user) { tmp2 =3D tcg_const_i32(i); gen_helper_set_user_reg(cpu_env, tmp2, tmp); --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607452204; cv=none; d=zohomail.com; s=zohoarc; b=RA+CIRltUSj0OyA2QgefL9jWXtHv4j0QAQzWfKRJK/Tdgz7Ja+zslkQHJwfZQb6pac6PlyOtOM4g9SeFuLCZ4ZuG39i/PpcYy7iMgPoZW0wuYXdovNJk021dFUJTq71fcjpbkjrjJx9xPgbNwWo91TnnAjZ1KwaGO76icA37S4Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607452204; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8zjW4PjT9eWoc73I7yU10h5NKHpQH6qDD0fJsI6BkIQ=; b=hyHKFRhsruDOmXyRnAttTrEmi4MPZTQMWXf4xh0A2Y4zRctE235KjdVPbBiW6XDdGr7G6JaI6wcHN98WisL/+VkZ6QXq0JA41Z/o5cRFOTxJrbYkV32ahNTZCV1spZL+8HpsM6m7vro3fHj75gGIYW8mb+EHlu0M5N8Ztp0cRzc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607452204689608.3956906181932; Tue, 8 Dec 2020 10:30:04 -0800 (PST) Received: from localhost ([::1]:44634 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhQR-0005hV-97 for importer@patchew.org; Tue, 08 Dec 2020 13:09:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56942) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhIz-0007dk-3d for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:41 -0500 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:33212) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIx-0006Mw-6k for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:40 -0500 Received: by mail-ot1-x342.google.com with SMTP id b18so16651451ots.0 for ; Tue, 08 Dec 2020 10:01:38 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8zjW4PjT9eWoc73I7yU10h5NKHpQH6qDD0fJsI6BkIQ=; b=tc1DJmUX2oSWl1IMBWjyQPLBSJXxAwOxVLwAZ2kJzZxHaQ7/syeEAEYNFdQrYT0VmV JKlJ+kD480Se3eZhlDavlXUIxI/ojcQkAdGAc4whWv5X+m1Ha733mKKNS0LPLkuBFjN9 xFOFtrSdatP1Kz5cdJKoNgTk6/yZBlEEKcTqyKXKupdG0uSa8rZoqGlBUe43EpP1D58A 4Yn7qEgplxLiP5ksPUDOX+H44Jo9COsOclZdhkwTNCBmDCQf1bsKuxXfyU51Qa0ajcKk OCtec1sgTt9dD7c1r8IkPm8esl4ZezC7EHQna76EzQ6FKv3tUJBYk57LW46oocQebOME Zj+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8zjW4PjT9eWoc73I7yU10h5NKHpQH6qDD0fJsI6BkIQ=; b=DFPqPjmDtbKSK8QbJvPABHJ+CvZkZFT0h0RH9uJ7mYSfKXh+GcQZbCI94qIX3RoZM0 2IKwQQg3PGHdydMtyVwqRvHmXs7M1m4YhrQvUqGaNGRKsqXIEoL9x3ck5iqgEpIWCcue jc61C635ghACXkTFg+gyIRQOlchBxdXjLHcBjGNE3YyUoVktzuMiUZCfdAnP36LCBf4k OJQBM+mjzlGnVcnbGzsIKRMQP7rASycsIZh29BdIQGHNcTY4fZl1KrAzYWBRXzPw97J6 fduvMkJ0pA/a8PpSR4IdLWleWxn59leriLu2c2BrNqguzbohKdDQkzR6s0Pd6z9I17Ob Yj9A== X-Gm-Message-State: AOAM533OzDQ/+SA/fI1AXgAxMgiBGXdMDbg6NQdtiaJ9X/812ways1uD 8Yqh9dw/Xp6IuB2pnWU8tkjYBMeeFYWJ8+sP X-Google-Smtp-Source: ABdhPJzbPWO5ejriEO09/Mv/pe3+QmO1L0uGYz5QVgtGB+DlvyKnKchB3K0wBGLdD1mME4/jdJfarw== X-Received: by 2002:a9d:4b03:: with SMTP id q3mr3978761otf.88.1607450497801; Tue, 08 Dec 2020 10:01:37 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 10/24] target/arm: Enforce alignment for RFE Date: Tue, 8 Dec 2020 12:01:04 -0600 Message-Id: <20201208180118.157911-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::342; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x342.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index 6c76bc521d..a8bedbb45f 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -8259,10 +8259,10 @@ static bool trans_RFE(DisasContext *s, arg_RFE *a) =20 /* Load PC into tmp and CPSR into tmp2. */ t1 =3D tcg_temp_new_i32(); - gen_aa32_ld32u(s, t1, addr, get_mem_index(s)); + gen_aa32_ld_i32(s, t1, addr, get_mem_index(s), MO_UL | MO_ALIGN); tcg_gen_addi_i32(addr, addr, 4); t2 =3D tcg_temp_new_i32(); - gen_aa32_ld32u(s, t2, addr, get_mem_index(s)); + gen_aa32_ld_i32(s, t2, addr, get_mem_index(s), MO_UL | MO_ALIGN); =20 if (a->w) { /* Base writeback. */ --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607452198; cv=none; d=zohomail.com; s=zohoarc; b=h2o7nCBif4170mvYo8fZEapxjbS7+DZBaclT0McY4MnBwqIgxt07Dlt0Nq+tJpN4fhV0DDO3901zvIibk9e9+xwwGTvOxLnUoFDYZSV/kS7wHHUqofRRkhCiD/uedTLOXRaHjNlEJ+JRz/5s8hodjsGk9MD+UtZFkGsJ8+DZCBU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607452198; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7eYNYi6nRqgOF9U1+OBQOhH564yszaE/ArldGpU6S2Q=; b=M16PlLaemQSblU5ToApEjtJwJNvSh0aBLBt7CVz+tmlmYrFLPRjTuw8jb4/deck2ERxL0Bwm7Z+6mOzcAPxHnQKTbYrTs8lZvX9PJQJICAHytIdtWnY42uD9pFJ5CRaN5K2jn3YRQYYjXKNOT2IX4mPcssx1/Oc28wOGICpkI0I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607452198358544.1524438424659; Tue, 8 Dec 2020 10:29:58 -0800 (PST) Received: from localhost ([::1]:36756 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhYm-0005zH-8I for importer@patchew.org; Tue, 08 Dec 2020 13:18:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56976) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJ0-0007fd-Gr for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:42 -0500 Received: from mail-oo1-xc41.google.com ([2607:f8b0:4864:20::c41]:40855) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhIz-0006NS-30 for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:42 -0500 Received: by mail-oo1-xc41.google.com with SMTP id 9so1551466ooy.7 for ; Tue, 08 Dec 2020 10:01:40 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7eYNYi6nRqgOF9U1+OBQOhH564yszaE/ArldGpU6S2Q=; b=tQNwyo7r0z6wULhVOktBLG7Y8qLwEnzk1uU9wbIPFv+Pfw8ucbNNDvFTvVzTW8umbS 6EzKyp/lAeVa4A19uJ5qvticHaDwUACwQY0t1U773b1DZnkfJtnKmMyjSePIL1ZHBKtm M0+N3dwSetsgr38wvO/nCY4yI4/7FHKz3TLGA9B+8nP95phRMHDP1MDfNUueJ0q+n7R4 2M/c+E+IKF4cHI4I/dfY7rgp4l/rb6RpgdPODkrELOjHRIu9StcKld17KI7ATONoW1sa fRkZeirVPOKJrfheyXinULlnJ6f/9RJ/o4AhvoxDYzDBuV7yhR+zrn1lR1VJpJN1eyxb WoAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7eYNYi6nRqgOF9U1+OBQOhH564yszaE/ArldGpU6S2Q=; b=UPffeb75j4k3wVP/2J+b7mVR42iB2SjpImt3ZQf4/ZVPNZ8ZFtJiOpthNh7CNLB9zG ypXxDa7MrfnZfiAK/8Pc2eplAozyMikwIKJH3GCION6GMTTK1XvkQq/WOJm32USivzJJ DB/ms4dyGkKyZDq8GthdCYfG33G4xZb7rIV0tYToq6S7psYgZ8aND3F2H1ampymWkJzE qcKGcm3alQuI/ZWF7BdePc8JmN/orfkuF6cRT+0ChRqMQinL1Tb74k7E/HKw73QEs6iw xwz80shyb8KdawS6AmH4MOTpnUl/+RUnUnJN4eXXsxkevRujqybY5ce+CHr3D1MM1+eD g9wA== X-Gm-Message-State: AOAM532PyZEsfWA54TNULgdnDhUC23o0xb5BzGCq+guvlNx+FbmBqbMK 3W/5c95e1esjrwYYFeQrMgHbKQW72RCW6n8R X-Google-Smtp-Source: ABdhPJzwD82+AId6JSOCwM96wEH9d0p/9HXqDcIXrateGw78sLWGXLR3kTKTADLVbU/WGU+hyoRZPg== X-Received: by 2002:a4a:9c48:: with SMTP id c8mr17342328ook.84.1607450499646; Tue, 08 Dec 2020 10:01:39 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 11/24] target/arm: Enforce alignment for SRS Date: Tue, 8 Dec 2020 12:01:05 -0600 Message-Id: <20201208180118.157911-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::c41; envelope-from=richard.henderson@linaro.org; helo=mail-oo1-xc41.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index a8bedbb45f..c7e01ea73a 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -5134,11 +5134,11 @@ static void gen_srs(DisasContext *s, } tcg_gen_addi_i32(addr, addr, offset); tmp =3D load_reg(s, 14); - gen_aa32_st32(s, tmp, addr, get_mem_index(s)); + gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), MO_UL | MO_ALIGN); tcg_temp_free_i32(tmp); tmp =3D load_cpu_field(spsr); tcg_gen_addi_i32(addr, addr, 4); - gen_aa32_st32(s, tmp, addr, get_mem_index(s)); + gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), MO_UL | MO_ALIGN); tcg_temp_free_i32(tmp); if (writeback) { switch (amode) { --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607452061; cv=none; d=zohomail.com; s=zohoarc; b=Yptcdjwppwa0f/hg+/gm75CANN0rHVskf/H2jm6tj4H1ax1ZXit8fxPcucONGo3z6A9r0cBZUbvEU+J/lx7yWE59oKbVG6sCQ2loRR8ItV+cTSMYgEaOyOerpefbDQw/SJ0bdiYODHgyPtN9yi0Tog5+n4e0jfR7epdiHIiuKmM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607452061; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4wWHkNccTdv/S+w/jY/CU0oAZ7KJ+t/SYRwBRPA0ahA=; b=h9zvaH1vHjosXPR51qaOs1jEa7PP8Mc/0JXMySueq+TS2LpQM7u2pIU4IMY/8cK1cvelC2nR3v5N5XXnqbC7vuvLU3jmer91+ZG9KIzDfALOI/DMXP4pzb1TE0RWZzDzZ1F2CpkKu87KpomrXJObXdpAEH3whaPy6blHAKwhAe4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607452061344931.1139767646848; Tue, 8 Dec 2020 10:27:41 -0800 (PST) Received: from localhost ([::1]:52392 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhT7-0000ZX-3l for importer@patchew.org; Tue, 08 Dec 2020 13:12:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57012) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJ3-0007kb-BN for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:45 -0500 Received: from mail-oi1-x241.google.com ([2607:f8b0:4864:20::241]:39242) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJ0-0006Nu-Jf for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:44 -0500 Received: by mail-oi1-x241.google.com with SMTP id v85so9735592oia.6 for ; Tue, 08 Dec 2020 10:01:42 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4wWHkNccTdv/S+w/jY/CU0oAZ7KJ+t/SYRwBRPA0ahA=; b=FJXUmnv/vpFLt8D3EGc/yrvcDiLfmh7ShPZaSXToP2nwD0HBU/QGKkB5zRAn2cTbAC N4znxkv/t25/TWgem8OFBrJjuXOwCC6YnpQEoPxF6ucs5b1svnNoCJHZWb//YZEOciOA tW27kwzgHUxychf0rgW/5JrEtfBgk6gCjjguRqsk7GCVBglnteXBs7D/rMae+YBuwoRR 7fURS8kSyzYWrfk20GyK0RRyyA6c6a/qm1FTIgQSlQg6aaFKKqY4BKhESRfrXkltdGz0 FTdXmEZeXyoo7LgeNnq7a2PjiW5WOEQKyJ9JzTcRRKXgFtR3+HDvvYTiPZv3FvOSkUZT lQJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4wWHkNccTdv/S+w/jY/CU0oAZ7KJ+t/SYRwBRPA0ahA=; b=qEcrmOAaYGk1hCorG2z+uh5Lm/YTsBnM9QzYfdcnDPT/ausrdGj78O3EDzo5siZ1ly 7xedSSE+gaStJKO61/SvmzlLuNgc1PsAUPJWvMRVSo0FdX4ZKxhKKggiVw4+jywBv8i0 e2OTb9O5IWFPxBnzVvvGuZ7adwV4/hzLNipdriA6IAFK1ILdSUw6M4DsXigV1sBTHAMv zdcVcu/LiOB7GJUhDcdkGOaZZvNk+LCUbsYtyDEO3EOOJkcDHMN/NMBZqQ7oWPkjP9b5 bHuxYtt0qSuOu+cTOngmcDwhfigCMI6XG/Lj00wvLiWezkoEXwZzGG6LQecLqUvj1H5F sY/A== X-Gm-Message-State: AOAM532+SU3YlV6E5IIsmwSSBDGC/dGePMwmlF6pzyjO00wBo6RDLvr9 tDmEbqa1c9NvR2vwy3fZP+NLUXoCHtihi2d5 X-Google-Smtp-Source: ABdhPJx0G5hYFP4uYeO6v7x+ViC9nnrRmMb+pr+Led8wHxRXPipuWB96EtzEgS5Fq2Kki3odIAmCvA== X-Received: by 2002:aca:e108:: with SMTP id y8mr3833006oig.60.1607450501230; Tue, 08 Dec 2020 10:01:41 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 12/24] target/arm: Enforce alignment for VLDM/VSTM Date: Tue, 8 Dec 2020 12:01:06 -0600 Message-Id: <20201208180118.157911-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::241; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x241.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-vfp.c.inc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/arm/translate-vfp.c.inc b/target/arm/translate-vfp.c.inc index 96948f5a2d..98e4ae30eb 100644 --- a/target/arm/translate-vfp.c.inc +++ b/target/arm/translate-vfp.c.inc @@ -1065,12 +1065,12 @@ static bool trans_VLDM_VSTM_sp(DisasContext *s, arg= _VLDM_VSTM_sp *a) for (i =3D 0; i < n; i++) { if (a->l) { /* load */ - gen_aa32_ld32u(s, tmp, addr, get_mem_index(s)); + gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), MO_UL | MO_ALI= GN); vfp_store_reg32(tmp, a->vd + i); } else { /* store */ vfp_load_reg32(tmp, a->vd + i); - gen_aa32_st32(s, tmp, addr, get_mem_index(s)); + gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), MO_UL | MO_ALI= GN); } tcg_gen_addi_i32(addr, addr, offset); } @@ -1148,12 +1148,12 @@ static bool trans_VLDM_VSTM_dp(DisasContext *s, arg= _VLDM_VSTM_dp *a) for (i =3D 0; i < n; i++) { if (a->l) { /* load */ - gen_aa32_ld64(s, tmp, addr, get_mem_index(s)); + gen_aa32_ld_i64(s, tmp, addr, get_mem_index(s), MO_Q | MO_ALIG= N_4); vfp_store_reg64(tmp, a->vd + i); } else { /* store */ vfp_load_reg64(tmp, a->vd + i); - gen_aa32_st64(s, tmp, addr, get_mem_index(s)); + gen_aa32_st_i64(s, tmp, addr, get_mem_index(s), MO_Q | MO_ALIG= N_4); } tcg_gen_addi_i32(addr, addr, offset); } --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607453460; cv=none; d=zohomail.com; s=zohoarc; b=JP0fT+FxlH/uQSvnDBTLi5VEbQoaQhxGrWH0feL3G2LKJZcdRNFo3aVVK9yL469lChER/2duP2XErzOpMtCzLZmaPwULnjG0E7+hhXJc99GMadnieWeBKsKjus9BXWkfvZyP80k6Py5adLv8XLmN8TCQPTx5s+Odz4Yn1/R2EvA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607453460; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ywn1xFxnrreGuCNq6h+Wr2lOdbd/pesbHQZ1k8i3mW8=; b=kyB0kKG+CEovImPLYxkmeqIHPLiCqiUkW6P99QEQK1ueQDfKF1J9xgve4DJGlu3cKTSZ8PxMAYGG/1eRmHFkXcE1/R6uXPWAQVYT0MOPrwAeioVmhPibtfK5ukzcXX3AEARur/QTIbWcvvUi4BDehDPta1LMHwoZGBCEdIooxlU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607453460691256.1657927818045; Tue, 8 Dec 2020 10:51:00 -0800 (PST) Received: from localhost ([::1]:43866 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhc4-0000U7-AS for importer@patchew.org; Tue, 08 Dec 2020 13:21:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57034) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJ4-0007oL-Of for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:46 -0500 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]:35498) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJ3-0006OF-0M for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:46 -0500 Received: by mail-oi1-x243.google.com with SMTP id s2so10842448oij.2 for ; Tue, 08 Dec 2020 10:01:43 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ywn1xFxnrreGuCNq6h+Wr2lOdbd/pesbHQZ1k8i3mW8=; b=xk/ClVEC9xTJ7WgicriCb5qe3NEdBJb9ZfB8IfOlo49aGrbQgI5pghb1xBhjk5zetv S+1LsDC4TzaLRj9sv0ninXVEjVgbnGbkd/4dxXrqrzkf5eXRRz5GrCu/wi74i7U1zpB8 7DG38s60a3rSNUQ3Klkxps3NGbYeDA12b4975G4FHY0wyectPAePx0zpuIoGkuvYolnu c7dR22UiQsnOL9hDgzhJIRyHktQE2AoBa7QFyXNVhNDIaVD7gzA1HZJ9bqtMydoI+nHi khEtj5IA5CJCviFRIYNYLMonYaPOqgmgLW0NtcMVxH4Ipg5Jp6MbmPyA1gXpTAbRedVG RIBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ywn1xFxnrreGuCNq6h+Wr2lOdbd/pesbHQZ1k8i3mW8=; b=eepXnoHd7xb0bbiPCrvlP4EN5UR44Ixzmo14H95ktysk5/YfJmoOxcrvN5F+5BW2d9 l001kdJnBT5HbI0P+lLjCbY0LrVkhvSwOOPqIT21c5QMZ1JIl+00rTJm7dJfLt1IkLa6 9wnqYKILOm6Tytb0VhEAx1ruN4Jtet60jK2zrOT9gADK1fQomPQWc4qw+HQJuckRyiZg /+yA+ylg64mDo/KTCL776zoh5nh7vgZHuslqr6HMm8+L4lMAitgbwyGzvOI2f4mkXISd t8mnG61PNKPcFYzlz+VIHRAzhEg0zXarkCVpABBlT60fPdLMfzjH61CXvH7qeyZDJlNo CNuw== X-Gm-Message-State: AOAM532dG2y1Li+p7Uxm7OHVS/hc9chtO9LjHZ0CC+kaM2tYegdA1Jaj M/NzmL5+ZVYKgZhRBQKU9hh4tsQec+HcdPus X-Google-Smtp-Source: ABdhPJzyoPoE2Nrcz9mnGgiEq/BeapZ0lwgGFmM6ksrvBtk7N+jwJK3rRTd/Qb1QiVEciW5XYqNIhg== X-Received: by 2002:aca:c4c2:: with SMTP id u185mr3487753oif.177.1607450502615; Tue, 08 Dec 2020 10:01:42 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 13/24] target/arm: Enforce alignment for VLDR/VSTR Date: Tue, 8 Dec 2020 12:01:07 -0600 Message-Id: <20201208180118.157911-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::243; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x243.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-vfp.c.inc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/target/arm/translate-vfp.c.inc b/target/arm/translate-vfp.c.inc index 98e4ae30eb..122e409f39 100644 --- a/target/arm/translate-vfp.c.inc +++ b/target/arm/translate-vfp.c.inc @@ -926,11 +926,11 @@ static bool trans_VLDR_VSTR_hp(DisasContext *s, arg_V= LDR_VSTR_sp *a) addr =3D add_reg_for_lit(s, a->rn, offset); tmp =3D tcg_temp_new_i32(); if (a->l) { - gen_aa32_ld16u(s, tmp, addr, get_mem_index(s)); + gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), MO_UW | MO_ALIGN); vfp_store_reg32(tmp, a->vd); } else { vfp_load_reg32(tmp, a->vd); - gen_aa32_st16(s, tmp, addr, get_mem_index(s)); + gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), MO_UW | MO_ALIGN); } tcg_temp_free_i32(tmp); tcg_temp_free_i32(addr); @@ -960,11 +960,11 @@ static bool trans_VLDR_VSTR_sp(DisasContext *s, arg_V= LDR_VSTR_sp *a) addr =3D add_reg_for_lit(s, a->rn, offset); tmp =3D tcg_temp_new_i32(); if (a->l) { - gen_aa32_ld32u(s, tmp, addr, get_mem_index(s)); + gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), MO_UL | MO_ALIGN); vfp_store_reg32(tmp, a->vd); } else { vfp_load_reg32(tmp, a->vd); - gen_aa32_st32(s, tmp, addr, get_mem_index(s)); + gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), MO_UL | MO_ALIGN); } tcg_temp_free_i32(tmp); tcg_temp_free_i32(addr); @@ -1001,11 +1001,11 @@ static bool trans_VLDR_VSTR_dp(DisasContext *s, arg= _VLDR_VSTR_dp *a) addr =3D add_reg_for_lit(s, a->rn, offset); tmp =3D tcg_temp_new_i64(); if (a->l) { - gen_aa32_ld64(s, tmp, addr, get_mem_index(s)); + gen_aa32_ld_i64(s, tmp, addr, get_mem_index(s), MO_Q | MO_ALIGN_4); vfp_store_reg64(tmp, a->vd); } else { vfp_load_reg64(tmp, a->vd); - gen_aa32_st64(s, tmp, addr, get_mem_index(s)); + gen_aa32_st_i64(s, tmp, addr, get_mem_index(s), MO_Q | MO_ALIGN_4); } tcg_temp_free_i64(tmp); tcg_temp_free_i32(addr); --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607452222; cv=none; d=zohomail.com; s=zohoarc; b=Xf55+6G5u0K9+dWBrTQFy+d/Podp/I6D2OE+Wr6QuHfQ7wV22wrfiufdDGpL3R/J76nzK/tvPdbTD1Bl9LXL0V7OBVxPhRT5DFui+b4q6DutU5TURy62q4XMaecwEiZFC1lBWWf4cfFLavbX/UrMdJsETku9kb9ooe9GoRumwIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607452222; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=udYZfRYde9RuoZ6aJDkOn2J2xIM6qQOMYu44RcbdTs4=; b=YOlFIIo6uhbDpMu9tL7ropmdMzGbwEtpsGdkwx7/xWL3hcWqyFODudmlewdtR70QMRJS1O/bmfWJhYopFt/23INOoJwc4TmfzCPeAh7dZRiEfHHbPrS8GBQgfY7C9JwAfFsuD40/IMmFJweIlhKNI8WJ7wZn5woh97+uYHxa7F8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607452222957684.2715556743616; Tue, 8 Dec 2020 10:30:22 -0800 (PST) Received: from localhost ([::1]:51088 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhfE-0003Xr-1w for importer@patchew.org; Tue, 08 Dec 2020 13:24:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57070) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJ6-0007ro-Iu for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:48 -0500 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:46625) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJ5-0006Oi-1q for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:48 -0500 Received: by mail-ot1-x341.google.com with SMTP id w3so15989890otp.13 for ; Tue, 08 Dec 2020 10:01:46 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=udYZfRYde9RuoZ6aJDkOn2J2xIM6qQOMYu44RcbdTs4=; b=vXPEzaB5ym5Vrz2Ljv6+4zS5HJgg7g7mlZoHVwliMlXyMVzz0/rc6VZDvgI5644/rM u9gMNg3JwFeje26eHyS+ascdRHZs8+p31tpW1d5ACOa/lK1vW2SNUM/f5n5wbrSw+KN+ AHEC92T0D3GgzYVmaFZXYDD3CZkZwuMCftnPnFDHOTQOehZESSxr8NfPVkoJQFHx3Nxm zT8c5Q1noLp7WFTDtf3BYr9g3SwcyQTPYFntqLNysHrglfBBZeiDrqGS86lQOQIclU32 fhuWs67U5jP4kokXX90fbDZLG6q8qrCHz4xu2AbE1J8MIArPq8CSTwac6MDdqXUn9o3V OrCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=udYZfRYde9RuoZ6aJDkOn2J2xIM6qQOMYu44RcbdTs4=; b=Gns1W45Cw2Y4qfnEz/H9IJ25+nbT7Oat4D5fgSEiHxgxV5r/OIwLzUDqso1PKkpez5 QOSq2NF4loMPAdhEiRDlJPYq0AjffFmRYkeyn6Nd+DQi4L2RNXT3n6T213nGIpl/L8Ix 8z5gf72LSUqL1vbbA/mH62r9Xx9bxc2Gz19bgf7nwm3rRBN5wu/sgXF6Nm1TBTMczXEO 6axW++S496/PKZH5wEpf5LS+HEmTR/AWCpzirzgTWVhkEXuLG32d28WeUGiGGvhhDK3u 9bcD4AYSCPbR+xQ00/ehfchav85CFzETzfzktF0ZY7Gw+TMrQVadoxkbUkGrI/Ikiwap CfdQ== X-Gm-Message-State: AOAM5307ZSJ/eUtSLcf+I8E8LuQWBF/SvBnJZCkWGL/58tWJUY2cZEJd YqomGP6WtzqOxZo3OKIhan504KJhcUQmVgas X-Google-Smtp-Source: ABdhPJypZPc85vsZ/TYYgBwrl3XTxVd02Lemnp11FVum3F2YewtqhooZyqhoTeoW4z6kQU/sQkZ+kg== X-Received: by 2002:a9d:3664:: with SMTP id w91mr17715504otb.227.1607450505257; Tue, 08 Dec 2020 10:01:45 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 14/24] target/arm: Enforce alignment for VLD1 (all lanes) Date: Tue, 8 Dec 2020 12:01:08 -0600 Message-Id: <20201208180118.157911-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::341; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x341.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/translate-neon.c.inc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/target/arm/translate-neon.c.inc b/target/arm/translate-neon.c.= inc index 18d9042130..7cb89b18e0 100644 --- a/target/arm/translate-neon.c.inc +++ b/target/arm/translate-neon.c.inc @@ -522,6 +522,7 @@ static bool trans_VLD_all_lanes(DisasContext *s, arg_VL= D_all_lanes *a) int size =3D a->size; int nregs =3D a->n + 1; TCGv_i32 addr, tmp; + MemOp mop; =20 if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { return false; @@ -556,12 +557,12 @@ static bool trans_VLD_all_lanes(DisasContext *s, arg_= VLD_all_lanes *a) */ stride =3D a->t ? 2 : 1; vec_size =3D nregs =3D=3D 1 ? stride * 8 : 8; - + mop =3D size | (a->a ? MO_ALIGN : 0); tmp =3D tcg_temp_new_i32(); addr =3D tcg_temp_new_i32(); load_reg_var(s, addr, a->rn); for (reg =3D 0; reg < nregs; reg++) { - gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), size); + gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), mop); if ((vd & 1) && vec_size =3D=3D 16) { /* * We cannot write 16 bytes at once because the --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607452116; cv=none; d=zohomail.com; s=zohoarc; b=JE/ERzNL9qZP7HETAEHmTxBQU8TXW1penRIAvXPYc3ca8ij8k8ByVnR44onMSl73nqbm2ZCoB/D3DBsOcU8rxLvAyZHXfmHF/4CiFA8XY+nvjhANQKeEV/f2Ya1+cInJ7OhFaAtLF5SE9mtwYWnggSMxTNOOG0oUrdaa82Pv38o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607452116; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cNC0T7rNjPLMZzj0tvfPEhRFtAoFlS8LhMxO6R/0Cws=; b=ceeKZAiiiQgTHJAHfazCwRfYB9m6QswgKiIikXBsH3/O7b1NKW9TCTtLP44CfVs1aPHKoJa6Z4TigSDde9OrS8g28V+OUfOhmL0Ttm6yO7Hk+Z8lZEIEup+sNlUZ5yMWQwlWWJfDWes8YEyKhoE/O/GXFAGXuh993o9QR+G3jq4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607452116675248.00498716420395; Tue, 8 Dec 2020 10:28:36 -0800 (PST) Received: from localhost ([::1]:58374 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhj1-0006gK-Kc for importer@patchew.org; Tue, 08 Dec 2020 13:28:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57098) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJ9-0007vb-5A for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:51 -0500 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:38275) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJ6-0006Ot-5C for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:50 -0500 Received: by mail-ot1-x342.google.com with SMTP id b62so16619438otc.5 for ; Tue, 08 Dec 2020 10:01:47 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cNC0T7rNjPLMZzj0tvfPEhRFtAoFlS8LhMxO6R/0Cws=; b=F6Lsk1+l8Jol8vQAIWR1r1vsSCKU8+NN3l8pc1Tmf3PLGceCmWXBEQH/LoSPG/089Q fjaTem7G7sMf+TxU2Wzd17YLrrE3dOT/pDhlMm1fgAFLYe1UxODOZ3HAK0kt37RX1aIP sJTGIXvIv2pMdRViRAcBTEfFy0YCV81j4ssKrJ5Fz5mLVpMPm8M9UU7ymUWVEFFG3jSW kfOoS5gpu5zkC0O4xD2Zg3nXwMTEP7NEKWMUJzySl6kYzWTVYCSKdz9YzzfXUJIl7nQv z3Df2/MyRa0iVOGYIjwCT81AO/CPfE0/BpbVVnPQMsOr05gSWwSzKm3CXgevSqqiEUji SM1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cNC0T7rNjPLMZzj0tvfPEhRFtAoFlS8LhMxO6R/0Cws=; b=bq/r5AuCKqnZI+w8+8OqEglYWilEVcT0uqf6veURhJREjZgXdFeiqDUfc+GNVWfi+h H5CcoxiR1DGYvJPwaKxB/ib8nEVqJkLLPDzck5BnpvKBvFTW+04kdEalQCdC0+P8KzT9 A2QgikPmTTR41W/cW1fVeSI/7umI99gaxTpqUY5o/mTnLxKjxmR4RGddaJMhEFljg/3F WtJd9l6vsGI6gum2QnbYlf7ZeZMglkMBdK5ZrwocSVMQ4BxIOGmmvBcYB3ixmu7nuSNL zwFUZqOav3y1Vy8hGwH5KCYuGidTFjOBhZOdNCgG5b78HosMi1JmYBm7H3qz183NYYfI /AqQ== X-Gm-Message-State: AOAM531cKmOMRxMgUcV8FzyMtKFw5AXkBf/+zbAypM0e7PrVU8tpWwxu 04F7Cy+ZLlmMBpXA+z6hhZu6KvpYeAX29hU6 X-Google-Smtp-Source: ABdhPJyiJSBW2JWDqDIij1Ou5bZ23luEyTDFhagpG5QwC91bFSesVwDTblWTD6S4Z2CnQHAyDXXiqg== X-Received: by 2002:a9d:550a:: with SMTP id l10mr17371770oth.357.1607450506679; Tue, 08 Dec 2020 10:01:46 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 15/24] target/arm: Enforce alignment for VLDn/VSTn (multiple) Date: Tue, 8 Dec 2020 12:01:09 -0600 Message-Id: <20201208180118.157911-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::342; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x342.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate.h | 1 + target/arm/translate.c | 15 +++++++++++++++ target/arm/translate-neon.c.inc | 27 ++++++++++++++++++++++----- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/target/arm/translate.h b/target/arm/translate.h index 22a4b15d45..c1ec661afb 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -204,6 +204,7 @@ void arm_test_cc(DisasCompare *cmp, int cc); void arm_free_cc(DisasCompare *cmp); void arm_jump_cc(DisasCompare *cmp, TCGLabel *label); void arm_gen_test_cc(int cc, TCGLabel *label); +MemOp pow2_align(unsigned i); =20 /* Return state of Alternate Half-precision flag, caller frees result */ static inline TCGv_i32 get_ahp_flag(void) diff --git a/target/arm/translate.c b/target/arm/translate.c index c7e01ea73a..7455118ff5 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -875,6 +875,21 @@ static inline void store_reg_from_load(DisasContext *s= , int reg, TCGv_i32 var) #define IS_USER_ONLY 0 #endif =20 +MemOp pow2_align(unsigned i) +{ + static const MemOp mop_align[] =3D { + 0, MO_ALIGN_2, MO_ALIGN_4, MO_ALIGN_8, MO_ALIGN_16, + /* + * FIXME: TARGET_PAGE_BITS_MIN affects TLB_FLAGS_MASK such + * that 256-bit alignment (MO_ALIGN_32) cannot be supported: + * see get_alignment_bits(). Enforce only 128-bit alignment for no= w. + */ + MO_ALIGN_16 + }; + g_assert(i < ARRAY_SIZE(mop_align)); + return mop_align[i]; +} + /* * Abstractions of "generate code to do a guest load/store for * AArch32", where a vaddr is always 32 bits (and is zero diff --git a/target/arm/translate-neon.c.inc b/target/arm/translate-neon.c.= inc index 7cb89b18e0..4dab01ae18 100644 --- a/target/arm/translate-neon.c.inc +++ b/target/arm/translate-neon.c.inc @@ -429,7 +429,7 @@ static bool trans_VLDST_multiple(DisasContext *s, arg_V= LDST_multiple *a) { /* Neon load/store multiple structures */ int nregs, interleave, spacing, reg, n; - MemOp endian =3D s->be_data; + MemOp mop, align, endian; int mmu_idx =3D get_mem_index(s); int size =3D a->size; TCGv_i64 tmp64; @@ -473,20 +473,36 @@ static bool trans_VLDST_multiple(DisasContext *s, arg= _VLDST_multiple *a) } =20 /* For our purposes, bytes are always little-endian. */ + endian =3D s->be_data; if (size =3D=3D 0) { endian =3D MO_LE; } + + /* Enforce alignment requested by the instruction */ + if (a->align) { + align =3D pow2_align(a->align + 2); /* 4 ** a->align */ + } else { + align =3D s->align_mem ? MO_ALIGN : 0; + } + /* * Consecutive little-endian elements from a single register * can be promoted to a larger little-endian operation. */ if (interleave =3D=3D 1 && endian =3D=3D MO_LE) { + /* Retain any natural alignment. */ + if (align =3D=3D MO_ALIGN) { + align =3D pow2_align(size); + } size =3D 3; } + tmp64 =3D tcg_temp_new_i64(); addr =3D tcg_temp_new_i32(); tmp =3D tcg_const_i32(1 << size); load_reg_var(s, addr, a->rn); + + mop =3D endian | size | align; for (reg =3D 0; reg < nregs; reg++) { for (n =3D 0; n < 8 >> size; n++) { int xs; @@ -494,15 +510,16 @@ static bool trans_VLDST_multiple(DisasContext *s, arg= _VLDST_multiple *a) int tt =3D a->vd + reg + spacing * xs; =20 if (a->l) { - gen_aa32_ld_internal_i64(s, tmp64, addr, mmu_idx, - endian | size); + gen_aa32_ld_internal_i64(s, tmp64, addr, mmu_idx, mop); neon_store_element64(tt, n, size, tmp64); } else { neon_load_element64(tmp64, tt, n, size); - gen_aa32_st_internal_i64(s, tmp64, addr, mmu_idx, - endian | size); + gen_aa32_st_internal_i64(s, tmp64, addr, mmu_idx, mop); } tcg_gen_add_i32(addr, addr, tmp); + + /* Subsequent memory operations inherit alignment */ + mop &=3D ~MO_AMASK; } } } --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607452065; cv=none; d=zohomail.com; s=zohoarc; b=eFCcbdwetsgXzlz0I+mLz/4uXhLo6FLzl1MynPDas34KGKJ5JZSaB57oqm8rcAxHwl0uACW3ufSwYW+e2oyqdENV3ZlcKkB462k+qCzN2H9hFO6oiJX8CdMUAVaNcm/Evy+63yQYzctAYQP92qB4NE9J5LFpHmwd2c9FAGdp1lA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607452065; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kG55pxrRqXSzKnfpX7pLeFgoSMBsIFropfupWBTNCJw=; b=CA5fhoo39oeoJZJzWFpKrQqQcfKXQwVBPVkDZglLM2fpBqOvi6PUCf+1D82SrEAZ7x3ITSiZzU5GQYY2jHCKxoFodQNl6RL6HJTs7R6DryxQhODZdpfeMAhjMkH6+H+ljmJAt1cYEqGyUEVTIECFk+VhVMGoGz6qoc0wDYi/huM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607452065913960.0454991434472; Tue, 8 Dec 2020 10:27:45 -0800 (PST) Received: from localhost ([::1]:33830 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhX7-0004eg-Hr for importer@patchew.org; Tue, 08 Dec 2020 13:16:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57116) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJB-00082C-Sq for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:53 -0500 Received: from mail-oi1-x241.google.com ([2607:f8b0:4864:20::241]:38727) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJA-0006PL-7B for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:53 -0500 Received: by mail-oi1-x241.google.com with SMTP id o25so20326964oie.5 for ; Tue, 08 Dec 2020 10:01:51 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kG55pxrRqXSzKnfpX7pLeFgoSMBsIFropfupWBTNCJw=; b=tbKX9hIr7R0lWf+3O9wWFcrI47ZhEKNwLWRWj2R4dfUdgKwJqUd9S+DO9J40bff/5Y 3253CmSjxnCwVw5LVvGvgq52kgwpU+xsStD/OOZS4J/HQTbu1uoIWS+aNsfDyOr7MAcc Jd5Xxbmgmlq5dnIFI/WFpfjaCZk9OdyvHdjhFt6BZ9xm56MTya8YHyaa7NGMVkkqb5/I Tqqg6LJhBsHjxwhxcoBB72fKkEfG7/GjHM5glcRMQQSR0lnSTNwX9tgE5joj8yv/vH1j CyKKFYCa38CzBP6O01+fWv8ucVtsfJ2PrwcxA4vCBIYyFzx4WOHt49A4mJKzkqPQcxLZ WUfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kG55pxrRqXSzKnfpX7pLeFgoSMBsIFropfupWBTNCJw=; b=PGSuzIPkjIEGyF6soYCl9zETMtcQIznFsk1eCzVi/GmSvM9nNsSzLcVSl8fszuYaYv x9qY3wlWxVVddk2ZKQHqXu6dnB4zhShnWfVukpbo0i0+nM9MiwV9EcxbeKG2Z1uZmAYq kBJhCgdSHZ4/3kkVG2EImF/pIMGsFGcfWiitg8AYPjr00kx9KTGyvbd2jI/opLUl/swX R+rKTOFdAqUHtON5l5WJZYFDfj3RA8XDe4wbf7WhjyD58J/Zl30qRxcN7QQUTQ6xHqtY MraDX9MruZWrcWnzNjPxvvTSMrD3jLtpVxkl1H0MfJwfmFM8yr7W+4vFQl1KL8LRGgm3 BuZQ== X-Gm-Message-State: AOAM532lq1Y9AL7G7uSwt+IDpQZkzh3PjIb7Vj3eAqsSQnm+xzvNFuz0 nKgSgG4gW6R22CEongsdr6Zbz4FhFqNqkNpA X-Google-Smtp-Source: ABdhPJw7CgmDff2ad4mSIbdOyQb2H7PYoyoLDC8QdJwQa5MSzgYtlueaGNRQScF4CSY2z5pui9kclQ== X-Received: by 2002:aca:4ec9:: with SMTP id c192mr3760362oib.115.1607450508366; Tue, 08 Dec 2020 10:01:48 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 16/24] target/arm: Enforce alignment for VLDn/VSTn (single) Date: Tue, 8 Dec 2020 12:01:10 -0600 Message-Id: <20201208180118.157911-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::241; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x241.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-neon.c.inc | 48 ++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/target/arm/translate-neon.c.inc b/target/arm/translate-neon.c.= inc index 4dab01ae18..3a9ea3a0bb 100644 --- a/target/arm/translate-neon.c.inc +++ b/target/arm/translate-neon.c.inc @@ -611,6 +611,7 @@ static bool trans_VLDST_single(DisasContext *s, arg_VLD= ST_single *a) int nregs =3D a->n + 1; int vd =3D a->vd; TCGv_i32 addr, tmp; + MemOp mop; =20 if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { return false; @@ -660,23 +661,58 @@ static bool trans_VLDST_single(DisasContext *s, arg_V= LDST_single *a) return true; } =20 + /* Pick up SCTLR settings */ + mop =3D finalize_memop(s, a->size); + + if (a->align) { + MemOp align_op; + + switch (nregs) { + case 1: + /* For VLD1, use natural alignment. */ + align_op =3D MO_ALIGN; + break; + case 2: + /* For VLD2, use double alignment. */ + align_op =3D pow2_align(a->size + 1); + break; + case 4: + if (a->size =3D=3D MO_32) { + /* + * For VLD4.32, align =3D 1 is double alignment, align =3D= 2 is + * quad alignment; align =3D 3 is rejected above. + */ + align_op =3D pow2_align(a->size + a->align); + } else { + /* For VLD4.8 and VLD.16, we want quad alignment. */ + align_op =3D pow2_align(a->size + 2); + } + break; + default: + /* For VLD3, the alignment field is zero and rejected above. */ + g_assert_not_reached(); + } + + mop =3D (mop & ~MO_AMASK) | align_op; + } + tmp =3D tcg_temp_new_i32(); addr =3D tcg_temp_new_i32(); load_reg_var(s, addr, a->rn); - /* - * TODO: if we implemented alignment exceptions, we should check - * addr against the alignment encoded in a->align here. - */ + for (reg =3D 0; reg < nregs; reg++) { if (a->l) { - gen_aa32_ld_i32(s, tmp, addr, get_mem_index(s), a->size); + gen_aa32_ld_internal_i32(s, tmp, addr, get_mem_index(s), mop); neon_store_element(vd, a->reg_idx, a->size, tmp); } else { /* Store */ neon_load_element(tmp, vd, a->reg_idx, a->size); - gen_aa32_st_i32(s, tmp, addr, get_mem_index(s), a->size); + gen_aa32_st_internal_i32(s, tmp, addr, get_mem_index(s), mop); } vd +=3D a->stride; tcg_gen_addi_i32(addr, addr, 1 << a->size); + + /* Subsequent memory operations inherit alignment */ + mop &=3D ~MO_AMASK; } tcg_temp_free_i32(addr); tcg_temp_free_i32(tmp); --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607452474; cv=none; d=zohomail.com; s=zohoarc; b=mE02AEVrrCt1GH/Zn0XeXaTA0GxUM7z92D3b4ukDPcd5irBtN4QuzVNtZkOzXljDiwRSwUw9fY/xZAzNh7++u425b3o9LG3EFtBxnoGgGmc6mWytQNQhleGRIy7lq98JqQ+Jle/n/bsTwD6KPYFyoSCO+bBAYFgPShp0M5QHRuk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607452474; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=p4ZvDwBTziZmZdqk805FY1f/U8VtmHM73z1nIW++Hok=; b=Ol27ORcTphdTQkqFQDFPX4LcGakiEBJo5L/CaFl4Ykypzk05XVi0uWAaxhdLRl4G5RB9YOaSbfHBPSWYqvSGbD5vi4LhSe7oEvEbLo7uu3mVJEyk7RpURNHmzCCBl1azERotGzsyOtfcaYE6pjDXC0JmpWxXRJjl5YgV+gH0VgQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607452474381337.90821825112243; Tue, 8 Dec 2020 10:34:34 -0800 (PST) Received: from localhost ([::1]:38892 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhon-00024Z-7k for importer@patchew.org; Tue, 08 Dec 2020 13:34:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57152) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJF-00088h-3Z for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:57 -0500 Received: from mail-ot1-x344.google.com ([2607:f8b0:4864:20::344]:42315) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJD-0006Pf-4M for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:01:56 -0500 Received: by mail-ot1-x344.google.com with SMTP id 11so16602563oty.9 for ; Tue, 08 Dec 2020 10:01:54 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p4ZvDwBTziZmZdqk805FY1f/U8VtmHM73z1nIW++Hok=; b=XPnZ76HdHl6ih/rkKOb/3fSqNXGxRbgSyDIPnSd5FZuFged9ULPhs7zggMjClJggrP jsHRNdSn3lw6yIfZG6pwOQjpky7kmRfUAmjLwF7kzHxM+eI+rKLDkE2eKjeSIWPk8zkD UHIIabOwX0aTNeTVDkLgDjwBtm+05Y94okTXRclDFcpjjIvcVK+sz8GAJmarvnOwizgQ AvH8ZBUQgnhg9w1UZVrL14iPwDCSyn6lXWGeKELdfe+VdJRrRyNZHoxo4v42kwckYQZB GzuMhzGIupYMPaDCxpdQTOj7ul50L6U1ktS/+KxVcSZi71352DuTfkU6BMs9WeF075bE lI1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=p4ZvDwBTziZmZdqk805FY1f/U8VtmHM73z1nIW++Hok=; b=GD80+TZKxTuygML6jgHq21QQxJJTY0/+xfnWxiy9h6TQpV6WsBfIzJ8h1F8zTwjlr3 zGwIL6/OrJyFj5NUKCUHI9qMk8LqrdYTZasemR4Yw2ssbhs/E//5FGvZAUoTQViIq3zH URQ4tAiLKGQkLUZ4sbLKl7oerN/Id9DKq/3ddOptocPTzSsKvyCcjjQ/M7x72WdD20sP 0Ne6VHoGSq8lgUGCFbP6bq/xYoxHdUeU5HZ82L4rO/35LhofoYmZRRBY5cbowcgz34Kz J/1YjgOoMeDDfvGH6lQ9uJhuR+ZgUe7E0l9rgCKeFt01ruI8bE0SqdWrtNGUrSeEhmoV 4uPw== X-Gm-Message-State: AOAM531ztDgcRyYVmzNy/DeOoHwOLPGg/A40P29b9F8R51fs0l80V56n CikDMpsxErauA/lAG47leB4G579MaTRLr901 X-Google-Smtp-Source: ABdhPJyo1aje1yK7SbzdWDAQj7uNKiyTpNUmI+K/bmYI3neVRbafRoP/paxi4tdJUX7/1S0KqtxwSw== X-Received: by 2002:a05:6830:90f:: with SMTP id v15mr13881486ott.223.1607450513685; Tue, 08 Dec 2020 10:01:53 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 17/24] target/arm: Use finalize_memop for aa64 gpr load/store Date: Tue, 8 Dec 2020 12:01:11 -0600 Message-Id: <20201208180118.157911-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::344; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x344.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" In the case of gpr load, merge the size and is_signed arguments; otherwise, simply convert size to memop. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-a64.c | 78 ++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 45 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 2e3fdfdf6b..d34ec892c6 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -880,19 +880,19 @@ static void gen_adc_CC(int sf, TCGv_i64 dest, TCGv_i6= 4 t0, TCGv_i64 t1) * Store from GPR register to memory. */ static void do_gpr_st_memidx(DisasContext *s, TCGv_i64 source, - TCGv_i64 tcg_addr, int size, int memidx, + TCGv_i64 tcg_addr, MemOp memop, int memidx, bool iss_valid, unsigned int iss_srt, bool iss_sf, bool iss_ar) { - g_assert(size <=3D 3); - tcg_gen_qemu_st_i64(source, tcg_addr, memidx, s->be_data + size); + memop =3D finalize_memop(s, memop); + tcg_gen_qemu_st_i64(source, tcg_addr, memidx, memop); =20 if (iss_valid) { uint32_t syn; =20 syn =3D syn_data_abort_with_iss(0, - size, + (memop & MO_SIZE), false, iss_srt, iss_sf, @@ -903,37 +903,28 @@ static void do_gpr_st_memidx(DisasContext *s, TCGv_i6= 4 source, } =20 static void do_gpr_st(DisasContext *s, TCGv_i64 source, - TCGv_i64 tcg_addr, int size, + TCGv_i64 tcg_addr, MemOp memop, bool iss_valid, unsigned int iss_srt, bool iss_sf, bool iss_ar) { - do_gpr_st_memidx(s, source, tcg_addr, size, get_mem_index(s), + do_gpr_st_memidx(s, source, tcg_addr, memop, get_mem_index(s), iss_valid, iss_srt, iss_sf, iss_ar); } =20 /* * Load from memory to GPR register */ -static void do_gpr_ld_memidx(DisasContext *s, - TCGv_i64 dest, TCGv_i64 tcg_addr, - int size, bool is_signed, - bool extend, int memidx, +static void do_gpr_ld_memidx(DisasContext *s, TCGv_i64 dest, TCGv_i64 tcg_= addr, + MemOp memop, bool extend, int memidx, bool iss_valid, unsigned int iss_srt, bool iss_sf, bool iss_ar) { - MemOp memop =3D s->be_data + size; - - g_assert(size <=3D 3); - - if (is_signed) { - memop +=3D MO_SIGN; - } - + memop =3D finalize_memop(s, memop); tcg_gen_qemu_ld_i64(dest, tcg_addr, memidx, memop); =20 - if (extend && is_signed) { - g_assert(size < 3); + if (extend && (memop & MO_SIGN)) { + g_assert((memop & MO_SIZE) <=3D MO_32); tcg_gen_ext32u_i64(dest, dest); } =20 @@ -941,8 +932,8 @@ static void do_gpr_ld_memidx(DisasContext *s, uint32_t syn; =20 syn =3D syn_data_abort_with_iss(0, - size, - is_signed, + (memop & MO_SIZE), + (memop & MO_SIGN) !=3D 0, iss_srt, iss_sf, iss_ar, @@ -951,14 +942,12 @@ static void do_gpr_ld_memidx(DisasContext *s, } } =20 -static void do_gpr_ld(DisasContext *s, - TCGv_i64 dest, TCGv_i64 tcg_addr, - int size, bool is_signed, bool extend, +static void do_gpr_ld(DisasContext *s, TCGv_i64 dest, TCGv_i64 tcg_addr, + MemOp memop, bool extend, bool iss_valid, unsigned int iss_srt, bool iss_sf, bool iss_ar) { - do_gpr_ld_memidx(s, dest, tcg_addr, size, is_signed, extend, - get_mem_index(s), + do_gpr_ld_memidx(s, dest, tcg_addr, memop, extend, get_mem_index(s), iss_valid, iss_srt, iss_sf, iss_ar); } =20 @@ -2687,7 +2676,7 @@ static void disas_ldst_excl(DisasContext *s, uint32_t= insn) } clean_addr =3D gen_mte_check1(s, cpu_reg_sp(s, rn), false, rn !=3D 31, size); - do_gpr_ld(s, cpu_reg(s, rt), clean_addr, size, false, false, true,= rt, + do_gpr_ld(s, cpu_reg(s, rt), clean_addr, size, false, true, rt, disas_ldst_compute_iss_sf(size, false, 0), is_lasr); tcg_gen_mb(TCG_MO_ALL | TCG_BAR_LDAQ); return; @@ -2800,8 +2789,8 @@ static void disas_ld_lit(DisasContext *s, uint32_t in= sn) /* Only unsigned 32bit loads target 32bit registers. */ bool iss_sf =3D opc !=3D 0; =20 - do_gpr_ld(s, tcg_rt, clean_addr, size, is_signed, false, - true, rt, iss_sf, false); + do_gpr_ld(s, tcg_rt, clean_addr, size + is_signed * MO_SIGN, + false, true, rt, iss_sf, false); } tcg_temp_free_i64(clean_addr); } @@ -2960,11 +2949,11 @@ static void disas_ldst_pair(DisasContext *s, uint32= _t insn) /* Do not modify tcg_rt before recognizing any exception * from the second load. */ - do_gpr_ld(s, tmp, clean_addr, size, is_signed, false, - false, 0, false, false); + do_gpr_ld(s, tmp, clean_addr, size + is_signed * MO_SIGN, + false, false, 0, false, false); tcg_gen_addi_i64(clean_addr, clean_addr, 1 << size); - do_gpr_ld(s, tcg_rt2, clean_addr, size, is_signed, false, - false, 0, false, false); + do_gpr_ld(s, tcg_rt2, clean_addr, size + is_signed * MO_SIGN, + false, false, 0, false, false); =20 tcg_gen_mov_i64(tcg_rt, tmp); tcg_temp_free_i64(tmp); @@ -3095,8 +3084,8 @@ static void disas_ldst_reg_imm9(DisasContext *s, uint= 32_t insn, do_gpr_st_memidx(s, tcg_rt, clean_addr, size, memidx, iss_valid, rt, iss_sf, false); } else { - do_gpr_ld_memidx(s, tcg_rt, clean_addr, size, - is_signed, is_extended, memidx, + do_gpr_ld_memidx(s, tcg_rt, clean_addr, size + is_signed * MO_= SIGN, + is_extended, memidx, iss_valid, rt, iss_sf, false); } } @@ -3200,9 +3189,8 @@ static void disas_ldst_reg_roffset(DisasContext *s, u= int32_t insn, do_gpr_st(s, tcg_rt, clean_addr, size, true, rt, iss_sf, false); } else { - do_gpr_ld(s, tcg_rt, clean_addr, size, - is_signed, is_extended, - true, rt, iss_sf, false); + do_gpr_ld(s, tcg_rt, clean_addr, size + is_signed * MO_SIGN, + is_extended, true, rt, iss_sf, false); } } } @@ -3285,8 +3273,8 @@ static void disas_ldst_reg_unsigned_imm(DisasContext = *s, uint32_t insn, do_gpr_st(s, tcg_rt, clean_addr, size, true, rt, iss_sf, false); } else { - do_gpr_ld(s, tcg_rt, clean_addr, size, is_signed, is_extended, - true, rt, iss_sf, false); + do_gpr_ld(s, tcg_rt, clean_addr, size + is_signed * MO_SIGN, + is_extended, true, rt, iss_sf, false); } } } @@ -3373,7 +3361,7 @@ static void disas_ldst_atomic(DisasContext *s, uint32= _t insn, * full load-acquire (we only need "load-acquire processor consist= ent"), * but we choose to implement them as full LDAQ. */ - do_gpr_ld(s, cpu_reg(s, rt), clean_addr, size, false, false, + do_gpr_ld(s, cpu_reg(s, rt), clean_addr, size, false, true, rt, disas_ldst_compute_iss_sf(size, false, 0), tru= e); tcg_gen_mb(TCG_MO_ALL | TCG_BAR_LDAQ); return; @@ -3446,7 +3434,7 @@ static void disas_ldst_pac(DisasContext *s, uint32_t = insn, is_wback || rn !=3D 31, size); =20 tcg_rt =3D cpu_reg(s, rt); - do_gpr_ld(s, tcg_rt, clean_addr, size, /* is_signed */ false, + do_gpr_ld(s, tcg_rt, clean_addr, size, /* extend */ false, /* iss_valid */ !is_wback, /* iss_srt */ rt, /* iss_sf */ true, /* iss_ar */ false); =20 @@ -3531,8 +3519,8 @@ static void disas_ldst_ldapr_stlr(DisasContext *s, ui= nt32_t insn) * Load-AcquirePC semantics; we implement as the slightly more * restrictive Load-Acquire. */ - do_gpr_ld(s, cpu_reg(s, rt), clean_addr, size, is_signed, extend, - true, rt, iss_sf, true); + do_gpr_ld(s, cpu_reg(s, rt), clean_addr, size + is_signed * MO_SIG= N, + extend, true, rt, iss_sf, true); tcg_gen_mb(TCG_MO_ALL | TCG_BAR_LDAQ); } } --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607453474; cv=none; d=zohomail.com; s=zohoarc; b=nDJIfWeT6/x9krghAZ5FxqxiMnmSB8LvCTuDLCsd65XDwLWWmiubNhVug6tTwwLXnqDv6c8pCz3ln2LZ6ER3rug+TgHNTUtdoMbkJMIesMxsFxqxRMVoY1VXeywxa6WzNgMsOjvgCyKeWli29LvbYj6whRJTbyFUdBpnvpvItYo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607453474; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=sz4OfX2JcpPtJYKWU9aAlMNGI1f4lYPUyryiQe7SsD4=; b=VXFrjr+ap1tiieaI/NTDaD0o2Tl2COdaYIEuv2oUC4WHPMGrSsb62aQEO/TdViBp+Z6dyCArsnaHMIP6GhWwhk3JHXuX3ebFOYxfGG8evZ1oafXqsmA/CXA/FJ7jWdUm2icZoMyvQFtIsfCwCKPkWOtmXl86uf9Xi5c4YO2vIQo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607453474314174.6435988663934; Tue, 8 Dec 2020 10:51:14 -0800 (PST) Received: from localhost ([::1]:46460 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhvC-0005SL-KH for importer@patchew.org; Tue, 08 Dec 2020 13:41:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57246) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJJ-0008Cc-L0 for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:02 -0500 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:35679) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJE-0006Pn-Ol for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:01 -0500 Received: by mail-ot1-x342.google.com with SMTP id i6so10534740otr.2 for ; Tue, 08 Dec 2020 10:01:56 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sz4OfX2JcpPtJYKWU9aAlMNGI1f4lYPUyryiQe7SsD4=; b=eSdpL6M6pT0Trz9laEZRwTYV+hEirnUnX9+F77rG+Ma6Klldh/GtOEd3NQ/6d59nEc +83AmVz3/CQ1gtR9ii35HlR5jDkHUasbo+s5ggNaMrlg46CwKgGLG/hpOhMdJdU4cr/L EFGXGo4pWnfVhl/VUQVZTISnw1v/Vf2XZYanHhlp600Qvz6xULlIlGJW8gYO8LV/n02C 9KkLo8KQCx5eLnev2LY8z4GP9vzSNQl4QSkYCKwk+ISnPxr0V0qL+yUrFQjcbI5wHm3L lIk0RjZBx6fhWxPkDrPkvRp3r4lKXoub/XlxS+ou1oOorke4K5OytaVLUVmkqkXLZ40G Y/Qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sz4OfX2JcpPtJYKWU9aAlMNGI1f4lYPUyryiQe7SsD4=; b=AMs+j3LepwMygiYoT8iciGfFPL6p4Q6MfYcxnsU0wejiVoiMybY1W2WjD/SFGGSozo rJIMPaXTEYaK3hxAcwL27YgZrVKjtnYyrOi/w+SDDgO77YXn0CD5bzZ6f849fXN2KhvI zRAHrj/a9UqqQ7wfxWhmw9mVngY0lkW7mXyVJ3rVLJoYa00bOigygscQWyLL0NO2maWt jxDylJJI4MnMqeKaaBKOy6AxSOwEJrwLn82fWb9Y6JvHkTmtrb0NSrlirIZ4Kx3/Ct6g NXdjeR5PFDTGNI2ZNBETX1D/VB4BeXXXDlACltlGUGOoz/LYvQsaaJ9ae/36enlzOMlT yFsQ== X-Gm-Message-State: AOAM531KhdZ1w/JiK0qQcWpcoj2Yw3TCgYlz9bOn12I/giVCyOH1gyQ5 h4FPNEna3fLAI8PgqDXJZr7osUr08Wd3y35L X-Google-Smtp-Source: ABdhPJwcZqqSf72/6QqeE1S2+mdmBOF2C151zJzza77NgDP/scOQ2kv8Tq2dLHIt/9cedQ6ECq1kaA== X-Received: by 2002:a05:6830:1092:: with SMTP id y18mr1759959oto.243.1607450515195; Tue, 08 Dec 2020 10:01:55 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 18/24] target/arm: Use finalize_memop for aa64 fpr load/store Date: Tue, 8 Dec 2020 12:01:12 -0600 Message-Id: <20201208180118.157911-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::342; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x342.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" For 128-bit load/store, use 16-byte alignment. This requires that we perform the two operations in the correct order so that we generate the alignment fault before modifying memory. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-a64.c | 42 +++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index d34ec892c6..152a0a37ab 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -957,25 +957,33 @@ static void do_gpr_ld(DisasContext *s, TCGv_i64 dest,= TCGv_i64 tcg_addr, static void do_fp_st(DisasContext *s, int srcidx, TCGv_i64 tcg_addr, int s= ize) { /* This writes the bottom N bits of a 128 bit wide vector to memory */ - TCGv_i64 tmp =3D tcg_temp_new_i64(); - tcg_gen_ld_i64(tmp, cpu_env, fp_reg_offset(s, srcidx, MO_64)); + TCGv_i64 tmplo =3D tcg_temp_new_i64(); + MemOp mop; + + tcg_gen_ld_i64(tmplo, cpu_env, fp_reg_offset(s, srcidx, MO_64)); + if (size < 4) { - tcg_gen_qemu_st_i64(tmp, tcg_addr, get_mem_index(s), - s->be_data + size); + mop =3D finalize_memop(s, size); + tcg_gen_qemu_st_i64(tmplo, tcg_addr, get_mem_index(s), mop); } else { bool be =3D s->be_data =3D=3D MO_BE; TCGv_i64 tcg_hiaddr =3D tcg_temp_new_i64(); + TCGv_i64 tmphi =3D tcg_temp_new_i64(); =20 + tcg_gen_ld_i64(tmphi, cpu_env, fp_reg_hi_offset(s, srcidx)); + + mop =3D s->be_data | MO_Q; + tcg_gen_qemu_st_i64(be ? tmphi : tmplo, tcg_addr, get_mem_index(s), + mop | (s->align_mem ? MO_ALIGN_16 : 0)); tcg_gen_addi_i64(tcg_hiaddr, tcg_addr, 8); - tcg_gen_qemu_st_i64(tmp, be ? tcg_hiaddr : tcg_addr, get_mem_index= (s), - s->be_data | MO_Q); - tcg_gen_ld_i64(tmp, cpu_env, fp_reg_hi_offset(s, srcidx)); - tcg_gen_qemu_st_i64(tmp, be ? tcg_addr : tcg_hiaddr, get_mem_index= (s), - s->be_data | MO_Q); + tcg_gen_qemu_st_i64(be ? tmplo : tmphi, tcg_hiaddr, + get_mem_index(s), mop); + tcg_temp_free_i64(tcg_hiaddr); + tcg_temp_free_i64(tmphi); } =20 - tcg_temp_free_i64(tmp); + tcg_temp_free_i64(tmplo); } =20 /* @@ -986,10 +994,11 @@ static void do_fp_ld(DisasContext *s, int destidx, TC= Gv_i64 tcg_addr, int size) /* This always zero-extends and writes to a full 128 bit wide vector */ TCGv_i64 tmplo =3D tcg_temp_new_i64(); TCGv_i64 tmphi =3D NULL; + MemOp mop; =20 if (size < 4) { - MemOp memop =3D s->be_data + size; - tcg_gen_qemu_ld_i64(tmplo, tcg_addr, get_mem_index(s), memop); + mop =3D finalize_memop(s, size); + tcg_gen_qemu_ld_i64(tmplo, tcg_addr, get_mem_index(s), mop); } else { bool be =3D s->be_data =3D=3D MO_BE; TCGv_i64 tcg_hiaddr; @@ -997,11 +1006,12 @@ static void do_fp_ld(DisasContext *s, int destidx, T= CGv_i64 tcg_addr, int size) tmphi =3D tcg_temp_new_i64(); tcg_hiaddr =3D tcg_temp_new_i64(); =20 + mop =3D s->be_data | MO_Q; + tcg_gen_qemu_ld_i64(be ? tmphi : tmplo, tcg_addr, get_mem_index(s), + mop | (s->align_mem ? MO_ALIGN_16 : 0)); tcg_gen_addi_i64(tcg_hiaddr, tcg_addr, 8); - tcg_gen_qemu_ld_i64(tmplo, be ? tcg_hiaddr : tcg_addr, get_mem_ind= ex(s), - s->be_data | MO_Q); - tcg_gen_qemu_ld_i64(tmphi, be ? tcg_addr : tcg_hiaddr, get_mem_ind= ex(s), - s->be_data | MO_Q); + tcg_gen_qemu_ld_i64(be ? tmplo : tmphi, tcg_hiaddr, + get_mem_index(s), mop); tcg_temp_free_i64(tcg_hiaddr); } =20 --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607453480; cv=none; d=zohomail.com; s=zohoarc; b=hIt+PuuOFR++jCrAUCOfRqoc9tBlYl95i22KNo3x18k/kozmd2A5W8LVg901Uc+RAXPYzmEjX/rIZPsR6k2YyaTq85ajh63e4ZYlkpaxOFSI8SA027Ve0w3IC0TCyVmg784sIl3uD3VMrYTGMoprMdb3vTe/QeBXBz5k/+fS5AI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607453480; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fercAGK8YQyiVry22f4HwuGxBL5M6y/uB9CpbtGGXJs=; b=kCTb9Ta7PcECbPeGZL53HHT95KYxw779GhmIav3LtFgiqbWJmzG7W+Zs9wrTXea+Jx/sWvriSwiuuvEVwp6ljLwX+lTXKoq5HNI4R88Q8MtAdRasvY0AfB2ZvU7/1BTFhzD1+Pyinp/WLqSNRxxD46S+U8V/Aybsqqqte5TjNYg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607453480948223.32424711212025; Tue, 8 Dec 2020 10:51:20 -0800 (PST) Received: from localhost ([::1]:56972 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhUk-0002Vx-3I for importer@patchew.org; Tue, 08 Dec 2020 13:13:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57288) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJL-0008Da-7q for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:03 -0500 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:36431) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJG-0006Q9-Oy for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:02 -0500 Received: by mail-ot1-x341.google.com with SMTP id y24so16645135otk.3 for ; Tue, 08 Dec 2020 10:01:57 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fercAGK8YQyiVry22f4HwuGxBL5M6y/uB9CpbtGGXJs=; b=KD9zBPdoQoHt/DYMPtmuyY8Gp0D6FAeRXOPpYvg6cBh3EE2Rz0JomAI7k0LZPGexGZ Lw6lilmJXlx0Uklk9zUbeiLIvcCpN0hIQLfggb8fQh5FfxmE9zpozam0JG2O3kxPwMMr rJ1CVplBocDBYY79Oi1IQxZEIjZwW3adEgzHuqUJP/jJjLyh1r2pVTbFwxSGZwGBokVA o2iqyu3Peic7iTzZhutRhjVhtCtQoGYOXZ/Suvw6O5gXy7WAKesO6YiJG3oTeL3gGtWw a7fqNCW6E01Pf02NZwJD0MAh6Au5HlF9xeqvIMqFMPorzUQGausA/8usyAqoWo1HeOyc j5eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=fercAGK8YQyiVry22f4HwuGxBL5M6y/uB9CpbtGGXJs=; b=jsG4/pVIOLWVTInw+thHmb+HCEVE1HbAAnzlkqlpW0M5OYpM56RTHELW4VuPQI8kpB RVs2NY4rNBSUcirKN11NidOomofjy7VuA/ZnaUiPjutZBBeixcgd1O86rZV0mhweSqe3 szcS8V9rzzKQvWSE7DpzPNfAC+rRvnnBjyN2i2AgODOWNAjwlLg4OHekdOBwSQucMDOR FwOR9qbagy0d2/zuV+A2bQBYHfzRsEzz5Ya2fW7p495im4jui9UivS72PAUZmdfNfom7 KA+jnDkYBuGSpcb5VrRUFu/YjKghHCs13fLkAeBwxYfEHS/7FxMfuJaUIrZgddPBXhzD 1BOA== X-Gm-Message-State: AOAM530SbxLGGCwpN7GcBD1G/fEGX7mgzK/pKPQjST8y13VIaVewD8j1 xqku1UNR6AuH/ba+11+oN/HqqmeVx1eAmUi0 X-Google-Smtp-Source: ABdhPJzkh13rSIAcTv2O71qYG33I9kVqv00R8xDFAhRtRYjdUDcUcuk1TYp8paL2brlP1m43qorQJw== X-Received: by 2002:a9d:7c98:: with SMTP id q24mr17538772otn.147.1607450516518; Tue, 08 Dec 2020 10:01:56 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 19/24] target/arm: Enforce alignment for aa64 load-acq/store-rel Date: Tue, 8 Dec 2020 12:01:13 -0600 Message-Id: <20201208180118.157911-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::341; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x341.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-a64.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 152a0a37ab..67a9b3bb09 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -2669,7 +2669,8 @@ static void disas_ldst_excl(DisasContext *s, uint32_t= insn) tcg_gen_mb(TCG_MO_ALL | TCG_BAR_STRL); clean_addr =3D gen_mte_check1(s, cpu_reg_sp(s, rn), true, rn !=3D 31, size); - do_gpr_st(s, cpu_reg(s, rt), clean_addr, size, true, rt, + /* TODO: ARMv8.4-LSE SCTLR.nAA */ + do_gpr_st(s, cpu_reg(s, rt), clean_addr, size | MO_ALIGN, true, rt, disas_ldst_compute_iss_sf(size, false, 0), is_lasr); return; =20 @@ -2686,8 +2687,9 @@ static void disas_ldst_excl(DisasContext *s, uint32_t= insn) } clean_addr =3D gen_mte_check1(s, cpu_reg_sp(s, rn), false, rn !=3D 31, size); - do_gpr_ld(s, cpu_reg(s, rt), clean_addr, size, false, true, rt, - disas_ldst_compute_iss_sf(size, false, 0), is_lasr); + /* TODO: ARMv8.4-LSE SCTLR.nAA */ + do_gpr_ld(s, cpu_reg(s, rt), clean_addr, size | MO_ALIGN, false, t= rue, + rt, disas_ldst_compute_iss_sf(size, false, 0), is_lasr); tcg_gen_mb(TCG_MO_ALL | TCG_BAR_LDAQ); return; =20 @@ -3476,15 +3478,18 @@ static void disas_ldst_ldapr_stlr(DisasContext *s, = uint32_t insn) int size =3D extract32(insn, 30, 2); TCGv_i64 clean_addr, dirty_addr; bool is_store =3D false; - bool is_signed =3D false; bool extend =3D false; bool iss_sf; + MemOp mop; =20 if (!dc_isar_feature(aa64_rcpc_8_4, s)) { unallocated_encoding(s); return; } =20 + /* TODO: ARMv8.4-LSE SCTLR.nAA */ + mop =3D size | MO_ALIGN; + switch (opc) { case 0: /* STLURB */ is_store =3D true; @@ -3496,21 +3501,21 @@ static void disas_ldst_ldapr_stlr(DisasContext *s, = uint32_t insn) unallocated_encoding(s); return; } - is_signed =3D true; + mop |=3D MO_SIGN; break; case 3: /* LDAPURS* 32-bit variant */ if (size > 1) { unallocated_encoding(s); return; } - is_signed =3D true; + mop |=3D MO_SIGN; extend =3D true; /* zero-extend 32->64 after signed load */ break; default: g_assert_not_reached(); } =20 - iss_sf =3D disas_ldst_compute_iss_sf(size, is_signed, opc); + iss_sf =3D disas_ldst_compute_iss_sf(size, (mop & MO_SIGN) !=3D 0, opc= ); =20 if (rn =3D=3D 31) { gen_check_sp_alignment(s); @@ -3523,13 +3528,13 @@ static void disas_ldst_ldapr_stlr(DisasContext *s, = uint32_t insn) if (is_store) { /* Store-Release semantics */ tcg_gen_mb(TCG_MO_ALL | TCG_BAR_STRL); - do_gpr_st(s, cpu_reg(s, rt), clean_addr, size, true, rt, iss_sf, t= rue); + do_gpr_st(s, cpu_reg(s, rt), clean_addr, mop, true, rt, iss_sf, tr= ue); } else { /* * Load-AcquirePC semantics; we implement as the slightly more * restrictive Load-Acquire. */ - do_gpr_ld(s, cpu_reg(s, rt), clean_addr, size + is_signed * MO_SIG= N, + do_gpr_ld(s, cpu_reg(s, rt), clean_addr, mop, extend, true, rt, iss_sf, true); tcg_gen_mb(TCG_MO_ALL | TCG_BAR_LDAQ); } --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607457811; cv=none; d=zohomail.com; s=zohoarc; b=NE3FEvusEvNHHOWW0XDmV+BAKQ0qKxfn8fx2XJf6iOulZ6BRpw/SkfCZh2yhOyPUvVoAz8iIOX3ori0SxajOkJobxDHwmudPr9ecs1+Ut+rto56DM6LVhESEeBioHGksFol8MkLjGM+NxBwVPfSGyzTwkUVonaxnDJ1IMkI8DEs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607457811; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=toey/Gh1G1DJzpsLs7WlNkSOV2iyUSzl10bK1A4OJt8=; b=Yc0Rc1ZQlik9EmHq8iX1F6FLa1TmIIY+sE0lXukOjm97MBx4HTLGLX4ZPgHwCO7ooWkkgAGigOGVscojk6Qt8bXJRSA22XEvz9FA06JIeiYA4RpttVueiWcSrX1Uo+gaidpOSvXqZgmUinAwab+FOXN48npGwqtJqbjy1arGw6s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607457811683824.5494197369816; Tue, 8 Dec 2020 12:03:31 -0800 (PST) Received: from localhost ([::1]:46100 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhd1-0001VD-MQ for importer@patchew.org; Tue, 08 Dec 2020 13:22:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57276) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJK-0008D3-UA for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:03 -0500 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]:42701) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJH-0006QJ-9P for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:02 -0500 Received: by mail-oi1-x243.google.com with SMTP id l200so20282444oig.9 for ; Tue, 08 Dec 2020 10:01:58 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=toey/Gh1G1DJzpsLs7WlNkSOV2iyUSzl10bK1A4OJt8=; b=X+43ehSXn9Sg7B+OUPjnZ6gHKUbqSWZ0oGJi0VFPyk/S9kUW/Zj1InEM56Y+oDjSqs 0sZyWMGBxIXa1bvXj0Y5H3v4qVC2k69g9mpTsbqH5Gd9hrGrpGepMmU0hUBAm4JgolwA 6ouB8HCX8G51WvRsPfS2u0Ysx1faVnNUp5OTqRlOdX1tiEWtSmEjolqqXiKl8A72cJR3 vJRiWo5clIjpX3XIvL0IGdD6YL42WG0mpDbK/rkeYM0gDjWay8QPBNM1v6SY+Z07p1cM 0KTtmyi3DZnJL/uBpmOKsKvhEiFClYTFKpI+aP084OpU97nMmZ6TUBErc87FSHVhGeUZ 5Hmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=toey/Gh1G1DJzpsLs7WlNkSOV2iyUSzl10bK1A4OJt8=; b=kiVXtSHtpDvC7/H/ZBCto2+V2QguolAnlpSz1yL51eWwQsA2/HVr1+lrfqtDQrOQbW qiqWqwJcMsXZzbrcNRxDdjq0pyy+PSQgzRYRHAIfOwj6NJ/zT2VZVqjgGcuxGJJU4D54 PaX8hhQ2lQxfI3fRsGYBl5nhYK97+Kh9YA2GV1SlK3BqTx9m+3ntYPNBC7vUnkjQAdw+ LO1UbpZUX/ovfuoq1KxcxVWoN9z9hO9a7D19je4ElGMHKowM6avDouIGlLJF6eG6AZ1O rvCobjDPtsDL5+/wXEGbpgTJ8xOFS41YxEHR2Ke8Kf0FgTrz/BfA4j5eziMEHOoDvxZj 4XUQ== X-Gm-Message-State: AOAM530TDE6Cnq4XeXo9ZqrG4e9QldxLN+k5xyXk8UsN6lLCdF8OCuvw 35g4oVbXNLNx+6MAhBmoE6UpRF0LDJ6yLVd9 X-Google-Smtp-Source: ABdhPJytsxU9nwl/mcYl1xUOU8HBc7O6utu48c9eSHmNfbTCdUVEpo83bq0WR8CKwUOhd+zDVc6H6g== X-Received: by 2002:aca:383:: with SMTP id 125mr3598440oid.122.1607450517995; Tue, 08 Dec 2020 10:01:57 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 20/24] target/arm: Use MemOp for size + endian in aa64 vector ld/st Date: Tue, 8 Dec 2020 12:01:14 -0600 Message-Id: <20201208180118.157911-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::243; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x243.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-a64.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 67a9b3bb09..4395721446 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -1140,24 +1140,24 @@ static void write_vec_element_i32(DisasContext *s, = TCGv_i32 tcg_src, =20 /* Store from vector register to memory */ static void do_vec_st(DisasContext *s, int srcidx, int element, - TCGv_i64 tcg_addr, int size, MemOp endian) + TCGv_i64 tcg_addr, MemOp mop) { TCGv_i64 tcg_tmp =3D tcg_temp_new_i64(); =20 - read_vec_element(s, tcg_tmp, srcidx, element, size); - tcg_gen_qemu_st_i64(tcg_tmp, tcg_addr, get_mem_index(s), endian | size= ); + read_vec_element(s, tcg_tmp, srcidx, element, mop & MO_SIZE); + tcg_gen_qemu_st_i64(tcg_tmp, tcg_addr, get_mem_index(s), mop); =20 tcg_temp_free_i64(tcg_tmp); } =20 /* Load from memory to vector register */ static void do_vec_ld(DisasContext *s, int destidx, int element, - TCGv_i64 tcg_addr, int size, MemOp endian) + TCGv_i64 tcg_addr, MemOp mop) { TCGv_i64 tcg_tmp =3D tcg_temp_new_i64(); =20 - tcg_gen_qemu_ld_i64(tcg_tmp, tcg_addr, get_mem_index(s), endian | size= ); - write_vec_element(s, tcg_tmp, destidx, element, size); + tcg_gen_qemu_ld_i64(tcg_tmp, tcg_addr, get_mem_index(s), mop); + write_vec_element(s, tcg_tmp, destidx, element, mop & MO_SIZE); =20 tcg_temp_free_i64(tcg_tmp); } @@ -3705,9 +3705,9 @@ static void disas_ldst_multiple_struct(DisasContext *= s, uint32_t insn) for (xs =3D 0; xs < selem; xs++) { int tt =3D (rt + r + xs) % 32; if (is_store) { - do_vec_st(s, tt, e, clean_addr, size, endian); + do_vec_st(s, tt, e, clean_addr, size | endian); } else { - do_vec_ld(s, tt, e, clean_addr, size, endian); + do_vec_ld(s, tt, e, clean_addr, size | endian); } tcg_gen_add_i64(clean_addr, clean_addr, tcg_ebytes); } @@ -3856,9 +3856,9 @@ static void disas_ldst_single_struct(DisasContext *s,= uint32_t insn) } else { /* Load/store one element per register */ if (is_load) { - do_vec_ld(s, rt, index, clean_addr, scale, s->be_data); + do_vec_ld(s, rt, index, clean_addr, scale | s->be_data); } else { - do_vec_st(s, rt, index, clean_addr, scale, s->be_data); + do_vec_st(s, rt, index, clean_addr, scale | s->be_data); } } tcg_gen_add_i64(clean_addr, clean_addr, tcg_ebytes); --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607452199; cv=none; d=zohomail.com; s=zohoarc; b=J+mvlQrpu9vp/rK+zG9PJqF96lWge+b3VvHTi0OlaHOcflV6M3ceCyH6ct5J/kQ4YC57Xj0FxQMPVJ9dmWOG6k7GrA8zckCbJBhOsmfkfDu0uvwVqI4JoHBg3NwU5kYXdKM0Eq5pHUpKSle/8gUEebEJYGxoKMy/ctSNKt1Hvac= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607452199; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mHiA1C5Y7pkklfwKOXVU5WKjHSgV8PTwFN03Z8NX718=; b=H/Fl+WJU6YY4eswGr8pbr+kqapdZZ0iMLcLn+sBT11B6bETJVcpYxqBCCfLznDsta83LgX5vO/OwS6u0iBCEEaYt3igQVRtMhzXlyaBbOFtptLCfnMS5re2Jlp0kHPk/xItr6oveQv/hwFOT3Nn+mIqHHJDx7Y1OoGinG9btha8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607452199637693.6634360087947; Tue, 8 Dec 2020 10:29:59 -0800 (PST) Received: from localhost ([::1]:43984 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhc8-0000Xh-Fz for importer@patchew.org; Tue, 08 Dec 2020 13:21:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57270) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJK-0008D1-Rb for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:02 -0500 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:40901) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJI-0006Qa-LM for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:02 -0500 Received: by mail-ot1-x341.google.com with SMTP id j12so16590884ota.7 for ; Tue, 08 Dec 2020 10:02:00 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:01:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mHiA1C5Y7pkklfwKOXVU5WKjHSgV8PTwFN03Z8NX718=; b=W9L2BtUwbPBh+M7M4z9vPNjQJEHsvsMiTRbfMW6ZMCjt8z2gkA+NWuvWo99VScU7ZZ QBGFNfFZwnnclx2nxa/s8mUXb6xIwuVzWdWCuowozjWHBa4NGZ1VeVLR2htv/h2XzPCs E2EpEPSb5jxhMuhUhLcRmb8Hfqer+q6SmZI9yS5EJk2zu5mM87+3FfDLbpwuyqUehk16 VTR8rCnhtAxx5yod47lN96JNgfStlSRXuQ10GmJaR3faLccF1SFlYMVfjU7YN7x32scN IzGNoSF79oxpY+br5hLdd7EQhEhomMf20VLljvk9gmX8QeUeoqYNpw9tIqSEzdEvXt+l 2Ebg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mHiA1C5Y7pkklfwKOXVU5WKjHSgV8PTwFN03Z8NX718=; b=S2NeDHfbTydEroxfCh4seceM+uTUihI2SmSqNAg26Sbau3dGOnIrq0EOLodgPGl5pp cL8f1kx/X1fEethkB407ESvoWxYWocQsTjEuJAcOHBdO+9+DbV94UYZCrARpDoDuXgWY Uis58KnOmje/FxQS4Ub+oymgoJYNsPNX7mkfTmomMz8/Y7W9WVlEQ6JiXHAUGF1PX5zF 8trjmsRTPjch4jSqsZpjls7mDR/9n6thcyteIbnX4ltdD4MuX4AJkUoHjTkAgsMZlXEh ps9XpxPJ47XncBX595DESQtCAOW6ypFY9wZayFp3Kp1RkIn7K28ZPhpR6x/tXS26xAJ5 N8IA== X-Gm-Message-State: AOAM531IGdM9VnqWQVRLhF2nm0V0ZrHrp/A9Gh6fkGVcWFUkAYe6QmuQ y8OuhyBwNwCRHtNqN+uTrlIbGV70+0iZgnRP X-Google-Smtp-Source: ABdhPJx3lmScJOYgYdeGHzVgGBornCJNQOHop5r89HOoWPGdPVGWMRhgRVjSdbWbkY53P9M6TIDG+Q== X-Received: by 2002:a05:6830:1610:: with SMTP id g16mr8739416otr.345.1607450519413; Tue, 08 Dec 2020 10:01:59 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 21/24] target/arm: Enforce alignment for aa64 vector LDn/STn (multiple) Date: Tue, 8 Dec 2020 12:01:15 -0600 Message-Id: <20201208180118.157911-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::341; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x341.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-a64.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 4395721446..93065242cc 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -3606,7 +3606,7 @@ static void disas_ldst_multiple_struct(DisasContext *= s, uint32_t insn) bool is_postidx =3D extract32(insn, 23, 1); bool is_q =3D extract32(insn, 30, 1); TCGv_i64 clean_addr, tcg_rn, tcg_ebytes; - MemOp endian =3D s->be_data; + MemOp endian, align, mop; =20 int total; /* total bytes */ int elements; /* elements per vector */ @@ -3674,6 +3674,7 @@ static void disas_ldst_multiple_struct(DisasContext *= s, uint32_t insn) } =20 /* For our purposes, bytes are always little-endian. */ + endian =3D s->be_data; if (size =3D=3D 0) { endian =3D MO_LE; } @@ -3692,11 +3693,17 @@ static void disas_ldst_multiple_struct(DisasContext= *s, uint32_t insn) * Consecutive little-endian elements from a single register * can be promoted to a larger little-endian operation. */ + align =3D MO_ALIGN; if (selem =3D=3D 1 && endian =3D=3D MO_LE) { + align =3D pow2_align(size); size =3D 3; } - elements =3D (is_q ? 16 : 8) >> size; + if (!s->align_mem) { + align =3D 0; + } + mop =3D endian | size | align; =20 + elements =3D (is_q ? 16 : 8) >> size; tcg_ebytes =3D tcg_const_i64(1 << size); for (r =3D 0; r < rpt; r++) { int e; @@ -3705,9 +3712,9 @@ static void disas_ldst_multiple_struct(DisasContext *= s, uint32_t insn) for (xs =3D 0; xs < selem; xs++) { int tt =3D (rt + r + xs) % 32; if (is_store) { - do_vec_st(s, tt, e, clean_addr, size | endian); + do_vec_st(s, tt, e, clean_addr, mop); } else { - do_vec_ld(s, tt, e, clean_addr, size | endian); + do_vec_ld(s, tt, e, clean_addr, mop); } tcg_gen_add_i64(clean_addr, clean_addr, tcg_ebytes); } --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607454257; cv=none; d=zohomail.com; s=zohoarc; b=jrvZW+WGR5SwjbWBEFMkCL3rMc5Y2MXyLtZa+FBOzcmps5F1aerLsW4sRav3OU3MmGpVFev2t0liVNO88pAUCy6ESKHQstrrhG8Gr3rIUQuBpZbOVnvLDvd5SjMqsxomgLkusag2kLVYjUgFUBpbZnNw8DwYtD6w8bp7F5bBMR0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607454257; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6YevB6XxUr3y7N2xo8cdsW/ofLzNXY3bTUOzdECTRRM=; b=FhDeHNEyQjRlXuRP0ZGhGVvAfPf2PFRcmb6zO7LsNHpAtvTuuvDSPNzpTSMIqwsOyA8ICWtxY6NTeMHqfkJtcsxphvDtSaOyf4MEvFg2H2WSD8+67mpL7KH3gdToBLgWlXG0zQsdreFa3gRvVS2+OwCKqNQtQPXvdoaKbNTPrq0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607454257348155.39480256972388; Tue, 8 Dec 2020 11:04:17 -0800 (PST) Received: from localhost ([::1]:52222 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhfi-00042u-40 for importer@patchew.org; Tue, 08 Dec 2020 13:25:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57310) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJM-0008Fc-JC for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:04 -0500 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:41831) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJK-0006Qx-Cs for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:04 -0500 Received: by mail-ot1-x341.google.com with SMTP id x13so9108707oto.8 for ; Tue, 08 Dec 2020 10:02:01 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.01.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:02:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6YevB6XxUr3y7N2xo8cdsW/ofLzNXY3bTUOzdECTRRM=; b=gZVBL7U/2m3jSDxR/JkjzdQi3og/2NIfsy0zIKm6sMqIGSNZ3gUhro9lzEVMWsDFPi uH8WvYFstBErhzmhgGkRJSm5pwhEcYgVmBCk/7KuW6NMekje6+J8nW7qoxrjOsYASve8 QR6KRCY3FT7Cuo/0xIlVaBpg5GM5ev4D/7IhagkehgChXB0xG+HbJ1NltZh2KJF6uDGX LpZg6VCqxW5ZO2ZfaqJ6clUpZzYrlg75qrMhBIyMv5OgmKBKr58Sh31um1NKCQY1tQkX eGcRXM3YnHOXgfLPwPyCkktkZC8hAGHZ0wVYYE6zuETuxvQMrNV1WYI0RWM1lqsA92r9 rr+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6YevB6XxUr3y7N2xo8cdsW/ofLzNXY3bTUOzdECTRRM=; b=C/SY4Lsi+sF0X3qrGW4xXOGYr8Ca3mOdGOHyghhqi9eZbyjCRrMhNdq/osKsNSREDc oIIGYL2PMqoQR/edtHEMsAM8c6Hfzfa1F8i6BoQKzTD40Xs1ZFZ/yZLtZowHh8AsUfm9 /gsCeJam5hFk4CheQJd/5dM4TDiYrgITMJi6zqCnC+AxOCfsxKaZ3XCef3jl6o9OiFPC wS1AbonT6Mg4EC89sRJHaroidTSJkQ7fR6LuTvQJyPmmj9QOR/4uzYKmf815/81a59zS NmYuI0yY3RqNSFnIjeDyupUCTZWGVIybPgMIL0xMxL0sn6SLSRX/7cFYBwOFJPZZt7rw R/sg== X-Gm-Message-State: AOAM531A6H+jqjfmzX0OdkPDoT0by/aLdXNRU0f/8f24lXXjGHxD2ekD tGfjXV0SbR2SCF6By2BnmhQ4qsMufIhSzpq4 X-Google-Smtp-Source: ABdhPJzu460Zt8R1XflaZ2ecJ1RsbeF2MPU21ZYE0l+c91ZV95gb2UToVJaGMDMTFlvbzXlxyD7fEA== X-Received: by 2002:a05:6830:1253:: with SMTP id s19mr4193933otp.270.1607450520661; Tue, 08 Dec 2020 10:02:00 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 22/24] target/arm: Enforce alignment for aa64 vector LDn/STn (single) Date: Tue, 8 Dec 2020 12:01:16 -0600 Message-Id: <20201208180118.157911-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::341; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x341.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-a64.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 93065242cc..57042b8bb7 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -3786,6 +3786,7 @@ static void disas_ldst_single_struct(DisasContext *s,= uint32_t insn) int index =3D is_q << 3 | S << 2 | size; int xs, total; TCGv_i64 clean_addr, tcg_rn, tcg_ebytes; + MemOp mop; =20 if (extract32(insn, 31, 1)) { unallocated_encoding(s); @@ -3847,6 +3848,7 @@ static void disas_ldst_single_struct(DisasContext *s,= uint32_t insn) =20 clean_addr =3D gen_mte_checkN(s, tcg_rn, !is_load, is_postidx || rn != =3D 31, scale, total); + mop =3D finalize_memop(s, scale); =20 tcg_ebytes =3D tcg_const_i64(1 << scale); for (xs =3D 0; xs < selem; xs++) { @@ -3854,8 +3856,7 @@ static void disas_ldst_single_struct(DisasContext *s,= uint32_t insn) /* Load and replicate to all elements */ TCGv_i64 tcg_tmp =3D tcg_temp_new_i64(); =20 - tcg_gen_qemu_ld_i64(tcg_tmp, clean_addr, - get_mem_index(s), s->be_data + scale); + tcg_gen_qemu_ld_i64(tcg_tmp, clean_addr, get_mem_index(s), mop= ); tcg_gen_gvec_dup_i64(scale, vec_full_reg_offset(s, rt), (is_q + 1) * 8, vec_full_reg_size(s), tcg_tmp); @@ -3863,9 +3864,9 @@ static void disas_ldst_single_struct(DisasContext *s,= uint32_t insn) } else { /* Load/store one element per register */ if (is_load) { - do_vec_ld(s, rt, index, clean_addr, scale | s->be_data); + do_vec_ld(s, rt, index, clean_addr, mop); } else { - do_vec_st(s, rt, index, clean_addr, scale | s->be_data); + do_vec_st(s, rt, index, clean_addr, mop); } } tcg_gen_add_i64(clean_addr, clean_addr, tcg_ebytes); --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607451985; cv=none; d=zohomail.com; s=zohoarc; b=kdt8ZoE0pzU+4y/+t+fNI2zZUx58dLIBsbs18WjvOznX4TKPtdiTfqreJgTlty9cwseMxulQBSH3eQu/pOKlYWgBlZI+Eu7AYOOii/eiAPSFpTurR9GIZjqgHeGkY8LcHcaw3kwG0O3JKmTs9bycwUVJ6gaiziZSawK0nrTzv+o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607451985; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=G+qmvWx2TCzth2dVwX4A6/f1UaV19mtvUFXgAobfsjw=; b=eeAopVBtlw0vJey8HuM+MnTw06HNRvk/nwG9igbG2I1YhNY4G98XqKT9nk60s58IZT16+AyllqveNrO64ghfqwCzBAh0Ze5K+EdpA4DN1xt7zIqdXtIPbm7IG+T8TcIkR5lmScoRr3oECt0Zvie73OIizQ5SSfrw/rr1/bO+n2I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607451985594394.5887815668225; Tue, 8 Dec 2020 10:26:25 -0800 (PST) Received: from localhost ([::1]:54246 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhgu-0004tr-2E for importer@patchew.org; Tue, 08 Dec 2020 13:26:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57366) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJP-0008Ik-LV for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:07 -0500 Received: from mail-oi1-x241.google.com ([2607:f8b0:4864:20::241]:37237) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJM-0006RO-5h for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:07 -0500 Received: by mail-oi1-x241.google.com with SMTP id l207so17416196oib.4 for ; Tue, 08 Dec 2020 10:02:03 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.02.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:02:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=G+qmvWx2TCzth2dVwX4A6/f1UaV19mtvUFXgAobfsjw=; b=h3owAu2hMeAY+B7TD+bDj+bXVSi28rrMbbBqCFpYlUHrZ0czpcmQxdrXpPoAbTWrW/ A89kukVEuUwwj/y/cd+/dHSwls2+SdiHAZh9y0WErEbaS6d6II0DS2Bb+VuflYs5GeX7 y5iCM62S64tsBM5kUWs6VRx5u+70ChKBUWipD8L52pnE/YU6HDh+syLDRZQ/J9blpTxA Eo0NVF/CUUf2Or7fGpyXQ+OEqwlDaL1N/mqpvsVdqPKeXjsUfkNSpDKHw/6B4HiZ2bOg cwktSxqfbEDMMeHRrFvaPTKv3ny4afwA31QDgfmG0bLbguay0dfqSkcKBtpEHF02UMrv kWkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=G+qmvWx2TCzth2dVwX4A6/f1UaV19mtvUFXgAobfsjw=; b=qzbANkqgfeuPZLxlZGpDRNzIkdspFeLg+ujF4ROM3DVxYimTB7dzpNlIadR1iHeG+M g1g0K7EldtaLkMiTYZAJI0FYZifpjfXU+CoClFkHTUdZ2ehx5Jb3/GwWbJrgDULw/fyf wCB0U3s5WynUdkGtefdDbi2lLsIWPAqP8yNdBqn86QYexxT5A7yVpoeOCQSho8MBNDdQ ohXo5+7E5uFq4lROzjTVa/Y0eCZhnei4bD+OLBOCkRVm+/jdxjq4CkvJCwQ7qLUc+uj9 TelL3SD255HqTUFb4uGPwp/DpozU1EzH7hogPhFdkEDazC6v4dFkqmmqMLQ4+xDbJ2QZ PpAA== X-Gm-Message-State: AOAM532ZGi1REbusfQ1vNqU+/Bdt+7Y1mA67XMhbiVKyMF0apdAmOX/y BXykTskO9Q6YoQ92UMBiwDb+Z5Jk5PM7rTWI X-Google-Smtp-Source: ABdhPJwSfoDwPs5hbf7LbngVEq981wlij9y1UdX+RsE/LNk2SulF8LsFXGl04jRgnkcbjR9IdqYXYQ== X-Received: by 2002:aca:59c2:: with SMTP id n185mr3652762oib.96.1607450522285; Tue, 08 Dec 2020 10:02:02 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 23/24] target/arm: Enforce alignment for sve LD1R Date: Tue, 8 Dec 2020 12:01:17 -0600 Message-Id: <20201208180118.157911-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::241; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x241.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-sve.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c index 0c3a6d2121..6125e734af 100644 --- a/target/arm/translate-sve.c +++ b/target/arm/translate-sve.c @@ -5011,7 +5011,7 @@ static bool trans_LD1R_zpri(DisasContext *s, arg_rpri= _load *a) clean_addr =3D gen_mte_check1(s, temp, false, true, msz); =20 tcg_gen_qemu_ld_i64(temp, clean_addr, get_mem_index(s), - s->be_data | dtype_mop[a->dtype]); + finalize_memop(s, dtype_mop[a->dtype])); =20 /* Broadcast to *all* elements. */ tcg_gen_gvec_dup_i64(esz, vec_full_reg_offset(s, a->rd), --=20 2.25.1 From nobody Mon Feb 9 18:03:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1607453630; cv=none; d=zohomail.com; s=zohoarc; b=Ia3GTf31hfJ0QWxZJsZUSuAfrc5DS0TmNTkuKLa/62N7Q9vLld/luI4YwSkVAqqdy7Deal1LY61hc6Sy6JawcIvx/897YXZtwjX3ow08X9jM9tvcgghx7ipYcsKPbUyGmPKn5PF5Vigws5Ar2btL6hmBPLAPpjOPDIkIjNf0h+U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607453630; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jrS4YN7W+7NBTb0aYWu3j+MLNMtf7Sqw2+Bh5j7akD8=; b=l62o/VVdICY4bnbrweDINpacHMFFNHoua7iJk2pzYDCINNXYcd/sgS6WdElNpKZ2YsS+qPXEYSnt8rdBQigbu7NKYjFsYPaalUBM4Ugi57mEtVRFRE3d2GCEIS7tcws6v4XH/xtTZJhVjLO9cTRtS0UkYgAeZkmGHj1uToS08Z0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607453630159973.2852539463498; Tue, 8 Dec 2020 10:53:50 -0800 (PST) Received: from localhost ([::1]:56042 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kmhyc-00014F-9n for importer@patchew.org; Tue, 08 Dec 2020 13:44:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57364) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmhJP-0008Ij-JN for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:07 -0500 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:46436) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmhJN-0006Rr-Fl for qemu-devel@nongnu.org; Tue, 08 Dec 2020 13:02:07 -0500 Received: by mail-oi1-x244.google.com with SMTP id k2so20300880oic.13 for ; Tue, 08 Dec 2020 10:02:04 -0800 (PST) Received: from localhost.localdomain (fixed-187-189-51-144.totalplay.net. [187.189.51.144]) by smtp.gmail.com with ESMTPSA id k20sm3886805oig.35.2020.12.08.10.02.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 10:02:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jrS4YN7W+7NBTb0aYWu3j+MLNMtf7Sqw2+Bh5j7akD8=; b=Js5NFBdLH3DabQVBsvkfls7euQYa6P+mszjiyENSLaLlp27Wl3BU0gCUoPjQ1SsNnl DJPR4MTLrhWri8dWx/UT3YCnW8qOsJP3+6pEa23V69ZyHGDaZ/CZVISt9B5QSPlSpruI eBbsDPpg22VZb0QSVbSTFgSwAp9Dn5ONtcrq2QHHt8V5jw7WlC4a5QOCiS6gGS8R61Ec Wcz9KGB+0Y4B2x5F/GU+0Ul+Di5aemvRnhzNzzn/z75kvrhe0Fzh83m0XrSX7Cqgt4mB S/wzWITFaOTNoouGH4keCln+KKUAtnHTjUJEGToeWMsOZaLoL0plkhOu8QQXE+Ojyywu hCuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jrS4YN7W+7NBTb0aYWu3j+MLNMtf7Sqw2+Bh5j7akD8=; b=e8VQrmdJ53+7+uLnVCeWXzqdJccNHSgDTa2cOqEp62LQJoKHEuR3uwlLERmTGrwgG8 TnhpDSKHfxojOUUqRovHNplVJNtWG+312sq9u1+5RkVnJ+6PbzNWzAJFEQFNQIo+mNhH JRX2fAdpU3f3QUiAvmRAtePgbXvGXCghFIByZ5179gNzJtQLS7Y7/PaF5OWkqtFf1G7O qjDY0KYHvD4NzRLjLhCBR849GQ/LXZehLDjqISSOgqMvqY89hafECx5slqCa6P8xuZYl 7oVKgATaj+VIlyrY4IRIQE39oKZevsVfekIOqGOGkvHLH0xChfNeRmIiGKfMCHJL2ugd Y2hw== X-Gm-Message-State: AOAM532ZjK+X8lGweCCSdKukwsZ41hWUPSDGmKfA56itS7ovV6bYNw1F VHyEyAh9dcMi0ukzNB0fz1DnY00+6Qs8mkyJ X-Google-Smtp-Source: ABdhPJxMXw1gzNXlxwIHb4CAY5lP9Wa8miP0MmwEK3XDC1CP0d+r+lMVMI074B6mcMPQLOcjE4umsw== X-Received: by 2002:aca:5a42:: with SMTP id o63mr3498827oib.69.1607450523604; Tue, 08 Dec 2020 10:02:03 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 24/24] target/arm: Enforce alignment for sve unpredicated LDR/STR Date: Tue, 8 Dec 2020 12:01:18 -0600 Message-Id: <20201208180118.157911-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201208180118.157911-1-richard.henderson@linaro.org> References: <20201208180118.157911-1-richard.henderson@linaro.org> 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::244; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x244.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/translate-sve.c | 58 +++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c index 6125e734af..b481e97428 100644 --- a/target/arm/translate-sve.c +++ b/target/arm/translate-sve.c @@ -4263,7 +4263,8 @@ static bool trans_UCVTF_dd(DisasContext *s, arg_rpr_e= sz *a) * The load should begin at the address Rn + IMM. */ =20 -static void do_ldr(DisasContext *s, uint32_t vofs, int len, int rn, int im= m) +static void do_ldr(DisasContext *s, uint32_t vofs, int len, + MemOp align, int rn, int imm) { int len_align =3D QEMU_ALIGN_DOWN(len, 8); int len_remain =3D len % 8; @@ -4276,6 +4277,10 @@ static void do_ldr(DisasContext *s, uint32_t vofs, i= nt len, int rn, int imm) clean_addr =3D gen_mte_checkN(s, dirty_addr, false, rn !=3D 31, len, M= O_8); tcg_temp_free_i64(dirty_addr); =20 + if (!s->align_mem) { + align =3D 0; + } + /* * Note that unpredicated load/store of vector/predicate registers * are defined as a stream of bytes, which equates to little-endian @@ -4288,7 +4293,8 @@ static void do_ldr(DisasContext *s, uint32_t vofs, in= t len, int rn, int imm) =20 t0 =3D tcg_temp_new_i64(); for (i =3D 0; i < len_align; i +=3D 8) { - tcg_gen_qemu_ld_i64(t0, clean_addr, midx, MO_LEQ); + tcg_gen_qemu_ld_i64(t0, clean_addr, midx, MO_LEQ | align); + align =3D 0; tcg_gen_st_i64(t0, cpu_env, vofs + i); tcg_gen_addi_i64(clean_addr, clean_addr, 8); } @@ -4302,6 +4308,16 @@ static void do_ldr(DisasContext *s, uint32_t vofs, i= nt len, int rn, int imm) clean_addr =3D new_tmp_a64_local(s); tcg_gen_mov_i64(clean_addr, t0); =20 + if (align > MO_ALIGN_8) { + t0 =3D tcg_temp_new_i64(); + tcg_gen_qemu_ld_i64(t0, clean_addr, midx, MO_LEQ | align); + tcg_gen_addi_i64(clean_addr, clean_addr, 8); + tcg_gen_addi_ptr(i, i, 8); + tcg_gen_st_i64(t0, cpu_env, vofs); + tcg_temp_free_i64(t0); + align =3D 0; + } + gen_set_label(loop); =20 t0 =3D tcg_temp_new_i64(); @@ -4330,12 +4346,12 @@ static void do_ldr(DisasContext *s, uint32_t vofs, = int len, int rn, int imm) case 4: case 8: tcg_gen_qemu_ld_i64(t0, clean_addr, midx, - MO_LE | ctz32(len_remain)); + MO_LE | ctz32(len_remain) | align); break; =20 case 6: t1 =3D tcg_temp_new_i64(); - tcg_gen_qemu_ld_i64(t0, clean_addr, midx, MO_LEUL); + tcg_gen_qemu_ld_i64(t0, clean_addr, midx, MO_LEUL | align); tcg_gen_addi_i64(clean_addr, clean_addr, 4); tcg_gen_qemu_ld_i64(t1, clean_addr, midx, MO_LEUW); tcg_gen_deposit_i64(t0, t0, t1, 32, 32); @@ -4351,7 +4367,8 @@ static void do_ldr(DisasContext *s, uint32_t vofs, in= t len, int rn, int imm) } =20 /* Similarly for stores. */ -static void do_str(DisasContext *s, uint32_t vofs, int len, int rn, int im= m) +static void do_str(DisasContext *s, uint32_t vofs, int len, MemOp align, + int rn, int imm) { int len_align =3D QEMU_ALIGN_DOWN(len, 8); int len_remain =3D len % 8; @@ -4364,6 +4381,10 @@ static void do_str(DisasContext *s, uint32_t vofs, i= nt len, int rn, int imm) clean_addr =3D gen_mte_checkN(s, dirty_addr, false, rn !=3D 31, len, M= O_8); tcg_temp_free_i64(dirty_addr); =20 + if (!s->align_mem) { + align =3D 0; + } + /* Note that unpredicated load/store of vector/predicate registers * are defined as a stream of bytes, which equates to little-endian * operations on larger quantities. There is no nice way to force @@ -4378,7 +4399,8 @@ static void do_str(DisasContext *s, uint32_t vofs, in= t len, int rn, int imm) t0 =3D tcg_temp_new_i64(); for (i =3D 0; i < len_align; i +=3D 8) { tcg_gen_ld_i64(t0, cpu_env, vofs + i); - tcg_gen_qemu_st_i64(t0, clean_addr, midx, MO_LEQ); + tcg_gen_qemu_st_i64(t0, clean_addr, midx, MO_LEQ | align); + align =3D 0; tcg_gen_addi_i64(clean_addr, clean_addr, 8); } tcg_temp_free_i64(t0); @@ -4391,6 +4413,16 @@ static void do_str(DisasContext *s, uint32_t vofs, i= nt len, int rn, int imm) clean_addr =3D new_tmp_a64_local(s); tcg_gen_mov_i64(clean_addr, t0); =20 + if (align > MO_ALIGN_8) { + t0 =3D tcg_temp_new_i64(); + tcg_gen_ld_i64(t0, cpu_env, vofs); + tcg_gen_qemu_st_i64(t0, clean_addr, midx, MO_LEQ | align); + tcg_gen_addi_i64(clean_addr, clean_addr, 8); + tcg_gen_addi_ptr(i, i, 8); + tcg_temp_free_i64(t0); + align =3D 0; + } + gen_set_label(loop); =20 t0 =3D tcg_temp_new_i64(); @@ -4400,7 +4432,7 @@ static void do_str(DisasContext *s, uint32_t vofs, in= t len, int rn, int imm) tcg_gen_addi_ptr(i, i, 8); tcg_temp_free_ptr(tp); =20 - tcg_gen_qemu_st_i64(t0, clean_addr, midx, MO_LEQ); + tcg_gen_qemu_st_i64(t0, clean_addr, midx, MO_LEQ | align); tcg_gen_addi_i64(clean_addr, clean_addr, 8); tcg_temp_free_i64(t0); =20 @@ -4418,11 +4450,11 @@ static void do_str(DisasContext *s, uint32_t vofs, = int len, int rn, int imm) case 4: case 8: tcg_gen_qemu_st_i64(t0, clean_addr, midx, - MO_LE | ctz32(len_remain)); + MO_LE | ctz32(len_remain) | align); break; =20 case 6: - tcg_gen_qemu_st_i64(t0, clean_addr, midx, MO_LEUL); + tcg_gen_qemu_st_i64(t0, clean_addr, midx, MO_LEUL | align); tcg_gen_addi_i64(clean_addr, clean_addr, 4); tcg_gen_shri_i64(t0, t0, 32); tcg_gen_qemu_st_i64(t0, clean_addr, midx, MO_LEUW); @@ -4440,7 +4472,7 @@ static bool trans_LDR_zri(DisasContext *s, arg_rri *a) if (sve_access_check(s)) { int size =3D vec_full_reg_size(s); int off =3D vec_full_reg_offset(s, a->rd); - do_ldr(s, off, size, a->rn, a->imm * size); + do_ldr(s, off, size, MO_ALIGN_16, a->rn, a->imm * size); } return true; } @@ -4450,7 +4482,7 @@ static bool trans_LDR_pri(DisasContext *s, arg_rri *a) if (sve_access_check(s)) { int size =3D pred_full_reg_size(s); int off =3D pred_full_reg_offset(s, a->rd); - do_ldr(s, off, size, a->rn, a->imm * size); + do_ldr(s, off, size, MO_ALIGN_2, a->rn, a->imm * size); } return true; } @@ -4460,7 +4492,7 @@ static bool trans_STR_zri(DisasContext *s, arg_rri *a) if (sve_access_check(s)) { int size =3D vec_full_reg_size(s); int off =3D vec_full_reg_offset(s, a->rd); - do_str(s, off, size, a->rn, a->imm * size); + do_str(s, off, size, MO_ALIGN_16, a->rn, a->imm * size); } return true; } @@ -4470,7 +4502,7 @@ static bool trans_STR_pri(DisasContext *s, arg_rri *a) if (sve_access_check(s)) { int size =3D pred_full_reg_size(s); int off =3D pred_full_reg_offset(s, a->rd); - do_str(s, off, size, a->rn, a->imm * size); + do_str(s, off, size, MO_ALIGN_2, a->rn, a->imm * size); } return true; } --=20 2.25.1