From patchwork Tue Feb 11 16:25:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 864109 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:1289:b0:385:e875:8a9e with SMTP id f9csp327967wrx; Tue, 11 Feb 2025 08:35:38 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXFGF88CAdCehaZQibtbKL9ybJa0rQMkRCCA266R0qrTb9tAfNOWJX9MS4gJlKRuTDnCNMA5g==@linaro.org X-Google-Smtp-Source: AGHT+IFTnSYnZ3zCtxW8KzsMIYZ3gg3uYyOnyB80HK6ibF5SQkJ039lKzexE9L7xq1rqwIKpHNuI X-Received: by 2002:a05:6214:1c09:b0:6d8:b3a7:75ba with SMTP id 6a1803df08f44-6e4457776bdmr286355016d6.45.1739291738669; Tue, 11 Feb 2025 08:35:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1739291738; cv=none; d=google.com; s=arc-20240605; b=LsOlhnQIHr6NDc55rDE3C/dk9CPY8pQLTqN42moBbQSojfxoeUpCG3O++ktS8/grqH f492eerfHE8aHXbZVEIabsV7k3DwrMJw2K8nu/xCh8yRvHRe/v97SVNe0P5DRRZK2CqA U4B+tD6C7VxCajZVE5VI9SbwbaJM78yIS3tpX/du/0uO4gC8usQr4LHTN1jdfMm1gLdv M8MZZGXThXYI9jFZWvQWNRKBuZoxu8658/zaK3+zXZFDgjUzvGxAfyHKuCaoq5s6IwQo +u6Iz77imo2a6kMxM4/rKQnH7v6EAgpEiwxRn0TtVMNgLQSQuuTRPesl/u76RH1ke1k+ EeHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=u/2K8Z3pwUQ/oXE8NyEXdkhcGga/r0RB0mzMV+vu/gw=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=Bvwxza4/8yo7mj6Ku88zCDzjfvXjiBj3NcRmG0iQhkwWfFzc5LrUjmNYJvMMI/Urb3 cy+DsLLM1guuHHuJO6VSraPTpNbZd+8hhmqABn5zlpk6CKGnDJRYYKoHcScqvYOALk5V UDaYjC10gKgTpD/JWPgQKzIObtlKdxpUBegT76Uis0QeG+0BJQ18esyDniSo5+hJfs2+ vmD/HM1F2apLQgm6arFBDBQFzbsWbbZcWjICSwmkK0F9N1Kx4euOmEI3lgEev+TsoHaR Qfb5cGbVfkFeGF1/n74vUVniT+ibp7O97h+ScZ5DmVtTue464NP/zoMKXtTzazVNIBI0 aHeA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Bbl/cP/O"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e44f6db59fsi87030616d6.186.2025.02.11.08.35.38 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 11 Feb 2025 08:35:38 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Bbl/cP/O"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tht7c-0003Bv-7e; Tue, 11 Feb 2025 11:28:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tht6P-0007BE-2x for qemu-devel@nongnu.org; Tue, 11 Feb 2025 11:27:13 -0500 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tht6K-0003ik-Je for qemu-devel@nongnu.org; Tue, 11 Feb 2025 11:27:12 -0500 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-43932b9b09aso36107665e9.3 for ; Tue, 11 Feb 2025 08:27:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739291227; x=1739896027; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=u/2K8Z3pwUQ/oXE8NyEXdkhcGga/r0RB0mzMV+vu/gw=; b=Bbl/cP/OuU4cbIMYi1B+fQ7jeDBlz8YfRQcgI0YYQKfa7HzD/LCCCZ7cTb/poTykN5 6bEbt3PYmDI77owMNsLq/db4P4egTXamdjl5gBBgj1Zuj+q5oHGA5NcxBDqb6+BT9bOb x2u8sObu/cQ+9WTGJp8n2zkBlECJ2Dpm4SqchGzppkEYEF/OVAB8Qv0Q8egMgZq3CQD9 RdPoXWw1LtB2q9v96Vgx9rVcQxwBR5k14o8DXfEdi1QLiG/YJ+TpKN/qjaQy7lUFrDe7 c5AL3hhjsMRq60AOlLvOkIRxuz/v28XKrfljfmU6o2IqqBY9TcrYg2w7NpzU4g53tco/ SNJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739291227; x=1739896027; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u/2K8Z3pwUQ/oXE8NyEXdkhcGga/r0RB0mzMV+vu/gw=; b=masioIjP78Fh76mpUpNucinOHjy9ssPiluSpGn7EbPmo/6+UrccQdyKLni9yIjaEy1 y2ymambgpANl+KoZRC3gsGZcZZWfunE4CfkrRMavk71e/uRb9t2tUkzpIZzmIqH88sGJ LXS5hxwvnWWFg9mub8wu6GkJV9hCvCXqODLga8OcOj7/EeakS73c8GA75jY7VhPLumMR aNdQ22siYUo4nuxhM625wWQW3R5rbmArpHXWOOUG1z+mAFIOytfhgJWWj/kZiCFDMRaG kaqJHXHcl4LxrwahWLJGP5dA20Oz9DlFmk5QiECN9A88Q+A1MOsXbs9eHVb5WOnJUv7s TacQ== X-Gm-Message-State: AOJu0YwT8Vyb2AF5wGwnMwbdX8aSs5OFVSUcsnnH1fn7rUsUX1oPJl0s GWSYGimXIs3Dk8per5XIHDBGa3XGBNwcHHouxVtmi2UsNiOJjyM9s/48WnH8h3QNQKwluhj+Ht3 6 X-Gm-Gg: ASbGncueY9H3NxzePdFcIvQKL+F13yf4hwmiCqIAcsNAwwPuZEmhVj/+zPLbpa/IEMl I9L75lGPa0WS8sb/+tXzAL12oG0OlGOnDjwTtArT4IPMJOUPj5E996F2Ig10If7xHNLptRDEFNn HQ/lf+KTV9+wgTyr5CTEYzDYelhDcNVKbpxAw9QhNSW3nPrDiRJQ7dUnkiVSqZu0hQ1hgxSMN56 DuG350Yndy5bogrXavuLJDpx9pluK9sHv4+cEYbbUEqZXdNzG37dTIWG9VnRECkHx4YxhyDJV2F HIqGHCuxL/k72gAP7SFy X-Received: by 2002:a05:600c:1f0f:b0:439:553c:2a34 with SMTP id 5b1f17b1804b1-439553c2b7dmr31003325e9.4.1739291226714; Tue, 11 Feb 2025 08:27:06 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4393f202721sm82660455e9.21.2025.02.11.08.27.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 08:27:05 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 68/68] target/arm: Sink fp_status and fpcr access into do_fmlal* Date: Tue, 11 Feb 2025 16:25:54 +0000 Message-Id: <20250211162554.4135349-69-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250211162554.4135349-1-peter.maydell@linaro.org> References: <20250211162554.4135349-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x334.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Richard Henderson Sink common code from the callers into do_fmlal and do_fmlal_idx. Reorder the arguments to minimize the re-sorting from the caller's arguments. Signed-off-by: Richard Henderson Message-id: 20250129013857.135256-35-richard.henderson@linaro.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- target/arm/tcg/vec_helper.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c index cc3586f44ac..986eaf8ffa4 100644 --- a/target/arm/tcg/vec_helper.c +++ b/target/arm/tcg/vec_helper.c @@ -2125,9 +2125,13 @@ static uint64_t load4_f16(uint64_t *ptr, int is_q, int is_2) * as there is not yet SVE versions that might use blocking. */ -static void do_fmlal(float32 *d, void *vn, void *vm, float_status *fpst, - uint64_t negx, int negf, uint32_t desc, bool fz16) +static void do_fmlal(float32 *d, void *vn, void *vm, + CPUARMState *env, uint32_t desc, + ARMFPStatusFlavour fpst_idx, + uint64_t negx, int negf) { + float_status *fpst = &env->vfp.fp_status[fpst_idx]; + bool fz16 = env->vfp.fpcr & FPCR_FZ16; intptr_t i, oprsz = simd_oprsz(desc); int is_2 = extract32(desc, SIMD_DATA_SHIFT + 1, 1); int is_q = oprsz == 16; @@ -2154,8 +2158,7 @@ void HELPER(gvec_fmlal_a32)(void *vd, void *vn, void *vm, bool is_s = extract32(desc, SIMD_DATA_SHIFT, 1); uint64_t negx = is_s ? 0x8000800080008000ull : 0; - do_fmlal(vd, vn, vm, &env->vfp.fp_status[FPST_STD], negx, 0, desc, - env->vfp.fpcr & FPCR_FZ16); + do_fmlal(vd, vn, vm, env, desc, FPST_STD, negx, 0); } void HELPER(gvec_fmlal_a64)(void *vd, void *vn, void *vm, @@ -2172,8 +2175,7 @@ void HELPER(gvec_fmlal_a64)(void *vd, void *vn, void *vm, negx = 0x8000800080008000ull; } } - do_fmlal(vd, vn, vm, &env->vfp.fp_status[FPST_A64], negx, negf, desc, - env->vfp.fpcr & FPCR_FZ16); + do_fmlal(vd, vn, vm, env, desc, FPST_A64, negx, negf); } void HELPER(sve2_fmlal_zzzw_s)(void *vd, void *vn, void *vm, void *va, @@ -2205,9 +2207,13 @@ void HELPER(sve2_fmlal_zzzw_s)(void *vd, void *vn, void *vm, void *va, } } -static void do_fmlal_idx(float32 *d, void *vn, void *vm, float_status *fpst, - uint64_t negx, int negf, uint32_t desc, bool fz16) +static void do_fmlal_idx(float32 *d, void *vn, void *vm, + CPUARMState *env, uint32_t desc, + ARMFPStatusFlavour fpst_idx, + uint64_t negx, int negf) { + float_status *fpst = &env->vfp.fp_status[fpst_idx]; + bool fz16 = env->vfp.fpcr & FPCR_FZ16; intptr_t i, oprsz = simd_oprsz(desc); int is_2 = extract32(desc, SIMD_DATA_SHIFT + 1, 1); int index = extract32(desc, SIMD_DATA_SHIFT + 2, 3); @@ -2235,8 +2241,7 @@ void HELPER(gvec_fmlal_idx_a32)(void *vd, void *vn, void *vm, bool is_s = extract32(desc, SIMD_DATA_SHIFT, 1); uint64_t negx = is_s ? 0x8000800080008000ull : 0; - do_fmlal_idx(vd, vn, vm, &env->vfp.fp_status[FPST_STD], negx, 0, desc, - env->vfp.fpcr & FPCR_FZ16); + do_fmlal_idx(vd, vn, vm, env, desc, FPST_STD, negx, 0); } void HELPER(gvec_fmlal_idx_a64)(void *vd, void *vn, void *vm, @@ -2253,8 +2258,7 @@ void HELPER(gvec_fmlal_idx_a64)(void *vd, void *vn, void *vm, negx = 0x8000800080008000ull; } } - do_fmlal_idx(vd, vn, vm, &env->vfp.fp_status[FPST_A64], negx, negf, desc, - env->vfp.fpcr & FPCR_FZ16); + do_fmlal_idx(vd, vn, vm, env, desc, FPST_A64, negx, negf); } void HELPER(sve2_fmlal_zzxw_s)(void *vd, void *vn, void *vm, void *va,