From nobody Sun Jul 26 11:52:40 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1782427703; cv=none; d=zohomail.com; s=zohoarc; b=gmiaBXt6d5C3GqgT4KuW7DK304rkrcEcfZsxx6gHKmgewSv9Wi39CQBtZejD/r19V8whuvs/zA4llvbQGT+S3Yb4tVRLc0g7ZFcbBf8RAWZdRUzBrXDDtlpT9LD3CSaNVTzHVT/MD/UPXzJZ6X/eHEXovRH9NjeYzumd9NUaJGw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782427703; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=xAFphcdMcc4nMg6ZvlPlH0PadArCbX+n0WGGKJ8VtZY=; b=d0QuGYz1jKCchCkLcSSmCOE6N+hXO569M+nveLIz7DigDU+fnJaW4Lld306hoCAYfoXR8CWpq3MK8Kn4hssj6xsjqrhc+gzm4WBULqOeBR3/vtJxHKb+j8dP7iN3N9Bot+YjdEhIlmtGDNADn1wL/XwFFPZNr8ysd3g/UbIfuZs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782427702961210.05324358920586; Thu, 25 Jun 2026 15:48:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wcsr7-0006e7-1N; Thu, 25 Jun 2026 18:47:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wcsr2-0006a3-HY for qemu-devel@nongnu.org; Thu, 25 Jun 2026 18:47:30 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wcsr0-0005zq-QO for qemu-devel@nongnu.org; Thu, 25 Jun 2026 18:47:28 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-37e0d09be07so228688a91.3 for ; Thu, 25 Jun 2026 15:47:26 -0700 (PDT) Received: from stoup.. (174-21-129-215.tukw.qwest.net. [174.21.129.215]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37df400ba0bsm2762834a91.15.2026.06.25.15.47.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 15:47:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1782427645; x=1783032445; darn=nongnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=xAFphcdMcc4nMg6ZvlPlH0PadArCbX+n0WGGKJ8VtZY=; b=eLSBnmSfFftejt4DwznZ9PxpilUpKdvktQa7H3JqdnbOuZe3LfoVgwjhkWvV59sU7M TotslOJeSki6zhHu2M0pk8qk2MYeTn4545jfFDrx9tH1I7CwdBfU3zOjj8FkdCxtK+db EA3kGXmRk9UHXpYsFON9oVzdJWlCtitY4w36TK3Ke4/LTKJHhvWMi6Loj168ZwRHyw7A hXknD9QdcK+lhCA6I5TCStPFVpQpjNdif468/gz5lYBobnr9jS/X/hWlkUkqXoOVBF2W Hrm5wiU5FPkrOB6+AaFU36skmJgHU3+q++z5umZjsE65Os7cdOLkBWhwgwFNfEmx6J6f 7tzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782427645; x=1783032445; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=xAFphcdMcc4nMg6ZvlPlH0PadArCbX+n0WGGKJ8VtZY=; b=aLb11XWMLOISx4jhswDYROcuA1sAfe5vSp24XYstcUumHVDLAVbWIPQyERN/FLHaKh CLVB0zp/1Un+yKBDM1ywEbPfrQA0HMCzI+hr6rKCMI0SInSUP/9o6p2r6hbcbX9s8zb6 kJbmaRlwdglu+y6ww7qDsCuL6R7XDNH0GanfQiums3va0JCY8IIqyhEvn4UW92ABnOWt qCOM11obYuMDZrkMRRVdeo/s3bsq9Q0xWxYRouBfSLROxKiK90iwR5rOc0HUoedfJBeb aX2kr3LCtSFdFcTTTAhD6skt9UUy4Li9wonbsBvi4svb4si/GMsHDg9Ej/fq+3Uf0wi7 TFMw== X-Gm-Message-State: AOJu0YxteYRB0frjLhv65ksKaRQUOwD0l4h51vADJrhx6K9Ym+untsN4 SJQaqrz88fr3oB+ow34WMphbUaF5FuT/XtwMD1xSLJl/dh+67ViA6sgaKGTJViZqaSLjjYBjT24 8Lw+J X-Gm-Gg: AfdE7cnNqTca+kK6Hdgu7/Ab+Vk4AcskVBPs5POmWHu9kCJl2DUy+Qv4C+CnaFiB2Xc C4k1RNThu93UNnrhg3QVKEuhWBRXAgL8kZNr3GcSULA39X2Nw9cuB+BiTzz/gLabUp4eVtHbCnr IuPJIkAcDlX+cZjuognA03Yb6ckBSIgcqscHzEGNw8hAtw33JcxaDTFXs2QxSI3F2v+cQds5vJG +sC0J50h1VyllI5bBCWauPPzPKuxdG0cnIA+Po83eMN4s6E1AGL3GOs/JPylA8u/mQ9Feg0YhFy Waf4Tx/ora06FLf+QqumxxAFCJz5BhHzixI/7bTQ2Y9DvZyawOp4fMzWuRKIzToErCGETTPu/If JxOf/g6Cg7b+9HVkVTL2JI6fYfc3heTXLrX6GjBnGnLyndDz1M2jNtG4aQu8xAhh4rSiqsqngy8 44dL4G7ekj7EwbO0HZGHF2ElH6TpDFiGNeAomlJxyczzReCDFzQg== X-Received: by 2002:a17:90b:1fc4:b0:36d:63cb:cf63 with SMTP id 98e67ed59e1d1-37dfa2551b9mr4278523a91.20.1782427644959; Thu, 25 Jun 2026 15:47:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH] target/arm: Implement and enable FEAT_SSVE_FEXPA for -cpu max Date: Thu, 25 Jun 2026 15:47:23 -0700 Message-ID: <20260625224723.766270-1-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1782427707258158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu-features.h | 5 +++++ linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 1 + target/arm/tcg/translate-sve.c | 2 +- docs/system/arm/emulation.rst | 1 + 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index c3eeecbea9..bdeb72bd77 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1580,6 +1580,11 @@ static inline bool isar_feature_aa64_sme_mop4(const = ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SMOP4); } =20 +static inline bool isar_feature_aa64_ssve_fexpa(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SFEXPA); +} + static inline bool isar_feature_aa64_ssve_aes(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, AES); diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 9b93969850..cea286cce0 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -174,6 +174,7 @@ abi_ulong get_elf_hwcap(CPUState *cs) GET_FEATURE_ID(aa64_f8mm8, ARM_HWCAP_A64_F8MM8); GET_FEATURE_ID(aa64_f8mm4, ARM_HWCAP_A64_F8MM4); GET_FEATURE_ID(aa64_ssve_aes, ARM_HWCAP_A64_SME_AES); + GET_FEATURE_ID(aa64_ssve_fexpa, ARM_HWCAP_A64_SME_SFEXPA); GET_FEATURE_ID(aa64_sme_mop4, ARM_HWCAP_A64_SME_SMOP4); GET_FEATURE_ID(aa64_sve2p2, ARM_HWCAP_A64_SVE2P2); =20 diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 2cf335c956..7151c509f9 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1384,6 +1384,7 @@ void aarch64_max_tcg_initfn(Object *obj) =20 t =3D GET_IDREG(isar, ID_AA64SMFR0); t =3D FIELD_DP64(t, ID_AA64SMFR0, SMOP4, 1); /* FEAT_SME_MOP4 */ + t =3D FIELD_DP64(t, ID_AA64SMFR0, SFEXPA, 1); /* FEAT_SSVE_FEXPA */ t =3D FIELD_DP64(t, ID_AA64SMFR0, AES, 1); /* FEAT_SSVE_AES */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP2, 1); /* FEAT_SSVE_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP4, 1); /* FEAT_SSVE_FP8DOT4 */ diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 79e8e16b24..5de9ee7d4f 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -1373,7 +1373,7 @@ static gen_helper_gvec_2 * const fexpa_fns[4] =3D { NULL, gen_helper_sve_fexpa_h, gen_helper_sve_fexpa_s, gen_helper_sve_fexpa_d, }; -TRANS_FEAT_NONSTREAMING(FEXPA, aa64_sve, gen_gvec_ool_zz, +TRANS_FEAT_STREAMING_IF(FEXPA, aa64_sve, aa64_ssve_fexpa, gen_gvec_ool_zz, fexpa_fns[a->esz], a->rd, a->rn, s->fpcr_ah) =20 static gen_helper_gvec_3 * const ftssel_fns[4] =3D { diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 3ef5b53e8a..a12471aafe 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -175,6 +175,7 @@ the following architecture extensions: - FEAT_SME_LUTv2 (Lookup table instructions with 4-bit indices and 8-bit e= lements) - FEAT_SME_MOP4 (Quarter-tile outer product instructions) - FEAT_SSVE_AES (Streaming SVE Mode Advanced Encryption Standard and 128-b= it polynomial multiply long instructions) +- FEAT_SSVE_FEXPA (Streaming FEXPA instruction) - FEAT_SSVE_FP8DOT2 (SVE2 FP8 2-way dot product to half-precision instruct= ions in Streaming SVE mode) - FEAT_SSVE_FP8DOT4 (SVE2 FP8 4-way dot product to single-precision instru= ctions in Streaming SVE mode) - FEAT_SSVE_FP8FMA (SVE2 FP8 multiply-accumulate to half-precision and sin= gle-precision instructions in Streaming SVE mode) --=20 2.43.0