From nobody Sat May 30 20:12:18 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=1776862566; cv=none; d=zohomail.com; s=zohoarc; b=MO8Ro/QOh3GzAfq9X6OmwSQ6zqKzzmRgssAtwZ9QZZgyyPGYfX0R5XiPakjjXLhcKCyj7V1RxSZBS3HOBV9i0m8gN/5PS/LjtrelX/cn9B40RVCJN0eEzifjz8nK6LXS4tlI4CQkcJJWJ5pD/r6IbEOjOxJj4wjs2p19X+5QIV0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862566; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SFHYYol3fQLtpVQaYQnNjnL8iJcFReh9WH604Hh8s60=; b=YHS7GKRpHxpBeWucwt8bOMt/Bw5NuHFEv5zZstO/fI380US4oZqQJS7aCrN7a4kQMKctoX3Y2uxsM8S7uSWmGYnYjLLyl5YxJ9UHZqXlp3uFRSFhvEDPJkoPvwsOwFo1EKc4bZWrZ3rmGT3i3Yhxu79G9BHPocITRxPvZOR4nXM= 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 1776862566117469.5887759568242; Wed, 22 Apr 2026 05:56:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX4d-0005vM-73; Wed, 22 Apr 2026 08:52:59 -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 1wFX4b-0005uI-QD for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:52:57 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4Z-0005Rb-D5 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:52:57 -0400 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-488a8ca4aadso74083175e9.3 for ; Wed, 22 Apr 2026 05:52:54 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e4ffa8sm46533031f8f.35.2026.04.22.05.52.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:51 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 0D4535F941; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862374; x=1777467174; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SFHYYol3fQLtpVQaYQnNjnL8iJcFReh9WH604Hh8s60=; b=o4fZh02U3zjneAJDQgLVKFQ59W7HJuxelQWY7bSkZ4l3K3TbS1/HG2/E0Ui/vNiNG6 uxhXxOCltdpWBXVs3oHmD+qbvkNV+PxUHGSL2u2D8gY9/SyEbs0aHr1UlYS929HRvR/E VwdvyUmdTKEMuW/LHUZcZhqRjod7r4NE3jshc803SyFhIzNZkkPjH3JCz/k6GzZ074Se S7S7CCWC0357HtV9pFOGXBqHCcoMM2RWsXKBy64VvfiExMDHpKiEx6VsspwIkctocWwg 2CHU+Hf0jvi7H0clG9LB6gyOPG87UDCKJTMc812IpvY6om3JzwSWdqZXufUnXKq4hIH3 +YrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862374; x=1777467174; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=SFHYYol3fQLtpVQaYQnNjnL8iJcFReh9WH604Hh8s60=; b=cDJWhj+TFEPhs9/lU1g0Q6NZUuqJXtRegKwLwisvoMzvDhtWlzv21zpZ5o44Xil1jJ uFB9UOryg4SHLR6gjDcorOBe6bm8ZNzDAmhCHxaezEdAj31KQKk8mJBvBG2XNivaYLEv klhAPvhWiLZdpcfmvCoKVwg4rdKPTAPUyDAkw3BW8q9tcPo3++U7j4nRIvQrE2YDQLMJ q5Y/bSmvyNjOZ0oZhqD12DrfnUilkwd7zbk2a2FutqtFjqj5m1xXmBOIT8XUhVBe2Ovg BRJgPi3pTNzlCTOrkSTQFnsGea9xdxVeWAopyRyV/uEGBkcovaQYnIN0zlXi2lThdzx6 GAmA== X-Gm-Message-State: AOJu0YyjbolfZWmqW6dD0dukAyoiGAmyPGG0W0Etx3qgvWNH/Y7vQdPU vLGGMPEvoXfDownCnE9wwONSZRv5FnIg7P1nKpoqNWhgzMBuPvHuqwFBtilKwqiNF+o= X-Gm-Gg: AeBDievVhStAKyoPFpT2lVYi56blPfp2yIzRt4ci984lM+rtKcfxyymxNBYAKR3d3JY NTLX5Utzn9zMaCyID3h6AvqfV0alf5lnpjCxa7IOoPFtXFFednnEZuK+Qt0XBVNCk85rsjIax25 NLeDuIWnBgi52LAvHypNt5fD42VCFghNECf4aDlaiI2ui0gULsNfvl+WHo7hRJiIm7y8EcfEQAN IgLf3S/VUnxC2BRXU2I/AP3tWGDQtpeAwjN1eKr75qrL985OcAznN77HSFdzVpBZ86HqAvcHqaE 1CROdMNL9I5CaiQYBzSkrSd59T0lfPVh8qKcA/sGNZncK0UVHTzbrnwHYIFw+51LRspocJU8D00 Ueztz1s+9Kmm/kbD+1yaK94mJ0AJZJGhyOu1z+k2FVCveasYm6CyUVRNK0jeSZ5ZpGPUsZ7dTG9 YkzeaQaztiLoZU80ZZGzLQFYVS61QNrcZ0YA== X-Received: by 2002:a05:600c:a107:b0:489:d1c:d468 with SMTP id 5b1f17b1804b1-4890d1cdaedmr163029735e9.31.1776862373605; Wed, 22 Apr 2026 05:52:53 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 01/32] target/arm: migrate basic syndrome helpers to registerfields Date: Wed, 22 Apr 2026 13:52:18 +0100 Message-ID: <20260422125250.1303100-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32f; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32f.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: 1776862568025158500 We have a registerfields interface which we can use for defining fields alongside helpers to access them. Define the basic syndrome layout and convert the helpers that take the imm16 data directly. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 75 ++++++++++++++++++++++++++++++++----------- 1 file changed, 57 insertions(+), 18 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index bff61f052cc..517fb2368bc 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -25,7 +25,7 @@ #ifndef TARGET_ARM_SYNDROME_H #define TARGET_ARM_SYNDROME_H =20 -#include "qemu/bitops.h" +#include "hw/core/registerfields.h" =20 /* Valid Syndrome Register EC field values */ enum arm_exception_class { @@ -76,6 +76,11 @@ enum arm_exception_class { EC_AA64_BKPT =3D 0x3c, }; =20 +/* Generic syndrome encoding layout for HSR and lower 32 bits of ESR_EL2 */ +FIELD(SYNDROME, EC, 26, 6) +FIELD(SYNDROME, IL, 25, 1) +FIELD(SYNDROME, ISS, 0, 25) + typedef enum { SME_ET_AccessTrap, SME_ET_Streaming, @@ -113,12 +118,12 @@ typedef enum { =20 static inline uint32_t syn_get_ec(uint32_t syn) { - return syn >> ARM_EL_EC_SHIFT; + return FIELD_EX32(syn, SYNDROME, EC); } =20 static inline uint32_t syn_set_ec(uint32_t syn, uint32_t ec) { - return deposit32(syn, ARM_EL_EC_SHIFT, ARM_EL_EC_LENGTH, ec); + return FIELD_DP32(syn, SYNDROME, EC, ec); } =20 /* @@ -133,49 +138,74 @@ static inline uint32_t syn_set_ec(uint32_t syn, uint3= 2_t ec) */ static inline uint32_t syn_uncategorized(void) { - return (EC_UNCATEGORIZED << ARM_EL_EC_SHIFT) | ARM_EL_IL; + uint32_t res =3D syn_set_ec(0, EC_UNCATEGORIZED); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + return res; } =20 +FIELD(ISS_IMM16, IMM16, 0, 16) + static inline uint32_t syn_aa64_svc(uint32_t imm16) { - return (EC_AA64_SVC << ARM_EL_EC_SHIFT) | ARM_EL_IL | (imm16 & 0xffff); + uint32_t res =3D syn_set_ec(0, EC_AA64_SVC); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + res =3D FIELD_DP32(res, ISS_IMM16, IMM16, imm16); + return res; } =20 static inline uint32_t syn_aa64_hvc(uint32_t imm16) { - return (EC_AA64_HVC << ARM_EL_EC_SHIFT) | ARM_EL_IL | (imm16 & 0xffff); + uint32_t res =3D syn_set_ec(0, EC_AA64_HVC); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + res =3D FIELD_DP32(res, ISS_IMM16, IMM16, imm16); + return res; } =20 static inline uint32_t syn_aa64_smc(uint32_t imm16) { - return (EC_AA64_SMC << ARM_EL_EC_SHIFT) | ARM_EL_IL | (imm16 & 0xffff); + uint32_t res =3D syn_set_ec(0, EC_AA64_SMC); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + res =3D FIELD_DP32(res, ISS_IMM16, IMM16, imm16); + return res; } =20 static inline uint32_t syn_aa32_svc(uint32_t imm16, bool is_16bit) { - return (EC_AA32_SVC << ARM_EL_EC_SHIFT) | (imm16 & 0xffff) - | (is_16bit ? 0 : ARM_EL_IL); + uint32_t res =3D syn_set_ec(0, EC_AA32_SVC); + res =3D FIELD_DP32(res, SYNDROME, IL, is_16bit ? 0 : 1); + res =3D FIELD_DP32(res, ISS_IMM16, IMM16, imm16); + return res; } =20 static inline uint32_t syn_aa32_hvc(uint32_t imm16) { - return (EC_AA32_HVC << ARM_EL_EC_SHIFT) | ARM_EL_IL | (imm16 & 0xffff); + uint32_t res =3D syn_set_ec(0, EC_AA32_HVC); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + res =3D FIELD_DP32(res, ISS_IMM16, IMM16, imm16); + return res; } =20 static inline uint32_t syn_aa32_smc(void) { - return (EC_AA32_SMC << ARM_EL_EC_SHIFT) | ARM_EL_IL; + uint32_t res =3D syn_set_ec(0, EC_AA32_SMC); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + return res; } =20 static inline uint32_t syn_aa64_bkpt(uint32_t imm16) { - return (EC_AA64_BKPT << ARM_EL_EC_SHIFT) | ARM_EL_IL | (imm16 & 0xffff= ); + uint32_t res =3D syn_set_ec(0, EC_AA64_BKPT); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + res =3D FIELD_DP32(res, ISS_IMM16, IMM16, imm16); + return res; } =20 static inline uint32_t syn_aa32_bkpt(uint32_t imm16, bool is_16bit) { - return (EC_AA32_BKPT << ARM_EL_EC_SHIFT) | (imm16 & 0xffff) - | (is_16bit ? 0 : ARM_EL_IL); + uint32_t res =3D syn_set_ec(0, EC_AA32_BKPT); + res =3D FIELD_DP32(res, SYNDROME, IL, is_16bit ? 0 : 1); + res =3D FIELD_DP32(res, ISS_IMM16, IMM16, imm16); + return res; } =20 static inline uint32_t syn_aa64_sysregtrap(int op0, int op1, int op2, @@ -246,7 +276,9 @@ static inline uint32_t syn_simd_access_trap(int cv, int= cond, bool is_16bit) =20 static inline uint32_t syn_sve_access_trap(void) { - return (EC_SVEACCESSTRAP << ARM_EL_EC_SHIFT) | ARM_EL_IL; + uint32_t res =3D syn_set_ec(0, EC_SVEACCESSTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + return res; } =20 /* @@ -361,12 +393,16 @@ static inline uint32_t syn_wfx(int cv, int cond, int = ti, bool is_16bit) =20 static inline uint32_t syn_illegalstate(void) { - return (EC_ILLEGALSTATE << ARM_EL_EC_SHIFT) | ARM_EL_IL; + uint32_t res =3D syn_set_ec(0, EC_ILLEGALSTATE); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + return res; } =20 static inline uint32_t syn_pcalignment(void) { - return (EC_PCALIGNMENT << ARM_EL_EC_SHIFT) | ARM_EL_IL; + uint32_t res =3D syn_set_ec(0, EC_PCALIGNMENT); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + return res; } =20 static inline uint32_t syn_gcs_data_check(GCSInstructionType it, int rn) @@ -388,7 +424,10 @@ static inline uint32_t syn_gcs_gcsstr(int ra, int rn) =20 static inline uint32_t syn_serror(uint32_t extra) { - return (EC_SERROR << ARM_EL_EC_SHIFT) | ARM_EL_IL | extra; + uint32_t res =3D syn_set_ec(0, EC_SERROR); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + res =3D FIELD_DP32(res, SYNDROME, ISS, extra); + return res; } =20 static inline uint32_t syn_mop(bool is_set, bool is_setg, int options, --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862449; cv=none; d=zohomail.com; s=zohoarc; b=oBp59Hd9tGC6sFDow6UYeJkVJR6uq+KHtSJ9/ceVs3eARYTBylBkULZgxFYsXE+GZII5G6bUfOkVYoo8/RSQw+WOjtoIhu3oXBDuifdQpTMZTJBUK6mII0lXxYMdVgABvvgTIrQI9kugTyXHwF52FlNeiEk/hIVQCrjBvvoc8YU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862449; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FHkkfCdnBgFoOnCKUMnFf3OjHIWwkdSWF2yGrdtfKkY=; b=kK4R7+bn0erTMKqC5wiOWFlWDZb8NFpifJF2LcUThR60nA/VnoulPHV5qdozy3WjIyUmj1WrOrI3vKVmDZnxeDqmq3YXe99Lzt/z1Hs/atm0jyc3j8dneu0bLTjpYPh8e63B3Fo+h7XlzVlVWocp8J83vWVA+Gc5oHMysRUWIiU= 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 1776862449182833.6981617848699; Wed, 22 Apr 2026 05:54:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX4f-0005x1-83; Wed, 22 Apr 2026 08:53:01 -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 1wFX4d-0005vB-0y for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:52:59 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4a-0005S6-Jm for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:52:58 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-4891c0620bcso29155925e9.1 for ; Wed, 22 Apr 2026 05:52:56 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fb7a0c13sm141522075e9.21.2026.04.22.05.52.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:52 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 209F25F943; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862375; x=1777467175; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FHkkfCdnBgFoOnCKUMnFf3OjHIWwkdSWF2yGrdtfKkY=; b=yO/e00GZg7r/8esw6MjD9yutG0EYh+bq1yJCnZeMVvLU/zwxxCbrr+Ur00Knggl3KS FhFFyuwAPloEe7TYX64e/9jJDbUSvYWfsoSE9y0B/drrkUMnDr2PJkkffTmIY7B9rN/q aLA6AeeEB9zl+lPPSac0Z64hQ+y/5Q4nO3SDDbhq7rxNvt042DtMH78PRv+dt6c5NMd/ F2F5L6Syui7/OCIy9Q9EB9+AajRNh+j5gtthA7bKkTjiueqhYp0hNLetZcxlApV0xkiU aeaeUHiof5HNRlv7v2bLGw1cNl7ocKLGyrGIjRL4wOGZhdHMcxCOMSAwpbiyBPXQ3G2d jCcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862375; x=1777467175; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=FHkkfCdnBgFoOnCKUMnFf3OjHIWwkdSWF2yGrdtfKkY=; b=RX0KMd44801sa8kLQSAfe/IbIYf1pGVHFZ42ob8yoMvDgSGeHcxiMwiMD3JBwlXpac vh8gLZJe+AtxPa58+El0E8JOaJJmgK7/SGySl9d/hC07PXOSZQ7COu+33s5se3GblHYc LvqsdYb/LKjk7tgm/vjh1nSCQWPfSxmNvXTcI0ZUWpbxmqa08xMqSnewh6ipPHhiMfO1 8Iu7fgPbq/RZJ1W9V8GZK8iSvYdlgXgfLfpvyblo8sIatrP55giRuSBUMLAvM1cGH4EM 2sK6PKMNlVLVL38D3IK7aqIAAF58zh+bY1csNI9QEo48Jhi58MX/0y1+Bu2ZInVVWkJd BZJg== X-Gm-Message-State: AOJu0YwvWL4+z7/3Rm+iX4o4K1jZsSN+GUuO6p3zvbMvgIzcVwgLepBI VWcLNBXGXHZRyVH3Do4EccSWyVILHZHcEvcd91a/sC6DqvV9fN54L+Y0goZCrQz8XbgVEK8B4F3 1E9NspnA= X-Gm-Gg: AeBDieuHOzN5OrxwigmRoVzGUP1Tww9u9LJipb2hP4T6svjfEy2lodOQUVA5WG6odM6 28/cD8SIYejgjGOh2++On8cdlIo54vDYjDuJAeR8J4TfoMny3Zri5JqDnZGvBT2gRi/GzG8/klr sxMchcnyAGHw4/5m8l55ECUbm5HTl/68Ep3tsyAG5Y3WMdNuQqBMkuJsijndCzV60AJPNqcJHXW 9ffeOJaMY70V9czHpGVw+sY9pFBQx7i3HE4nM4vWuf8UWdet5xu0R3+nwDs5E+4itJhICw7CqE6 9oOmGPigVO4Jc3mCTKlQNfS+CwAslfb5by/ZfGpZJiVT9LjPgkNAabAIAVVaA5aY9UXVpLj2TBi uKt2yNcqC0GvpTIlyrwL5YBl5J1zZnqx7dwxigbrBg/NS2xeKMhqWG3wKqXDhOzehX4+LE4m3mZ 7OcS8tPyZdBfRHwVJalmrXLD7p/2co8we9CA== X-Received: by 2002:a05:600c:8284:b0:489:1f3e:5f69 with SMTP id 5b1f17b1804b1-4891f3e629bmr167354805e9.18.1776862374998; Wed, 22 Apr 2026 05:52:54 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 02/32] target/arm: migrate system/cp trap syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:19 +0100 Message-ID: <20260422125250.1303100-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::335; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x335.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: 1776862451396158500 Migrate syn_aa64_sysregtrap and co-processor register trap syndromes to the registerfields API. The co-processor syndromes are split between single and duel register moves. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- v2 - use !is_16bit directly --- target/arm/syndrome.h | 124 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 102 insertions(+), 22 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 517fb2368bc..29462aa103c 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -78,7 +78,7 @@ enum arm_exception_class { =20 /* Generic syndrome encoding layout for HSR and lower 32 bits of ESR_EL2 */ FIELD(SYNDROME, EC, 26, 6) -FIELD(SYNDROME, IL, 25, 1) +FIELD(SYNDROME, IL, 25, 1) /* IL=3D1 for 32 bit instructions */ FIELD(SYNDROME, ISS, 0, 25) =20 typedef enum { @@ -172,7 +172,7 @@ static inline uint32_t syn_aa64_smc(uint32_t imm16) static inline uint32_t syn_aa32_svc(uint32_t imm16, bool is_16bit) { uint32_t res =3D syn_set_ec(0, EC_AA32_SVC); - res =3D FIELD_DP32(res, SYNDROME, IL, is_16bit ? 0 : 1); + res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); res =3D FIELD_DP32(res, ISS_IMM16, IMM16, imm16); return res; } @@ -203,58 +203,138 @@ static inline uint32_t syn_aa64_bkpt(uint32_t imm16) static inline uint32_t syn_aa32_bkpt(uint32_t imm16, bool is_16bit) { uint32_t res =3D syn_set_ec(0, EC_AA32_BKPT); - res =3D FIELD_DP32(res, SYNDROME, IL, is_16bit ? 0 : 1); + res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); res =3D FIELD_DP32(res, ISS_IMM16, IMM16, imm16); return res; } =20 +/* + * ISS encoding for an exception from MSR, MRS, or System instruction + * in AArch64 state. + */ +FIELD(SYSREG_ISS, ISREAD, 0, 1) /* Direction, 1 is read */ +FIELD(SYSREG_ISS, CRM, 1, 4) +FIELD(SYSREG_ISS, RT, 5, 5) +FIELD(SYSREG_ISS, CRN, 10, 4) +FIELD(SYSREG_ISS, OP1, 14, 3) +FIELD(SYSREG_ISS, OP2, 17, 3) +FIELD(SYSREG_ISS, OP0, 20, 2) + static inline uint32_t syn_aa64_sysregtrap(int op0, int op1, int op2, int crn, int crm, int rt, int isread) { - return (EC_SYSTEMREGISTERTRAP << ARM_EL_EC_SHIFT) | ARM_EL_IL - | (op0 << 20) | (op2 << 17) | (op1 << 14) | (crn << 10) | (rt << 5) - | (crm << 1) | isread; + uint32_t res =3D syn_set_ec(0, EC_SYSTEMREGISTERTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, SYSREG_ISS, OP0, op0); + res =3D FIELD_DP32(res, SYSREG_ISS, OP2, op2); + res =3D FIELD_DP32(res, SYSREG_ISS, OP1, op1); + res =3D FIELD_DP32(res, SYSREG_ISS, CRN, crn); + res =3D FIELD_DP32(res, SYSREG_ISS, RT, rt); + res =3D FIELD_DP32(res, SYSREG_ISS, CRM, crm); + res =3D FIELD_DP32(res, SYSREG_ISS, ISREAD, isread); + + return res; } =20 +/* + * ISS encoding for an exception from an MCR or MRC access + * (move to/from co-processor) + */ +FIELD(COPROC_ISS, ISREAD, 0, 1) +FIELD(COPROC_ISS, CRM, 1, 4) +FIELD(COPROC_ISS, RT, 5, 5) +FIELD(COPROC_ISS, CRN, 10, 4) +FIELD(COPROC_ISS, OP1, 14, 3) +FIELD(COPROC_ISS, OP2, 17, 3) +FIELD(COPROC_ISS, COND, 20, 4) +FIELD(COPROC_ISS, CV, 24, 1) + static inline uint32_t syn_cp14_rt_trap(int cv, int cond, int opc1, int op= c2, int crn, int crm, int rt, int isre= ad, bool is_16bit) { - return (EC_CP14RTTRAP << ARM_EL_EC_SHIFT) - | (is_16bit ? 0 : ARM_EL_IL) - | (cv << 24) | (cond << 20) | (opc2 << 17) | (opc1 << 14) - | (crn << 10) | (rt << 5) | (crm << 1) | isread; + uint32_t res =3D syn_set_ec(0, EC_CP14RTTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); + + res =3D FIELD_DP32(res, COPROC_ISS, CV, cv); + res =3D FIELD_DP32(res, COPROC_ISS, COND, cond); + res =3D FIELD_DP32(res, COPROC_ISS, OP2, opc2); + res =3D FIELD_DP32(res, COPROC_ISS, OP1, opc1); + res =3D FIELD_DP32(res, COPROC_ISS, CRN, crn); + res =3D FIELD_DP32(res, COPROC_ISS, RT, rt); + res =3D FIELD_DP32(res, COPROC_ISS, CRM, crm); + res =3D FIELD_DP32(res, COPROC_ISS, ISREAD, isread); + + return res; } =20 static inline uint32_t syn_cp15_rt_trap(int cv, int cond, int opc1, int op= c2, int crn, int crm, int rt, int isre= ad, bool is_16bit) { - return (EC_CP15RTTRAP << ARM_EL_EC_SHIFT) - | (is_16bit ? 0 : ARM_EL_IL) - | (cv << 24) | (cond << 20) | (opc2 << 17) | (opc1 << 14) - | (crn << 10) | (rt << 5) | (crm << 1) | isread; + uint32_t res =3D syn_set_ec(0, EC_CP15RTTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); + + res =3D FIELD_DP32(res, COPROC_ISS, CV, cv); + res =3D FIELD_DP32(res, COPROC_ISS, COND, cond); + res =3D FIELD_DP32(res, COPROC_ISS, OP2, opc2); + res =3D FIELD_DP32(res, COPROC_ISS, OP1, opc1); + res =3D FIELD_DP32(res, COPROC_ISS, CRN, crn); + res =3D FIELD_DP32(res, COPROC_ISS, RT, rt); + res =3D FIELD_DP32(res, COPROC_ISS, CRM, crm); + res =3D FIELD_DP32(res, COPROC_ISS, ISREAD, isread); + + return res; } =20 +/* + * ISS encoding for an exception from an MCRR or MRRC access + * (move to/from co-processor with 2 regs) + */ +FIELD(COPROC_R2_ISS, ISREAD, 0, 1) +FIELD(COPROC_R2_ISS, CRM, 1, 4) +FIELD(COPROC_R2_ISS, RT, 5, 5) +FIELD(COPROC_R2_ISS, RT2, 10, 5) +FIELD(COPROC_R2_ISS, OP1, 16, 4) +FIELD(COPROC_R2_ISS, COND, 20, 4) +FIELD(COPROC_R2_ISS, CV, 24, 1) + static inline uint32_t syn_cp14_rrt_trap(int cv, int cond, int opc1, int c= rm, int rt, int rt2, int isread, bool is_16bit) { - return (EC_CP14RRTTRAP << ARM_EL_EC_SHIFT) - | (is_16bit ? 0 : ARM_EL_IL) - | (cv << 24) | (cond << 20) | (opc1 << 16) - | (rt2 << 10) | (rt << 5) | (crm << 1) | isread; + uint32_t res =3D syn_set_ec(0, EC_CP14RRTTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); + + res =3D FIELD_DP32(res, COPROC_R2_ISS, CV, cv); + res =3D FIELD_DP32(res, COPROC_R2_ISS, COND, cond); + res =3D FIELD_DP32(res, COPROC_R2_ISS, OP1, opc1); + res =3D FIELD_DP32(res, COPROC_R2_ISS, RT2, rt2); + res =3D FIELD_DP32(res, COPROC_R2_ISS, RT, rt); + res =3D FIELD_DP32(res, COPROC_R2_ISS, CRM, crm); + res =3D FIELD_DP32(res, COPROC_R2_ISS, ISREAD, isread); + + return res; } =20 static inline uint32_t syn_cp15_rrt_trap(int cv, int cond, int opc1, int c= rm, int rt, int rt2, int isread, bool is_16bit) { - return (EC_CP15RRTTRAP << ARM_EL_EC_SHIFT) - | (is_16bit ? 0 : ARM_EL_IL) - | (cv << 24) | (cond << 20) | (opc1 << 16) - | (rt2 << 10) | (rt << 5) | (crm << 1) | isread; + uint32_t res =3D syn_set_ec(0, EC_CP15RRTTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); + + res =3D FIELD_DP32(res, COPROC_R2_ISS, CV, cv); + res =3D FIELD_DP32(res, COPROC_R2_ISS, COND, cond); + res =3D FIELD_DP32(res, COPROC_R2_ISS, OP1, opc1); + res =3D FIELD_DP32(res, COPROC_R2_ISS, RT2, rt2); + res =3D FIELD_DP32(res, COPROC_R2_ISS, RT, rt); + res =3D FIELD_DP32(res, COPROC_R2_ISS, CRM, crm); + res =3D FIELD_DP32(res, COPROC_R2_ISS, ISREAD, isread); + + return res; } =20 static inline uint32_t syn_fp_access_trap(int cv, int cond, bool is_16bit, --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862434; cv=none; d=zohomail.com; s=zohoarc; b=kJOLhZQFLzNbGrN2k+/qUUKyLfTl4m8+KGzXzVKPrthAmopaSO1vVF0zFVASBEyxmVmauLCqy0k3BybJH1sMcVxgN2mzOpyk/2cHo6thUH6rjA123Zi0J901Tffa57+WZmVp04jNQ91Ouq4AQKt3ZBp9jBwCm2Gy5176cQL77gw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862434; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=K6n23oz7LRRQlFUUM3gTQS/rrKewMUhskSZOvSJMe4M=; b=gq8zK0vmbhUYHEeDqzBpKYliDTx2oxkiTlc9gIEQ2Ln7NSdcEvQkrCBUh0KYjQ/orD4PPcSl2JWddePohwFXpBZngQpzloEeoFqiXXnwQ1Wp3HNJZpp9qv793k2QQAXp6tze+IC1DJvh5fNLSc3+g7wtFyEWHeOf8l4Rj+NiEsY= 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 1776862434925906.8052485564762; Wed, 22 Apr 2026 05:53:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX4g-0005xb-GX; Wed, 22 Apr 2026 08:53:02 -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 1wFX4b-0005u5-DE for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:52:57 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4Y-0005RI-S3 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:52:57 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-43d7650202fso4257465f8f.2 for ; Wed, 22 Apr 2026 05:52:54 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4c221cdsm46907702f8f.0.2026.04.22.05.52.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:51 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 330505FC04; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862373; x=1777467173; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=K6n23oz7LRRQlFUUM3gTQS/rrKewMUhskSZOvSJMe4M=; b=apmCZBCSxrYyZthGBc+uAQMwMicO2g5PCwX6xX9Q0Aznh7KROkEH7Bi2gnpQD87F6P xYhRCVZBETDn70wfm8k/MUr6UD1VuOSGV4VYQCXRg3f4nrMC0Ks6MCBCmXlU6B2OQHeo 8r5GCvZ7MJfkHas0vjXO8zhiMPXE3Ns3bEOsC4TbUJBYwDEnRQVTOLFXXPFDV9ioLBZj yIOxY8wxE993gY8cjiy987krA8xIf2/fPT3wpB+t9CIDnhdpb5wwliPUTvD/IjAKICPk XaEBLZi2GRc/Q3nnZIPuYKVkRKb9N9LpFYw4Q+jPyR50e7BA7uF0p6uC5ErDqD2HD7w0 sklQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862373; x=1777467173; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=K6n23oz7LRRQlFUUM3gTQS/rrKewMUhskSZOvSJMe4M=; b=WJd38wFdmweDRCXQuLEor31IV/jWCtd8+icxoRUBctUIrrXhshKaejMiYNgCd6QxwH bVzciF6/D2yOAhbiEDMCvfarEdS+JiHRhWchKeA59kaZmwsJGZ9xj6wl7Fkzq1qWDqrh TZLsLb12y3aKh1bR2ES1CwwNIAjKpVDrarvefPSqtGovqtWlO9hT7jk4N8kd/0Nl3qwW SgAM1vAHLyBVANDLZRfVeQOz6SF6GjYmdVXIRHmNpC/POWFkN+RMyu3siFy8pHG4pOuj YtvI6Z+c8LQq5ZARaHyXdCt/ATrRAcd1IWtD0JZMkG6mChQGk13UhBydEOs3Zaxv3L52 zSZw== X-Gm-Message-State: AOJu0Yx4mOygQBk7U+pPcSkFMNJuo+jCzRRJjD/SXQnLQ8V+Bt9K8ex8 XDfdVA5Y+p566aXWb4nx7nR4hrHKSOs/ZeVf9Pz2WyWtRtolstmTcBZWmxIJizYNXcA= X-Gm-Gg: AeBDiesLMsOOOHguNZuvksypO8emm3feojS2HDHC7Maw0xemlwPCq2Mq1wLWBgGAhbb F0vrAj0xjXpkbOEgYWDqWr54D8XWwP9pb5lM5kGMPaykWc6lZ5AJD9vv/rRRVqZCA6ihvUHt+yl miZzHtjyvhrpdeR/cRkdV8hOqBgtpBM/UhJhXJ0hgdZf8U3dUdVs5jVWJ7XViFNvU3CVEcX9i5K A1FrmjIif2hywHEHPDr7EqmosCngn25KYRXfc00sSU/ZRsZdMBZvT1uMEtNGFpyLhiRcnR4Spt0 ni966YGlx7p81O29AWymTLSY3CxQqNo5x/JI+BhKHlBVSVC6brMLzey464wC5futgxfpHnrjmlO iL84PNQWl41JoVYE4IlgTbIxaqyg5lO7AE/gGUSnzCVTzhCnJ44jAisPfRkR07wAJzlL39Vd7RG k5sh3UkNxZHCsD+D1dEWjTh4NXfZiM74NOfA== X-Received: by 2002:a05:6000:200c:b0:43d:77f4:7145 with SMTP id ffacd0b85a97d-43fe3dd407dmr34461259f8f.19.1776862372594; Wed, 22 Apr 2026 05:52:52 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 03/32] target/arm: migrate FP/SIMD trap syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:20 +0100 Message-ID: <20260422125250.1303100-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::42c; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x42c.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.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: 1776862438058154100 The syn_simd_access trap was never used so remove it. We should only see the COPROC encoding on v7 architectures. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- v2 - use !is16_bit directly --- target/arm/syndrome.h | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 29462aa103c..72051443d59 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -337,21 +337,26 @@ static inline uint32_t syn_cp15_rrt_trap(int cv, int = cond, int opc1, int crm, return res; } =20 +/* + * ISS encoding for an exception from an access to a register of + * instruction resulting from the FPEN or TFP traps. + */ +FIELD(FP_ISS, COPROC, 0, 4) /* ARMv7 only */ +FIELD(FP_ISS, COND, 20, 4) +FIELD(FP_ISS, CV, 24, 1) + static inline uint32_t syn_fp_access_trap(int cv, int cond, bool is_16bit, int coproc) { /* AArch32 FP trap or any AArch64 FP/SIMD trap: TA =3D=3D 0 */ - return (EC_ADVSIMDFPACCESSTRAP << ARM_EL_EC_SHIFT) - | (is_16bit ? 0 : ARM_EL_IL) - | (cv << 24) | (cond << 20) | coproc; -} + uint32_t res =3D syn_set_ec(0, EC_ADVSIMDFPACCESSTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); =20 -static inline uint32_t syn_simd_access_trap(int cv, int cond, bool is_16bi= t) -{ - /* AArch32 SIMD trap: TA =3D=3D 1 coproc =3D=3D 0 */ - return (EC_ADVSIMDFPACCESSTRAP << ARM_EL_EC_SHIFT) - | (is_16bit ? 0 : ARM_EL_IL) - | (cv << 24) | (cond << 20) | (1 << 5); + res =3D FIELD_DP32(res, FP_ISS, CV, cv); + res =3D FIELD_DP32(res, FP_ISS, COND, cond); + res =3D FIELD_DP32(res, FP_ISS, COPROC, coproc); + + return res; } =20 static inline uint32_t syn_sve_access_trap(void) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862495; cv=none; d=zohomail.com; s=zohoarc; b=M6YCjZ+ctwN0e5qt0+3tDl95Ey7Ym2ybgXXnVsj6GGEulih1RYB6wgdFsWR4Dn/YXkdpRFZU4koDZxWhE2mbj1CSwJLXjkheWNx7e0NtEtYjk+y/5gxanyW0qRvOyBCpwcMCTTrszv09p6w/CdZ+Of4+tHnN3/0wzH7Oo9cUyBU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862495; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XRTiu65oEEP/NVXKQGmyzqv/GBntii32+7VLEeXU9Tc=; b=VQeMvzESXFEtHZG1UW3jcYDcWOUP9Jkk70q/wW015a4gsaqxojNlDtYN7hsh2GscaWlOtfTFTpGJlxXWHqiMZAgg6sRP27rp5NCN9yBspoGYaOb8k1moObbfWJItQWzwomN2bo0yktgydcrcNQB470syx78x8uDmu3tgoVEHvFA= 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 1776862495448557.2348877620543; Wed, 22 Apr 2026 05:54:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX4i-0005yk-88; Wed, 22 Apr 2026 08:53:04 -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 1wFX4d-0005vF-29 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:52:59 -0400 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4b-0005SN-CC for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:52:58 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-43fe62837baso3302194f8f.3 for ; Wed, 22 Apr 2026 05:52:56 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4cb1365sm48295853f8f.7.2026.04.22.05.52.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:52 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 46D9A60338; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862376; x=1777467176; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XRTiu65oEEP/NVXKQGmyzqv/GBntii32+7VLEeXU9Tc=; b=gyHW7rG8C8QZflsWVCFeA3+wYVi8bdRtLVlwYvpaVSNM9QxnjT0YtLfGS90U4EftSm cWpCVQTQzjLqNDK9b3oME4iVnUXy+J6AwbFLR4OfS5Zvs38L3XkDUXt+MY2leN91334t iVNsCGO5E5nH3f2KaMEBXzDeoPRr++BonY0ZFpsMC9i9017rkJQFPiExljNf9cQhDjer t+JQ4C99uFatvSLR4rMYfuPbiA8z0tEbRf92PWDSf4/MjBCkEhKVoKy0YwkS3RLFG5Bc Oef939WYPJAuHZmuo8nqAq4J1vHnEvRk28hATIlc86U6MzOIrjMzOTbOsf7KomH2Paq9 iPNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862376; x=1777467176; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XRTiu65oEEP/NVXKQGmyzqv/GBntii32+7VLEeXU9Tc=; b=Al+NreeoQxRelI1TfOh/giR/hUZHMurxDfKH3U/k6+LAQWUfpAaF6CeAgi2HufcUXL JH/RaITnEafj0pw5sZeVNcZSuxTM8m+D5jv9EHHpWpvobVqjyc8cnmRgush5H6iFiNHN dwAIILanms6EImJKLJ8XX9ft+VOxemexS0FKZbEAjN9jAhm4ei9INqgZPDjRl7dJvEed QvEql0UiOlcViZ6TxL0hjQfOSqVk37H62m6UhIuhXXTnoBaCRTsfvLrxukQM+JFrE/YD fwndhWI/PULY9kMOFsmo/KPOhg2OLV6oHjk8imMVPLlv8swKhyo/XjOdxCpldtsiFacP QptA== X-Gm-Message-State: AOJu0YxW1G8p4aSolIC6GOwjhNliSGcJT0xh0sATYIItff7RQq4DtSRi vRUXjQGA0Pto6y52U6qJyefMDVMi889nqSqw2xL4DRQe9mxOPVHxyORFYXcrXgPzI9Q= X-Gm-Gg: AeBDieu/RP1z3aLbLPD7uc8DBGKEJa81c/tIX08o6mV0LaD+nSYgIw4pAspwb4bGMyS 34cjFlyLqpfW1GH5oJlad5UzBVPxrwt1c/qmL4I48HWwh57CCWMTKw8PxE2AGd9LTs4NUADcdfY 56Vu4ov4MbayBaMDC3XY0sEeoMfauewwP9/oe7t7D5+vhhlQJXFOFtq8kGzxxwSMXeooN/5+HA1 F0nkWl0lDkm3crdxo8jAV0ZAX7eKkk+A/TUTu4bhWrxHJDDfutkx7GSAEV5ipRDQ6gmfbbXdfpd nVGjglE/T6p+f6f3UFNNbkGaWX/IYIArN86jzB1jI0Q8o9pGQT2ACNfZJ3ZhtH1dzQWLF4joDXo zQOcuH5ff3nJOnyQG7VT6DzypkzhEPcIrh/NZV3y5O3/Apkpy873Cyu94CVx/IQrqrnEooufAWY RyMclPLEy9ep/ov33H09j6bF/Zarj+NbQxgw== X-Received: by 2002:a05:6000:2207:b0:43d:6a02:b7ad with SMTP id ffacd0b85a97d-43fe3da668bmr32520165f8f.4.1776862375765; Wed, 22 Apr 2026 05:52:55 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 04/32] target/arm: migrate eret trap syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:21 +0100 Message-ID: <20260422125250.1303100-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::432; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x432.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: 1776862497882154100 For simplicity keep the OP as a two bit field rather than the two interlinked fields in the docs (ERET/ERETA). Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 72051443d59..63c8e66ea91 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -367,12 +367,21 @@ static inline uint32_t syn_sve_access_trap(void) } =20 /* + * ISS encoding for an exception from an ERET, ERETAA or ERETAB + * instructions. + * * eret_op is bits [1:0] of the ERET instruction, so: * 0 for ERET, 2 for ERETAA, 3 for ERETAB. */ +FIELD(ERET_ISS, OP, 0, 2) + static inline uint32_t syn_erettrap(int eret_op) { - return (EC_ERETTRAP << ARM_EL_EC_SHIFT) | ARM_EL_IL | eret_op; + uint32_t res =3D syn_set_ec(0, EC_ERETTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + res =3D FIELD_DP32(res, ERET_ISS, OP, eret_op); + + return res; } =20 static inline uint32_t syn_smetrap(SMEExceptionType etype, bool is_16bit) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862450; cv=none; d=zohomail.com; s=zohoarc; b=ZSODlffW8WIMGdNk6O20myS06Vbatj7WNR/YiDDEJzMDNhhMnDluLrq+raP6nC+SIzOrCvNdevch7Pr458WDy4CXOi+hM3kjOxK2S8J4YKoSFss8JrkPNS5/CPlbVBsATWrACdf+v+YLm7fgHg/gwnTwtbBYdXWi3l4+HF6CTU4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862450; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rUXCf79/aCPWP+oojaJHciitYmV1hJJUoyGLuPcbhOc=; b=Gc7m0gIvyIzmE7AunjV6tYyGI8NtqENU7SiXNNgw8LOj4Q+mSNI1YOLYRn7CzOv2/R5hhwkqdiCf4HLRBxN8tOEN65nEzpX/bdh7SRnzClDHojWVCogC7NbOBT1rIji6rMI4Vf0Apf3TwO8DazXnfvi6l1EIZQK2/7enbp/66Os= 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 1776862450534427.9280898179935; Wed, 22 Apr 2026 05:54:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX4r-00065d-0U; Wed, 22 Apr 2026 08:53:13 -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 1wFX4j-0005zj-P7 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:05 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4g-0005UQ-3s for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:05 -0400 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-43fe608cb92so3786752f8f.2 for ; Wed, 22 Apr 2026 05:53:01 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e3a18csm51870727f8f.20.2026.04.22.05.52.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 58FDF60342; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862380; x=1777467180; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rUXCf79/aCPWP+oojaJHciitYmV1hJJUoyGLuPcbhOc=; b=jHMRUyFsdX4VzurLVquBXj7MaRnWqtfboT+LxS/l5hmDo5irDjH9h/v57ywQMMdXPW 2Mvg8OjXqS64X0hoUswMsLFfS1IHcJXJTDjw7BrM7YJA61KrsGgmBVk5Ctj5VYtXQoCW Z21i4wZLCxWMwt9FBR8Yy1aqBgSmqGHcwvFKaUo4CHmBpxQ/eOUQ6fP+CaCjxhh8xIex EgybwgQ/xwcOkJ5PjdXuuUkrBIyqHoj7RvAE/kKns5Q6oWCQzvs8XjBoiXnDAxoSzWLP RLPVyCsGPEcOlGI1gMYoeDjDYjn7m9MAbOl12jnH2xgAmoHleuJVGtBpoHzbFvo1c6gw EdYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862380; x=1777467180; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rUXCf79/aCPWP+oojaJHciitYmV1hJJUoyGLuPcbhOc=; b=ps9krKsfqxZUDsaLY1enY+8ndIKZPOAv8cfnJ14To2/9Izr/QrgLVpjgK1xzd5wx7f VJq6W6fAt+f6Tai5g2wp7u2pWp0LBY+RuDRLD6k5FNLx2wvJcRrhrwgT/PPxiJq3Fu5E MmH4P6pvuhhmJMjFKyY/bjV3JPIg0d3tET05tqL++d9W+pynNYFDjze5h3UIWpo8LG2O 4UCzwMqH8I5Q2fJ6bn2zzHHaYx5w65Qt6NtFBKIaKGwhxDZTOgtEURpfr0f7ttnD9SN2 JfBOSrNvvVHglrmp22cCq3iKZr3ikDX4oT/ucpE3P3bBsB1KE4Fxow/zLFa8OTe47zcf Nvgw== X-Gm-Message-State: AOJu0YwoXayNSvBB4sWlD/P8fYNU0TJp7YcE3hWb7RH2xjr1fJA2rVGL gUKAhMC+XXA15uiX/C1Wvd0BK1wkp+4I03YSwasvi+OeqLNfuHU7Jhk+NNvfMpIVbrs= X-Gm-Gg: AeBDievz0Nz4ZEEVOAbkpWKlm7OfRDZKSBz2qphMDb5Sw+LJ8R6HPuDHThh7c8LYghM kSVkclhU2ojpFOIRl8pPc2eTgA9R9dxUm5vPECti5UKK3XiHLUXMWGXJH4XkhdqZhTV8Mr9Lst9 zF/kZ+0UeYPpWipF79NuaPXBfjGKT/jNviUmCSRmDYaTnbEBTWdKrC4T9tmPzzj2c+MZFMSGEoJ 8UHSqj8HRd2Q2hUx899YORGMFNVmE9EgEN31SulLlZ8PtNlrRNLPKPUtT7JmGwX1+U/GQWPK8+D yRJ6YMRgwnEnEO1u4Xy/Z7fjZYsuanS2oEoHeGn4gOUZfMC4C0wjfZmuLVCikrWGxvd+9RHOMoA lyhFop2vpWbC42GZiuwRsVODloxGTFYYMid2hhP0SaU7XrcqoclYygiLJk8XwL0+cg+OMbkCU6D PH5Fkcp75Ia88WugNMBAA97AWhhJf/v2j6wPEmwEuhUn8X X-Received: by 2002:a05:6000:1788:b0:43d:1c39:593c with SMTP id ffacd0b85a97d-43fe3dfbcb8mr35169488f8f.30.1776862380024; Wed, 22 Apr 2026 05:53:00 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 05/32] target/arm: migrate SME trap syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:22 +0100 Message-ID: <20260422125250.1303100-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::429; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x429.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.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: 1776862451599158500 Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- v2 - use !is_16bit directly --- target/arm/syndrome.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 63c8e66ea91..61053475984 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -384,10 +384,18 @@ static inline uint32_t syn_erettrap(int eret_op) return res; } =20 +/* + * ISS encoding for an exception due to SME functionality + */ +FIELD(SME_ISS, SMTC, 0, 2) + static inline uint32_t syn_smetrap(SMEExceptionType etype, bool is_16bit) { - return (EC_SMETRAP << ARM_EL_EC_SHIFT) - | (is_16bit ? 0 : ARM_EL_IL) | etype; + uint32_t res =3D syn_set_ec(0, EC_SMETRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); + res =3D FIELD_DP32(res, SME_ISS, SMTC, etype); + + return res; } =20 static inline uint32_t syn_pacfail(bool data, int keynumber) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862469; cv=none; d=zohomail.com; s=zohoarc; b=PbKUDILO4owhKkgJG/lvY4nb3+vcE79pgWtAdyBroMOPgLDpbC2JsLBOy8dhOIM7/rtv1YEotyBIGmu1PpkCaZB0zuJrQXVTO6XTFPGf9qHOpCz7te1ymQc5tnCh8ckLsg+uBsZhTmFYyM843bLBWoDlWso7nKMUNCiQhv7k3yc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862469; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/O57BXYHK8ET+Z6BA/YHEqhtOr337eupd637bkTh7l0=; b=YXm24jhtsQJAJ0H0cR4Uwj2s0rTLCalXsy5er+omNu3fbkqXVa7t5D2Yx+XN/JcEEvaZ9IPzKK1eHLS1KFOU1HcG3rLDT9Dfx8cmv8QVDk9btGOYP7vEo0jW1o16UlTcGrtKI3atGPqnHaaZhlPtwVWbYpD9Wr8q4iwfbzejd3I= 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 1776862469063242.90647628394402; Wed, 22 Apr 2026 05:54:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX4q-000650-JP; Wed, 22 Apr 2026 08:53:12 -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 1wFX4k-00060P-4S for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:06 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4h-0005Uo-Oh for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:05 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-488b8bc6bc9so38386835e9.3 for ; Wed, 22 Apr 2026 05:53:03 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fb75c695sm134492015e9.14.2026.04.22.05.52.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 6C5CD60469; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862382; x=1777467182; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/O57BXYHK8ET+Z6BA/YHEqhtOr337eupd637bkTh7l0=; b=zRjYZxtUV3maLgzQ8KVnwGBsPALz02V7MPZ77c2TB1Hhmc4P45atpS6FjzWBmx00vM tAzamBKjtxFRWAIvCZk4VZciTPUjK1WrpHNvl+pt02oNrNulFB1L8eL7kAWvBO1bOWm8 m042/uUNI4EYCd2yURo3e877ITU7IrTBL0n8g/YrJjMGiW1pZQE7LBa22tcZUz3Hv13l 1osaOqUjpl/xpUf7QLvtwU9SJjp7i8oATIXP6MPFAfkg80DnEYpyfsCNcugzLg0uGGvx s4XO7QCBFfpYZyP6NhC+JxmMo0/3tI0eyRJc5Apqbq4/O+ozPcTLPlmG8SW3lr4KZT35 xpMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862382; x=1777467182; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/O57BXYHK8ET+Z6BA/YHEqhtOr337eupd637bkTh7l0=; b=lIU+u/XTWVhguN/dOwbgx4L0Etbio2ANfUr/dbQgu6PXOm5A2uPPaEVDJVN3C0Pktk bU9rdPuSHp8VdZwIjkvohz263pGiC2xhEXVqTKBfmkIsUcfbga6UheYoK01aPYYoHozU t+g8I6CD0fufZCHtwx7IEkQxu+wsXirSHsjC9RbZXor5zs7/94NKMALSEP75Cq2iftfb KZiIh7iyq9n8j5JIBgffT30n6tkHl/V3ElLGfdhZfZTU89f6UKbbwO1RqHbP6gQqRG4c NSEsXU8qr73habKtToftQo7dezTEOTqwYndk2UzKGcbXtI0HiUmM34dDI1mA/QalrN7y YE4A== X-Gm-Message-State: AOJu0YwijdWt+HuvYNYn01m4vED2+rCyQRra8fGtExmDHtmIgI+9v+Sk MCBxZCcvX1FDTQm3ECYyDouurUXrPx3TKEm1ETnZFG+xiitJCvA2w05EfefTRX4c4mA= X-Gm-Gg: AeBDies/ATv0m/DsDXf77mgOKjv7oF6jVCDm3Uht3pmo/nGzlZTl7jNkK6t/j+M7FoB RUbUknjjTCaGD1JCNtyCNEdLZSSMVYlRlNVH7YjNM/W4TK+GBtqlo5V4+E9LghuN2JSuWea9baO 6z6t6EJKqG0bgOog9JVdWDXJYQDS8Qk7n6os2bkjUcri9/mz/X9iqVUMSN2mEwyZFlGynTPBi5d 5TjKq3YJYxYxBrkOxdC6f/lLUo63cBSHVX/P06tMBSXe5xyKpA1PBBXmd5/SO8aYnIm7qh1mQPd Bn2o/+qhLmT01uoylDsulD52ju2p4yh7RpkO9CzWdjX9pdPvP/2WpAz16ib1UDVaJlRlEQeePHy 6+vEeiVCNp3yxR+vGLWuH0hKhaEi73tRzn5RUxwPj9U7ZkLgBYLeTr5gIvflIcwTZx4WJH1J9No XmvfOVqXw0QyoXXapimU4JvGonDhWS8XPjrA== X-Received: by 2002:a05:600c:3b04:b0:48a:5574:3a57 with SMTP id 5b1f17b1804b1-48a55743eb7mr94839625e9.29.1776862381644; Wed, 22 Apr 2026 05:53:01 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 06/32] target/arm: migrate PAC trap syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:23 +0100 Message-ID: <20260422125250.1303100-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::332; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x332.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: 1776862469459158500 syn_pactrap is fairly simple as the ISS is all RES0. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 61053475984..fd8639d4f07 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -398,15 +398,32 @@ static inline uint32_t syn_smetrap(SMEExceptionType e= type, bool is_16bit) return res; } =20 +/* + * ISS encoding for a PAC Fail exceptions + */ +FIELD(PACFAIL_ISS, BnA, 0, 1) /* B key or A key */ +FIELD(PACFAIL_ISS, DnI, 1, 1) /* Data or Instruction */ + static inline uint32_t syn_pacfail(bool data, int keynumber) { - int error_code =3D (data << 1) | keynumber; - return (EC_PACFAIL << ARM_EL_EC_SHIFT) | ARM_EL_IL | error_code; + uint32_t res =3D syn_set_ec(0, EC_PACFAIL); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, PACFAIL_ISS, DnI, data); + res =3D FIELD_DP32(res, PACFAIL_ISS, BnA, keynumber); + + return res; } =20 +/* + * ISS encoding for an exception from a trapped Pointer + * Authentication instruction is RES0 + */ static inline uint32_t syn_pactrap(void) { - return (EC_PACTRAP << ARM_EL_EC_SHIFT) | ARM_EL_IL; + uint32_t res =3D syn_set_ec(0, EC_PACTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + return res; } =20 static inline uint32_t syn_btitrap(int btype) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862443; cv=none; d=zohomail.com; s=zohoarc; b=HDs+6n6J6ukGG5UEtpQ2Qgt4hBekxpKlvrr5Z6h1ZokpkKHVdphjP/gkAuT4Is3q7NANwtThx535LGYdnErdMMXQ4mjUgVLLfg4BN/pe+uk0E8hd6WPCdbxeDCCORJb75y41LS8boOlG34A6RGecKv0bh/mubu2ElfQPoNym4e8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862443; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=EAtQqYAVHVvhu80r9xI/PSbLS4M6sLMvc1JPbP3qMzs=; b=etymJTmNt4ZtKiJoJFo2j5gYGdQ1B65ydZ67A7WrKCRFbJtiLYgnfR9EEFkzdzMHfLRRrBDXeBoIrJceHkcHWPG8HohQq2QcURYTLyFbn2PasGqu6ixn77GMKLcrYWVku4mdTKNpNPKRgW69ORMWtp62qLeSYPTF80bxnmZXR6Q= 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 1776862443533876.8904022246699; Wed, 22 Apr 2026 05:54:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX4k-00060F-1w; Wed, 22 Apr 2026 08:53:06 -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 1wFX4i-0005yp-G7 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:04 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4f-0005U9-Ut for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:04 -0400 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-488b0046078so49335995e9.1 for ; Wed, 22 Apr 2026 05:53:00 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a5aa3ae83sm83315365e9.12.2026.04.22.05.52.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 7F987608C6; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862380; x=1777467180; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EAtQqYAVHVvhu80r9xI/PSbLS4M6sLMvc1JPbP3qMzs=; b=OJEzjJK0nuK82qlMmGRpA4OlWGyh+T7K+WoRlW2a+ZB4s9NLWvXzbTPzby2ltG3dwZ fHu/j/7i05Ae84wCz6qDIDbfLyAvn8q3tkzWHYmtySl6zoiFk+j/6jXBGtwh/sefleFb s3yk4QTPR9JnjYgdkFU+DuxDEOwNT84jTs47i+2i4+ytBDMTyye6f9Np4ZckWFxJlvVN 1vpLvSrW+FAZyvoZJeU6OIyJ+qHhihC+7YI5wq2z2Vo1QC33ST2e+/TBrXlcUrXyStHg A1uRm25nhS65TUMwZ5E1254H7rtJI1wRzChCuxv/SfABs2NertYTqMP4Ib5I6sNpb0AN rdWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862380; x=1777467180; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=EAtQqYAVHVvhu80r9xI/PSbLS4M6sLMvc1JPbP3qMzs=; b=aYaekNA5vHg7P5M8hLKy73xaQK6hLHPBfvDNHpgfHMWPr94+5Bmj1rxcqv+fItzile e3W7xYlE63q50tXHtB/r6lIaty56x0fAeRT5pIMS+iw8Piu/WaUBaNgcs7kptqhXgDVB gkY8+B6m2XBpGk60AqlX723EPn/hqhZX+5k/fkwR1/vcS0zK8hHD63RFkZxOcpmX3/yq 91BXaQU5NGs5iV7YRTI5VXYcIgqum3SbP7BQIBjfAjJcxBRREUmwwnja6bxiRDY6cas6 Uey3hV+f7NVHriapmmkCNzYC9nFBE8w/3SImqc04GqKB0NQ3aT8c/fiZepP/b02Ns3bg y5xA== X-Gm-Message-State: AOJu0YzXGNLa4efnupxjrZe5ruBfecuRGvyP9PV3OIF3EFN3V06zqtZ2 F9XwLkwKfNuYjAwgnbvrzyaEou+MoZeo7f68O+sFerelT3dVFbF161NkA2FHHKdI5J0= X-Gm-Gg: AeBDievXDnuGILN0iQ4VtffLbXBKyn3C04dBRdaMmDob8shjjm26O2+FRYOLaG0Zkdf YkvBFmQsFdLWY9TaTd8nY7/n4dwA38TEKCSHdwyM8vqp0tNLYCAvY4kIgFMBPfIJcaS3Dvjcz7W 4xMk25szG5EbmQbL0CHa4MBjuV8YfVqBoqWVPCdFhPqCtFQLhccjs+UOdTm3tr61d7GLr9ze7XS eZVlmnQEXNcCnX72wC09d4uu1oaXUTkW6fIAApR81YZeD2aGga3pdxQH91iLtXi69qatV34U0Mf UbNxJaCejzbrzkws4PRyIOMObx5UpEGUWjCULLDTNJoUHD+0htb5oxXcIRofpQI7fHfjv5drmgR ZE+ZUraWsR0O73Jv/flEJH666DOv49vz75V1dCSZ4aFR+kHI2Agbhkk23aAW4voV7VNDxuuR6uR EV1soPlc/UGn57CcQroddPOKjcZwxyo+V75g== X-Received: by 2002:a05:600c:19c8:b0:48a:554d:b9a2 with SMTP id 5b1f17b1804b1-48a554dba51mr117525785e9.6.1776862379611; Wed, 22 Apr 2026 05:52:59 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 07/32] target/arm: migrate BTI trap syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:24 +0100 Message-ID: <20260422125250.1303100-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32f; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32f.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: 1776862445678158500 Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index fd8639d4f07..52a6745cb23 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -426,9 +426,18 @@ static inline uint32_t syn_pactrap(void) return res; } =20 +/* + * ISS encoding for an exception from a Branch Target Identification + * instruction. + */ +FIELD(BTI_ISS, BTYPE, 0, 2) + static inline uint32_t syn_btitrap(int btype) { - return (EC_BTITRAP << ARM_EL_EC_SHIFT) | ARM_EL_IL | btype; + uint32_t res =3D syn_set_ec(0, EC_BTITRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + res =3D FIELD_DP32(res, BTI_ISS, BTYPE, btype); + return res; } =20 static inline uint32_t syn_bxjtrap(int cv, int cond, int rm) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862493; cv=none; d=zohomail.com; s=zohoarc; b=i8UDQp4q+eBGdw8gjHRQqdyYK4ZEYDSEki/JSN+HLFhRhcVWOqmZTuqyGD2c2q2rkzQMy+Zy9YxIwpYNUt1iSHsFzlreIlLrI+ueKTDmR5v9FzRc8Fk7gGSuuVurtYGQCKQZzSR8IyHsQAi+haXJFm3S7LEHGDwewT1tVvOWUtY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862493; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=e8D+Vwc6j20F82XkTXJvqmESw0OfURlyV19jvdfWNbI=; b=Xx7TXwYrBvfDBZkdFLfUdE8cH5wrIA669s6xzsS7tdVkrdjymHpskdHlJFiSV9e/BYkZVdeZTeYzJ5PWt/gLcrMbl8W0qHypAo1+t2E4NAggTF1pFk/IZDZ2lqz6zvO8zKQngk5cztP3FlVpom3vQjNwcjJLFT6wBM1WVJ9awEI= 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 1776862493395648.6797151898978; Wed, 22 Apr 2026 05:54:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX4i-0005yI-0o; Wed, 22 Apr 2026 08:53:04 -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 1wFX4e-0005wn-7Y for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:00 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4c-0005Sk-Bn for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:52:59 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-48984d29fe3so45458065e9.0 for ; Wed, 22 Apr 2026 05:52:57 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fc17f642sm409465435e9.5.2026.04.22.05.52.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 91B0160E72; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862377; x=1777467177; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=e8D+Vwc6j20F82XkTXJvqmESw0OfURlyV19jvdfWNbI=; b=uJdikQrq207nQD0n5viMs/2f2NxZv7M0nP+MxnweOV0v5reKqr80jipCLw7n8+Z0rf j2pM0HdlFKGna+bFR2oC5X67Dt5WE32aDDjA7Qqfdcg0ClP4T1MTQIsQx7UyK3A9TfUg vFBNHDghaKigZ0WUEQ8XpIUx5E8XCNv0kNoboyTTp41zBGj5dYz5usd0fV8hJUS4SAJS UcbUV1D0hSOCzGQN2NXLMFF0ApGm5zCc2dIKkciDrrMa/OK0vdE3gT+WQtFbQMIbF9v4 m0YPdPSUevXMeSSajiMxvuYu4cQC9R4pYz4J8EHvcqakqRmBj4b+Js5ran4NmgvwJt6C yctQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862377; x=1777467177; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=e8D+Vwc6j20F82XkTXJvqmESw0OfURlyV19jvdfWNbI=; b=fSHaiZ5A+Gu4+IGbuuq6JdDZMr2R73c0ng4Pz5SOOghxB0819BOB+H5CsTVxljtLjK cv3fF7QA/6s88rWxdBw2gJp9nTCmCEgeTGe5t8wim5l/yBezDw2LgmCVjmUQvd6mompX u/y4OUdOlguBotNoyuTRZVPJZj9mWdmhxN7vnrHKi8clta3aqibD+cjRaUWwICTvszfx Ajt3a3yJenlR0ILYfbS2R0xnjMX1IIihy5yrCUurzaM/2bUuRFEFGhOEycUlUog1vng1 IsyYHn9WD0YANgH6+Lho5e892hHCgM1r4KFpKfjgy6/3svSjRAbUu98SflkdJVLkMp9s 7M+Q== X-Gm-Message-State: AOJu0Yy8njd/5GtYwdwTMhwlzCNve14XMWtJReuONikRg7MDxmQSgUZv eOSkmnYkD3yLu8EhX6uZJr9lnYhkzjVYvLLCfBh/PBXCt99FGgwdD5eJCYyv+sEDU7o= X-Gm-Gg: AeBDieuIvsCsrg8Lexs4EpPTvusGXesZTZ1ewFizJEvMRvoEbfLA+vbK8GzC8bGILOe 9QbpQ82PJ/eAat1/DKGe01lkogNpEFyJ/yX+oPLR4Eg3D9rCMx3bHYIGlhbHfXX0O3XHJhvyvrZ pCz/v4VQ1OgkuPdJb5DKPZzCD51sPkIKyxJpcpax2kiKMVq0dVRSPp+5CcLRbg4Vmkw5644vNl6 382ZIbyhWOBSB1utDnn6nbNVgJLMvusqujoPJzdbJphHI59kflVjxLIRyuEH/Kqp57Yv/Oag4Xw fzldAByTg+NLCL3tYy7MnYPoyUMw1vZBVnx/ai8nL/nd7Hua471InyoZYfu3dySoMMNBKtUXISv esxt/XzbATXFsuAEGNF2CSkeh0N4adp5G5XFFhZ37vSQQVQ4Klw04KD8XYfm4LUW3KqmcWmW+z4 uvGUZT5Z+3yprCe9H6m+ydQnZIhIKSIjCuWw== X-Received: by 2002:a05:600c:899:b0:489:1a63:509c with SMTP id 5b1f17b1804b1-4891a635125mr125689055e9.0.1776862376580; Wed, 22 Apr 2026 05:52:56 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 08/32] target/arm: migrate BXJ trap syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:25 +0100 Message-ID: <20260422125250.1303100-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::331; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x331.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.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: 1776862495550158500 This is an Armv7 specific syndrome for chips with Jazelle functionality. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 52a6745cb23..6fcf0ac7572 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -440,10 +440,26 @@ static inline uint32_t syn_btitrap(int btype) return res; } =20 +/* + * ISS encoding for trapped BXJ execution + * + * This is an Armv7 encoding. + */ +FIELD(BXJ_ISS, RM, 0, 4) +/* bits 4:19 are Reserved, UNK/SBZP */ +FIELD(BXJ_ISS, COND, 20, 4) +FIELD(BXJ_ISS, CV, 24, 1) + static inline uint32_t syn_bxjtrap(int cv, int cond, int rm) { - return (EC_BXJTRAP << ARM_EL_EC_SHIFT) | ARM_EL_IL | - (cv << 24) | (cond << 20) | rm; + uint32_t res =3D syn_set_ec(0, EC_BXJTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, BXJ_ISS, CV, cv); + res =3D FIELD_DP32(res, BXJ_ISS, COND, cond); + res =3D FIELD_DP32(res, BXJ_ISS, RM, rm); + + return res; } =20 static inline uint32_t syn_gpc(int s2ptw, int ind, int gpcsc, int vncr, --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862485; cv=none; d=zohomail.com; s=zohoarc; b=Tcmn8fviuYOowTc4kuFy97GbREAFhjbyZSwzCU0/kOcVwDvPD70JTAHQVVBQ+OYC7LawqW0pyX36V6rsp6UvgmTYQlLC+zWvRC5HienOPH5q0rWst/4bzOUCDZxnDL61CPxACd7uPe/SFThmpVc6UkvIHZyRXonrWBJqSUGD0hY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862485; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=OMEvstJVHgigEudV5H559dC48ky9GaKFB5z4g04o+Y4=; b=inlPuAPMeotBXlNybd8AYOyKk2WnPXf4PBZgcAoaJHpNrprL1sA6unSf3F3zZr8v3R2qN5jUjD24QNNT/A3He3tnIoapTHF7rpNv4xPknb/unQG6JwUlLyrA1Ati0WbznBiKICXkS0AJOKpY06R0GhS1PIHQPmpcuEyYweXqX2g= 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 1776862485213835.5363664224374; Wed, 22 Apr 2026 05:54:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX4i-0005yq-Hv; Wed, 22 Apr 2026 08:53:04 -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 1wFX4e-0005wr-CJ for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:01 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4c-0005T5-Q3 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:00 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-488a9033b2cso60858675e9.2 for ; Wed, 22 Apr 2026 05:52:58 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fc17f642sm409465985e9.5.2026.04.22.05.52.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id A537460ED5; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862377; x=1777467177; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OMEvstJVHgigEudV5H559dC48ky9GaKFB5z4g04o+Y4=; b=nfTCAJXHBB07zPe5kNdFBJgkDpSYx09+12VC9s7H7yhGxzOJoRtUHPVWE9E5j4msfW +g8vN3Fm6Xt6T+tatZ9IerwMQ5Vl4Y0cb6mBJSYmFQqCTO6LmgQjAFJHqbEF1FAdi1zb sa+TDJGyWOULOcGQX5Ej02NgH2UnjYx4gjShsMJHEb8qwEkP7beOSVmSjmnereIAmDh7 Eb8gXQ0qVHp17FO6KAAWFS1tUlcyfJ8O5MrTlpXk2d+wUkwO/h/ObIqLRUVn467Uw4Ja znsThmpQQRurGSeowCcWDiIissZbOpSHYkx/FO+7FVFnTZO4Ewr78Ppwy6xn8s0pjHQm mKag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862377; x=1777467177; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=OMEvstJVHgigEudV5H559dC48ky9GaKFB5z4g04o+Y4=; b=H98cu/YuwHtMiGsFMrCZiKXCwe7utCnnV0fwkU6rAdUtsLd1vfkANm3Nczc6eunAaT wbKWIGJq6UNHkbjvNx7Z+pv+xIj/XTJWwuh2icgU02XJpO0utnnQKAUeGS4lY9QCixfA 9jGvBcXpkA6ttAwvTBpbDEEDr1THogY02L4plFqPuT9W3dPubQKrqf86fCEFNDX1tF5L VCCo9NoSNtXoScrv007o7o0Ci7O9c65zAUn9H0lgTA3LCaV0q7DZeOgYJtrVerLdQXG8 b7gF6woxQok4ejZh3r9uyipd9Bt0DohmBOXODj8fjf/RgnVfEhCeJi+yDjCayVn9OVPi mqNw== X-Gm-Message-State: AOJu0YxPoOHjm9RuE3F4E1wYStM1NmBlZLhKD1Z/bx970EOic6Q4LvmU +69JqKl0V3s+8Fkfe/CtiIcBOGyJxxEDAPzAAyMeZj2ClBqG633Z5VaCN+4DKfSOGws= X-Gm-Gg: AeBDievPNk58eZ/09pp5v+ZPC0w3YHNEJt05IdH3jEWA25tob58+rSXAl0YSJobeccn VfVVBRfVlVgkDyazy1lKubOibItI6BTSx8BQw25RntggkN68H2EsWXdkHqw1UYqOU3hucoCY7Gv Z1jqS2iC1nVJwpyTzM3G61NhZHVz9AQAPtke4waV3zocgHvkauLWnX/dKEDWMBBTZXyldlJhU4j tCoGaHtN/Ig30/ryvuRvOkt6eQoOS4TloJUdTrOWUSqNvLKRHbDjmmY2VfzVb2gkxxupYT0FpDv ZdjqlfdLM5JvFhD00gUCOtSJUPbUzUE1CbAZXpQTomY4duinuajRzYW9ypb40ZvOU0PndOVsdOO h7xYjUAqv7J6GkANJdRvxEz5o2mVXpVIezWFGMyNtJqdWRbuw+6RCw9UXODsaUiA7xqdkbLmjME isfnT9Ezf4R2CwsG5vxhDksw3WbKolnQMIYw== X-Received: by 2002:a05:600c:4e4c:b0:48a:58ae:9938 with SMTP id 5b1f17b1804b1-48a58ae9f69mr79775915e9.19.1776862377319; Wed, 22 Apr 2026 05:52:57 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 09/32] target/arm: migrate Granule Protection traps to registerfields Date: Wed, 22 Apr 2026 13:52:26 +0100 Message-ID: <20260422125250.1303100-10-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::331; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x331.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: 1776862485642158500 Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 6fcf0ac7572..bc65106c61a 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -462,12 +462,36 @@ static inline uint32_t syn_bxjtrap(int cv, int cond, = int rm) return res; } =20 +/* + * ISS encoding for a Granule Protection Check exception + * + * These are only reported to EL3 + */ +FIELD(GPC_ISS, xFSC, 0, 6) +FIELD(GPC_ISS, WnR, 6, 1) /* Write not Read */ +FIELD(GPC_ISS, S1PTW, 7, 1) +FIELD(GPC_ISS, CM, 8, 1) +FIELD(GPC_ISS, VNCR, 13, 1) +FIELD(GPC_ISS, GPCSC, 14, 6) +FIELD(GPC_ISS, InD, 20, 1) /* Instruction not Data access */ +FIELD(GPC_ISS, S2PTW, 21, 1) + static inline uint32_t syn_gpc(int s2ptw, int ind, int gpcsc, int vncr, int cm, int s1ptw, int wnr, int fsc) { - return (EC_GPC << ARM_EL_EC_SHIFT) | ARM_EL_IL | (s2ptw << 21) - | (ind << 20) | (gpcsc << 14) | (vncr << 13) | (cm << 8) - | (s1ptw << 7) | (wnr << 6) | fsc; + uint32_t res =3D syn_set_ec(0, EC_GPC); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, GPC_ISS, S2PTW, s2ptw); + res =3D FIELD_DP32(res, GPC_ISS, InD, ind); + res =3D FIELD_DP32(res, GPC_ISS, GPCSC, gpcsc); + res =3D FIELD_DP32(res, GPC_ISS, VNCR, vncr); + res =3D FIELD_DP32(res, GPC_ISS, CM, cm); + res =3D FIELD_DP32(res, GPC_ISS, S1PTW, s1ptw); + res =3D FIELD_DP32(res, GPC_ISS, WnR, wnr); + res =3D FIELD_DP32(res, GPC_ISS, xFSC, fsc); + + return res; } =20 static inline uint32_t syn_insn_abort(int same_el, int ea, int s1ptw, int = fsc) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862487; cv=none; d=zohomail.com; s=zohoarc; b=F1CUKznp4WYrGD7/bVmHvKgban36aotrco7wnG/pILfqNN6H9eJdFaG0XDw8xb2S4kp4B8uxqsyvp4bp3U/S9rGj4b+aZag5szvPwJEzmDTe+WTyrAoNC/aXAl7RcEXspw4Z6vs7aiKJ5KrDlrnYXpWCemPK+NGwp0XjhLX1GC0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862487; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VPvaC3auN+3Ca9Dko/At0hA0QqcpQF6nrnCTiO0WhDI=; b=Mz4N2uMPsUunYkp8G8ndozAaTFDOh6/a+LlutXnn8XdRtagXzIsF7yC8hD5/2RmVpZvS1pbBC2n1whMHZeWR1VKL2b2TWX66jV0hWGSGceTk5NVO4FLsNCKMXyT2N/3ku0Q6+Bj6psLuPEJE+X+dPZ/gbCk1kv9e4ldROv8M49E= 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 1776862487429154.91837903118585; Wed, 22 Apr 2026 05:54:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX5a-0006Ng-OM; Wed, 22 Apr 2026 08:53:58 -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 1wFX4k-00060O-43 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:06 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4g-0005U0-3a for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:05 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-488ba840146so49869625e9.1 for ; Wed, 22 Apr 2026 05:53:00 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a5aa3ae83sm83319095e9.12.2026.04.22.05.52.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id B7D6C60EE9; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862379; x=1777467179; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VPvaC3auN+3Ca9Dko/At0hA0QqcpQF6nrnCTiO0WhDI=; b=U2Gn7jYZATyYZDJF25skhhQfSNxCa83ATsxr24EkTT6dqWxXYKveP65ES76/6fuV/L 05URbu0Jw67K4hhkgu8MZ2l0h8A3tXKI22WMEl8DNeXv6PrPKT90uBqlV2mNssFLkKT0 8rFu+Mqr4NxSgUzbe+mwS126deeA6nEyl3jT+MyiHFJX1G8UUMulw7boja8mG2bjTazI SwEmhaAFFVmgMLGYXrYnT+c8AJfsPG22iKJWWWALnr1hBiGWshEFfOMcjmtAg3OAW4wP Q4nbgHYZ21DB8A917I4q1/ahsmcZTII556rikgUJTyV/4qtEcM8z4RPC6MVWpLS7HYEc 7ILA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862379; x=1777467179; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=VPvaC3auN+3Ca9Dko/At0hA0QqcpQF6nrnCTiO0WhDI=; b=JRCzGXPUW1A8fxDoTGL+PKwXxhgxNLh9bd3UZtIHu1gRRF0t0ss9HgEf5cSF0MMUdK mxBKJlRXssNF2eH9uDoX9cdScvC3ZDg3HrSfr4wW/92vcoMOk8a0/dV61d+T1PDBL+Lq QYIe/Rw+CIRIZSgwnfOJGAqx88godtWfmKc9i8kp+i6RQ9EiCY57wXC2KIhuNLq2H/Mi RJYPJ4Q9XWJduhzEaKI2ShOFDgAD93Ek7AKxPG2P6MscPmFK2TiDVOP8aJRO9qBpB5VS r6vWoTb8fvWRQaHM6+CDsQxH/xmejngsqg576NnfSmQ0AyO9FUL9Tuo/yknyuNgEhjxY 8fTg== X-Gm-Message-State: AOJu0YyihjNZBKOTgLm5S68Ikpcd3923N57cLFK5ldBalwP7V9FRnzb9 ED8Bb1t/zq8OMUWUCx10KDJ3muXiunhz2sUKEwqIhKVCj8P7lZzOHsBkVs3xPLu6hVw= X-Gm-Gg: AeBDiet7VgU4TnqUWP5LHX5uIFHfSl/yJ/Sv6H9hiHvtuh1bEfRpd9KvJeAD/8K5gTd 7FSsImNLQXjJ5QUb6xbP9OnVVWtXsimxXe5Fp+jVLvguc77ccSAF5sMWQUFYRsJoblpODmgR763 2YkxusnOIPI/xO9Wfh7v8Rb9lZL+J0MoFG2v6F0Zyq+gdUS9c28CGESWzVzshLow/CmkXQPdW3r O97N1wMFGyEDHA1D47rG9sPKO8hphsO4eDpbozWGQ9ESJ0VaTwjHez/8hHgt5NrVEcHeWpafBDx GqE+4DOEDcrg6/KWJwphnPloz2e+GPvOsD/N0RQjuPPlJhNa50jHo+znHcrw+Y3LDKromxyJr2F G319jomNRiQVTIUVRqE12TKjERJcHESELRXZNJj2wwRg2RCXFsQQ7KG32ioqu7Nl8+PDiYE6k5p WJD6I0Phop+CcGImVzIZtSFP+jVKcw8yhbKw== X-Received: by 2002:a05:600c:450c:b0:487:55c:e0c1 with SMTP id 5b1f17b1804b1-488fb768816mr309582475e9.14.1776862378790; Wed, 22 Apr 2026 05:52:58 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 10/32] target/arm: migrate fault syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:27 +0100 Message-ID: <20260422125250.1303100-11-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::333; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x333.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.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: 1776862489915158500 Migrate syn_insn_abort and syn_data_abort_* to the registerfields API. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e Tested-by: Philippe Mathieu-Daud=C3=A9 --- v2 - use !is_16bit directly --- target/arm/syndrome.h | 87 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 74 insertions(+), 13 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index bc65106c61a..2031b3704fb 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -494,20 +494,64 @@ static inline uint32_t syn_gpc(int s2ptw, int ind, in= t gpcsc, int vncr, return res; } =20 +/* + * ISS encoding for an exception from an Instruction Abort + * + * (aka instruction abort) + */ +FIELD(IABORT_ISS, IFSC, 0, 6) +FIELD(IABORT_ISS, S1PTW, 7, 1) +FIELD(IABORT_ISS, EA, 9, 1) +FIELD(IABORT_ISS, FnV, 10, 1) /* FAR not Valid */ +FIELD(IABORT_ISS, SET, 11, 2) +FIELD(IABORT_ISS, PFV, 14, 1) +FIELD(IABORT_ISS, TopLevel, 21, 1) /* FEAT_THE */ + static inline uint32_t syn_insn_abort(int same_el, int ea, int s1ptw, int = fsc) { - return (EC_INSNABORT << ARM_EL_EC_SHIFT) | (same_el << ARM_EL_EC_SHIFT) - | ARM_EL_IL | (ea << 9) | (s1ptw << 7) | fsc; + uint32_t res =3D syn_set_ec(0, EC_INSNABORT + same_el); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, IABORT_ISS, EA, ea); + res =3D FIELD_DP32(res, IABORT_ISS, S1PTW, s1ptw); + res =3D FIELD_DP32(res, IABORT_ISS, IFSC, fsc); + + return res; } =20 +/* + * ISS encoding for an exception from a Data Abort + */ +FIELD(DABORT_ISS, DFSC, 0, 6) +FIELD(DABORT_ISS, WNR, 6, 1) +FIELD(DABORT_ISS, S1PTW, 7, 1) +FIELD(DABORT_ISS, CM, 8, 1) +FIELD(DABORT_ISS, EA, 9, 1) +FIELD(DABORT_ISS, FnV, 10, 1) +FIELD(DABORT_ISS, LST, 11, 2) +FIELD(DABORT_ISS, VNCR, 13, 1) +FIELD(DABORT_ISS, AR, 14, 1) +FIELD(DABORT_ISS, SF, 15, 1) +FIELD(DABORT_ISS, SRT, 16, 5) +FIELD(DABORT_ISS, SSE, 21, 1) +FIELD(DABORT_ISS, SAS, 22, 2) +FIELD(DABORT_ISS, ISV, 24, 1) + static inline uint32_t syn_data_abort_no_iss(int same_el, int fnv, int ea, int cm, int s1ptw, int wnr, int fsc) { - return (EC_DATAABORT << ARM_EL_EC_SHIFT) | (same_el << ARM_EL_EC_SHIFT) - | ARM_EL_IL - | (fnv << 10) | (ea << 9) | (cm << 8) | (s1ptw << 7) - | (wnr << 6) | fsc; + uint32_t res =3D syn_set_ec(0, EC_DATAABORT + same_el); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, DABORT_ISS, FnV, fnv); + res =3D FIELD_DP32(res, DABORT_ISS, EA, ea); + res =3D FIELD_DP32(res, DABORT_ISS, CM, cm); + res =3D FIELD_DP32(res, DABORT_ISS, S1PTW, s1ptw); + res =3D FIELD_DP32(res, DABORT_ISS, WNR, wnr); + res =3D FIELD_DP32(res, DABORT_ISS, DFSC, fsc); + + return res; } =20 static inline uint32_t syn_data_abort_with_iss(int same_el, @@ -517,11 +561,22 @@ static inline uint32_t syn_data_abort_with_iss(int sa= me_el, int wnr, int fsc, bool is_16bit) { - return (EC_DATAABORT << ARM_EL_EC_SHIFT) | (same_el << ARM_EL_EC_SHIFT) - | (is_16bit ? 0 : ARM_EL_IL) - | ARM_EL_ISV | (sas << 22) | (sse << 21) | (srt << 16) - | (sf << 15) | (ar << 14) - | (ea << 9) | (cm << 8) | (s1ptw << 7) | (wnr << 6) | fsc; + uint32_t res =3D syn_set_ec(0, EC_DATAABORT + same_el); + res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); + + res =3D FIELD_DP32(res, DABORT_ISS, ISV, 1); + res =3D FIELD_DP32(res, DABORT_ISS, SAS, sas); + res =3D FIELD_DP32(res, DABORT_ISS, SSE, sse); + res =3D FIELD_DP32(res, DABORT_ISS, SRT, srt); + res =3D FIELD_DP32(res, DABORT_ISS, SF, sf); + res =3D FIELD_DP32(res, DABORT_ISS, AR, ar); + res =3D FIELD_DP32(res, DABORT_ISS, EA, ea); + res =3D FIELD_DP32(res, DABORT_ISS, CM, cm); + res =3D FIELD_DP32(res, DABORT_ISS, S1PTW, s1ptw); + res =3D FIELD_DP32(res, DABORT_ISS, WNR, wnr); + res =3D FIELD_DP32(res, DABORT_ISS, DFSC, fsc); + + return res; } =20 /* @@ -530,8 +585,14 @@ static inline uint32_t syn_data_abort_with_iss(int sam= e_el, */ static inline uint32_t syn_data_abort_vncr(int ea, int wnr, int fsc) { - return (EC_DATAABORT << ARM_EL_EC_SHIFT) | (1 << ARM_EL_EC_SHIFT) - | ARM_EL_IL | ARM_EL_VNCR | (wnr << 6) | fsc; + uint32_t res =3D syn_set_ec(0, EC_DATAABORT_SAME_EL); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, DABORT_ISS, VNCR, 1); + res =3D FIELD_DP32(res, DABORT_ISS, WNR, wnr); + res =3D FIELD_DP32(res, DABORT_ISS, DFSC, fsc); + + return res; } =20 static inline uint32_t syn_swstep(int same_el, int isv, int ex) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862477; cv=none; d=zohomail.com; s=zohoarc; b=QDRPQRfs4X7zJLNF0+fItP2HZ5mjudLdKvtdWQIUcd+Jt+N4z2qqAnoun74Pv4CLs46i3oAds5MTBlvDipZ0O+nitzSd6cilcX9rJC7DYKxLp2sSYkriMYPYZPCLNFHjS4gWjnmmh8durVKU02X4eAbWsem63Y1oq8TruKhggjw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862477; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7nsukKtrqlrIyVc1W2h4m0opSAHZeyebGQjoHRKe/ww=; b=GSNsM6CCGySF8dXTnzPyu4972K7TWHzMuv6PSEC9WkABO52UuIyiX6ubEJ9CvLUrBwtvhhM5T+3VoManOwqyfK5c52E4T0xICAGjrFHA7Z7KzCbV2Vo4JI5OjcGEqYo8RJ4vkAioETVu3scc0yCcFhp3SStmZ8oBlgwl6BJUEDc= 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 1776862477742701.4227940909433; Wed, 22 Apr 2026 05:54:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX5g-0006nV-Kt; Wed, 22 Apr 2026 08:54:04 -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 1wFX4l-000617-AN for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:07 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4i-0005Uu-1V for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:07 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-488b8bc6bc9so38386905e9.3 for ; Wed, 22 Apr 2026 05:53:03 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fc0f82bbsm753005695e9.3.2026.04.22.05.52.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id CAF0560EFD; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862382; x=1777467182; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7nsukKtrqlrIyVc1W2h4m0opSAHZeyebGQjoHRKe/ww=; b=EyQ184mOwMarJxWi0h2hAhZAPvXwVuO2Ierk7o81EfUkuut5pkJkycujVwpfGJPTvf lCmCBfSqTekP7QwGVABsO2yOBZXTGYQlevlJFuwKiRH7A337gp2sURQ+ZG3jqOPtKgr6 U28/TIRdzpfUioQdVrkB1QitfxUWiaEdwpCRsCDszWBDdYb0H+b1M2B5qJSezEwseE2T js7FZvgL0bZ4j+gn3ZE9df13x1yW362/Gjpxg7xdf8t24TT7oPworQu8dE0koPMYlq0N LTtUJYV0eaRtN4exyrTu8YVYTj+dxZuuLpX8qOiA9VDRLVV++BCu+8bui9EfavXMjhad a4Hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862382; x=1777467182; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7nsukKtrqlrIyVc1W2h4m0opSAHZeyebGQjoHRKe/ww=; b=NR7myxfV2cIDoQunpuAockorXaA4IEsz0D4FTEzTHbHmS7zk3HEWirN2AXbfXBD94E Cj/x4H6RwkUyU0sb0nw/v8Cdubtki12NwcaaWZ5Bk0eilBbH7x41WK9Po3LAmpI6zOuf XUwM1G08LKHCJdDCmEOLTiJJscm6zV24Tgpxw+osNx9yI87P0drmXqY9iGsrBlJmSP+8 4tA4GaDDUZlmSP67yMF2IR68AOC8VhHSwLFFVgK9/ZX/RcVJ00BeQ6U7yX1VysIF9eHg v2XIfpz5ofv5xcvJ/BHzolh5Q/wKO8Vr29IwdET/8edrju9EjLKjQuoVembOStad4RvK NhaQ== X-Gm-Message-State: AOJu0YxFxZS81cAgOHovxrTm2cAsA0diMkR7MsO1Ta9ejtUHeQYJEHYK Ob7mnOpPKde8ukdXHByhofkNR5eZhhmzxAS1BIQkfEjvxl6kiVKP2c6qrSoA5EFHkeA= X-Gm-Gg: AeBDiesuKcQz812CfA5KadG7vwbe2Gm2vt192numuqjKeBh529p1Kes9uAonQh8xHFI v4iUtxn0D+j03gJKHuAfqp6oX6PsTvrlcCyxoQa8bR0CVNR3RtnCov5RC4Tk1O+MsDyhpbExd4H hnTyjzw2iwqgUspSzEb12B8myU/LM4TtctXGfvYZ4XwKzYMu+6sh85QU1k4Va/kUA7404IpaSdW uG4nEo5buqEdXF8zy3knOgTuGDlNINV96BdtLzZjoz/tj4ESEm2PYpLydsu9YJpqKKnQ7SW/Mst BuRM+7gRyYTBLsVYT02wCACeZF7O0RyLDv6Vd6C0oavQIyix3Mtihk8m3LgZTEtf/gvPt+rwgJy aI9gp/tbIGkUf/Vd58u2z9Vv9sbGJEFqMjEBtHSi5RnwHPTXr4L74ClMgCm60Eq3q+cuBBlmFd1 DcVhqHSAoYFg/o4qYjUMDLXF2JZgy3WeYdxQ== X-Received: by 2002:a05:600c:a105:b0:486:fb69:4960 with SMTP id 5b1f17b1804b1-488fb7786e4mr229329295e9.19.1776862382062; Wed, 22 Apr 2026 05:53:02 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 11/32] target/arm: migrate debug syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:28 +0100 Message-ID: <20260422125250.1303100-12-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::336; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x336.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.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: 1776862479458154100 Migrate syn_swstep, syn_watchpoint and syn_breakpoint to the registerfields API. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 54 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 2031b3704fb..2ad6b97aea5 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -595,22 +595,64 @@ static inline uint32_t syn_data_abort_vncr(int ea, in= t wnr, int fsc) return res; } =20 +/* + * ISS encoding for an exception from a Software Step exception. + */ +FIELD(SOFTSTEP_ISS, IFSC, 0, 6) +FIELD(SOFTSTEP_ISS, EX, 6, 1) +FIELD(SOFTSTEP_ISS, ISV, 24, 1) + static inline uint32_t syn_swstep(int same_el, int isv, int ex) { - return (EC_SOFTWARESTEP << ARM_EL_EC_SHIFT) | (same_el << ARM_EL_EC_SH= IFT) - | ARM_EL_IL | (isv << 24) | (ex << 6) | 0x22; + uint32_t res =3D syn_set_ec(0, EC_SOFTWARESTEP + same_el); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, SOFTSTEP_ISS, ISV, isv); + res =3D FIELD_DP32(res, SOFTSTEP_ISS, EX, ex); + res =3D FIELD_DP32(res, SOFTSTEP_ISS, IFSC, 0x22); + + return res; } =20 +/* + * ISS encoding for an exception from a Watchpoint exception + */ +FIELD(WATCHPOINT_ISS, DFSC, 0, 6) +FIELD(WATCHPOINT_ISS, WNR, 6, 1) +FIELD(WATCHPOINT_ISS, CM, 8, 1) +FIELD(WATCHPOINT_ISS, FnV, 10, 1) +FIELD(WATCHPOINT_ISS, VNCR, 13, 1) /* FEAT_NV2 */ +FIELD(WATCHPOINT_ISS, FnP, 15, 1) +FIELD(WATCHPOINT_ISS, WPF, 16, 1) +/* bellow mandatory from FEAT_Debugv8p9 */ +FIELD(WATCHPOINT_ISS, WPTV, 17, 1) /* FEAT_Debugv8p2 - WPT valid */ +FIELD(WATCHPOINT_ISS, WPT, 18, 6) /* FEAT_Debugv8p2 - missing WP number */ + static inline uint32_t syn_watchpoint(int same_el, int cm, int wnr) { - return (EC_WATCHPOINT << ARM_EL_EC_SHIFT) | (same_el << ARM_EL_EC_SHIF= T) - | ARM_EL_IL | (cm << 8) | (wnr << 6) | 0x22; + uint32_t res =3D syn_set_ec(0, EC_WATCHPOINT + same_el); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, WATCHPOINT_ISS, CM, cm); + res =3D FIELD_DP32(res, WATCHPOINT_ISS, WNR, wnr); + res =3D FIELD_DP32(res, WATCHPOINT_ISS, DFSC, 0x22); + + return res; } =20 +/* + * ISS encoding for an exception from a Breakpoint or a Vector Catch + * debug exception. + */ +FIELD(BREAKPOINT_ISS, IFSC, 0, 6) + static inline uint32_t syn_breakpoint(int same_el) { - return (EC_BREAKPOINT << ARM_EL_EC_SHIFT) | (same_el << ARM_EL_EC_SHIF= T) - | ARM_EL_IL | 0x22; + uint32_t res =3D syn_set_ec(0, EC_BREAKPOINT + same_el); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + res =3D FIELD_DP32(res, BREAKPOINT_ISS, IFSC, 0x22); + + return res; } =20 static inline uint32_t syn_wfx(int cv, int cond, int ti, bool is_16bit) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862485; cv=none; d=zohomail.com; s=zohoarc; b=eUfvPap9IiDxpkeRk6UvEJekKjkaTRNLSZz7nr8WGArN06LfjIsTqn8LwE3P1faL+1WPgJoNsHT0Rx9qIwCqiA7A3A7FzUc866O/omnbUI8NbNMQmufFuyMm76Wx3/yZXuffyvgeAIOv2dCI7+b1E/DHe3t8DzULcBdHEQY0vxc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862485; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Oy8aVZbZZZe1U+CUvOIDDEpwm1FnWydA8CkWhWsEzmU=; b=ivmyxGAaN2EJ0xER6XneY4N164o9WPR72I1FnKjizju5zyqu02W0Y9f7jh6czAICnOoHlNJnq9bGCofUs/1QM0zD6RPEUpT+Gt69RcwiyQ70B/5S/IhbZx250BLI58BqIZkEjzWbKj0cz7bOdE4Ch7QCYjtsgV7Jz0gFQb5adLk= 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 1776862485370270.7639810681751; Wed, 22 Apr 2026 05:54:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX4i-0005z4-QF; Wed, 22 Apr 2026 08:53:04 -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 1wFX4h-0005yO-DO for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:03 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4f-0005Tn-Oe for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:03 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-4891f625344so37527795e9.0 for ; Wed, 22 Apr 2026 05:53:00 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4412150a071sm10434897f8f.21.2026.04.22.05.52.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:52:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id E154060F2B; Wed, 22 Apr 2026 13:52:51 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862379; x=1777467179; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Oy8aVZbZZZe1U+CUvOIDDEpwm1FnWydA8CkWhWsEzmU=; b=bxpmWuA9P9L0E0FlG86LzWZ+Yv8bQpXfTIk9eTlX/gWh7jFoHc1neq4oX0UNMcHCrZ gnO3wQ6SA0xY3Grubp+KDkFlJK3My3bDcw/5Sldnw4fSXg999hvIfZbl6vST/R0Oop/v Y+bWrlAxeC+2vtrv2z9ZGvh+ufRBH28WhKRCmfzeQovxetteDAZLsSRdGUZFNDBBeF5U +qXAGw5mDNoWo4LiXyawlexnBdNBvDoojyayQ670hxy4GzI7ZHb1nDs1+BdUUMw5c+NH J0RauHj5X6o9hk55thO0ZRIx4FogQeew6JwpqLPMB93yJakx1Oo9DzOdLnt2d7D0a+Ph Q3og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862379; x=1777467179; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Oy8aVZbZZZe1U+CUvOIDDEpwm1FnWydA8CkWhWsEzmU=; b=gTogedxzIzZOvzNXq3iqyU+pbRwHZK1KWUtClDCyp44+wL8YFCZE2abzwftALDmbBV gayLSWgRgAJxemnfUT0sGigJXxpsgsyba/4TiOWERGv7TwSOWhFiPtHIZJfkeOfWEhi6 Fn0PLCNe+rNuuoFAOQR5PrF39EgetZSquG7wYMHZHcxFuGxkdlnMwHoY8ann2/Xae2SR 0+xlVEaiNzfAcTIkKRmzwhq0w8Fe910qlD8s5wyPGrgsjEH9WgB8d2AhQ7aicSbMCQXc 4+Y5CbC21KABM+7fNZ0Yeq/PzebevbFzk6bCfAxLZ3RHcDR2xHdWktDESGYAOG5jpscz L8XQ== X-Gm-Message-State: AOJu0YxZK/aqjf4QN/qHkvhe5JbEixkwkkY6iZ1mEgqYHofI+XrD299W 6zfLMwfhmNQ3et0eDbuyl8AdRCJBCeh0me5kHfLibuM26JsDwNs4SvdbiU4SZyI/6vQ= X-Gm-Gg: AeBDiesYPDWYrCCQyq/3l8N2W0t2yCOuKHJxWOyx3pPWayBCVeKqzYKo7CPdKyiWuNA GiSQTG0DZEctfGyLbEZYU+J6VsnoOBAyTU6klWZp5H4lqyP0aQKzUSTcCfuNT8GLZ9Y+ZgIDtcf nAd7DMqoDFiVQegqMbvWvTEOUHsXD7/nCUUDd8MsH0dnPxxV5Q5DYR/j7DWHwf6l8ORZr48lYiW SAPxypp5GxElf6aQFYplTyYwvZQBbkzqaBUXPE+VWd9euE8BnaNPRlNBMZ8z1fDw5H0DD1pblPH nkq9kC3SdzJLBkmfIFYgZLFCSMbQtx4CEUfz+VnfSL1I94IPdeEN6EayCjOrtDiWaiz0bR3Vr9S CL31er6AnC76wnxHQ0+h+fIHuhjRDheX40ehyRGFDkOnWIvuY30nTMss86yKiIkgamjtNJwjVR4 zjQBKUNVYNFku3YA8x8SGJvOZaMDMxP6t95w== X-Received: by 2002:a05:600c:2288:b0:47d:52ef:c572 with SMTP id 5b1f17b1804b1-488fb881ee2mr212647635e9.1.1776862379208; Wed, 22 Apr 2026 05:52:59 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 12/32] target/arm: migrate wfx syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:29 +0100 Message-ID: <20260422125250.1303100-13-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32b; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32b.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: 1776862487885158500 This will help later when we expand the fields we report. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- v2 - use !is_16bit directly --- target/arm/syndrome.h | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 2ad6b97aea5..65d0de63a83 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -655,11 +655,25 @@ static inline uint32_t syn_breakpoint(int same_el) return res; } =20 +/* + * ISS encoding for an exception from a WF* instruction + */ +FIELD(WFX_ISS, TI, 0, 2) +FIELD(WFX_ISS, RV, 2, 1) +FIELD(WFX_ISS, RN, 5, 5) +FIELD(WFX_ISS, COND, 20, 4) +FIELD(WFX_ISS, CV, 24, 1) + static inline uint32_t syn_wfx(int cv, int cond, int ti, bool is_16bit) { - return (EC_WFX_TRAP << ARM_EL_EC_SHIFT) | - (is_16bit ? 0 : (1 << ARM_EL_IL_SHIFT)) | - (cv << 24) | (cond << 20) | ti; + uint32_t res =3D syn_set_ec(0, EC_WFX_TRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); + + res =3D FIELD_DP32(res, WFX_ISS, CV, cv); + res =3D FIELD_DP32(res, WFX_ISS, COND, cond); + res =3D FIELD_DP32(res, WFX_ISS, TI, ti); + + return res; } =20 static inline uint32_t syn_illegalstate(void) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862507; cv=none; d=zohomail.com; s=zohoarc; b=hlOd+uaNw5wummjlUh/HiOi4YFvc6HbR1qYKJ3Y78dqZ03VC800ZA7moBBmAsjpUZtKJfvepqsIIUH64F1sRNgg+T0/0cJsVRb/Zmj8gCH70Tn2/Fxoml/qtkllIUmXiOd0jd1ymkgwP1kgrG8xFMymvLn2nlrL+5geTfdIEgt4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862507; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qLD556mwBZN0FOjv6jT/HPan7Y0S6BW5g1K/GkaPB6k=; b=ec36ZIX+LYGTYfw3xUx/7JicgQtbwCx1orKCp77lbHqG9OQLsoep/HGi4huQCOJKaRG1pjON6tQPU0WzmmMtNmu0k9lMgF9b9LWeATPQpC21VTEN2NBdgQhHmHjGx9/fu1TSQ/ZbVUJz05FmB6XiJEfq7KazvimwcVY1OIQ3t0I= 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 1776862507684464.1904612609196; Wed, 22 Apr 2026 05:55:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX5e-0006Zd-5c; Wed, 22 Apr 2026 08:54:02 -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 1wFX4o-00062T-1O for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:11 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4l-0005Wa-DX for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:09 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-48984d29fe3so45460095e9.0 for ; Wed, 22 Apr 2026 05:53:06 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fb7a051dsm137846115e9.18.2026.04.22.05.52.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:53:02 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 019D060F3D; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862386; x=1777467186; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qLD556mwBZN0FOjv6jT/HPan7Y0S6BW5g1K/GkaPB6k=; b=igYVC1UnAeREQlFKgMkH8vv7v6oFKSl0IfrPmHFs2R9/bSFXWqWO8Y6uibCKNIVuJB BJikTwkXLyMBCROhchzYqgdxrqPXBi/EQzdKys3KEPlIo5ZLsRhCawLJs4Jx747vU0KQ vF+kf5rPJpw39rnTx+v3A3gvTHtn1dmZ+7KderIxjlvKVhyj0p2Vb5Ht0YIh91a51M4Q lHVsV7hk7VN2cd4RxpP2RlE1RiF9DDjTgnLLqC44r7A80LGmVSc0VBJrQJesygVjigt9 IiPqp/FSSIvttKzUDpd1orJyOu1euRGtORj/wZR29avplP4z1DOphrojBtQkjFOjobvt aK5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862386; x=1777467186; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=qLD556mwBZN0FOjv6jT/HPan7Y0S6BW5g1K/GkaPB6k=; b=hpknWjmLcyNidGEV4vcgztA/o7vcQgEX32QShDytbQ4MS1Q8cZg5ay6DE1XJSvvwNP iQytnyV8ThVpQnQRlOuSFAEw6l8mEUolKSdLz+KdWRxHHQYINi/R+BDFvs1tlcWxr4sY BCikm2ryixUKEnpTCt6m7KyCoRMOtme6BSeJ8cq7XZR6NpdZjAEsNaspAlXV4RlQ6Rho CBRieC5sTfKohmCZTfIKaHTWMuEHVpSfMJIaIKSrZn0BvYSkSROca9c+7cOJQWAEBVj2 e6kfGpbz0r0xjUSadONjAJNTiPqDPVooXI+g1Ld/8rAKUCm/XsNcslSm77p0PAgmCguu cP7w== X-Gm-Message-State: AOJu0YxPjhSDmbEFG9tRd9JwD6XkgzJtrhltlTfwJCmx33l12pr/C3ab 8WARLdX0JOBjgkEGAhrHG5ECS4/NEjBwE2QOOOMSPyKOqYo0Y+1Rd0/FT2p97ze8crI= X-Gm-Gg: AeBDiesVt3Nk5sZzCDl6G/hwJIM+Hzt1KnAR2u5ua1J0D2jhYwdjQMJNOt6+pldAyM6 xfemPjr71HV9FRhPjhlJGHTJ0FpwvQYL/Oveer0xo6v+j9XitKQd6PhpFSO/nwS6MFNkJB/CG1H qxzWe9e/ca6NB3QT+QMUZMxW2LDACUw+9H+oajT1wnxzENzz0bj36vzmbU64+qm7/46aXAlGhMx FzB3xXABuPH7vOz3ICd3BRXFNHt9YZmWCwcOVJVXiGpO4W6+iH8ALv9hQMouYYEsNMDsLydIlks GpcCp24hcdPpNZIDDXbPPjNYg1yJ2T3ba8ntseAebkZePNl5+1kE0hBVRgnV5WwDvsjLCAv1Ihs oL65QstpoIeGOjNBjiROeywTC2t0rbD1VB31hxgtj3Ufrfg4CoUBh8cwaLQGBxUKp6mOlkdMTb7 4yiN97G3LpTWkQ16I4dC3B07JbG6XH5orXGg== X-Received: by 2002:a05:600c:c0d5:b0:488:c683:be89 with SMTP id 5b1f17b1804b1-488fb74dffemr247493325e9.9.1776862385550; Wed, 22 Apr 2026 05:53:05 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 13/32] target/arm: migrate gcs syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:30 +0100 Message-ID: <20260422125250.1303100-14-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::335; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x335.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.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: 1776862509603158500 Tweak arg names to make it clear raddr is the data address register number. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- v2 - rename ra->raddr to document things. --- target/arm/syndrome.h | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 65d0de63a83..7ff8c30e2bb 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -690,21 +690,48 @@ static inline uint32_t syn_pcalignment(void) return res; } =20 +/* + * ISS encoding for a GCS exception + * + * Field validity depends on EXTYPE + */ +FIELD(GCS_ISS, IT, 0, 5) +FIELD(GCS_ISS, RN, 5, 5) /* only for non EXLOCK exceptions */ +FIELD(GCS_ISS, RADDR, 10, 5) /* only for GCSSTR/GCSSTTR traps */ +FIELD(GCS_ISS, EXTYPE, 20, 4) + static inline uint32_t syn_gcs_data_check(GCSInstructionType it, int rn) { - return ((EC_GCS << ARM_EL_EC_SHIFT) | ARM_EL_IL | - (GCS_ET_DataCheck << 20) | (rn << 5) | it); + uint32_t res =3D syn_set_ec(0, EC_GCS); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, GCS_ISS, EXTYPE, GCS_ET_DataCheck); + res =3D FIELD_DP32(res, GCS_ISS, RN, rn); + res =3D FIELD_DP32(res, GCS_ISS, IT, it); + + return res; } =20 static inline uint32_t syn_gcs_exlock(void) { - return (EC_GCS << ARM_EL_EC_SHIFT) | ARM_EL_IL | (GCS_ET_EXLOCK << 20); + uint32_t res =3D syn_set_ec(0, EC_GCS); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, GCS_ISS, EXTYPE, GCS_ET_EXLOCK); + + return res; } =20 -static inline uint32_t syn_gcs_gcsstr(int ra, int rn) +static inline uint32_t syn_gcs_gcsstr(int raddr, int rn) { - return ((EC_GCS << ARM_EL_EC_SHIFT) | ARM_EL_IL | - (GCS_ET_GCSSTR_GCSSTTR << 20) | (ra << 10) | (rn << 5)); + uint32_t res =3D syn_set_ec(0, EC_GCS); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, GCS_ISS, EXTYPE, GCS_ET_GCSSTR_GCSSTTR); + res =3D FIELD_DP32(res, GCS_ISS, RADDR, raddr); + res =3D FIELD_DP32(res, GCS_ISS, RN, rn); + + return res; } =20 static inline uint32_t syn_serror(uint32_t extra) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862469; cv=none; d=zohomail.com; s=zohoarc; b=IONcP5qYS1IraDfrHRKrwKQHab94HMXsKJTS9TTzHL8FUCiNrm5rbJIxod1qh6WrC+FV1Hyp0oF7BxMqW9JZ9gKKBmjcVyIyvU+/WXdsnbx1GM8MLQrqGes+ttXy9HSZGw1NHBu8UUeSunr1oMZimcfNgpKisH5ihZeffdW86Bk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862469; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=AJ6frWkT466kUBA2I2u6c2X58fkiBAsV+LbvLNVH5Kk=; b=mPaI578gdycOyDZEWP8HTN9MnzfZbR2EfpDSxnbEZC+uaJ8Scgs0lUCC/z0eLgZDsJ1EYhd+elbsparpk46L6iW4WFx+j+kCHRooAV0NgyGqjY3LybjbqCMC0w6GMjqtC/72kU7OTSUyDE3yE8WPz82tAfly2YxKpRvnipeMCdA= 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 1776862469745356.3749175091714; Wed, 22 Apr 2026 05:54:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX5a-0006Kh-LS; Wed, 22 Apr 2026 08:53:58 -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 1wFX4l-000618-FZ for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:07 -0400 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4i-0005V9-8Y for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:07 -0400 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-43cfbd17589so4297213f8f.0 for ; Wed, 22 Apr 2026 05:53:03 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e59f97sm50548552f8f.37.2026.04.22.05.52.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:53:02 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 15B9961028; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862383; x=1777467183; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AJ6frWkT466kUBA2I2u6c2X58fkiBAsV+LbvLNVH5Kk=; b=iEYjAhuf1K3tcWevmHgmWCg0aZbBHmAsIJKAbCoMoYYg5gkJWgyLISeHnzLupYH/IB vEdj+G/SA7PuaiK9CPR9MLSdKges0j9/ZbCDtzsJCPuoLNEkBlRxCCGpbsKnUAA+gJvK EyEWDZxPXw5BQ2pv64UJOd0wHabqCtUfhBM2Tjmhs79GU6WdIL6waFCqGLkQYIsCS9HJ kO6xpc/P8jeU3tEkYa8pk3Mk+OqHUYXF96OXlU6+xi2M7s4kb8PAwdFlbRMAACrIrUx3 A4KdGQt+vtdhPQS9GnjKo9VD8qH/36tv/nsGZSXJDbSXMOkaX3k7GpzwVANaxwKO04p+ v0aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862383; x=1777467183; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AJ6frWkT466kUBA2I2u6c2X58fkiBAsV+LbvLNVH5Kk=; b=SN2Z46mxVALrlK/qhG3BGtnS89dk1WFBQG4ctrR7ocKR0mzqEYgsGgZiaSu3osN+7n S0eJ21hRu2aVsoODdlZLSzQxm1XXseyGMYma1dRlyil6jT6dOM66Gr1XHXb1c7vFiAfZ TSPq3MCaZ/AY1KcKI/sprSOCR2Q9SJ40JOvaNPdrDufjyNqZk8eegka41W3pHcNK0cbv hvNYxIYuBWR3DYH3YSXy1vAuH10KRQdsz/j9XsVyyNDrrbMl8376gozEbOggQ/9sdloM 6RMJ81WoGMVmWOak7u8K7I0aCNehioqdIGlEGW1HcDZv+pw02KNkPv3Zi4P7zBxBPkrE pcOA== X-Gm-Message-State: AOJu0Yx1FZG+Mw5F2AMwnbT3c7kNvAj53cX39vV9CMR1eCKJuVBMHr1u /FxxRmbezYMcfC2KKvSW5ZLTOZQOSePTOmvzTS1pX4mqPJ87gpXuvqAsbI3a7ForGFA= X-Gm-Gg: AeBDiev6mENj8RVjZErtojH9+dXJRTb2beF5HLEsSPB7hVz8PoEx1uGLLqZK+DSImaG M0iUkwt8u2jsTzlSYIdGuQN7dCtKEw90bIh1cgN/Q5od80l3oUvtvZXP0ZCQCJitsplfSQkSoqC 4voJ4rXMQ96yfZuG+POAdlsuwHKxwew6VYvZP7G22SSQYu2JvHcEOujCT0K+Y/A39kV60bL+U1P GcLC6+f5bsoygZx4w0M10CWbdmQYcB1EY+LYx0PIX7Ddcrqhd6BjkadsolPiKqWYp//wZPxrtvm 9rBLiQRbFgRykg7e2YC8MQ+e2d/dC/+XVZYE6lC/AjQXH95YRBhncOj39H8W7/v76LWAEXW3+W/ myoE/kgwUdwP1Wzjjxa5DUy/EwBVC551VvaCBguN+k4tiBUj1uY4Y4oQ+GiZ2iMio4DzKHlvP4i 1aTwdSiIoESa8E5/ZlnDlNjD/SkBzB8dgWvg== X-Received: by 2002:a05:6000:184d:b0:43c:ef4f:79e4 with SMTP id ffacd0b85a97d-43fe3dfd36fmr33892324f8f.37.1776862382774; Wed, 22 Apr 2026 05:53:02 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 14/32] target/arm: migrate memory op syndromes to registerfields Date: Wed, 22 Apr 2026 13:52:31 +0100 Message-ID: <20260422125250.1303100-15-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::42b; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x42b.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: 1776862471483158500 Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 7ff8c30e2bb..841fd3292b8 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -742,14 +742,39 @@ static inline uint32_t syn_serror(uint32_t extra) return res; } =20 +/* + * ISS encoding for an exception from the Memory Copy and Memory Set + * instructions. + */ +FIELD(MOP_ISS, SIZEREG, 0, 5) +FIELD(MOP_ISS, SRCREG, 5, 5) +FIELD(MOP_ISS, DESTREG, 10, 5) +FIELD(MOP_ISS, FORMATOPT, 16, 2) +FIELD(MOP_ISS, OPT_A, 16, 1) +FIELD(MOP_ISS, WRONG_OPT, 17, 1) +FIELD(MOP_ISS, EPILOGUE, 18, 1) +FIELD(MOP_ISS, OPTIONS, 19, 4) +FIELD(MOP_ISS, IS_SETG, 23, 1) +FIELD(MOP_ISS, MEMINST, 24, 1) + static inline uint32_t syn_mop(bool is_set, bool is_setg, int options, bool epilogue, bool wrong_option, bool opti= on_a, int destreg, int srcreg, int sizereg) { - return (EC_MOP << ARM_EL_EC_SHIFT) | ARM_EL_IL | - (is_set << 24) | (is_setg << 23) | (options << 19) | - (epilogue << 18) | (wrong_option << 17) | (option_a << 16) | - (destreg << 10) | (srcreg << 5) | sizereg; + uint32_t res =3D syn_set_ec(0, EC_MOP); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, MOP_ISS, MEMINST, is_set); + res =3D FIELD_DP32(res, MOP_ISS, IS_SETG, is_setg); + res =3D FIELD_DP32(res, MOP_ISS, OPTIONS, options); + res =3D FIELD_DP32(res, MOP_ISS, EPILOGUE, epilogue); + res =3D FIELD_DP32(res, MOP_ISS, WRONG_OPT, wrong_option); + res =3D FIELD_DP32(res, MOP_ISS, OPT_A, option_a); + res =3D FIELD_DP32(res, MOP_ISS, DESTREG, destreg); + res =3D FIELD_DP32(res, MOP_ISS, SRCREG, srcreg); + res =3D FIELD_DP32(res, MOP_ISS, SIZEREG, sizereg); + + return res; } =20 =20 --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862480; cv=none; d=zohomail.com; s=zohoarc; b=ivXkhwbw/QMx+wDH+U4pF68fgz+6L0KGgyBiT9mcwg21rFmoK5CnJGdlK4gu7elkYJ1lzmVj/GLkyPDgosOU3iDRFZqGXqWl6Yo7txaa4+wAB+rfyQSH2MxksvxpGWbxmoLPz5uKyh8NApO4XpuGoz+YVxZQ+IzMReXoWfq/sFo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862480; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=pBHHqWCNozXOcmQTxKAtN3Av+2DGbBLMiAYtHB54URk=; b=GyNfCuSRyryZtKUOAK4wmA5+YM2AM8weEy4VyfYyKslN5oGao229WgH881s0faBDhsOw3NkI3I7ermcKv3PRWpGJfOj+40wRi/a548rodHAViCqr8QBibHLc1bI+klJqxtJP11S0ISo3RyRicqbWE5MxYoZxaae6KvJtSyoO6cg= 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 1776862480320145.0828559456811; Wed, 22 Apr 2026 05:54:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX5c-0006UO-KK; Wed, 22 Apr 2026 08:54:00 -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 1wFX4m-000627-VT for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:09 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4k-0005Vz-Uy for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:08 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-43d70c30767so3719713f8f.0 for ; Wed, 22 Apr 2026 05:53:05 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e59f97sm50548635f8f.37.2026.04.22.05.52.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:53:02 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 2A69F61063; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862385; x=1777467185; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pBHHqWCNozXOcmQTxKAtN3Av+2DGbBLMiAYtHB54URk=; b=KnnUARRmenZIfyPVLSLTd79FttMFA9R0BZPOkmxNFBj0tNfpzxmjrll41YwIk4nDyM buuOHmvK9qpaXH4fsvmqKFb8McWGqeYkXusXg6Si2L3MyiV5yncWpTSyNEIuIfWlw8I7 PwWx+t/pm7fYjcIKPLqhFzFPs6H/GQ0cx8y4ALjUqMLnlXSS8SYluI6KYYZU2TxI8T0S pH28QqRsPS2PZh5802tyhKCoO35BqdJ4mfmTWdPlHkuUop9DTrVJf4eukisGl1STVc+M oPl8kHS1Z9BbMdLMOWMWPK7DADwZxbvIbOHXH+xUC12YwRpHYSZaYo79BJdUuK+Skut0 mSjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862385; x=1777467185; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pBHHqWCNozXOcmQTxKAtN3Av+2DGbBLMiAYtHB54URk=; b=WlENCdLS5Y1UH6u9YBAgDyCQwwZbu8BSvNpU7CAjH5bSYwBaFqe3ojQg5f7UTMQ5SL kCXmAjVN0ldldz6ywtFxd/EiThhRqsaBkgV5I8aQeWELNRY4RdEjheI/zNxvFNJIldc5 R5POhqbZ6ZxgoT0wkr/aR8xNfnQlLos2BMEBxI3oWYjFKY66zokkBnwAE9qchhwfVYPc lOEnyAls9AI6LkcHsSaFqEWoi1DDqq8OTwd8gK12r0vDJiRp+vCAKOPDZZoF+ZViXdRh EK5GGUP6mQUfgvdnPIWWgDpc6IQvdWlyL0lLMbxdHVvhNN6IyqxKYb7zk7K/YGj/dwkT 3euA== X-Gm-Message-State: AOJu0YyjcONPk/uLUJsFta8ypO7gfU4jbUxFP8vzwfqb3DlJ2YT+DUfK x3+slqlD5r/XagJ2AjMa1fgzSRLxXo4hw3tCeP/qRtTBFxL5vRPaDMOYhI97LwYHdn0= X-Gm-Gg: AeBDievdK1qCpNJBjZBLx4ZfKhkJKiKEv6UsKDARdy7kZm10a4SUVovzbEZrIhnOaKH 8Id+LDVT/dCwwNlEDXWKceQtLmq6W0CMtvk5JC1NK79JyIe6l5gHNDwGUZTZ5T10W0qJ0Bkamtj iXv2UrV4JpkUOEIluFOjmlQJnVk+eBtLLrZOOaVzGXiHXIEcCu7UKPhBcGjZWYdvfpaTn6lDPs6 HaTi5qigsBnIXcH1xbKhTnDGKGkazZOX+VBnZ7It3fXdufm11Rk9Q6CaKkdMoA9iIDApu4GxBtH HZU+0KVwEpWZ1MHHTz9CHL/Rt/AKaokOUggc3SMMjcDcMeft8d9axVwfMsvfuiK/VemK5Hf+2dw 4TSlnJDpFMUxoF8+a5ard/EoovfOP7v2JRgYgBVCSszmOF9MbW0Xcx1mf5JXw5ZPJxkfpQK9UYs bhY4bI7BAp1v9fjs7jd34vm19x3ln8DBS6tA== X-Received: by 2002:a5d:64c9:0:b0:43d:2d34:8963 with SMTP id ffacd0b85a97d-43fe407ae53mr37079461f8f.17.1776862384713; Wed, 22 Apr 2026 05:53:04 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 15/32] target/arm: migrate check_hcr_el2_trap to use syndrome helper Date: Wed, 22 Apr 2026 13:52:32 +0100 Message-ID: <20260422125250.1303100-16-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::42c; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x42c.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: 1776862481562154100 It shares the same COPROC_ISS encoding as the other CP traps although not all the fields are used. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 16 ++++++++++++++++ target/arm/tcg/vfp_helper.c | 5 +---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 841fd3292b8..53137394e28 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -251,6 +251,22 @@ FIELD(COPROC_ISS, OP2, 17, 3) FIELD(COPROC_ISS, COND, 20, 4) FIELD(COPROC_ISS, CV, 24, 1) =20 +static inline uint32_t syn_cp10_rt_trap(int cv, int cond, int opc1, + int crn, int rt, int isread) +{ + uint32_t res =3D syn_set_ec(0, EC_FPIDTRAP); + res =3D FIELD_DP32(res, SYNDROME, IL, 1); + + res =3D FIELD_DP32(res, COPROC_ISS, CV, cv); + res =3D FIELD_DP32(res, COPROC_ISS, COND, cond); + res =3D FIELD_DP32(res, COPROC_ISS, OP1, opc1); + res =3D FIELD_DP32(res, COPROC_ISS, CRN, crn); + res =3D FIELD_DP32(res, COPROC_ISS, RT, rt); + res =3D FIELD_DP32(res, COPROC_ISS, ISREAD, isread); + + return res; +} + static inline uint32_t syn_cp14_rt_trap(int cv, int cond, int opc1, int op= c2, int crn, int crm, int rt, int isre= ad, bool is_16bit) diff --git a/target/arm/tcg/vfp_helper.c b/target/arm/tcg/vfp_helper.c index 45f2eb0930f..e692bc568bd 100644 --- a/target/arm/tcg/vfp_helper.c +++ b/target/arm/tcg/vfp_helper.c @@ -1359,10 +1359,7 @@ void HELPER(check_hcr_el2_trap)(CPUARMState *env, ui= nt32_t rt, uint32_t reg) g_assert_not_reached(); } =20 - syndrome =3D ((EC_FPIDTRAP << ARM_EL_EC_SHIFT) - | ARM_EL_IL - | (1 << 24) | (0xe << 20) | (7 << 14) - | (reg << 10) | (rt << 5) | 1); + syndrome =3D syn_cp10_rt_trap(1, 0xe, 7, reg, rt, 1); =20 raise_exception(env, EXCP_HYP_TRAP, syndrome, 2); } --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862464; cv=none; d=zohomail.com; s=zohoarc; b=PQ0aG/Pc4qWDX64FzHVfcfzRr9xBiu0fWlDuCx7RSNV5Xp968PF2rFN1qiLxzuMhqsBFa0AN/Ek75sQHI6Rd5FaRix8k8zU+jbK1I9O9SfKQYhYblHlI6jPaZ6HMxYv0ywgmFMMihQu8VCh8HPflCQohHojSpfKg5neeoyTnOfA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862464; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=9fpr3Ng7R6+bvHtx79oLF5EYo5OylKP6gzyU2DP/N60=; b=YtnR5kLu/bFy22lTcRF79rUsLoXpRaADKg/pHLZp84gQ6hojxzChp3kAIOmA2JuQVn3MFVBAJ61qPWOQIVTRZipZbeBkXRMscuug7R/KMkcOoA4ThyN9fSKPYgi7orjXmiUeamOqUn6HP4KH2r7C808u4Stwns94nAuoYMpQ9fM= 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 1776862464939165.97612521660335; Wed, 22 Apr 2026 05:54:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX5h-0006u2-Ii; Wed, 22 Apr 2026 08:54:05 -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 1wFX4m-00061u-Iw for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:09 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4j-0005Vn-K1 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:08 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-488ad135063so47385025e9.0 for ; Wed, 22 Apr 2026 05:53:05 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a5499b0edsm137343125e9.14.2026.04.22.05.52.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:53:02 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 3D0B3610BC; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862384; x=1777467184; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9fpr3Ng7R6+bvHtx79oLF5EYo5OylKP6gzyU2DP/N60=; b=DcOwuHQXBQBgBOgYnWRfyoqu1IOQKXkxDvJMajF5zbh1uc5e39Jw1SZ5ihhFKbBg+U 8G7gb6+kwP+qL4UNSvSvPgyUBCLSGWz28Z9jLH8OF40TzphpaIZVbKLykyshAzWDSlom sOOZ1CV3GAQrPn00vickrWDNhlSHTNMsDLoGXu36jmw3yhfAE6ueOvwUdx2or132vANQ 94j41jp9U/1FOLdIx+XHQtbmgDYvmuKqrsiN+CG3aucj+GJKjmxOtMkHL4kMp3HORdJV 8neLsFxGatemL3VMWivJ4W62uFHg91Wxmo1zl2EG3B6MSDlJx1wpUiLaPhH0DQkoo/hR WMgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862384; x=1777467184; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=9fpr3Ng7R6+bvHtx79oLF5EYo5OylKP6gzyU2DP/N60=; b=segPjqkii4DlUB4Kmcg5bOhICWZwiMJbFnWuwxKRzxPcANEL0Sr8UR1ng/aaKoFjb4 T3LqMdcM2IWE8RnD8zoi2dSk6FlUekd6F5QhfGoStcdq2qkmhUokBEPNU+rf8MQdTAeC dtrtLV2jFezllbFiO0cacGIheZ0TaBvRQmEh5s1eWOv22Y4USKzNqAb0cmAk5ipisz1B nfTpS6IGSC9zP25Ekz9QIUb2kjDhPM5lyUhX8CQZf6US3yLQcH4Kzqp/NKP4EuVsyMln STqRG3Jex6qt5ec+jO1gyn9sZ1CHgijFA0p6OEgUetydrboW39o8mIn0bt66I6rHgqFt LHOg== X-Gm-Message-State: AOJu0Yw6dozfpmx26gFlsHNrq9w+Mp0JY60bltBiRel64K/ku9318DT+ 2X22zlM0yosXVoQedfvNdwBoQw6OZQnR/xUrV3hN882WyE5NdscAAHlTr+kj8/Sou2s= X-Gm-Gg: AeBDiesRu2/6xXdBemYgXGerIPwStZR5PBR11obdeveXfnjGDWloaeDZEHGx7Y/oAy5 z/YvQTKMQe+UsB1M8EqQikvIxVDhayEX+p6Fz6CMQrK3m1AxSEDpuAI0zch/higNPAkiIoOkFHq jv/SdiFBNE6u44vmTi/ZF8RqAdvA4XCOXEJ4UTPvVw5JP+u5deGUSzOlzxrC06BpmNvyuhbboJA Npyf0a58lBk8oy1kdVAiUgqTynPNl/kwCt/cKto0ZVLXgT8pd7W+mowXrat/GDHEWz7d7BEE+p8 Z5fLjAOZTNqaTxdPGspo784Lnjl6Jy9foJq1EBT8o04IPL6lYnJd+xxk6yOJfdQ1212KISnlK2U /9JdOdUnxiypEsZ45KvABiOgVX/F7axiEq4U6+1Pburj2b41J9YLx9k+IwEJkiJH+YKtL3q+E6I XoTquQ3U3O7PcVBccs0sMPPml20sbHsfV6Sw6A6eapkvMl X-Received: by 2002:a05:600c:8b55:b0:48a:57e1:d8cc with SMTP id 5b1f17b1804b1-48a57e1d8d4mr85199615e9.9.1776862384161; Wed, 22 Apr 2026 05:53:04 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 16/32] target/arm: use syndrome helpers in arm_cpu_do_interrupt_aarch32_hyp Date: Wed, 22 Apr 2026 13:52:33 +0100 Message-ID: <20260422125250.1303100-17-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32c; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32c.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: 1776862465888158501 One more step towards dropping the old #defines. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- v2 - drop excess brackets --- target/arm/helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 7389f2988c4..40dd070d2c1 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -8898,9 +8898,9 @@ static void arm_cpu_do_interrupt_aarch32_hyp(CPUState= *cs) */ if (cs->exception_index =3D=3D EXCP_PREFETCH_ABORT || (cs->exception_index =3D=3D EXCP_DATA_ABORT && - !(env->exception.syndrome & ARM_EL_ISV)) || + !FIELD_EX32(env->exception.syndrome, SYNDROME, IL)) || syn_get_ec(env->exception.syndrome) =3D=3D EC_UNCATEGORIZE= D) { - env->exception.syndrome &=3D ~ARM_EL_IL; + env->exception.syndrome =3D FIELD_DP32(env->exception.synd= rome, SYNDROME, IL, 0); } } env->cp15.esr_el[2] =3D env->exception.syndrome; --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863080; cv=none; d=zohomail.com; s=zohoarc; b=Z38rLyMRmXDX4mZhLQs5P/PZOOTrrVl6WpBwgmgNBUPF9oKG28oLjijZolpvm2caCjckLdCkHB+LmxFRXX08Bqo4PFYqaMF2CDDXiQcOMAFb9J3INx6KrdY/XGspLlziPKmZYgqCcBSAc+CjE3FDvt2b1Sina8p+MYJmnm0EEiY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863080; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SLzSB9spY+gJhXJ81HA2xrXzxJ07lupyVRDFchBeQ6c=; b=CDfvpVjHfp+Q01yp0ORpAd+OS3JW3D0Ys0fImuNA0ITV/Mm8x72LM8z8coXDgGwES9C7V0JsdH/PqMSn28oGvYgIBXWXPTYmSDrh/RYYcSboAuNYHE+0rRkK03YYaxStXGZjvyc8FKL3r2sRbxT2TQubHqxFsQutoNvq5tzTW1U= 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 1776863079987192.76544498140743; Wed, 22 Apr 2026 06:04:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXE1-0001Bm-DG; Wed, 22 Apr 2026 09:02:41 -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 1wFXDw-00017L-8W for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:37 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXDu-00018E-3x for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:36 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-43d73352cf2so4471082f8f.1 for ; Wed, 22 Apr 2026 06:02:33 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4cb13a0sm45667079f8f.8.2026.04.22.06.02.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:25 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 50DED611A5; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862952; x=1777467752; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SLzSB9spY+gJhXJ81HA2xrXzxJ07lupyVRDFchBeQ6c=; b=Qf29bRIEhW7vHOf3rB7WIiql+vraAdD7qBllQkdWhJJGoCMPmgMIYjK4KnVZVfhg9N QMp2/GJZB0D9fEjyVE/swxhmwSbz14nttdkqePUehHmN/ct/aiTtI7B/XH8YsEoXhUBl ThuTjJy3VEr3GmPZC5yJOVJPRfu/AhpS7Wtdmynvl3HGiYGfcA3BqqFcaR8WxqjYJslt UDIdifIeUxERRyIm5RQ0Yj4g9uED4OwCG8RdVTGhRFaQl7dfesbjdFTEnI7tD/6KIFU7 t12RuMNnT2A1pm9iPh/qs9gpzi1rtpa7Zj3MrC66er88JkM70Lvw7jnT/gFnF6JUxGhf WTnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862952; x=1777467752; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=SLzSB9spY+gJhXJ81HA2xrXzxJ07lupyVRDFchBeQ6c=; b=kn2ItbHv0rqyw1C474RGQ8ROoRNZiwKyYOK+DShnDvwqACy/gp1eaQg7AYT/LHPV72 EV3ZL6aSjXKZwE+zvC986RuhNi9saa1sPHZDn6c7zU50jyXRETskL+/oZTIOz8oribop ltTSLBuJnCziUNV5c/5gVglbsuemw8/52j4EY2Uzb4ufwcYkwfEltwlWZcZVN6NMJCfU Th+KLAptTZHQclm0cOQ4b8NOMDJJhVWFmyDBQr82gLAh5Go5xii3bujUZULzKVzV7TFG f55SpSFKl8AK1D6B/8V8IxokEs7OV4RsxYUbjxqxm33CaaxKW2FsKAoWFtgbHkVWWpVP AaDw== X-Gm-Message-State: AOJu0YxR200ueAGPovKP/NFccpJdoBggkoaz7xFUIOI/3AVzm1TAb9aY ZxwtCp1txPm9Jl6S5jbwK+/CI0FhlFgGmP9+2qDbD1ESvAQlRIVieKVK7RJsrpEgLh0= X-Gm-Gg: AeBDietWnbAVcFxiqyIp/3Ff6D+W/loHR3f/ssqPse42MsIHI2MedH4oAa35YFaWQD1 JZ1maH/0v23L4GlqZb+ovP6ca1f49PJUKfJapwiBrG+Qj9ALzkW+fXABtaL6iV+56+bXKGIugLd M4dGX3fpODKqRwivnmFrXgCWcl+1XwavhQNeTYlwyi0lPWZF1phMCmqaBjn5bil2Eqto76oZIvu qKOjypgMmKJBPoXne1C0mwHmLZd13EuuH9ojnShD7lnKdX31s0xa2e72ED9AjN3kIKLdHdFfYTu KwjdldqrOQZNoFPBVgRIidxG29w8mhPk5mGC3zm39OxliNbG1B37EEBYRNf/6KMUlEEmmMdvqVf BBLnEmEoNndRI95FMDX7dIqPH6VdB7DLZ4nXPNZclakhIoFQfiETkhw4WOhSjwAQJaw32XdH/Z9 hBuv52smj00hfXF2nb8yc/Vsao/nCwwz0ENg== X-Received: by 2002:a05:6000:420a:b0:43d:773d:78ff with SMTP id ffacd0b85a97d-43fe3e0b61bmr35815340f8f.27.1776862947410; Wed, 22 Apr 2026 06:02:27 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 17/32] target/arm: use syndrome helpers to set SAME_EL EC bit Date: Wed, 22 Apr 2026 13:52:34 +0100 Message-ID: <20260422125250.1303100-18-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::436; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x436.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.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: 1776863084958158500 This removes the last use of ARM_EL_EC_SHIFT. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- v2 - drop ARM_EL_EC_SHIFT at this point --- target/arm/syndrome.h | 1 - target/arm/tcg/debug.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 53137394e28..d4dfab8cd15 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -107,7 +107,6 @@ typedef enum { } GCSInstructionType; =20 #define ARM_EL_EC_LENGTH 6 -#define ARM_EL_EC_SHIFT 26 #define ARM_EL_IL_SHIFT 25 #define ARM_EL_ISV_SHIFT 24 #define ARM_EL_IL (1 << ARM_EL_IL_SHIFT) diff --git a/target/arm/tcg/debug.c b/target/arm/tcg/debug.c index 5214e3c08a8..07a52643e71 100644 --- a/target/arm/tcg/debug.c +++ b/target/arm/tcg/debug.c @@ -56,7 +56,7 @@ raise_exception_debug(CPUARMState *env, uint32_t excp, ui= nt32_t syndrome) * Similarly for watchpoint and breakpoint matches. */ assert(debug_el >=3D cur_el); - syndrome |=3D (debug_el =3D=3D cur_el) << ARM_EL_EC_SHIFT; + syndrome |=3D (debug_el =3D=3D cur_el) << R_SYNDROME_EC_SHIFT; raise_exception(env, excp, syndrome, debug_el); } =20 --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863063; cv=none; d=zohomail.com; s=zohoarc; b=BiZGnNN9PUYtMC4lOGjGkvrP/ZiCbvWjDyXRQh000L1kMxP9YqxhRyI5QC8l+YD2InxsCki62xgvFtar+Bid06xK29YcmcXPbu1jf5msYSFHIQNchPN+fWvQ/qbfUL/+sj3k+1w/bRuDElGK3ySFPvb7HOsmmOpHaybIG77KmH4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863063; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1esNeOF5ufpO0cAxHdsE5rjzSjC5Q+4Ajm02teJ1954=; b=hgTONpe8LGc9bkoMAJ8W6AlWvsWAdQg5MC31sg1SgT+3tYuMYCivPBX76isMrVHXI0Pdg4WSKtUHmnJCgH86nC/nmlHvIIw+qS7u00JFeABOVj3nH01t2dN6eIrnV/mJU32as+J6Ql+zJPtcVhRc+3IsxCHO2yE66/fst6YTX/8= 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 1776863063371142.74034869848856; Wed, 22 Apr 2026 06:04:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXE6-0001Kx-Ny; Wed, 22 Apr 2026 09:02:46 -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 1wFXDz-0001A4-3y for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:39 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXDx-00019n-II for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:38 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-488af96f6b2so69656705e9.0 for ; Wed, 22 Apr 2026 06:02:37 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fc10019bsm458543425e9.4.2026.04.22.06.02.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:30 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 64AB0611AD; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862956; x=1777467756; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1esNeOF5ufpO0cAxHdsE5rjzSjC5Q+4Ajm02teJ1954=; b=qcP5sWV/+P3orJmIQh/4Tp7bsRiuMlRuXSX7xgtks0572Deid/z+fGF2GkRSVc5Rgo oWrl5fTq0r9bAxFAw5UwwIjNVjvWfOCn0xaaR8xBVJg1kgbr4sYefl+OBbRL9PBjqnTb B6OJChE5d8f+ce6AF89M6HWKOSlc7sX2ZZsI+oZNCD/CMDrQu1aT3k/P9CgC2SaqHW2d kM9NNejeMHDk2fxpZcr+x3bfdPtdK2T/lMIVn+ZqCkQEoNovTpnIy++qnBWgbOquGpmV 9/J88qdYX7Van07ey3td7e+tdOEpXRMUHljtStFOVlrZYmKIm/UELyjhRF4ISy2ONC5X CySg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862956; x=1777467756; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1esNeOF5ufpO0cAxHdsE5rjzSjC5Q+4Ajm02teJ1954=; b=lW4P8jciT9H16cKb3xixKYH7U5No2nFoX710qlFgyRqVmdWckSuOuYb/IzhR7OgTg6 y6exK70U/Rs08Tk3npxsBZWnWPoHDmVp77lCPvsun2GoI9bCFL5Din8ZeC53Y/JZszcl 7OnJt8SONCZeRcEKI9uttNnyxJsDe51wPfrxYbEE/xgP3qxcMh1S9qUDLypENsea/T8/ DMYfghBFetIF10wPijPGp58Ls8xFSfcbigmQPgWTk70rgliCPydnxT+zs94mAYYIMdTD K0+oBxMAWwxEjnIgrcGeDw8GTxj9Qwgt+aicIz1qkJ0ctS3vqMomUupSCZdhxghT1nnZ exkQ== X-Gm-Message-State: AOJu0YzfGt/EPVRXsAChf4+obfCQ/Ko5PFLFMpKxp5sZfg5X6PNUpNIi rc3F5nxz6GHanfh3VBdvC6mJ8R9O6SFFZs5wzm+ROIhveGBArTZ0eQDuErEqcS/OcGM= X-Gm-Gg: AeBDiesVpmqwAw/1P5n3kzlA9EP2X7T4QG4VEz/XEkUgylRpQT5IAA7gK+O+jFgyc4E 0IzzEwmWmXHMuB9hqLpk1c6hQq/PM+GV7WZmAus3QqeUivqmsCBL7FQB/nBAjqgWEJYoO+vEOh7 AtLQVQKxmoML2Ha7/ORUOehkQEu+NX0iomKdSheBADS/5LLh3jtFijIrT/od5dItTal6ZgeJhlX EbpEokhVoEb0AmMcyEP5nwnQgNyS5Fjv9E9itIBVIDliPZzSbJ53DtMGDSfRjon2RyU+TbWHSu5 mTzwuE19RLAAJs7nMulwK/13BoIUNNsTDyMiHNxut1m6VFnkOQOK9W/9CpTHN9i028HkfQuYe4h hXY8sYu34ZjF5WTen2rM+oAIXxyARJkrjJWlKl0qIqySzwtz2uDNALFONjgsIpZp88pD9dnzjUR R9TfzR7qe72lIUOvesDRF9cp3GMZh9WXU5sA== X-Received: by 2002:a05:600c:a108:b0:488:a82f:bbb4 with SMTP id 5b1f17b1804b1-488fb78a0famr276133055e9.26.1776862952883; Wed, 22 Apr 2026 06:02:32 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 18/32] target/arm: make whpx use syndrome helpers for decode Date: Wed, 22 Apr 2026 13:52:35 +0100 Message-ID: <20260422125250.1303100-19-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::335; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x335.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.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: 1776863066642154100 Rather than open coding a bunch of shifts and masks we can use the syndrome definitions. While we are at it assert it really is a EC_DATAABORT. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/whpx/whpx-all.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/target/arm/whpx/whpx-all.c b/target/arm/whpx/whpx-all.c index bbf0f6be961..4cfc7f99698 100644 --- a/target/arm/whpx/whpx-all.c +++ b/target/arm/whpx/whpx-all.c @@ -356,15 +356,16 @@ static int whpx_handle_mmio(CPUState *cpu, WHV_MEMORY= _ACCESS_CONTEXT *ctx) { uint64_t syndrome =3D ctx->Syndrome; =20 - bool isv =3D syndrome & ARM_EL_ISV; - bool iswrite =3D (syndrome >> 6) & 1; - bool sse =3D (syndrome >> 21) & 1; - uint32_t sas =3D (syndrome >> 22) & 3; + bool isv =3D FIELD_EX32(syndrome, DABORT_ISS, ISV); + bool iswrite =3D FIELD_EX32(syndrome, DABORT_ISS, WNR); + bool sse =3D FIELD_EX32(syndrome, DABORT_ISS, SSE); + uint32_t sas =3D FIELD_EX32(syndrome, DABORT_ISS, SAS); uint32_t len =3D 1 << sas; - uint32_t srt =3D (syndrome >> 16) & 0x1f; - uint32_t cm =3D (syndrome >> 8) & 0x1; + uint32_t srt =3D FIELD_EX32(syndrome, DABORT_ISS, SRT); + uint32_t cm =3D FIELD_EX32(syndrome, DABORT_ISS, CM); uint64_t val =3D 0; =20 + assert(syn_get_ec(syndrome) =3D=3D EC_DATAABORT); assert(!cm); assert(isv); =20 --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863022; cv=none; d=zohomail.com; s=zohoarc; b=EkmpuZjATOBkZBHr/SfhNMTML9PkYPEl5WwDC37sHjU4w36zkBtCLG7yqkjiowk05obtT1Pdf0X3afRskZOL7aGHDH7hhaBFtSHta6wmwu8erbqxjbbSTcQSvWtIZpwZsQbeRrw/tZMbHTbEC3YNkAm59azZWPjl5xH++6uMVNE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863022; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=yq/bGIVh38nrtfwG2BReGAMOSU3dNrWCtccK7bpObt0=; b=QJ2uc+PNqJBfFsWFOYbf86HiDMcxyvAKosi1PWo0cFo8Zjlgb8LOaqA47hKIVLsDwAJe8k029aBH+EluORQpyipSU5kTdyb9Vqz5YpcEMawSL3fie5dTenrY9pPA+QfDJEoEqZkCJmsU418Rz0zHbI4m+agVK4Lph2I3u1dJbW8= 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 1776863022546175.73166538791554; Wed, 22 Apr 2026 06:03:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXE3-0001FO-CK; Wed, 22 Apr 2026 09:02:43 -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 1wFXDx-00017U-AZ for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:37 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXDv-000190-Kh for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:36 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-488ff90d6c7so43413155e9.2 for ; Wed, 22 Apr 2026 06:02:35 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488ffc5e3f4sm230894695e9.2.2026.04.22.06.02.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:30 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 78333611CD; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862954; x=1777467754; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yq/bGIVh38nrtfwG2BReGAMOSU3dNrWCtccK7bpObt0=; b=zLSSKlPLbkPXphKKvIJG9JEobL0FT4X7JeITCTnKZ254Uq+EaHtQlkb5iCxy/flBv3 UEQe7JUYFIPrTTOgsqcBHPT370TIvEdd8TQTFJ4YW0B0pt0FjfdrvQUh0H3BvtPrhSJ/ JSTya62e/gNJx8EfbZQED4cBi40/Np0K1Fm83HVpkY67mBh8Ry/jxGY5AfeSN1r4SQYy JowkDZqRdp1eBsqdXrWVxFy15ru+zrR+hPXjPvGJD2XeZv+CXr5O34vHoZvT1h9k2Yyf A9iR3YPzjIJyBTZ485VcyUxBb/Enu8KF3eadTX2RC0dZln1ZiMGnmycRSS2MoWgLX5vB Q2ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862954; x=1777467754; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yq/bGIVh38nrtfwG2BReGAMOSU3dNrWCtccK7bpObt0=; b=kmzq0CvUtQuwg6kEO+C1LPsD7S5IKlw/TjcS6QYpWIk5K8QTIRh5mHc3skrbHpQbir 5UoNGZtl1Xoakv/eSNZ2n7wiAuHEUYWRvqQgw19MH36TRcZ2XZZckJUl3UVrKhkwxwzK Q2Jxf5cATJmrY+EemP+uYsBEThb0q2z5+sZMUWSb72kpTLAavD4zp7g8RAXCRkss4mLf oJo+8CsrevXQ00FCbPGCzK6EMPIIk9PU7gveQHxfFiqkmvuW/DhFN8pN9jlAsfNC6ee+ buZ2S+LjOOiUOSSSnFQSnq5nsFqxbZ3QQ/Zo+sVXHhafj0TSvf197s0WcBhDNBHzbHeJ 6wqg== X-Gm-Message-State: AOJu0Yx2SRvgnE9t5rkCxQlXgn6pKXMHZ4FfHLzkQPLjbd/15qD/ACEy jGx3acksWHp4kiYxUe46IOktp9czhxFkX1qNYpliW4Q7uIbBof2JREHrbGYUcIs+gsg= X-Gm-Gg: AeBDieuwwK2Ass4S5hyWRxwfzTRv/PypXkx/feAjkhQuKIzWI8Ah5r6+lUCC6znoiHB kUOVLiJ8MR5X8v9qpCWuKkszz/i6fgzLMFBpi0sJusVfpiYgLcS4ykKmCb7Sr+xqMp2siFZ4Ms8 5PodMUgxYGkn/zuCSev1lRpeQ2xhFO9KkdykovnRdIcd8mHyUd8R9n+KldVL7FaJboDe3D5gunX kZdKqSzFJLpquqOQ65SOe+k5rB7B0j1BtwVXtEx1G3fun9Xf09hEUdLPUrz2qnIsRK46eGWTvXF iO938UlgAgjK0rhmALk4sUrgc8KtUA1gvgWAZ7TUixK2hO7Kxe0o7w7YyXI34UnY1XMa1lgoRnQ ATAdwszaQbwonlmVmJfYcSq+bbtjaHlTahEnvV/LV2zys+MQJI78Y3tzpCMqxrKwJFrUzTpH+4c CGr9V/VhQbTltlB7FxvMMSHl5A9eduGQQm75DxXWtPs5SM X-Received: by 2002:a05:600c:1da1:b0:488:d376:42cd with SMTP id 5b1f17b1804b1-488fb785901mr358408635e9.22.1776862952412; Wed, 22 Apr 2026 06:02:32 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 19/32] target/arm: make hvf use syndrome helpers for decode Date: Wed, 22 Apr 2026 13:52:36 +0100 Message-ID: <20260422125250.1303100-20-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32b; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32b.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: 1776863024130154100 Rather than open coding a bunch of shifts and masks we can use the syndrome definitions. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e Tested-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/hvf/hvf.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index 5fc8f6bbbd9..1c1c31f0b15 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -2123,14 +2123,14 @@ static int hvf_handle_exception(CPUState *cpu, hv_v= cpu_exit_exception_t *excp) break; } case EC_DATAABORT: { - bool isv =3D syndrome & ARM_EL_ISV; - bool iswrite =3D (syndrome >> 6) & 1; - bool s1ptw =3D (syndrome >> 7) & 1; - bool sse =3D (syndrome >> 21) & 1; - uint32_t sas =3D (syndrome >> 22) & 3; + bool isv =3D FIELD_EX32(syndrome, DABORT_ISS, ISV); + bool iswrite =3D FIELD_EX32(syndrome, DABORT_ISS, WNR); + bool s1ptw =3D FIELD_EX32(syndrome, DABORT_ISS, S1PTW); + bool sse =3D FIELD_EX32(syndrome, DABORT_ISS, SSE); + uint32_t sas =3D FIELD_EX32(syndrome, DABORT_ISS, SAS); uint32_t len =3D 1 << sas; - uint32_t srt =3D (syndrome >> 16) & 0x1f; - uint32_t cm =3D (syndrome >> 8) & 0x1; + uint32_t srt =3D FIELD_EX32(syndrome, DABORT_ISS, SRT); + uint32_t cm =3D FIELD_EX32(syndrome, DABORT_ISS, CM); uint64_t val =3D 0; uint64_t ipa =3D excp->physical_address; AddressSpace *as =3D cpu_get_address_space(cpu, ARMASIdx_NS); --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862515; cv=none; d=zohomail.com; s=zohoarc; b=j6Ah3bOtp9p1mSdnL2ICo84gi+nxw153phZ0TaUC54b1QavCVbfFzJ+8EFd6JqKjr/vpFRHSXtQFmIh/xThnP2axWLXohIFOQRaC8GW4Jl3swqKi4WmS722DFOqAGL/AmmyNu2xYZkxPEW574rbKCjb+D8tG5N1jp+iX7bUs3sc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862515; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rop61lo3CsCy/AA+flQ6RjC7mnHYxt45F3om3vFlXxk=; b=jbp5LbqwzPyDtwj951WbbraZanljvy6SoFYsLTtwuTMO7UwzTyv89/nNdixO7tTzcItXVTUyf7SNsgc7QTdGGnJGWNR4yWT+xuDRxcfyNFjUH5xz5sUaJUIfr0vzJ33K6CyyGVBxDY8HXmCE46aR5fVDhq3B5TTUmuMZCOuOiDs= 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 177686251575466.09160917476561; Wed, 22 Apr 2026 05:55:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX5e-0006YV-0x; Wed, 22 Apr 2026 08:54:02 -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 1wFX4r-00065w-1M for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:13 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4l-0005Wo-LX for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:10 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-483487335c2so53946615e9.2 for ; Wed, 22 Apr 2026 05:53:07 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a52583fe7sm162310925e9.13.2026.04.22.05.52.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:53:02 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 8B960612AD; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862386; x=1777467186; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rop61lo3CsCy/AA+flQ6RjC7mnHYxt45F3om3vFlXxk=; b=WisRWG2jEcHb9a2Hb+Xmgtr6O3txfV5Ti+TO/q9XTzOWgZRHIEz6gqwAwHTc90/H0N vtGPBpe7vo0KLlFxlcvft8GukwF0xiMGkKiapcGKHByZRWJG9s5X3zHBUOz1yVUTZCkb m2gjvIHILjOBaUDRCT0SzvxdS4kEGN4dm4C97IEVF6SkD3Foz3CPj4XXxFtjMKQEXVkv e45lr9VeOLrF30OxhyIK6VMnkBbwc86lSOEIV8fvbb5YIBcFo114vPSFBuOqMy6kL0x6 CcWBcGV8fEG00rKu/Aqw2aP5b9NY7d57n3gNUsUo5bDj2AhNvhvpza0Dw036YgeHGKk7 JXXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862386; x=1777467186; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rop61lo3CsCy/AA+flQ6RjC7mnHYxt45F3om3vFlXxk=; b=mn0Ddelhmxl90P7kP3I2UHKgU6iZvTqi7rn9lY8DtrGI0djhNgs982wzN15j8F3VR1 YdTHeVv18KKT+QgupZXiiWDFi7DM/J/DCsHXsRgKQTJo1xc7uvPN+TEbNTozQD8LtDIl wNjb1YsLbduVMoKotgIdgenyCPgUmyI/tjoGCyaLK+fpXpSEs6MO84cV5902GJ9yO54R 0N0HMrOXpxWN0xVsOb0gKYqOBQB3sIFq96qd6vQ7nroZlufcZrx6CMfC8o3dgXGsnfVl wwzYCJkXfbB12P4gsPoHjE+XlSJKTIAzuNALmgw7Iu/85xJdz0x36HELricATeIecpAH B1zQ== X-Gm-Message-State: AOJu0YznnyASIk2I+EjlI6WlfbPxMv1248A9ynn0j/IL7NyIAgUuN7eM P+5n3mOOlOrGYHDLR6QNSQX/q3XHvhf05h0wdiQVStOcajTxo8NjJRLxKn7AP7/HNY8= X-Gm-Gg: AeBDietiZVRg9txMBPelR4XfKa28T5/e/yyVrsmXopRistFzVmhZM6UI+Ruyc2SwLz5 Fjo5c447B08Hg+9Fz6RG/Mue/lBRV2q+hvyZD5PV0En0YhuCmEJuABRkxDiVPMZfMRqratlRSBK j422m97ozXr0KUcKjZgMS8lj9R7ZHrHOUMHzIzGd1KD1FdvM2xPaSY+05WQ0pTeuPsAMKnilvQV G9Ho9146MuXOFr60LC9/r0uXAXMA9Egx/z65TQiG6oQvZzLxsGk6z5OJOIvRwp0OeWYdF7A0JPz Ywb7bSQqF2IA6PXYhN4rkWaoT8A1EKJEkXygq+x990yxgYRNAdW5pBnDbd31gwTRxsOFlg8py3I wN5n9BLKkKQxFGjywdbQXBh/pBu6n26UEPLa3tx4JtkOguTIXCGQ2omHhyFDduH2687kL6DdnPN NFg3Lx7q9lInbCjga6wyOsEV8TpwJCIFvP5A== X-Received: by 2002:a05:600c:19d3:b0:489:1ae1:4eb9 with SMTP id 5b1f17b1804b1-4891ae14f23mr179317695e9.28.1776862386147; Wed, 22 Apr 2026 05:53:06 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 20/32] target/arm: use syndrome helpers in merge_syn_data_abort Date: Wed, 22 Apr 2026 13:52:37 +0100 Message-ID: <20260422125250.1303100-21-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::333; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x333.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: 1776862517835158500 One more step to removing the old defines. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/tcg/tlb_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/arm/tcg/tlb_helper.c b/target/arm/tcg/tlb_helper.c index 565954269f9..c74d8e785a6 100644 --- a/target/arm/tcg/tlb_helper.c +++ b/target/arm/tcg/tlb_helper.c @@ -56,7 +56,7 @@ static inline uint64_t merge_syn_data_abort(uint32_t temp= late_syn, */ assert(!fi->stage2); syn =3D syn_data_abort_vncr(fi->ea, is_write, fsc); - } else if (!(template_syn & ARM_EL_ISV) || target_el !=3D 2 + } else if (!FIELD_EX32(template_syn, DABORT_ISS, ISV) || target_el != =3D 2 || fi->s1ptw || !fi->stage2) { syn =3D syn_data_abort_no_iss(same_el, 0, fi->ea, 0, fi->s1ptw, is_write, fsc); --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862980; cv=none; d=zohomail.com; s=zohoarc; b=HfUOy2NBFAq+8WADGjCPovgBZ08i8lZA6UTBQHIlvwRk1VWkQGQB7h+/cjG9Vj9ifRng8fAseuX44SfnSQRH/gOieHKSUqh/gOfSw2SWFO/gODAchDO3xPD8iul7FSzK0msC/kk54+pDFI8obDE/H0x8hg+Rk7SvMZIwSQG+N1k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862980; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kgu1+4lGM6dZXG0uV8Iil1k3pEDxsUz8IH6/W2kJVsY=; b=S7CtXyD1BnIphnjEui16UIa2ON0pbqR+eUvFhJ001DDaRlQm7aw3R2eVroYoVed9w9SQYAJKyYQ2rtUbuYXX+ezizOv5GPG5P0SBqx1sbgarYF5VjY3eOtxAy+sclceJgUZeuXrvQyHb0IAC0t1ejWGY7tuupL9/AYoautQvDZY= 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 177686298092959.35281493121977; Wed, 22 Apr 2026 06:03:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXDx-00016X-H2; Wed, 22 Apr 2026 09:02:37 -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 1wFXDq-00015x-7P for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:30 -0400 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXDo-00017K-Lq for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:29 -0400 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-6771d4d33e1so458788a12.1 for ; Wed, 22 Apr 2026 06:02:28 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e3a7b4sm42442835f8f.22.2026.04.22.06.02.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:25 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 9E238614A1; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862947; x=1777467747; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kgu1+4lGM6dZXG0uV8Iil1k3pEDxsUz8IH6/W2kJVsY=; b=c7X9+e4daHluiv+VW2OLWapSGJWmKy0DgCvxsBmxiZ0SDR1/Z1oP3JxfLobZ3TM3Kw p10p95g6b3S+Jl7GucQ5jVfCsn9Rn/P9NypieIPPpxrtDUuQy0eqg7W77vJx6/3N9V8W 9GtG5UTrEb1H+dRK6f6qAhnqhqxjV8Fb7wWu10QHm0041f+FgaKQbdXCi4XvF7buMfaD Y52m5nyDOVgfinRNjBm4Nwv4b4WGug0V0mWMjxqJI8rBrdiH600e/j8tddphEG+CjlV7 4aYwusv65HIs4W1mPJr0nASsDRQGqDwqW5Rh636blC0JOBX3TGqEXLG5rZvtSXUwpUxs EP/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862947; x=1777467747; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kgu1+4lGM6dZXG0uV8Iil1k3pEDxsUz8IH6/W2kJVsY=; b=dfVqiuwrw9pVW8ZIHYzL4jQc9GFW/35BZTu/yh0KGYICHfLDc47kuSJfsrDFjUaPZq LZzCsH69IPaNm5liTj7QCg2bHxyLXHb12FtuSJNrvhEyMCJCVBisXDdATKpB9ZqAY+ZB CBdfVgMC+FicmwxmjDlx1R15nkHwFXgiLhTmDLDq1Px5/gHkPkHvZ7nOQpnrtxFZtkK0 maiH7EPSAdunHmrVO9W27XdHRZM6rVMSV/E8SQd3rEDshdHEUbKHTa9DIzb2aX5WWSAj UAoimdaUP245t9A0UCjGv8zj4sD9fIg22qJEJGgNraWSueuGsXsybTxpyvR4AOLzK+L7 HuuQ== X-Gm-Message-State: AOJu0YxZI82PLq4RJlkpGxFcs6lfBDdhKdmxaMHLUSBXaj989eO+Utbd IXTpxCRfKhbUAeniJfnb/z7DD1F07YsO7kIxHFI/hxZNn4bNQdYxMBbWeqiXp4HKh6U= X-Gm-Gg: AeBDieviu3DlsqUPOm+NUThtay+U3eig6fKz4+qgHzJf9u87/Kf+Plsu35lBgDa6IbZ EnYYTaQGyCl753hgGFM26WquVYhSGjtwGF9k1LSaQFMz/AQjGW7XHqGdx6dgCogp68iZ1b5uU54 9CYoakXLzGgfKXXVH4Vn1AFVnGTZjwBL/bhgChM4p+qKjW07dBJ7mXLYlVR9cgArJggMNMEe84j llgFXiKTd/gr9FWpLyE6A7K1UeXUUpmg+QeF47mOvazj2qECQtoeXNhwxrsERaJkTlRxrNzFC/9 xjlbP7hXvOHPUARXc1aQYtjguMRX5g1UarqzVNXhM5HXiRqTyiLuCJ7goi86JSMEsP61D1fT7nc bgjjReA0lKF/xLUklzsBJCNzZGNa5GtqTz2Wutybt94ilUpUjkn1d5Zv10pMRTdjQiRdFcmDCop XNwV2ldEDyjkJBgXKp5xbu5C/lNTVenHlDgg== X-Received: by 2002:a17:907:a60b:b0:b98:40e:f335 with SMTP id a640c23a62f3a-ba41adfb10emr1011985966b.34.1776862946614; Wed, 22 Apr 2026 06:02:26 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 21/32] target/arm: use syndrome helpers to query VNCR bit Date: Wed, 22 Apr 2026 13:52:38 +0100 Message-ID: <20260422125250.1303100-22-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::536; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x536.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: 1776862982211158500 These are only valid for data abort syndromes. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/tcg/tlb_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/tcg/tlb_helper.c b/target/arm/tcg/tlb_helper.c index c74d8e785a6..bbe1e70bc43 100644 --- a/target/arm/tcg/tlb_helper.c +++ b/target/arm/tcg/tlb_helper.c @@ -48,7 +48,7 @@ static inline uint64_t merge_syn_data_abort(uint32_t temp= late_syn, * ST64BV, or ST64BV0 insns report syndrome info even for stage-1 * faults and regardless of the target EL. */ - if (template_syn & ARM_EL_VNCR) { + if (FIELD_EX32(template_syn, DABORT_ISS, VNCR)) { /* * FEAT_NV2 faults on accesses via VNCR_EL2 are a special case: * they are always reported as "same EL", even though we are going @@ -190,7 +190,7 @@ void arm_deliver_fault(ARMCPU *cpu, vaddr addr, * because we masked that out in disas_set_insn_syndrome()) */ bool is_vncr =3D (access_type !=3D MMU_INST_FETCH) && - (env->exception.syndrome & ARM_EL_VNCR); + FIELD_EX32(env->exception.syndrome, DABORT_ISS, VNCR); =20 if (is_vncr) { /* FEAT_NV2 faults on accesses via VNCR_EL2 go to EL2 */ --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863058; cv=none; d=zohomail.com; s=zohoarc; b=gRKFAl0jHMJaXJ0ilUpBuQWXNezYD+LXwra8bAMPavjurSUf3jsVqWsyf+u0KJ/8R3/1H2s9YzYD/vePDeqOdGC69n++WUeeFkPxvRqcoJA7OE9AdH/3JFsHVXKbtT0YEIfCv10q1oZc4t3dBOxEietdkrFZslRbCBPdAAeNN7E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863058; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UF2x3LQsFVeOwuh4smvXIT3vMnoh5OJHhwB45pzXnIE=; b=I8b9pN7pdvW2gL2+OmbyWYEu+joQvna+/F+U4YA3qAX+pNhw9+SRGsuqhNcmhr9m2ivrTU5eq6Qx/Uqye8SbUJm2jAyHfeR/mI1c2UwT59a2YIKTVv5SH16elYHWZkkxfdDCA2Fg11P+nk2Eaha5PwDriB4Tbj0cmbxIsvKb94U= 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 1776863058054546.6485329974922; Wed, 22 Apr 2026 06:04:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXE7-0001LV-5X; Wed, 22 Apr 2026 09:02:47 -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 1wFXDz-0001Aa-Tx for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:40 -0400 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 1wFXDx-00019q-OQ for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:39 -0400 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-48334ee0aeaso56316895e9.1 for ; Wed, 22 Apr 2026 06:02:37 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fc177dafsm550412285e9.4.2026.04.22.06.02.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:30 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id B2A04614A7; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862956; x=1777467756; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UF2x3LQsFVeOwuh4smvXIT3vMnoh5OJHhwB45pzXnIE=; b=pU4dmjM98QUrZKuABjsV/7+yCrTiB0Jwxg5Do6ZsjpMgtEk37nhxZoyORvMj3vh+bE KC2spQWVMhxYP93YxRVfCpOKHvgkKrFzYr7EGc3vLaDpfpK/XkhncNtstWd6A1On2TDr t8FbVDPFb7YgII7kuaAk10VoY1YT9siAG41dSscjV3nkd1xgPo2zDQ4LjjQaOyWDfxE0 I4WRx3/BC9Mr4tZBRoG99ZPybunm6E1xo2FGFC6Y8xs4DGFB8qEnivzdTSNbr5FdVG7I +zoDumHCgbkbhVwVl+7hPuCR6hegegXIycslUH52Mz+xdtzPnH8dBr/cQkOMzh2uhtr3 xHEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862956; x=1777467756; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UF2x3LQsFVeOwuh4smvXIT3vMnoh5OJHhwB45pzXnIE=; b=GDFyqDMT4yaigW6vtaL1P1o6RZ5tpdUKPc7dd+VxryfhtCl8tm92GLtYwuoqAlc2d7 ZPGfjWRu2x6F5by+cj8PLII6HiKrS4u+e9W9gXC7ed1N6vybqZKg1VbaHTXzrKguzTtT MrRW1Oqa9BKRsQqqKnNDGsIqXJnMXH4rQ4aIoTU1Y9jtsLKXkj2UE2C9+6OgcQ/QDz0r PUjLZE8FJkL034wIpF87u2ut8dwD80RCN8fQOMZ1WAq0RWYvNB85csIdfnuHrj4oZTSo AlVpVIa9EwsFo/suwIzsWrknouWdRj1anr1y/K8BobTNZnnJEi5g5bW15JiZAXGUXxUg 4Dmw== X-Gm-Message-State: AOJu0YzOLjRNpG4fliPPhq+Oq33xRx3umt3/dQHLrHP2TNTmJg9ri30P kaBm/z5tFm1I0NvRZMfWQ25epHmkKRHgc52UkGHc/PHkpb5/VX7feE1Gafrg42UliYU= X-Gm-Gg: AeBDieswN34m4FxsCcXSFrgu0jNzij/RIq3v0YDzGDBzCZhL/JDcr30ujOAhMUvUilx AjnDbh8uDPawbw6R0e05Orfzlq+6FaBDfrbna3fN7h83+VJEOkmdhJ3ZsDGu/Bp4s2tL2y30Reb RdNaSBtu4Impxc5KMkmo1B40lq2aS7IB/BN4Ql3NzNvnp55suWAsBqlghUcPpJUu+Ws3bBMUmZP mt7YEB/Ped03SfTQMiLwUrWYNW+Mxd3j2WZFayQS9VVlIWp/TwSKm01mo9Mn35Vrjy6aXGqG7RS KirMrQM40cFMzXB7KLTWVpdHrho1ZvcDZoBg+vi4AfFseBcd2Tuv+qwTClISXEsxUQQ4KtV2arU hQf8/YShGBZRbNiTC5fhpwmJWDfwJV9tlUQkD4UmDMqFle2ONnJkS9uTgeSaZ8yfEj4WKTGwAr2 ZLbbok0pmAI+9GWpJ0l+rwJFEes4Tu76XDaw== X-Received: by 2002:a05:600c:41d6:b0:487:2439:b7c8 with SMTP id 5b1f17b1804b1-488fb745294mr205580125e9.1.1776862956044; Wed, 22 Apr 2026 06:02:36 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 22/32] target/arm: remove old syndrome defines Date: Wed, 22 Apr 2026 13:52:39 +0100 Message-ID: <20260422125250.1303100-23-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::334; envelope-from=alex.bennee@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: 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: 1776863058756158500 Now everything is defined with registerfields we can drop the old defines. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- v2 - remove stuff dropped earlier --- target/arm/syndrome.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index d4dfab8cd15..04a71eebcb5 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -106,15 +106,6 @@ typedef enum { GCS_IT_GCSPOPX =3D 9, } GCSInstructionType; =20 -#define ARM_EL_EC_LENGTH 6 -#define ARM_EL_IL_SHIFT 25 -#define ARM_EL_ISV_SHIFT 24 -#define ARM_EL_IL (1 << ARM_EL_IL_SHIFT) -#define ARM_EL_ISV (1 << ARM_EL_ISV_SHIFT) - -/* In the Data Abort syndrome */ -#define ARM_EL_VNCR (1 << 13) - static inline uint32_t syn_get_ec(uint32_t syn) { return FIELD_EX32(syn, SYNDROME, EC); --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863077; cv=none; d=zohomail.com; s=zohoarc; b=aTlzKPRMYtgdDlGcJLZfnuaBQJVLbgRNiX4vJu85VIwbv7oZ8PcEjhzH0e6JUKWpZXJuPSsIiY53YDoqUxHn+y2x+Ig+BCMB90ji6ET8Graxg8hQGUGJfJAxKehnqwAPB7fNwIgW7zOc1D1FKTzTZAhJgcC6aABMuU55DR3E+So= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863077; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=reUwRDuVhNbhnF2K13EHapoGcij9kmY6U8ucQNXXySM=; b=fAyA9yPmtEQQZOeljJg3XWvhqHr9/oeZR75N9mXyzZe55In2t6husN+603+7Qn4KwA3I2xvDxwR2SvsH6I0/FRP9qkXKSKY2/UgfLOFTKPOs25Mq8jS7zHyJJIny+OBmhC9y+7/q+KJWO71WKyKlF4hr0tXdhletgb18r+Ym0vg= 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 1776863077327449.42732698466796; Wed, 22 Apr 2026 06:04:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXE8-0001PG-AY; Wed, 22 Apr 2026 09:02:48 -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 1wFXE3-0001Fh-65 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:43 -0400 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXE1-0001BL-A3 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:42 -0400 Received: by mail-wm1-x344.google.com with SMTP id 5b1f17b1804b1-488d2079582so63700465e9.2 for ; Wed, 22 Apr 2026 06:02:40 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a55dc9f58sm287208155e9.6.2026.04.22.06.02.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:36 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id C9F185FC04; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862960; x=1777467760; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=reUwRDuVhNbhnF2K13EHapoGcij9kmY6U8ucQNXXySM=; b=MMEEiQmRlZ3MV2KBUcrY5lRbCH+qGOIHqA7oh59ryQ1HPQTpM+OSJdANIm3iF9iR6I JeDX73CLK6K0tCaEBrb1MzEr26OzTq7QYwxCqgiQIK0+iFTuA0FH4ZpI1qjEkX+V8Cdm pjl01ea5r4g0FWfOoc5mLT7JgMfjPDMnpjRQx5QWtgy70ogEGY/w4KYMaMGOqSuSxR2p 5bzdI9UQBIm24UvviRcEuKYCsCxDSPqFk9Z7eYw4PXW2RmVtkyqo+C/K6PZHwTqjfcXw lzKuU+My9P8tqIbHk/nDWWBYwNEsPFc/ZR6RxDuU2UxyOv5UmEj/MUz05ar/U+0dLVbk Dkhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862960; x=1777467760; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=reUwRDuVhNbhnF2K13EHapoGcij9kmY6U8ucQNXXySM=; b=KQ2QQZFM2kAgKfwebHxzC8Ngw1ABxjWlEHIjuji8OWFw8c6b9OYfdx6vTMhWQ0yBWn BPBvznyXxI9y3/L2TzbpKSTZxKakD7s/MXP/QA7PC0TucO8QPLk3M/tsEWLhpWfhpHOJ 53s+v7Yka5e3NyuaQffhAvin7jdMXZ/+BoWah4RAeguO7i+VggatacjGKkjTZqn73p/g M6Oy2hfezkzTBWVXr/JLcR0EWHY/LemCFNQdU3YslOHUcXrz4p47v92brnETFoDZIsld TyA60SwmL3W/XyuCPdZYPHcwiDw0D+mqBoGPW9PtnzcIxlnrHZuKlLKp3oVaA4FB0n9n ehmA== X-Gm-Message-State: AOJu0YzCc22LXLzcis3fjlQjG+4M+K9FFTWWvnEb22fs9Dgvstr3QLNA H3wf5ihD7WV3i9R3p4te4ZuGgCpT6j4F+y406JrPZYuxKxdiSkX8yEm64uTZ4Or0Cog= X-Gm-Gg: AeBDiev06ZrvTlAYH569OE7muEjCbVCOIkfZj2qS6+oOYb7IEs70N8LxtYA6f97Saz/ xnWl7nQoRc1YTPBZXwXik/sGIieX/Njh+gXj+0k4Cfyy6yQ4mE/vpzC2tvTVtVQ9MZZs9iYynvF kVKDlWmWv+N6ZEbkkKxIfzAM6KQ4EZTPc6VL2azrFL5PPeGMMEMZg0p6SwT8QvaUJQXiHTdZHGF HqKdvrzdue/BEAeyS3Gcq9kdlAnqlwwjKfFDWC0oJw8QjO14BgUppx48ojDbkkmzpF2a2tN9VGP 8HTXYMgVjitfNxWmNMD5AseD4V1A/bmlfHNfVe2EtEIpDcD0NZ7r3reiS1ySgd6AyPz9QVy7xbl CHUbnE1NFdtsOug/G3OWEpokHc1+hNJjfzWGtYEbUmK1Yu1+zWKB1XaKV6KHLwZqMdBaKv56Sd+ vV9ymB6VfSrqYtzVPnC8vM6EX1YEl9vEG02g== X-Received: by 2002:a05:600c:8908:b0:48a:58e1:6d02 with SMTP id 5b1f17b1804b1-48a58e16eb2mr53254275e9.19.1776862958236; Wed, 22 Apr 2026 06:02:38 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 23/32] target/arm: report register in WFIT syndromes Date: Wed, 22 Apr 2026 13:52:40 +0100 Message-ID: <20260422125250.1303100-24-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::344; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-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=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: 1776863078960158500 Pass the register number (rd) to the wfit helper and report it in the syndrome ISS. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- v2 - drop stale TODO - fixup stale commit comment (WFIT fix already merged) - make rv a bool - make ti a enum type --- target/arm/syndrome.h | 11 ++++++++++- target/arm/tcg/helper-defs.h | 2 +- target/arm/tcg/op_helper.c | 7 ++++--- target/arm/tcg/translate-a64.c | 2 +- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 04a71eebcb5..4d1f1c529e2 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -670,7 +670,14 @@ FIELD(WFX_ISS, RN, 5, 5) FIELD(WFX_ISS, COND, 20, 4) FIELD(WFX_ISS, CV, 24, 1) =20 -static inline uint32_t syn_wfx(int cv, int cond, int ti, bool is_16bit) +typedef enum { + WFI =3D 0b00, + WFE =3D 0b01, + WFIT =3D 0b10, + WFET =3D 0xb11 +} wfx_ti; + +static inline uint32_t syn_wfx(int cv, int cond, int rn, bool rv, wfx_ti t= i, bool is_16bit) { uint32_t res =3D syn_set_ec(0, EC_WFX_TRAP); res =3D FIELD_DP32(res, SYNDROME, IL, !is_16bit); @@ -678,6 +685,8 @@ static inline uint32_t syn_wfx(int cv, int cond, int ti= , bool is_16bit) res =3D FIELD_DP32(res, WFX_ISS, CV, cv); res =3D FIELD_DP32(res, WFX_ISS, COND, cond); res =3D FIELD_DP32(res, WFX_ISS, TI, ti); + res =3D FIELD_DP32(res, WFX_ISS, RN, rn); + res =3D FIELD_DP32(res, WFX_ISS, RV, rv); =20 return res; } diff --git a/target/arm/tcg/helper-defs.h b/target/arm/tcg/helper-defs.h index 5a10a9fba3b..a05f2258f29 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -55,7 +55,7 @@ DEF_HELPER_2(exception_pc_alignment, noreturn, env, vaddr) DEF_HELPER_1(setend, void, env) DEF_HELPER_2(wfi, void, env, i32) DEF_HELPER_1(wfe, void, env) -DEF_HELPER_2(wfit, void, env, i64) +DEF_HELPER_2(wfit, void, env, i32) DEF_HELPER_1(yield, void, env) DEF_HELPER_1(pre_hvc, void, env) DEF_HELPER_2(pre_smc, void, env, i32) diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index aa14f15eb62..652611b4313 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -399,7 +399,7 @@ void HELPER(wfi)(CPUARMState *env, uint32_t insn_len) env->regs[15] -=3D insn_len; } =20 - raise_exception(env, excp, syn_wfx(1, 0xe, 0, insn_len =3D=3D 2), + raise_exception(env, excp, syn_wfx(1, 0xe, 0, false, WFI, insn_len= =3D=3D 2), target_el); } =20 @@ -409,7 +409,7 @@ void HELPER(wfi)(CPUARMState *env, uint32_t insn_len) #endif } =20 -void HELPER(wfit)(CPUARMState *env, uint64_t timeout) +void HELPER(wfit)(CPUARMState *env, uint32_t rd) { #ifdef CONFIG_USER_ONLY /* @@ -428,6 +428,7 @@ void HELPER(wfit)(CPUARMState *env, uint64_t timeout) int target_el =3D check_wfx_trap(env, false, &excp); /* The WFIT should time out when CNTVCT_EL0 >=3D the specified value. = */ uint64_t cntval =3D gt_get_countervalue(env); + uint64_t timeout =3D env->xregs[rd]; /* * We want the value that we would get if we read CNTVCT_EL0 from * the current exception level, so the direct_access offset, not @@ -448,7 +449,7 @@ void HELPER(wfit)(CPUARMState *env, uint64_t timeout) =20 if (target_el) { env->pc -=3D 4; - raise_exception(env, excp, syn_wfx(1, 0xe, 2, false), target_el); + raise_exception(env, excp, syn_wfx(1, 0xe, rd, true, WFIT, false),= target_el); } =20 if (uadd64_overflow(timeout, offset, &nexttick)) { diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 5d261a5e32b..073454b9195 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -2064,7 +2064,7 @@ static bool trans_WFIT(DisasContext *s, arg_WFIT *a) } =20 gen_a64_update_pc(s, 4); - gen_helper_wfit(tcg_env, cpu_reg(s, a->rd)); + gen_helper_wfit(tcg_env, tcg_constant_i32(a->rd)); /* Go back to the main loop to check for interrupts */ s->base.is_jmp =3D DISAS_EXIT; return true; --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862476; cv=none; d=zohomail.com; s=zohoarc; b=CSKxoihftqCx9g2Rnn7zlcz5hQPleSqZsmQqgDhNU7rxSvsD2VlNPB8xb2iOSSqmf0X7Gd0R7F/jC0Z123sMw0Xx0fo80TOrg+ndnDJmJL4O4wFYMbErEWjO8PeVwVU6Png6pdXu1TCHMsAtNK5WkKzy8rWXmp3AanpE+84Hf+0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862476; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4/Ygp/F48dZ3RysrI6Uw/aAqnHQSpp+gk0lyGlg/T44=; b=bAwBl5Jx5GQHrJVu0fhINmB2ng8dYwetk67RMOTtgNP/xyZwTrpHXbbkts9JSfpmE5Q98Oi+5CyuJ6SMdmCBZebgNJNuU4CXr5zQZ389db5wuKC0v/RMTTKf/6tkmTS57WWbdH2K3KU2SXq2MuoCdSZxHRcBQbdelrnxEVZzZrQ= 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 1776862476611694.1468948499125; Wed, 22 Apr 2026 05:54:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX5h-0006qE-9X; Wed, 22 Apr 2026 08:54:05 -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 1wFX4r-00065u-0Y for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:13 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4m-0005XI-J9 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:11 -0400 Received: by mail-wr1-x443.google.com with SMTP id ffacd0b85a97d-43cfbd17589so4297287f8f.0 for ; Wed, 22 Apr 2026 05:53:08 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4dc24cfsm45215207f8f.16.2026.04.22.05.52.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:53:02 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id E34FB614FF; Wed, 22 Apr 2026 13:52:52 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862387; x=1777467187; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4/Ygp/F48dZ3RysrI6Uw/aAqnHQSpp+gk0lyGlg/T44=; b=tZ1SOs5fql6qYW9oVAMguO9mp1voI/L98/BSdUuDe7nQYoWEtGI+zAD8ubaIvVh0Im zymKEJPaEtDz0TFDiZo4dhhMxXmL6KXxz2eQsyassROscpOp4e5anrSsDMJWm8CYD9Yd JeRFM3IaHMn1HgQstZAOlGQiTkqLIoAdnH6GGrZ1YJPlSFHtrO6w5ewtAJ23ZG/fzt/L oXcTemZ/+n0lJyH6Az31N217MMwgIVKlS+Fy+Oshk53UTAgkmPnI1lKunqoc91AC2C8H feUJ49PM6Krz+CeUs8eANSsWGRaspSeccdaK2popS7o4vUkF8ErCLRYkHJLlr/jM6TB2 /dQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862387; x=1777467187; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4/Ygp/F48dZ3RysrI6Uw/aAqnHQSpp+gk0lyGlg/T44=; b=A7ZXl7g63MXEkXMOvV9OHijF+R/9rxwXkdoKlHNYFP64/qOm4l+2xtSboo0eyJ7CbX M5EYt9v3E3Qpz+B0l7j3dmKjelbMdZi+7ao6jouVxppvS/ggoemhLIOp+3Kf+OvGpqLc HPZ9bugnjhuV4XoFLDz1n7tWjC7D5S/gQt6jj98WZddf7FjHJ2Ixnz7/Aqs7HxgDCA3z J2/JZ1OQ9WKKH+UwCGwRgvbZHxKNBDcDombLo8yGEavfoM+Wh7d8EMew4hSBPR/oOk/4 0+DFmbbKm22scClt3LN2mYtbuzEF1H4xqpCXuqw5SkMJB3B/yBRiysliN9Hqpgs6G9Si tARg== X-Gm-Message-State: AOJu0Yyyy1gX3BUxPOJS91epC2wqGxMcYgY3JaK0T1fgbdcmtxG74MGX fjbQgzd41KBIdqARrNPY5WotdROtTfSOHSVVSYKp6ITb2Vi5iMuqNV3llC1jckzCvRc= X-Gm-Gg: AeBDievpv0QXnl2U/R4HtJEaBX7E2O7X1ysPdOJ8/8jMBeBwpBurcQ8PKi5K0UKsmKo GOoxDWrmltt2LlnUaonxRwAMKEbtwHVJzQTWe3lxxY1CV9A8izDg59dWLQy9XybsgA7QJ/5lo5x DkKKHsJKulfXNZ2Yqyhz7vG1I1QFt5FQbhX4ZekWFnZ4cC1ru1hUyKWc9A11no9tIXBk1mNAriX mDmIo4T2+9UJqupuaRgRLVV0gbruYcfxhJknhrX5h1QSvQetGDfaNSIU/1liAS2K1Rd7GmVstLx 1azpsuLS/YUI23W4htbM/pHuLe5pz3o8ToWViOSrs7O0ifr/GnaWKMbbo4LBcKZvIDKwdcEzLaj 8N1Y4SYOphRxkzim/4wuolvbJ8/y7qrqLmpbHqHeQ0T6HsV/goEbP8ihuvVpDYpT6slyoPREnTA b93yPFH68b88ADj9/xxPqAfkvSo/e+veW00w== X-Received: by 2002:adf:fcc9:0:b0:43f:e4f1:bd9b with SMTP id ffacd0b85a97d-43fe4f1bdf7mr22720056f8f.30.1776862386869; Wed, 22 Apr 2026 05:53:06 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v3 24/32] target/arm: teach arm_cpu_has_work about halting reasons Date: Wed, 22 Apr 2026 13:52:41 +0100 Message-ID: <20260422125250.1303100-25-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::443; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x443.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.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: 1776862478226154100 With the advent of WFE and WFI we need to pay closer attention to the reason why the vCPU may be sleeping to figure out if we should wake it up. Create env->halt_reason to track this and then re-order the tests so we: - ignore everything is the vCPU is powered off - wake up if the event_register is set and we were in a WFE - otherwise any IRQ event does wake the vCPU up. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- target/arm/cpu.h | 27 +++++++++++++++++++++++++ target/arm/arm-powerctl.c | 4 +++- target/arm/cpu.c | 40 +++++++++++++++++++++++++++----------- target/arm/kvm.c | 5 +++-- target/arm/machine.c | 2 +- target/arm/tcg/op_helper.c | 3 +++ 6 files changed, 66 insertions(+), 15 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 657ff4ab20b..98cdfa6f130 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -257,6 +257,19 @@ typedef enum ARMFPStatusFlavour { } ARMFPStatusFlavour; #define FPST_COUNT 10 =20 +/** + * ARMHaltReason - the reason we have entered halt state + * + * To be able to correctly wake up via arm_cpu_has_work() we need to + * track the reason we went to sleep. + */ +typedef enum { + NOT_HALTED =3D 0, + HALT_PSCI, + HALT_WFI, + HALT_WFE +} ARMHaltReason; + typedef struct CPUArchState { /* Regs for current mode. */ uint32_t regs[16]; @@ -760,6 +773,9 @@ typedef struct CPUArchState { /* Optional fault info across tlb lookup. */ ARMMMUFaultInfo *tlb_fi; =20 + /* Reason the CPU is halted */ + ARMHaltReason halt_reason; + /* * The event register is shared by all ARM profiles (A/R/M), * so it is stored in the top-level CPU state. @@ -1691,6 +1707,17 @@ static inline void xpsr_write(CPUARMState *env, uint= 32_t val, uint32_t mask) #endif } =20 +/** + * arm_set_cpu_power_state() - set power state synced with halt_reason + */ +static inline void arm_set_cpu_power_state(ARMCPU *cpu, ARMPSCIState state) +{ + CPUARMState *env =3D &cpu->env; + + cpu->power_state =3D state; + env->halt_reason =3D (state =3D=3D PSCI_OFF) ? HALT_PSCI : NOT_HALTED; +} + #define HCR_VM (1ULL << 0) #define HCR_SWIO (1ULL << 1) #define HCR_PTW (1ULL << 2) diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c index a788376d1d3..4ca63a54443 100644 --- a/target/arm/arm-powerctl.c +++ b/target/arm/arm-powerctl.c @@ -78,6 +78,7 @@ static void arm_set_cpu_on_async_work(CPUState *target_cp= u_state, =20 /* Finally set the power status */ assert(bql_locked()); + target_cpu->env.halt_reason =3D NOT_HALTED; target_cpu->power_state =3D PSCI_ON; } =20 @@ -186,6 +187,7 @@ static void arm_set_cpu_on_and_reset_async_work(CPUStat= e *target_cpu_state, =20 /* Finally set the power status */ assert(bql_locked()); + target_cpu->env.halt_reason =3D NOT_HALTED; target_cpu->power_state =3D PSCI_ON; } =20 @@ -239,7 +241,7 @@ static void arm_set_cpu_off_async_work(CPUState *target= _cpu_state, ARMCPU *target_cpu =3D ARM_CPU(target_cpu_state); =20 assert(bql_locked()); - target_cpu->power_state =3D PSCI_OFF; + arm_set_cpu_power_state(target_cpu, PSCI_OFF); target_cpu_state->halted =3D 1; target_cpu_state->exception_index =3D EXCP_HLT; } diff --git a/target/arm/cpu.c b/target/arm/cpu.c index ccc47c8a9ad..124be8c401e 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -144,18 +144,36 @@ static bool arm_cpu_has_work(CPUState *cs) { ARMCPU *cpu =3D ARM_CPU(cs); =20 - if (arm_feature(&cpu->env, ARM_FEATURE_M)) { - if (cpu->env.event_register) { - return true; - } + /* + * Only another PSCI call can wake the CPU up in which case the + * power_state would be set by arm_set_cpu_on_and_reset_async_work() + */ + if (cpu->power_state =3D=3D PSCI_OFF) { + g_assert(cpu->env.halt_reason =3D=3D HALT_PSCI); + return false; + } + + /* + * A wake-up event should only wake us if we are halted on a WFE + */ + if (cpu->env.halt_reason =3D=3D HALT_WFE && cpu->env.event_register) { + cpu->env.halt_reason =3D NOT_HALTED; + return true; + } + + /* + * Otherwise pretty much any IRQ would wake us up + */ + if (cpu_test_interrupt(cs, + CPU_INTERRUPT_FIQ | CPU_INTERRUPT_HARD + | CPU_INTERRUPT_NMI | CPU_INTERRUPT_VINMI | CPU= _INTERRUPT_VFNMI + | CPU_INTERRUPT_VFIQ | CPU_INTERRUPT_VIRQ | CPU= _INTERRUPT_VSERR + | CPU_INTERRUPT_EXITTB)) { + cpu->env.halt_reason =3D NOT_HALTED; + return true; } =20 - return (cpu->power_state !=3D PSCI_OFF) - && cpu_test_interrupt(cs, - CPU_INTERRUPT_FIQ | CPU_INTERRUPT_HARD - | CPU_INTERRUPT_NMI | CPU_INTERRUPT_VINMI | CPU_INTERRUPT_V= FNMI - | CPU_INTERRUPT_VFIQ | CPU_INTERRUPT_VIRQ | CPU_INTERRUPT_V= SERR - | CPU_INTERRUPT_EXITTB); + return false; } #endif /* !CONFIG_USER_ONLY */ =20 @@ -250,7 +268,7 @@ static void arm_cpu_reset_hold(Object *obj, ResetType t= ype) env->vfp.xregs[ARM_VFP_MVFR1] =3D cpu->isar.mvfr1; env->vfp.xregs[ARM_VFP_MVFR2] =3D cpu->isar.mvfr2; =20 - cpu->power_state =3D cs->start_powered_off ? PSCI_OFF : PSCI_ON; + arm_set_cpu_power_state(cpu, cs->start_powered_off ? PSCI_OFF : PSCI_O= N); =20 if (arm_feature(env, ARM_FEATURE_AARCH64)) { /* 64 bit CPUs always start in 64 bit mode */ diff --git a/target/arm/kvm.c b/target/arm/kvm.c index d4a68874b88..c08e4797b32 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -1143,11 +1143,12 @@ static int kvm_arm_sync_mpstate_to_qemu(ARMCPU *cpu) if (cap_has_mp_state) { struct kvm_mp_state mp_state; int ret =3D kvm_vcpu_ioctl(CPU(cpu), KVM_GET_MP_STATE, &mp_state); + ARMPSCIState state; if (ret) { return ret; } - cpu->power_state =3D (mp_state.mp_state =3D=3D KVM_MP_STATE_STOPPE= D) ? - PSCI_OFF : PSCI_ON; + state =3D (mp_state.mp_state =3D=3D KVM_MP_STATE_STOPPED) ? PSCI_O= FF : PSCI_ON; + arm_set_cpu_power_state(cpu, state); } return 0; } diff --git a/target/arm/machine.c b/target/arm/machine.c index b0e499515cf..62401c5a3ea 100644 --- a/target/arm/machine.c +++ b/target/arm/machine.c @@ -916,7 +916,7 @@ static int get_power(QEMUFile *f, void *opaque, size_t = size, { ARMCPU *cpu =3D opaque; bool powered_off =3D qemu_get_byte(f); - cpu->power_state =3D powered_off ? PSCI_OFF : PSCI_ON; + arm_set_cpu_power_state(cpu, powered_off ? PSCI_OFF : PSCI_ON); return 0; } =20 diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index 652611b4313..46c745077d5 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -403,6 +403,7 @@ void HELPER(wfi)(CPUARMState *env, uint32_t insn_len) target_el); } =20 + env->halt_reason =3D HALT_WFI; cs->exception_index =3D EXCP_HLT; cs->halted =3D 1; cpu_loop_exit(cs); @@ -464,6 +465,7 @@ void HELPER(wfit)(CPUARMState *env, uint32_t rd) } else { timer_mod(cpu->wfxt_timer, nexttick); } + env->halt_reason =3D HALT_WFI; cs->exception_index =3D EXCP_HLT; cs->halted =3D 1; cpu_loop_exit(cs); @@ -508,6 +510,7 @@ void HELPER(wfe)(CPUARMState *env) return; } =20 + env->halt_reason =3D HALT_WFE; cs->exception_index =3D EXCP_HLT; cs->halted =3D 1; cpu_loop_exit(cs); --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863049; cv=none; d=zohomail.com; s=zohoarc; b=GiSEr325i+LAR4Sq7XN/i/kaLQd0Jh0Gs4vjPC7qxkrpcm8A6dVk8zJHk3nCsF6gCgYJp8EcDIdCN5PuHl6vuN3Gc8wJnvOll8IaBUBTDTztZtQsFfAY6UyY4fXuKQI7dHct8hKBXx/7tC+Q/kDMiAMtbvdaHyGDs0bOqruzZL4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863049; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=V9WNiVc32x9uwc9Kvl3F3IabOVkUVJfyhaJuWqhRbgs=; b=hlm56xACi5zuOrwwh0j+BZmH8tMJnEU3GxBCeAk0wVty5KnBHRb/WkXFZ69t/slAE1/3f7aYDZkLzYFUqfmwyXwOFfRO6m9S0lDBXDT6CaWUtiB7z76CHZJ8MtCWylRZ3FdOX0WTTK7QZYkP5g9BJJ82pSLd3Szx6uUM3pQVj9c= 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 1776863049206112.12285358416716; Wed, 22 Apr 2026 06:04:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXDz-0001AQ-RU; Wed, 22 Apr 2026 09:02:40 -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 1wFXDt-00016w-GS for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:35 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXDr-00017n-Tt for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:33 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-48374014a77so70812505e9.3 for ; Wed, 22 Apr 2026 06:02:31 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fb74c7a2sm140308125e9.1.2026.04.22.06.02.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:25 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 0269E6153F; Wed, 22 Apr 2026 13:52:53 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862950; x=1777467750; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=V9WNiVc32x9uwc9Kvl3F3IabOVkUVJfyhaJuWqhRbgs=; b=gWwpYdgCVcbM2Yhiyn7T7JtxjuhoSyhO6hf0gcroWyPxYBTbaeA1pGyDwZ7XxolK3f eIZyNfXBdReTavrcQQIKv1Mhs4Liyd/OBAUQhlaIs/V2f0rDV+XVM9m8D7ZsZcEUl+KV cN1y1kvvCyf76P/MSEI4gz6cd7Q8JmT3GM94mDkJB2ChgG8pYrkDROx4FrCqR59JQzmS R0cu/XOAF+cMDRsdrPKqLk140Pkp4wmkXHWK9+If4V5QY5TI4KdNgd6EZLfuJbljSlKz 6jmnuLFTJ9JYuhBBcVfK7/B9cP3ACo+8GTJ6vGtbSC+RKEvHWRYVFfvzbe0fhqqtj2vl h2Yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862950; x=1777467750; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=V9WNiVc32x9uwc9Kvl3F3IabOVkUVJfyhaJuWqhRbgs=; b=bs1gBBTFC5Yj6EeoRcjt8XvViI7iEngWW3eWTgJ3z0HILYT9SH0QZmPZV/t7cQPg20 IOP2GITQtV7hCxua6ley5yTfM7dpiHmPt49UhDaXcDJpEytyFi7NSBCDnB4ZnmCZXTvV Ps6XRqm75AYD2xxDN6+UpO23k2PDWybFV+ZABljNBRDOPzbb1m7cBppdZK9rAZIGsgXi A3a7AF3VDsqQwBN9rpuONWIdZS6EtpBfa5Cegr1zni2RWL1thvcgEnJt2rKEA8Tns+Uw pwxvAxsKxe7HotAngfEeoZjU8TI6X1zEDI49eMIcuLkxuEW1byD6c9rQJDvSfvTQOavB IbuA== X-Gm-Message-State: AOJu0YxjqkDSb5XKKOix4llx9JSIa0O0DSlBzFapwl498HBIJOatyjCJ O6Q7SLvWXKb3QS7tEmnWX59Lr5u8BIU2g8pI+dKUro1c0pmhG1IsctlF4e1Z14OrovQ= X-Gm-Gg: AeBDies92qjoPA5dO28jivzbZ9eltLjxD30OJ3Oy895Iodr3MCF4Hbei4nrCeScw7OM 9+vHefkRJhzZ/Mh+qMTBglv/lbkeCYnW62td+sXLx5woRznq1oBRUNaNZbE0wsxe4op36ekd5bK K5FFMlYS41PF16/lWFxV+ki6kfzxBFW1Tbfq4jAyv27B9naoNcU1ABx7jFhwKuNWGVFoVpTXhsW IAlxmO51yi/UIteDCKnIbbVPCAeremQknCPBnNUrUq0A+o5I0eN6KdNIK0y3zrfkIa70iVbRxCs C8OmYVOnIq4XpY83Sm5Qk/SLs7hGBEesmiihTOwZgABYOxVunCWCf0HMfegR7YvWMx6p/rtieBu h3/OVHZLC1znahJpcOjeYViRJS8IzYHRTTkxP5C+Qn5LVieJT1iAHmVqja3HZwetDFR0CzBvoY2 9frPb96qgT3F7aZQ/Ey+N5TQ0tKTJ+mN+7TUiG1COE1YkS X-Received: by 2002:a05:600c:8483:b0:488:7ff6:1f75 with SMTP id 5b1f17b1804b1-488fb782d91mr334374605e9.21.1776862950380; Wed, 22 Apr 2026 06:02:30 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 25/32] target/arm: redefine event stream fields Date: Wed, 22 Apr 2026 13:52:42 +0100 Message-ID: <20260422125250.1303100-26-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32a; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32a.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: 1776863050739158500 The event stream control bits are the same for both CNTHCTL and CNTKCTL so rather than duplicating the definitions rename them to be useful in both cases. We will need these in a later commit when we start implementing event streams. Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- target/arm/internals.h | 11 +++++++---- target/arm/helper.c | 8 ++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index 85980f0e69a..dc593f1fec8 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -263,14 +263,17 @@ FIELD(VSTCR, SA, 30, 1) * have different bit definitions, and EL1PCTEN might be * bit 0 or bit 10. We use _E2H1 and _E2H0 suffixes to * disambiguate if necessary. + * + * The event stream bits (EVN*) are in the same position for + * CNTKCTL_EL1/CTNKCTL. */ FIELD(CNTHCTL, EL0PCTEN_E2H1, 0, 1) FIELD(CNTHCTL, EL0VCTEN_E2H1, 1, 1) FIELD(CNTHCTL, EL1PCTEN_E2H0, 0, 1) FIELD(CNTHCTL, EL1PCEN_E2H0, 1, 1) -FIELD(CNTHCTL, EVNTEN, 2, 1) -FIELD(CNTHCTL, EVNTDIR, 3, 1) -FIELD(CNTHCTL, EVNTI, 4, 4) +FIELD(CNTxCTL, EVNTEN, 2, 1) +FIELD(CNTxCTL, EVNTDIR, 3, 1) +FIELD(CNTxCTL, EVNTI, 4, 4) FIELD(CNTHCTL, EL0VTEN, 8, 1) FIELD(CNTHCTL, EL0PTEN, 9, 1) FIELD(CNTHCTL, EL1PCTEN_E2H1, 10, 1) @@ -280,7 +283,7 @@ FIELD(CNTHCTL, EL1TVT, 13, 1) FIELD(CNTHCTL, EL1TVCT, 14, 1) FIELD(CNTHCTL, EL1NVPCT, 15, 1) FIELD(CNTHCTL, EL1NVVCT, 16, 1) -FIELD(CNTHCTL, EVNTIS, 17, 1) +FIELD(CNTxCTL, EVNTIS, 17, 1) FIELD(CNTHCTL, CNTVMASK, 18, 1) FIELD(CNTHCTL, CNTPMASK, 19, 1) =20 diff --git a/target/arm/helper.c b/target/arm/helper.c index 40dd070d2c1..81a07ca42d0 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -1746,9 +1746,9 @@ static void gt_cnthctl_write(CPUARMState *env, const = ARMCPRegInfo *ri, uint32_t valid_mask =3D R_CNTHCTL_EL0PCTEN_E2H1_MASK | R_CNTHCTL_EL0VCTEN_E2H1_MASK | - R_CNTHCTL_EVNTEN_MASK | - R_CNTHCTL_EVNTDIR_MASK | - R_CNTHCTL_EVNTI_MASK | + R_CNTxCTL_EVNTEN_MASK | + R_CNTxCTL_EVNTDIR_MASK | + R_CNTxCTL_EVNTI_MASK | R_CNTHCTL_EL0VTEN_MASK | R_CNTHCTL_EL0PTEN_MASK | R_CNTHCTL_EL1PCTEN_E2H1_MASK | @@ -1763,7 +1763,7 @@ static void gt_cnthctl_write(CPUARMState *env, const = ARMCPRegInfo *ri, R_CNTHCTL_EL1TVCT_MASK | R_CNTHCTL_EL1NVPCT_MASK | R_CNTHCTL_EL1NVVCT_MASK | - R_CNTHCTL_EVNTIS_MASK; + R_CNTxCTL_EVNTIS_MASK; } if (cpu_isar_feature(aa64_ecv, cpu)) { valid_mask |=3D R_CNTHCTL_ECV_MASK; --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863072; cv=none; d=zohomail.com; s=zohoarc; b=FYtWUu+qArct2fgZxPgYG5w22EpmlKPm1VsYRH4OVzpnPCwN1hOsWafe+vzGqeZO+N3gHVkKglAup5G8T7nn4GKWzvlQW4vUrYYzLqNRLyk06BdMGdhAWftuDhyP2fcMxWHABTDIdZ/E5TvZyqAPqxT7Cbtpoy+lvVcgy/D51zE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863072; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=LHt/fkh4CQTgDK0U2IQzNp32v6ZUUxM/zBvWXPy5kqQ=; b=lEueHHzkK43nHP1N2cTn2Fli4o6Av6iRgIk1O8UW53yVrKsbyysc6BGVHsd8DAFg3MrfnG87xmYwkfQH1N9UWZGuKv+rBjczYk0F901RAW8WkVAp8xtvsIxOZNnwTpUkt9Jm5xIJB/qxp+tR8A/+VuBhPSkwoXl5WZ2fgfBJvJM= 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 1776863072564391.7521655311019; Wed, 22 Apr 2026 06:04:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXE1-0001BF-4I; Wed, 22 Apr 2026 09:02:41 -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 1wFXDu-00017B-CP for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:37 -0400 Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXDs-00017x-SK for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:34 -0400 Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-b941762394aso742002366b.1 for ; Wed, 22 Apr 2026 06:02:32 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e4d6casm41420944f8f.32.2026.04.22.06.02.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:27 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 15D7E61667; Wed, 22 Apr 2026 13:52:53 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862951; x=1777467751; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LHt/fkh4CQTgDK0U2IQzNp32v6ZUUxM/zBvWXPy5kqQ=; b=Wxi+pm+99B7NDMe/CvI0mI8ztzTd/FlU2nGgcxJCBRffewpwxpf/g4Oh0MDH4fI2Si A1HZMPWqLACQQ1OBSo5GheiwLYVMCgCYx5FPHq7+OoiMTYLvAADenPkxwZ153g09fosi J2TClK4r/I50GUy86DeX2J8dOWRZoEOPLl8KGQOHlzqg/iHd5nMIn/qkGtgwqve2ea4V /ewbFKAdX2/+0VA01tA3sRgAy/YBmYw8IrNzj8rHUM5UCVuaL9t2FKaL+KYsJeaQj04y +sbfofDMLV0vxTi0dwD3y1qqSMfOIIuOQSEWZJ3oLJf6G8IRlmJFSwR2eNC8TXRbLzV5 pVqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862951; x=1777467751; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LHt/fkh4CQTgDK0U2IQzNp32v6ZUUxM/zBvWXPy5kqQ=; b=T2cqTiLx7SKo4SfjcmVgcm/ypD/PVsOHyGim+5kLKgI01QWHtWotBSjF1H8BlHo+Mb kCmARPaq3QOLrUpBFFRh78/5rMC9sZ2TTOThMOaQvxaL+bcS3GoSr3pG8ju8kEO92q+l GahxAHmMxTThx1R03Eo2AOEUAgUJEuJXM52/jgEzmmsqpmUFzQu5OXawXGfGZy/lKQ6i NZ567gN8p2UE6+Uwn/dQR/uNYJfBVDw0OMJ65DA9sdL4OHMNJnXwvTJOvbmUiheJcU6z wK0Lw2WpPAJjW/admQyNHudw/iVW70qw/usG5TpLBaw1yRQeqZKluesTlfRLERWfDNH/ DKvA== X-Gm-Message-State: AOJu0Yz2w7rc+LC1XzBWIvW6kvZuRdfXULIc9whyELUC/wJsKDbQQoJC KPoq49s8fsIozsY39o5XOny6BSq8mHc9x0QiL3kbDFTdCHnrD0RPWq+v4/rNxrjeVKA= X-Gm-Gg: AeBDiesWaBLqEj3NWmW86q7XrOlOBMilAWWNNuEhZd+FTosZF63X/27umUm1TQnucSx ogZ8tIivvwkVNnJaG7vckJAL4sP/qo85xBB4SHvaaOPL1YqamRw42knfV5xCI8sEdtO6dy7lL4r gRJdWRJCfU7epnkYW7JHnCdaP25Z4RgJCtQrIowUDMJJ1DJJKOZw6xk9bq5uJoGyUFpNFahYCMx 5KQeFKrCD3WR1suiE0mc9K/RIFJg4E/XqiudSk+1L+lkDKV+/q+M90z2SZ9yWtM/VNITe3Fn7TV zz6HclzM24QqOrtaQzwNl2CswtU/ua45roOQDExwrRS+3Xt/mWmqmaiYmJGXEIkxHBlAALdZRS9 JGa3ZnRWL/1udjZcE65x6RAs2mM5oRlqg6T7BkyGD4i+/YXXFNNi931U3oon5Us4Fdwa3Hd8kgT ySoA2zRdOcpJ9hUfXVdBO2OOyUqei/HxG1tw== X-Received: by 2002:a17:907:3d4c:b0:bab:1e1d:40b9 with SMTP id a640c23a62f3a-bab1e1d40fdmr140947566b.44.1776862950837; Wed, 22 Apr 2026 06:02:30 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Subject: [PATCH v3 26/32] target/arm: ensure aarch64 DISAS_WFE will exit Date: Wed, 22 Apr 2026 13:52:43 +0100 Message-ID: <20260422125250.1303100-27-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::634; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x634.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: 1776863074785154100 This mirrors the logic for DISAS_WFE in 32 bit world. Fixes: 252ec405768 (target-arm: implement WFE/YIELD as a yield for AArch64) Reviewed-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/tcg/translate-a64.c | 1 + 1 file changed, 1 insertion(+) diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 073454b9195..d79c8ab431b 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10917,6 +10917,7 @@ static void aarch64_tr_tb_stop(DisasContextBase *dc= base, CPUState *cpu) case DISAS_WFE: gen_a64_update_pc(dc, 4); gen_helper_wfe(tcg_env); + tcg_gen_exit_tb(NULL, 0); break; case DISAS_YIELD: gen_a64_update_pc(dc, 4); --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863020; cv=none; d=zohomail.com; s=zohoarc; b=dkaQYUjKyIZLLYSntJbonaaA0++hhNArwib0b9n8cQG1odXrAFjkR13iQcclz/cgK2IhqT68axgiOwQTCAUZ0JvnfzficvT+PX/ejKCRxwiHZhPcGeXWUyT3jDF2fLurEnIiHYV/5mE60xp/nMBk5beq+/rsQk8wLwZaLnMYnPY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863020; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=N9iI3ryke1e2JIQkehVmmVgECgG7zvzI0XvyUC6unRY=; b=FMZD0pCYpfYdc67fI8oskbjoKFxHV9p3Qa1GsOnXQu+rrqB3GnWE3/IJypmAWZQ0wzaoeUul9UKjfnRMYof0K4XDL7pkS3B7XdTEzkYA1haHOfrWylGwCTgmLwaTTdzejVeXNz5vktb0YJXrHOqIlzO0XG+RwNdTi54lE/2quFc= 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 1776863020846996.2297168942358; Wed, 22 Apr 2026 06:03:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXDz-00019k-1N; Wed, 22 Apr 2026 09:02:39 -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 1wFXDs-00016v-Uu for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:35 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXDr-00017Y-3T for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:32 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-4891f625344so37657725e9.0 for ; Wed, 22 Apr 2026 06:02:30 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-489393ddd69sm63804685e9.10.2026.04.22.06.02.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:25 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 31F055F93F; Wed, 22 Apr 2026 13:52:53 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862949; x=1777467749; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=N9iI3ryke1e2JIQkehVmmVgECgG7zvzI0XvyUC6unRY=; b=B7rX85pJ1HGSuHLzibtsoXIgDD6W4M+4o9G6jOLZvvgpKJsrEA2T2wn1uMar+Ighkb mTj/AAjLwVfWX/QhZGYBumrQScWgx1bmgzEe5UZgX+5DbhB3XCGDM81BMyRrVGEvvDOW TSBiEbh2sMF8QnRtBJFvPtk8G/ebjjc3ixnOrBv5bJtL4QQcBrbBNARakECWiheyEASL FyWU8sT+JTrRPiq5OZ53p0V/QmSmRJCNt6I75Z81+KrZzPUKihATO6+MfA8D8Irhm6XP O23Exv8c4fnfdGOUND7l8I4AmFri2jxFAgutTN/hbusS7AhtwxcCSYVLBy92jgZNuxSF ZZxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862949; x=1777467749; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=N9iI3ryke1e2JIQkehVmmVgECgG7zvzI0XvyUC6unRY=; b=rUPxrcefTg/hhNSnjtOWMkjtuI/qyQAD1asRGOqFtWOrIEEYjjnYTHAeKHWRzJJjSx eCpoD7jn/LxihaW3nSDlbOiO9VddT4W8+EJYu0urO67Y7DWscBEHcJB4bQmnGTiakyzP JectgsyDZDAgRv9A6VCv2HLacOzYs1ABrXsAFv2bZz0FoQEt7AEkV9o/U4DNyLozixmi Jh86edWIBGgv9i5tGsnPC4NFoncDYz6EpCNfhYR0oQii8juXtHfTFpZmvduwowS5/rnk RoN6PaOcMVpK4HP0ERynseKyZ/xfCwLEeINyico885xwSZIqxnat8E+FTjrNrgxkqcwn LVmg== X-Gm-Message-State: AOJu0Yz2FUyIdfcOq6IafjG8x1BInPysXgDr8ZUSAt1RLFvlgtuZTyvI 7JtEhqnL/icclFfTAhkp6nR1LPff0ajGBpWd6gCMMmwBx+NfoPXPTXOQoniq1B/FCYlaX2CfvcN BGha+46A= X-Gm-Gg: AeBDies1wVfdGr8ahv7k5FvquinBrfYj0asI6JrMbiR+GC39fHD6DZAL3rruW7u3iWf 2Skb8qIvKm379j52Npx3hXK9a9BIVUBzOki8JNRiZvB7FSnKzr+kQURoC0TkQ2ojWWvJyRCqqAj mavTew2IvGj3MrkXfug+BkIHhrLCcG67G8W47ktxFHFl2/zEYnf984irMXVce5dsA2L+nPs2emE e2dMBbF7Degfp+yqUCxV2kjo9t7NOPbUMdBIJPVVPO8aiynxUED2NNPzZ8UNiml60j639f8MGeZ ki+gIkPzb8/J9UbCeMpZ0OqPu97lOygOPcDWLIJwroDc2bfN5kgR2xwO0/OWsx6yVLDA5sVxScb g2qIanARU/X8E92BDgFX3zOn6dx9QBvKLzcKN32nZBJhwy/eifw3ngmJ5DfF+4R2US7DoYAakSB XZyZmym7HHMfVqC4YF5o1BJNFHH4oQVOUrIIR2gMV2EAEH X-Received: by 2002:a05:600c:19d3:b0:48a:55ec:c007 with SMTP id 5b1f17b1804b1-48a55ecc113mr88376885e9.15.1776862948514; Wed, 22 Apr 2026 06:02:28 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v3 27/32] target/arm: implements SEV/SEVL for all modes Date: Wed, 22 Apr 2026 13:52:44 +0100 Message-ID: <20260422125250.1303100-28-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32e; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32e.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: 1776863024225154100 Remove the restrictions that make this a M-profile only operation and enable the instructions for all Arm profiles. Signed-off-by: Alex Benn=C3=A9e --- v2 - fix alignment in a32.decode - set bool directly, defend with QEMU_BUILD_BUG_ON - s/instructions/profiles/ - share get_event_reg between translate/translate-a64 --- target/arm/tcg/translate.h | 18 ++++++++++++++++++ target/arm/tcg/a32.decode | 5 ++--- target/arm/tcg/a64.decode | 5 ++--- target/arm/tcg/t16.decode | 4 +--- target/arm/tcg/t32.decode | 4 +--- target/arm/tcg/op_helper.c | 4 +--- target/arm/tcg/translate-a64.c | 17 +++++++++++++++++ target/arm/tcg/translate.c | 13 ++++++++----- 8 files changed, 50 insertions(+), 20 deletions(-) diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h index 3e3094a463e..9bf2701a56b 100644 --- a/target/arm/tcg/translate.h +++ b/target/arm/tcg/translate.h @@ -864,6 +864,24 @@ static inline void gen_restore_rmode(TCGv_i32 old, TCG= v_ptr fpst) gen_helper_set_rmode(old, old, fpst); } =20 +/* + * Event Register signalling. + * + * A bunch of activities trigger events, we just need to latch on to + * true. The event eventually gets consumed by WFE/WFET. + * + * user-mode treats these as NOPs. + */ + +static inline void gen_event_reg(void) +{ +#ifndef CONFIG_USER_ONLY + TCGv_i32 set_event =3D tcg_constant_i32(1); + QEMU_BUILD_BUG_ON(sizeof_field(CPUARMState, event_register) !=3D 1); + tcg_gen_st8_i32(set_event, tcg_env, offsetof(CPUARMState, event_regist= er)); +#endif +} + /* * Helpers for implementing sets of trans_* functions. * Defer the implementation of NAME to FUNC, with optional extra arguments. diff --git a/target/arm/tcg/a32.decode b/target/arm/tcg/a32.decode index f2ca4809495..547aa2b1490 100644 --- a/target/arm/tcg/a32.decode +++ b/target/arm/tcg/a32.decode @@ -192,9 +192,8 @@ SMULTT .... 0001 0110 .... 0000 .... 1110 ...= . @rd0mn WFE ---- 0011 0010 0000 1111 ---- 0000 0010 WFI ---- 0011 0010 0000 1111 ---- 0000 0011 =20 - # TODO: Implement SEV, SEVL; may help SMP performance. - # SEV ---- 0011 0010 0000 1111 ---- 0000 0100 - # SEVL ---- 0011 0010 0000 1111 ---- 0000 0101 + SEV ---- 0011 0010 0000 1111 ---- 0000 0100 + SEVL ---- 0011 0010 0000 1111 ---- 0000 0101 =20 ESB ---- 0011 0010 0000 1111 ---- 0001 0000 ] diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 01b1b3e38be..dcb3099dd5c 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -237,9 +237,8 @@ ERETA 1101011 0100 11111 00001 m:1 11111 1111= 1 &reta # ERETAA, ERETAB YIELD 1101 0101 0000 0011 0010 0000 001 11111 WFE 1101 0101 0000 0011 0010 0000 010 11111 WFI 1101 0101 0000 0011 0010 0000 011 11111 - # We implement WFE to never block, so our SEV/SEVL are NOPs - # SEV 1101 0101 0000 0011 0010 0000 100 11111 - # SEVL 1101 0101 0000 0011 0010 0000 101 11111 + SEV 1101 0101 0000 0011 0010 0000 100 11111 + SEVL 1101 0101 0000 0011 0010 0000 101 11111 # Our DGL is a NOP because we don't merge memory accesses anyway. # DGL 1101 0101 0000 0011 0010 0000 110 11111 XPACLRI 1101 0101 0000 0011 0010 0000 111 11111 diff --git a/target/arm/tcg/t16.decode b/target/arm/tcg/t16.decode index 778fbf16275..9a8f89538ac 100644 --- a/target/arm/tcg/t16.decode +++ b/target/arm/tcg/t16.decode @@ -228,10 +228,8 @@ REVSH 1011 1010 11 ... ... @rdm WFE 1011 1111 0010 0000 WFI 1011 1111 0011 0000 =20 - # M-profile SEV is implemented. - # TODO: Implement SEV for other profiles, and SEVL for all profiles; m= ay help SMP performance. SEV 1011 1111 0100 0000 - # SEVL 1011 1111 0101 0000 + SEVL 1011 1111 0101 0000 =20 # The canonical nop has the second nibble as 0000, but the whole of the # rest of the space is a reserved hint, behaves as nop. diff --git a/target/arm/tcg/t32.decode b/target/arm/tcg/t32.decode index 49b8d0037ec..8ae277fe112 100644 --- a/target/arm/tcg/t32.decode +++ b/target/arm/tcg/t32.decode @@ -369,10 +369,8 @@ CLZ 1111 1010 1011 ---- 1111 .... 1000 ..= .. @rdm WFE 1111 0011 1010 1111 1000 0000 0000 0010 WFI 1111 0011 1010 1111 1000 0000 0000 0011 =20 - # M-profile SEV is implemented. - # TODO: Implement SEV for other profiles, and SEVL for all profile= s; may help SMP performance. SEV 1111 0011 1010 1111 1000 0000 0000 0100 - # SEVL 1111 0011 1010 1111 1000 0000 0000 0101 + SEVL 1111 0011 1010 1111 1000 0000 0000 0101 =20 ESB 1111 0011 1010 1111 1000 0000 0001 0000 ] diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index 46c745077d5..655e3f96e78 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -477,9 +477,7 @@ void HELPER(sev)(CPUARMState *env) CPUState *cs =3D env_cpu(env); CPU_FOREACH(cs) { ARMCPU *target_cpu =3D ARM_CPU(cs); - if (arm_feature(&target_cpu->env, ARM_FEATURE_M)) { - target_cpu->env.event_register =3D true; - } + target_cpu->env.event_register =3D true; if (!qemu_cpu_is_self(cs)) { qemu_cpu_kick(cs); } diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index d79c8ab431b..f30df5dbfed 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -2032,6 +2032,23 @@ static bool trans_WFI(DisasContext *s, arg_WFI *a) return true; } =20 +static bool trans_SEV(DisasContext *s, arg_SEV *a) +{ + /* + * SEV is a NOP for user-mode emulation. + */ +#ifndef CONFIG_USER_ONLY + gen_helper_sev(tcg_env); +#endif + return true; +} + +static bool trans_SEVL(DisasContext *s, arg_SEV *a) +{ + gen_event_reg(); + return true; +} + static bool trans_WFE(DisasContext *s, arg_WFI *a) { /* diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c index f9d1b8897d2..59925151fc3 100644 --- a/target/arm/tcg/translate.c +++ b/target/arm/tcg/translate.c @@ -3244,17 +3244,20 @@ static bool trans_YIELD(DisasContext *s, arg_YIELD = *a) static bool trans_SEV(DisasContext *s, arg_SEV *a) { /* - * Currently SEV is a NOP for non-M-profile and in user-mode emulation. - * For system-mode M-profile, it sets the event register. + * SEV is a NOP for user-mode emulation. */ #ifndef CONFIG_USER_ONLY - if (arm_dc_feature(s, ARM_FEATURE_M)) { - gen_helper_sev(tcg_env); - } + gen_helper_sev(tcg_env); #endif return true; } =20 +static bool trans_SEVL(DisasContext *s, arg_SEV *a) +{ + gen_event_reg(); + return true; +} + static bool trans_WFE(DisasContext *s, arg_WFE *a) { /* --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863068; cv=none; d=zohomail.com; s=zohoarc; b=e7LyBlb6jwk4L42mJO8YGgctlDFUoIWdAtTw1zM4wYUhO/nh97EHrDEf462vzD/pGVuvzIP67U8JuwQs0oMnhKCqWz1xoI0X01fmMUN0tU/TqJu3usAaHFs5HVbtYXb1I7K+SAu9l5py4qcOx9sqIeJSBw9McGFMtWX3/s2usX0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863068; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=p/Vl2py7bAr3MMXnnVGwEiFMxjfl+Vi5CKcG3JxQvlI=; b=kSlc208kZI0bzjMa+1B9wboprmYgzpTU89FZq1J+rjuB/hShsHFGLJaAz4BcZ7Po/IjWLWh8JVs5eHRynam7psVxvH2WccuIYTTu38Z2wZIIT8Gq/FDSuf8o+xOtS1reumMxW6IijQyA6z+QOMewErIUvMnpynAB3uFrB/yIMOA= 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 1776863068721583.1746497772551; Wed, 22 Apr 2026 06:04:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXE1-0001BP-4U; Wed, 22 Apr 2026 09:02:41 -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 1wFXDy-00019v-SL for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:38 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXDx-00019e-9k for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:38 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-43d03db7f87so3712760f8f.3 for ; Wed, 22 Apr 2026 06:02:36 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e3a174sm50153175f8f.18.2026.04.22.06.02.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:30 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 4906061668; Wed, 22 Apr 2026 13:52:53 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862956; x=1777467756; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=p/Vl2py7bAr3MMXnnVGwEiFMxjfl+Vi5CKcG3JxQvlI=; b=Dc2RpUDRuykvLisdKiHDSrgcXAmYOuI77OCIN6OjX8CZnH9TZR2aKLb8qsZ6srzQdO a5SfCe2tRGndmaG+J75FN1fza/SNGxkhmUWn6hUHfIQ/qSJ0NYRw88tCKcv8PT2LN+rM 7V5hYYlTST/tT8F4JZ0aC0tyWD5nqVQyBjC8cuGmWj+h8Al2feD1RoFkSJQeON5QDfIr uHr1USzut3RiN6eSNjIsvAtUH485ETu8Nu/ZJVNzR1CAv21MiOK3v8eCZSnRe6xubmfC /vwRkU2k0tShwVy0CkiH/G2jvgwQ2xpLzZ0LZicMvyYfEIvqvBoB/3eXiVe57JTYVwQL pI3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862956; x=1777467756; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=p/Vl2py7bAr3MMXnnVGwEiFMxjfl+Vi5CKcG3JxQvlI=; b=kvlHlQWdTIkfvHUOcSNltCSM3NvNQZy4CKpZNjaR5ogYJpskQjgHrEs6kBJbkR141I 0rc8DssDaCySWFW2NJ8NGpY5UvfPn8Mzk2bHZzyvmt6E/23sHMZFl+d23GpAHVcW7bw3 j5J6XvqM1mgVpowgMRIcSoTcQDQdgnfiJOYUMdroIKbLEPbpvh8vg8Z8Bw6H6Gu/gnAj Gyd6WKYGhCt0pmdlpmIgrAHau2wrss8J4k3NypYTBL5mNd9pShnj+KDly8R6nQRkl5zk IxZLKHcNRvMizkhv7fNEBv6ZNRvRC0+JacRrCBbXbqqBSISZfSmKNjdz1EVIfqBXOSWH +9sA== X-Gm-Message-State: AOJu0YyzHI5gr6bjMEa8sU3Am1OQB3vCBc/BeX/vsvnv6LNG1IRS2haF HX8G63L69+174HpM2za1MYn9sduugW4ZhMGtv8FgqGFvJylEYFcl/8c/JSfCF4q9F8fowfqKFKq 9yxGFwkU= X-Gm-Gg: AeBDieuxpY1GtRs9WvTZQMshMPhXa+Vg0FGYiGGUOoh6wriwhgARNIdZ1AUi4wboU+j yrNrtGDiO2jWv8OKueWzEZChDGloVMWh6uXwZ7rbJ9bXBoxvbUvGVUAVWL3MRTnl3wfcP6vCpOn v/TsscQcCTugDSAknrGfQW/goDkcqbdvywPDro6IesJ5xipUzghJAhUbW6DxdBUqyfkbunaD+qV CpOL/g+hGizmjccB/4AZN37/I7/rDo/r00ib9w9JyHvLzf0wNu30JzBVz19b/i8XQIYiqk+TzyO V/DvMeEOCjUT2Q4jeEznR+IR5AhmYV4m5kpHcr0xQbduM3uvh680f3EQ38EK78DVB0FX8zlr7k/ UBgBWM/+doJY9Dgpj9MI9alNRbgCAjw8UrrGtNjY0mJAV6OMu8SzrPPmvb6+6aKsPs/nVdwSzDn Yv5Xp98/WEGTLdDCxEvbOxJUSmu7jQDfOrusUnVJBgQCrg X-Received: by 2002:a05:6000:1a8d:b0:43b:40ef:5d1a with SMTP id ffacd0b85a97d-43fe3db3c24mr34177692f8f.5.1776862955514; Wed, 22 Apr 2026 06:02:35 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v3 28/32] target/arm: hoist event broadcast code into a helper Date: Wed, 22 Apr 2026 13:52:45 +0100 Message-ID: <20260422125250.1303100-29-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::42e; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x42e.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: 1776863070781154100 We will shortly call it from more places. Signed-off-by: Alex Benn=C3=A9e --- target/arm/internals.h | 19 +++++++++++++++++++ target/arm/tcg/op_helper.c | 9 +-------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index dc593f1fec8..089f679ac0a 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -682,6 +682,25 @@ bool arm_is_psci_call(ARMCPU *cpu, int excp_type); /* Actually handle a PSCI call */ void arm_handle_psci_call(ARMCPU *cpu); =20 +/** + * arm_broadcast_event: set the event_register for all PEs + * + * This kicks all PEs which will up which are waiting on the event + * register. + */ +static inline void arm_broadcast_event(void) +{ + CPUState *cs; + + CPU_FOREACH(cs) { + ARMCPU *target_cpu =3D ARM_CPU(cs); + target_cpu->env.event_register =3D true; + if (!qemu_cpu_is_self(cs)) { + qemu_cpu_kick(cs); + } + } +} + /** * arm_clear_exclusive: clear the exclusive monitor * @env: CPU env diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index 655e3f96e78..6a2be85fcaa 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -474,14 +474,7 @@ void HELPER(wfit)(CPUARMState *env, uint32_t rd) =20 void HELPER(sev)(CPUARMState *env) { - CPUState *cs =3D env_cpu(env); - CPU_FOREACH(cs) { - ARMCPU *target_cpu =3D ARM_CPU(cs); - target_cpu->env.event_register =3D true; - if (!qemu_cpu_is_self(cs)) { - qemu_cpu_kick(cs); - } - } + arm_broadcast_event(); } =20 void HELPER(wfe)(CPUARMState *env) --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863357; cv=none; d=zohomail.com; s=zohoarc; b=GiJkqdZRmXdKYvK9z8wVYAuTtRswVNkB15Y3Ek9X+7AWx27qIf7NFoe7NQYrGfDR5a5LUxKF9eCjnI1LDg0q+sBV31T9oeEamwwzPnsSRtmZmakMAdLgHHUH0rpi1wuUvlYAH4kIXho17EO0ERb2Mj5fcbpU19GNtqNwHVBgFIc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863357; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=gSYzG4w2krdb3nT01JqHA9xtpgh1UWf3StMYQUTc4bg=; b=clIZAmGBBCbt6zmG5pev7naOW4+1n9hjMfJI0vrGeEJyKGETnCNrjA9xKIuu0r+16ZkLiJ4ojYcKAoCjcpkLALFreYBg4HyamRyxjF9wy49X+AGZVLEaGykvhlcw+ciNdDVFyYLB72HJUm+jiDFr5uMQny4TMmGAvb0E8P5fkFw= 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 1776863357854214.30240410163174; Wed, 22 Apr 2026 06:09:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXK2-0001bn-Ox; Wed, 22 Apr 2026 09:08:54 -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 1wFXJy-0001ax-5S for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:08:50 -0400 Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXJv-0003MY-Ty for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:08:49 -0400 Received: by mail-lj1-x22d.google.com with SMTP id 38308e7fff4ca-38a01c80c34so51208881fa.0 for ; Wed, 22 Apr 2026 06:08:47 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e46898sm47674480f8f.27.2026.04.22.06.02.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:30 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 6134E616F5; Wed, 22 Apr 2026 13:52:53 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776863326; x=1777468126; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gSYzG4w2krdb3nT01JqHA9xtpgh1UWf3StMYQUTc4bg=; b=HtVBWNOO96q+xrM2xah91EcqK+k2B328tiMKgHjSnWagHDg9t44KG9bptzcsQIYiWY +L3QhgFK9NQbGFUSm5XZw2U2doIQYpegO929qntrNwoHQSNQhMLOJGMT6D28eiJsxQRp 18q4WcvksRcItIVGD0fPrAjyhKirNaSefQhbG70svvcxxU7hkuOoFg3pMMu0VdIs+gzY Jl91j4712owMRPkUoyaOglQ4jMlaVMKRy9jXBeN7vWoLwV1BITHjeYdae3iDVsN9GHrk 1sG+84pq3rZlUxNbQRQ+zGph4bo5QIuZxBHVj0OvTfYdZ4kRA1gGwdaoQ8PeU5Fgw94e NOaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776863326; x=1777468126; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gSYzG4w2krdb3nT01JqHA9xtpgh1UWf3StMYQUTc4bg=; b=Rup7oTYGqLgWnrS7YmHOsuoLfM7FCYLOU8scCOMdKsoH+38x1itwblQyG2GcDfwG/Z q1uzbZ8a77NUZUiZWWv9XMuCYvQ9TpPA2EBWIPAEqZZ9FMj/VSN1X/l3EWzxmPJVkydJ EUzhiNB57tqeqpfZx/lK6hHKeW4YCBPVxMqF5o+Piy1myuk3Gw7vwzUObLoG31M2wcgm X0VpHt93WSqVRUqYdL6qa6EwH5MQZ+IN48gSmZkKxAZACIvF+xGq7tEXdcCPQQLQ5Tav IOqJryj+YcyFWyy7zY8JRWEaGVhrb2YMBEV6Sn5lEbrwnCHaFnOkVZNk8JvH3SY90CJ8 XX/g== X-Gm-Message-State: AOJu0YxH8oZK05PjOf+Mcvq130lsHxF3DGK+0dOXd87BDjOEPu2L3Dz4 Y1U7uPPtRam+RdLKpf1Ul1QcuJK9qjVxBdbdP4GoyUH1HFP0iHEpGeYVBskXt7k43gHOGwnOuoJ GoP/tS3A= X-Gm-Gg: AeBDiet+Lua4AHyvdQRgRNL1DxMSYOX5RllsMt92roKp4lbcujmPzIF3SEXN4J7Xn1B oVB2whk+SCJYv1u+ChrD6MWL8yK0oTaY1YHQe6QiqpJjqfbbq0xXKGwWx/APQ00j+FB2WxNAh9N /y+QMT1oVk8bVmKjz0dlLhczPmLOL3BeJBlOcElPXD2b+T53POXolG4cSj6tRNqaHLAAdSuuHEA SP1muJNViFtLBi0oCoftSgy8qpBVfLrFXGe4t/MxEppWkRKz2lv/M5yVPtDNCTTt4eaaUF0XYil KtqEnv9ZphtXPkrBDEmzSeKDo4KyXHRh3xDErkUuu85iWuWmCmZuAEIivaKRrvKoUrVguHWExgM 7RPGDIXCCUac+LD+aa8szxfvKxsrVd3qvz+HWjQXd/27O5ytidJI/L9ZJUEpnmffGXQUcjJiE6y i5SVEreONLm/wGnHpmaDGWefrvdGmg394pMerdIMFap9qs X-Received: by 2002:a17:907:25cd:b0:ba9:559:10c8 with SMTP id a640c23a62f3a-ba905591bf7mr529933866b.41.1776862953878; Wed, 22 Apr 2026 06:02:33 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v3 29/32] target/arm: implement global monitor events Date: Wed, 22 Apr 2026 13:52:46 +0100 Message-ID: <20260422125250.1303100-30-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::22d; envelope-from=alex.bennee@linaro.org; helo=mail-lj1-x22d.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.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: 1776863359293158500 Moving from Exclusive to Open Access should generate event stream events. Technically a non-exclusive store to any address range covered by the global monitor should also trigger such an event but we can only detect that after the event by seeing if memory doesn't match cpu_exclusive_val when processing the eventual store exclusive. The CLREX instruction has the same effect as do other operations clearing the exclusive state (such as eret). We special case STLR/STL (Store Release) instructions to generate events because their use is a suggested pattern for clearing locks that might be sleeping. We only trigger the event if we detect an exclusive instruction is running. Signed-off-by: Alex Benn=C3=A9e --- v2 - add gen_global_event_reg() and use that - add handling for STL/STLR --- target/arm/internals.h | 1 + target/arm/tcg/translate.h | 14 ++++++++++++++ target/arm/tcg/translate-a64.c | 23 +++++++++++++++++++++++ target/arm/tcg/translate.c | 20 ++++++++++++++++++++ 4 files changed, 58 insertions(+) diff --git a/target/arm/internals.h b/target/arm/internals.h index 089f679ac0a..7045b4a56bd 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -709,6 +709,7 @@ static inline void arm_broadcast_event(void) static inline void arm_clear_exclusive(CPUARMState *env) { env->exclusive_addr =3D -1; + arm_broadcast_event(); } =20 /** diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h index 9bf2701a56b..01053060af4 100644 --- a/target/arm/tcg/translate.h +++ b/target/arm/tcg/translate.h @@ -882,6 +882,20 @@ static inline void gen_event_reg(void) #endif } =20 +/* + * Some events affect all PEs in the same shareability domain. In + * practice as we currently model SMP systems as single SoC devices so + * we signal them all. + */ +static inline void gen_global_event_reg(void) +{ +#ifndef CONFIG_USER_ONLY + /* re-use the SEV helper */ + gen_helper_sev(tcg_env); +#endif +} + + /* * Helpers for implementing sets of trans_* functions. * Defer the implementation of NAME to FUNC, with optional extra arguments. diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index f30df5dbfed..a1b0cc9508e 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -2253,6 +2253,7 @@ static bool trans_CHKFEAT(DisasContext *s, arg_CHKFEA= T *a) static bool trans_CLREX(DisasContext *s, arg_CLREX *a) { tcg_gen_movi_i64(cpu_exclusive_addr, -1); + gen_global_event_reg(); return true; } =20 @@ -3407,6 +3408,14 @@ static void gen_store_exclusive(DisasContext *s, int= rd, int rt, int rt2, tcg_gen_setcond_i64(TCG_COND_NE, tmp, tmp, cpu_exclusive_val); } tcg_gen_mov_i64(cpu_reg(s, rd), tmp); + + /* + * On a successful StoreExcl the global monitor transitions from + * Exclusive to Open Access and at that point generate an Event + * for PEs in the same memory sharing domain. + */ + gen_global_event_reg(); + tcg_gen_br(done_label); =20 gen_set_label(fail_label); @@ -3544,6 +3553,7 @@ static bool trans_STLR(DisasContext *s, arg_stlr *a) TCGv_i64 clean_addr; MemOp memop; bool iss_sf =3D ldst_iss_sf(a->sz, false, false); + TCGLabel *skip_monitor_event =3D gen_new_label(); =20 /* * StoreLORelease is the same as Store-Release for QEMU, but @@ -3562,6 +3572,19 @@ static bool trans_STLR(DisasContext *s, arg_stlr *a) true, a->rn !=3D 31, memop); do_gpr_st(s, cpu_reg(s, a->rt), clean_addr, memop, true, a->rt, iss_sf, a->lasr); + + /* + * We don't fully model the global monitor as it would be very + * expensive for every memory access. However in the Arm ARM "Use + * of Wait for Event (WFE) and Send Event (SEV) with lock" it does + * give the example of using STLR to clear a lock. So if a lock is + * active trigger the global event register so we don't deadlock + * while sleeping. + */ + tcg_gen_brcondi_i64(TCG_COND_EQ, cpu_exclusive_addr, -1, skip_monitor_= event); + gen_global_event_reg(); + gen_set_label(skip_monitor_event); + return true; } =20 diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c index 59925151fc3..18d64620e40 100644 --- a/target/arm/tcg/translate.c +++ b/target/arm/tcg/translate.c @@ -2116,6 +2116,12 @@ static void gen_store_exclusive(DisasContext *s, int= rd, int rt, int rt2, tcg_gen_setcond_i32(TCG_COND_NE, t0, t0, t2); } tcg_gen_mov_i32(cpu_R[rd], t0); + /* + * On a successful StoreExcl the global monitor transitions from + * Exclusive to Open Access and at that point generate an Event + * for PEs in the same memory sharing domain. + */ + gen_global_event_reg(); tcg_gen_br(done_label); =20 gen_set_label(fail_label); @@ -4218,6 +4224,7 @@ static bool trans_STLEXH(DisasContext *s, arg_STREX *= a) static bool op_stl(DisasContext *s, arg_STL *a, MemOp mop) { TCGv_i32 addr, tmp; + TCGLabel *skip_monitor_event; =20 if (!ENABLE_ARCH_8) { return false; @@ -4230,10 +4237,23 @@ static bool op_stl(DisasContext *s, arg_STL *a, Mem= Op mop) =20 addr =3D load_reg(s, a->rn); tmp =3D load_reg(s, a->rt); + skip_monitor_event =3D gen_new_label(); tcg_gen_mb(TCG_MO_ALL | TCG_BAR_STRL); 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 + /* + * We don't fully model the global monitor as it would be very + * expensive for every memory access. However in the Arm ARM "Use + * of Wait for Event (WFE) and Send Event (SEV) with lock" it does + * give the example of using STL to clear a lock. So if a lock is + * active trigger the global event register so we don't deadlock + * while sleeping. + */ + tcg_gen_brcondi_i64(TCG_COND_EQ, cpu_exclusive_addr, -1, skip_monitor_= event); + gen_global_event_reg(); + gen_set_label(skip_monitor_event); + return true; } =20 --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863049; cv=none; d=zohomail.com; s=zohoarc; b=TneZJsWLisnwTDaxxE0mEhkfAbZPwfGgY2l0N3tdlQEhyLDCmSomRE4muBW6PV2PFL0roxmkaSNghVugSexJGKGuWb7426lDLA1TjH29IeulLMAssCBSct1CSVv+YtMQlfuQbfD4L8rfcntySRBPTn1JeLD2XhmcUlflSM5V3/I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863049; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ChBMLZB7W3RWggGvPxQhi9T29Aee3H3wmNETcHJ/8uM=; b=MVhLT5GBc5YswrtHQ4lmssVMgz4xLZaE6FvicyDBhWmM0+yfbTI8ukZT8dkStXuVyPa8EOeCtdiPqQOnkNvZ1fFvl42BCCOqZ7MXQNZ2i7EF46xzXKTKUZsAWA3KiitUxsNIWHk1Ulq6HimnZGkjGVYBZX7tFUGdqf5GWeOgLvM= 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 1776863049415784.1706555246658; Wed, 22 Apr 2026 06:04:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXE0-0001Aj-CZ; Wed, 22 Apr 2026 09:02:40 -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 1wFXDv-00017I-JU for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:37 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXDt-00018C-Kt for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:35 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-48334ee0aeaso56315825e9.1 for ; Wed, 22 Apr 2026 06:02:33 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a575ad67asm96183315e9.2.2026.04.22.06.02.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:30 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 753D3617C4; Wed, 22 Apr 2026 13:52:53 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862952; x=1777467752; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ChBMLZB7W3RWggGvPxQhi9T29Aee3H3wmNETcHJ/8uM=; b=JQlBh8ik7WSE/At3PrBiwZelzKLFv4fDsulauOg5HKq+HUZXz1yxoHvOAIhCJi9zcG ikGOObtBtXrk9Qy26KWCsGsekTJMnoytnq+PD//2B5W5QF9haX3oGN0PYu/MxlQyK6Jn GfEku76SVcxmck/0t7bLP4PKEI27vUOvOnyzHohUhi0TtlyEBW+BNKeY0YmTqfvDM1Xg YOjdU+KXaS5VNvcLU4iI9nBDQicAgCFddPcKJNjPNQf8QW/9V8NePXUFneYxtr8+N58m CLpt4jcPbEgOIZSbDE13YHeLoQsgD92nFxdQHZt8qp6RzZnuAzfT4xwskKkEJuI6vfiZ joEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862952; x=1777467752; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ChBMLZB7W3RWggGvPxQhi9T29Aee3H3wmNETcHJ/8uM=; b=JNGoyTw4GAqBNphn4GBwBFwZfSxDzUkxgBqHgIZu5YF2XaMcJ/sKnFsiYJqOrokyZ9 mEXGvlUBfXTNB/5ltOIWzKfF+KcqdlAg0EyNceaUtWN5xOQjC8xlAPb6dVvlxzMsv39H 5WPF6K36nKK7x9CY0gfhzCaBJLRPcCACUyp47cU7u+L/cfLeRiMqHJZKE6tsxki8NiSE QCe+sAMBwGHmhNZIkof2f0/Mj8vl7sUnKZLHxko/B//U2VhPYui/TylGXTfqeWi2CFKD Zo1iA8f3taCmxJ2DtuEYNKk7HMAlJA7/ZU9Ne5NBZD9yFSzrOGj5BKbIe5W83ZUPB3tG xoXw== X-Gm-Message-State: AOJu0YwqZjcmtS4SAsmqhau9rtHbk+4Tr0ejoXp+/TuOKVf9v3Xi9jYG tG/4a3ZRlXA1oJx++dcwJLuT4mlJUxRSsp8umkSZjDXUwRpSRKTwtqgw+bYchQKtMTM= X-Gm-Gg: AeBDiet9t1xbgix2kxbqFD1RuH7BYodDlrnRdcpy25oHiXEbW3SIDtv4sinRs0h8YeP vl/IBhBMWP+VZGJUS1Xg952IkE25yM4y8jYnK4D0S1oRxR6nm1Bqbr8Fh76zTCJLZRvTVyHLVP4 3qa3vJKQKh413FYGOP1V01myzU0A1WLeLQ7g3JDDp6WsuMeuSHJ/z1xXneDlZH+US8NrOn1Tfhm RJcF/bukqqoXeEpN3eOBydrTjkhwP+juNvSYchERlMTiFZnWU09o5uVKOsALbEG7cVFheWERSPu so0u0kWBiFv6FPNAl68yh45oczJW0LmkvAFNOqRU3QWFqRq8qS1Vh1czUpJiv6aMiupnFwa7kFQ nFzo3yX8u9QdBCq/hz1wYgAEz4wg7aub3kg78SDkOeKO4klo9zrVqTiMtr4dYJLNHgvYdjgvdI9 2c8HNm7HZKscPINu8ICVSw2LIQBLRDUe3LQAJtW0oPggr4 X-Received: by 2002:a05:600c:4714:b0:48a:5574:3a5d with SMTP id 5b1f17b1804b1-48a55743e96mr105271025e9.7.1776862951984; Wed, 22 Apr 2026 06:02:31 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v3 30/32] target/arm: enable event stream on WFE instructions Date: Wed, 22 Apr 2026 13:52:47 +0100 Message-ID: <20260422125250.1303100-31-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32a; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32a.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: 1776863050826158500 Two generic timers (K and H) are capable of generating timer event stream events. Provide a helper to calculate when the nearest one will happen. Now we can calculate when the next event stream event is we can re-use the wfxt_timer and configure it to fire as we enter a WFE that is going to sleep. Reverse the M-profile logic so we can enter a sleep state in both profiles. Signed-off-by: Alex Benn=C3=A9e --- v2 - merged target/arm: add gt_calc_next_event_stream - update to use halt_reason - made arm_wfxt_timer_cb atomically consume halt_reason --- target/arm/cpu.c | 13 ++++ target/arm/tcg/op_helper.c | 129 +++++++++++++++++++++++++++++++------ 2 files changed, 122 insertions(+), 20 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 124be8c401e..7a6ad45ae08 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -799,10 +799,23 @@ bool arm_cpu_exec_halt(CPUState *cs) } #endif =20 +/* + * Unlike almost everything else that messes with the halt_reason and + * event_register details the timer callbacks are not in the vCPU + * context. + * + * To prevent races we atomically consume a HALT_WFE and set the event + * register. Either way we trigger the an exit event. + */ static void arm_wfxt_timer_cb(void *opaque) { ARMCPU *cpu =3D opaque; CPUState *cs =3D CPU(cpu); + CPUARMState *env =3D &cpu->env; + + if (qatomic_cmpxchg(&env->halt_reason, HALT_WFE, NOT_HALTED)) { + qatomic_set(&env->event_register, true); + } =20 /* * We expect the CPU to be halted; this will cause arm_cpu_is_work() diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index 6a2be85fcaa..030209360e8 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -477,6 +477,97 @@ void HELPER(sev)(CPUARMState *env) arm_broadcast_event(); } =20 +#ifndef CONFIG_USER_ONLY +/* + * Event Stream events don't do anything apart from wake up sleeping + * cores. These helpers calculate the next event stream event time so + * the WFE helper can decide when its next wake up tick will be. + */ +static int64_t gt_recalc_one_evt(CPUARMState *env, uint32_t control, uint6= 4_t offset) +{ + ARMCPU *cpu =3D env_archcpu(env); + bool evnten =3D FIELD_EX32(control, CNTxCTL, EVNTEN); + + if (evnten) { + int evnti =3D FIELD_EX32(control, CNTxCTL, EVNTI); + bool evntis =3D FIELD_EX32(control, CNTxCTL, EVNTIS); + bool evntdir =3D FIELD_EX32(control, CNTxCTL, EVNTDIR); + /* + * To figure out when the next event timer should fire we need + * to calculate which bit of the counter we want to flip and + * which transition counts. + * + * So we calculate 1 << bit - current lower bits and then add + * 1 << bit if the bit needs to flip twice to meet evntdir + */ + int bit =3D evntis ? evnti + 8 : evnti; + uint64_t count =3D gt_get_countervalue(env) - offset; + uint64_t target_bit =3D BIT_ULL(bit); + uint64_t lower_bits =3D MAKE_64BIT_MASK(0, bit - 1); + uint64_t next_tick =3D target_bit - (count & lower_bits); + uint64_t abstick; + + /* do we need to bit flip twice? */ + if (((count & target_bit) !=3D 0) ^ evntdir) { + next_tick +=3D target_bit; + } + + /* + * Note that the desired next expiry time might be beyond the + * signed-64-bit range of a QEMUTimer -- in this case we just + * set the timer for as far in the future as possible. When the + * timer expires we will reset the timer for any remaining period. + */ + if (uadd64_overflow(next_tick, offset, &abstick)) { + abstick =3D UINT64_MAX; + } + if (abstick > INT64_MAX / gt_cntfrq_period_ns(cpu)) { + return INT64_MAX; + } else { + return abstick; + } + } + + return -1; +} + +/* + * Calculate the next event stream time and return it. Returns -1 if + * no event streams are enabled. It is up to the WFE helpers to decide + * on the next time. + */ +static int64_t gt_calc_next_event_stream(CPUARMState *env) +{ + ARMCPU *cpu =3D env_archcpu(env); + uint64_t hcr =3D arm_hcr_el2_eff(env); + int64_t next_time =3D -1; + uint64_t offset; + + /* Unless we are missing EL2 this can generate events */ + if (arm_feature(env, ARM_FEATURE_EL2)) { + offset =3D gt_direct_access_timer_offset(env, GTIMER_PHYS); + next_time =3D gt_recalc_one_evt(env, env->cp15.cnthctl_el2, offset= ); + } + + /* Event stream events from virtual counter enabled? */ + if (!cpu_isar_feature(aa64_vh, cpu) || + !((hcr & (HCR_E2H | HCR_TGE)) =3D=3D (HCR_E2H | HCR_TGE))) { + int64_t next_virt_time; + offset =3D gt_direct_access_timer_offset(env, GTIMER_VIRT); + next_virt_time =3D gt_recalc_one_evt(env, env->cp15.c14_cntkctl, o= ffset); + + /* is this earlier than the next physical event? */ + if (next_virt_time > 0) { + if (next_time < 0 || next_virt_time < next_time) { + next_time =3D next_virt_time; + } + } + } + + return next_time; +} +#endif + void HELPER(wfe)(CPUARMState *env) { #ifdef CONFIG_USER_ONLY @@ -489,32 +580,30 @@ void HELPER(wfe)(CPUARMState *env) #else /* * WFE (Wait For Event) is a hint instruction. - * For Cortex-M (M-profile), we implement the strict architectural beh= avior: + * * 1. Check the Event Register (set by SEV or SEVONPEND). * 2. If set, clear it and continue (consume the event). */ - if (arm_feature(env, ARM_FEATURE_M)) { - CPUState *cs =3D env_cpu(env); + CPUState *cs =3D env_cpu(env); + ARMCPU *cpu =3D ARM_CPU(cs); =20 - if (env->event_register) { - env->event_register =3D false; - return; - } + if (env->event_register) { + env->event_register =3D false; + return; + } =20 - env->halt_reason =3D HALT_WFE; - cs->exception_index =3D EXCP_HLT; - cs->halted =3D 1; - cpu_loop_exit(cs); - } else { - /* - * For A-profile and others, we rely on the existing "yield" behav= ior. - * Don't actually halt the CPU, just yield back to top - * level loop. This is not going into a "low power state" - * (ie halting until some event occurs), so we never take - * a configurable trap to a different exception level - */ - HELPER(yield)(env); + /* For A-profile we also can be woken by the event stream */ + if (arm_feature(env, ARM_FEATURE_AARCH64) && cpu->wfxt_timer) { + int64_t next_event =3D gt_calc_next_event_stream(env); + if (next_event > 0) { + timer_mod(cpu->wfxt_timer, next_event); + } } + + env->halt_reason =3D HALT_WFE; + cs->exception_index =3D EXCP_HLT; + cs->halted =3D 1; + cpu_loop_exit(cs); #endif } =20 --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776862535; cv=none; d=zohomail.com; s=zohoarc; b=l2dQCN8EOsWmuh2Kwx1jruLAcB5zIcoBd20Vrd8XeWdrPz7y3baCJQPX+GB4POF/JSIl6cTIrQlkm4oji5vUeRUgowfqrWYhvPAxGXNNlzh8CVt+pMrCCcMdpvHD1YQ/0yetws4us6zqNVGhfEeiAXnveOvNMU53Wp1JNtd7P/w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776862535; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7kLDDoOYtEyqQijc0QmTmJ1dX5SOzFgUIzyhmwCFraY=; b=P0xI/4F+ttZwCw3+KFml/tIXItI7Dnou9nVsMSkcYNGQVet/2zbpJZfdgbwJv5L09JtEPY27kxa1q+oWeLrfqyhyA+Mg7YzIL5inpp55RvU3d1JJHlR8TbLZuclJ435OexD8wOqnm3jgPuJfY/uu24Hb+MNbQ0RjAlTTDDUyY4w= 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 1776862535069135.545518170023; Wed, 22 Apr 2026 05:55:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFX5n-0007Js-B7; Wed, 22 Apr 2026 08:54:11 -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 1wFX4r-000660-45 for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:13 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFX4m-0005XT-Vy for qemu-devel@nongnu.org; Wed, 22 Apr 2026 08:53:11 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-4891b0786beso30438975e9.1 for ; Wed, 22 Apr 2026 05:53:08 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488fb79ecb9sm186670245e9.8.2026.04.22.05.52.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 05:53:02 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 8C3B0617D8; Wed, 22 Apr 2026 13:52:53 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862387; x=1777467187; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7kLDDoOYtEyqQijc0QmTmJ1dX5SOzFgUIzyhmwCFraY=; b=l76bWmdp3ixKUCLuHZSeUhOubhhjmfImA6u4cAV/UzYzsKqwKPmrbYNJfMMVZA+E2O rMbVlBTQFzcu2QgsnLTnk1b7ElPmlD8vxVQGe/F+XSh7UHvCOWG65oGSUwLiZ7MGgXmi B5tEMNsMthNz/ChaV+3AQBgE64xm5BxXJ0yUXMJKXPnLmjf7V5CnQNYMnNPK102GLIVn /TbbJX7/rQ1G70CXMT5nbh+RtoHpVAPXxL24gUcZv37IZgFC+WaIvZ577XQlwrWqnQ7X Td9ov3u8okwP/4iJFCGrrHTH18WOGDSQXHIlJOk0qvGyXwwtNMFafMfyO+sqFdqfRzmg 0jPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862387; x=1777467187; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7kLDDoOYtEyqQijc0QmTmJ1dX5SOzFgUIzyhmwCFraY=; b=T2eFNRtJS9AH1G5IEphP97DnXKxt0Pqzz+LpS0vyUCON4BPQdNPu5zi5azvOi8nMII 54WjGat29MFiu7yqGaxsXpdfZrtC7o+qtabjTmWpeZCC/q/qTDJGgJOHxXyOgCoP90Tx tW5JDlxUKnraQLOPWVrJTJH35Ib7+XlMmSurFDgeMk2uIP+4rjC0SbYcMMNcQXVf4x6l dYPijph5uLxez7zXLOuzGO3VnCOXuOj0OLp46XTj3SSdn7vlf7emY8FY4KSg44prK1an UVzhYxHLOQpddLTfEwIoFmP4zpeNZk2v/3Nkqhjd7pGQiF8MY44XVroM6hOXk3ifQ/U5 Dnfg== X-Gm-Message-State: AOJu0YzsYrxsVuGEAj8/pdmteG/rXZSmIW0A+7Bf0rxSayd/FlczepKs 5W+xHLvkUnKThkZQuNUqo16GekBTWqP1aHSYrSIQG+v1iQgTwTHEc3aSo9yEX1Xlo30= X-Gm-Gg: AeBDieucgy0AZQPoYrdxJNcj3sU5ibtopYstj2EDphoKKh32TYnXTEXZaR8yDgVuUXZ Tx2R4HRohacnEJ2BxeQFhn9U/JS7IMXUiMJlDxCy1v1hfQJOw0ZQ4kLEmL//JJh7MynncuCAhL1 YASf04GP0xnayR7fnd1m3wj/16nlRe1aReBcLNHN+TMDPkJ+EZd8BhM37MK8CnMY4k1fFFeFkqN mRibc7yQcJYrNMhXq7nvr8BXE5TZ63HrSQCLgvDUZ9CbKZ4CLUGJfrHB2xWkCjMOXlXbp3sPZtl ewhb1HpmUA9HdfJzf9o3S7/vG1M91vFof2oci3hS18swJN2qRcOsewJUbSOR0Dm0g5/cyM0p8Jp sWiCWFpNHksweS0cWuz0JA3w9rtt6Gi7CAUb0p7wqyB8h/gn76Mz1UlDfGHorYu0pJMSQ/f+Lky fGdAttSvV2O+cs89pB8FD48MDCp35Mn2InJQ== X-Received: by 2002:a05:600c:c4a1:b0:488:c014:34da with SMTP id 5b1f17b1804b1-488fb77ed1bmr305546735e9.26.1776862387494; Wed, 22 Apr 2026 05:53:07 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v3 31/32] target/arm: handle the WFE trap case Date: Wed, 22 Apr 2026 13:52:48 +0100 Message-ID: <20260422125250.1303100-32-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::331; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x331.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.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: 1776862535820158500 Now WFE can actually suspend on A-profile we also need to handle when its trapped. To do this we need to pass the instruction size so we can deal with the is_16bit syndrome encoding. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- target/arm/tcg/helper-defs.h | 2 +- target/arm/tcg/op_helper.c | 15 ++++++++++++++- target/arm/tcg/translate-a64.c | 2 +- target/arm/tcg/translate.c | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/target/arm/tcg/helper-defs.h b/target/arm/tcg/helper-defs.h index a05f2258f29..ebdf09be38a 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -54,7 +54,7 @@ DEF_HELPER_2(exception_swstep, noreturn, env, i32) DEF_HELPER_2(exception_pc_alignment, noreturn, env, vaddr) DEF_HELPER_1(setend, void, env) DEF_HELPER_2(wfi, void, env, i32) -DEF_HELPER_1(wfe, void, env) +DEF_HELPER_2(wfe, void, env, i32) DEF_HELPER_2(wfit, void, env, i32) DEF_HELPER_1(yield, void, env) DEF_HELPER_1(pre_hvc, void, env) diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index 030209360e8..fe34c94e890 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -568,7 +568,7 @@ static int64_t gt_calc_next_event_stream(CPUARMState *e= nv) } #endif =20 -void HELPER(wfe)(CPUARMState *env) +void HELPER(wfe)(CPUARMState *env, uint32_t insn_len) { #ifdef CONFIG_USER_ONLY /* @@ -586,12 +586,25 @@ void HELPER(wfe)(CPUARMState *env) */ CPUState *cs =3D env_cpu(env); ARMCPU *cpu =3D ARM_CPU(cs); + uint32_t excp; + int target_el =3D check_wfx_trap(env, true, &excp); =20 if (env->event_register) { env->event_register =3D false; return; } =20 + /* We might sleep, so now we check to see if we should trap */ + if (target_el) { + if (env->aarch64) { + env->pc -=3D insn_len; + } else { + env->regs[15] -=3D insn_len; + } + raise_exception(env, excp, syn_wfx(1, 0xe, 0, false, WFE, insn_len= =3D=3D 2), + target_el); + } + /* For A-profile we also can be woken by the event stream */ if (arm_feature(env, ARM_FEATURE_AARCH64) && cpu->wfxt_timer) { int64_t next_event =3D gt_calc_next_event_stream(env); diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index a1b0cc9508e..83b2a6e848f 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10956,7 +10956,7 @@ static void aarch64_tr_tb_stop(DisasContextBase *dc= base, CPUState *cpu) break; case DISAS_WFE: gen_a64_update_pc(dc, 4); - gen_helper_wfe(tcg_env); + gen_helper_wfe(tcg_env, tcg_constant_i32(4)); tcg_gen_exit_tb(NULL, 0); break; case DISAS_YIELD: diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c index 18d64620e40..c30ea2261da 100644 --- a/target/arm/tcg/translate.c +++ b/target/arm/tcg/translate.c @@ -6845,7 +6845,7 @@ static void arm_tr_tb_stop(DisasContextBase *dcbase, = CPUState *cpu) tcg_gen_exit_tb(NULL, 0); break; case DISAS_WFE: - gen_helper_wfe(tcg_env); + gen_helper_wfe(tcg_env, tcg_constant_i32(curr_insn_len(dc))); /* * The helper can return if the event register is set, so we * must go back to the main loop to check for events. --=20 2.47.3 From nobody Sat May 30 20:12:18 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=1776863049; cv=none; d=zohomail.com; s=zohoarc; b=JzFJejf2gT10NGmFPCn1NNybY/EQc30AvIuElrmwKKPuieC4kjWK1i7FKhrmc4iqkWGZH2YHCZ6oa+H27i8+QOPUj4WKtfuSGbWVMcXuU7nHB/f8OHN6rNMLnKuGEhBc42qSeCDbtr/a5JbGWJQaZ2B8jdwTHcTQvMIRcbMH8KY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776863049; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QCL3cJadHa1d1ZmZ7wv954PwO2cS/d7rv5lfGjMfQE4=; b=iT5aJYyYLpeCZxTJ9TN3Ns5sfrUPrfgMKSJ10/oFcsJgf3O7SOEOgVmsI94dDqmtk7Dm3jbODg0Z9wT6raLNWMb+ve02JhEWd1RgafG374Xz2yyN/QuX6ZqiYehJJYa7IXx2wkoK+rrq3H2cy3vyBXfkUQ5bghXVAyzNXiJQFmY= 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 1776863049096661.3816971393707; Wed, 22 Apr 2026 06:04:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wFXE5-0001IG-Fv; Wed, 22 Apr 2026 09:02:45 -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 1wFXE1-0001Bh-8S for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:41 -0400 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wFXDz-0001AQ-Dx for qemu-devel@nongnu.org; Wed, 22 Apr 2026 09:02:40 -0400 Received: by mail-wm1-x343.google.com with SMTP id 5b1f17b1804b1-48374014a77so70814605e9.3 for ; Wed, 22 Apr 2026 06:02:39 -0700 (PDT) Received: from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488ffc5e3f4sm230898655e9.2.2026.04.22.06.02.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 06:02:36 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id A142B61853; Wed, 22 Apr 2026 13:52:53 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776862958; x=1777467758; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QCL3cJadHa1d1ZmZ7wv954PwO2cS/d7rv5lfGjMfQE4=; b=L5OvlGbJe1GvsSlhDH9K83VVHWsKxtN7WBdiAw2dmrBpSWaLBGQ2CydNXw16WrVwNo VXAjBgwcmzgSYtV+2hJ99sYt13BmyPOzwsusCMzZDqNEJp5S+DTbwqdhJvN4p3y9ufvb 6CzRRHyFgWbRn6dhQlJKctfujsrRbYXFBhDGHol59GAmSHxBWrLXXPe38uCPcoonfj6v dgmzbmQmmiH24zjeTHusiPwo5Y3WTirjyyFtw0igZfjrHqANnMnh9p44dXXuplQd4/qI KW0KDbNFxjdOawok5lGzc8+Qg1kiNvuYes0TWYXQ6ijWwljGtiJ3/eJWE4hBjguBH8Pb Mp6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776862958; x=1777467758; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QCL3cJadHa1d1ZmZ7wv954PwO2cS/d7rv5lfGjMfQE4=; b=aGgvsDGFs5yiK8x0C/q6oxY4OR8tUrkZXxj8L38QiWlIBXF2XpX5xTPUncYG9ACoqe JjzDbRzlznyDtF8C/EW1WG0aAu6GGN27/IS0WMiunN6Z8dXr7PUo1QtYByL51U85MTbB qtFI2lx3ofq/aAtdme16AXTYxivUurF7+BRbVHOGCBg3e6FJBqRaeXLMvxPm8PNZVXf4 13auG18Pan15qWMu8ruGhHu8AGAB3XpxMGAWEYrgBK6WhJ3ckdQoVWPp3hdV85kYpvkW +KbxpYh5unnWa459AobzspL0iRiIwoYoaek7bPBGzV+7SNJWiwD3vWns1BTHo/I+BBXU pVXg== X-Gm-Message-State: AOJu0YwL0UqmpXH5WYrPf3N1vla4BYtANgvDdeq6/fO6HkxvvxyuL9Fj BD6uNOtNTC/sugFb7c/iIhaaNIMbY7+t8nNNxBNVrKJ+C+8Bnhq2M/PsqewGJXieECgb+vPdpwx k3wmw5Be9XA== X-Gm-Gg: AeBDieuob/1DlXXcqQ05TtDltTAcmW59Ppmv4UyOm3ym685011RCrkwULHKrTl8Rnux masbhzRStldGk/+dlHe2HoG5iAC1H9kjTF7btIzrlt0fnrYK1pOzLzKdhLGjKd3oZurBssi/xkc QkBJ/2WNgB+M7iXa5dRyd65n4qevhpwhLC+voega1oho/kR4S3qGsJLCzPK5JCPV41YtN/vtw7n winLhafl0m53S2GIZXSzoFkrjw2TKKO9MWLyiToz7vSmoTvzmCRjNonJthz1r4RCCR9WCjJZav+ 83Nxx4rWqQgL/WWcq8v2dKqLjm4ewBB3kvk6MItCzv6rKiGwya5Y6QsPyAiwNZZYdyU067zMeZG 5bVl0rXje2ZjBkjQ3d4lJxC8Tv5DouUFFmkfsoIKR4wZeVFuRRpsPVxG6IphbjOZeknDOdhenk5 LCPZ9TZVuPXlUUq1A/QJ+YX0tG1LpwMhzd8A== X-Received: by 2002:a05:600c:8183:b0:488:b187:d898 with SMTP id 5b1f17b1804b1-488fb771445mr269452895e9.14.1776862957733; Wed, 22 Apr 2026 06:02:37 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Pedro Barbuda , Alexander Graf , Peter Maydell , Paolo Bonzini , Mohamed Mediouni , kvm@vger.kernel.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v3 32/32] target/arm: implement WFET Date: Wed, 22 Apr 2026 13:52:49 +0100 Message-ID: <20260422125250.1303100-33-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260422125250.1303100-1-alex.bennee@linaro.org> References: <20260422125250.1303100-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::343; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x343.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: 1776863050471154100 Now we have the event stream and SEV/SEVL implemented we can finally enable WFET for Aarch64. Signed-off-by: Alex Benn=C3=A9e --- v2 - fix exception syndrome by using enum value - use env->halt_reason v3 - fix check_wfx_trap(s/false/true/) as it is a WFE --- target/arm/tcg/helper-defs.h | 1 + target/arm/tcg/op_helper.c | 80 ++++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 15 ++++--- 3 files changed, 89 insertions(+), 7 deletions(-) diff --git a/target/arm/tcg/helper-defs.h b/target/arm/tcg/helper-defs.h index ebdf09be38a..5e4d828dd55 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -56,6 +56,7 @@ DEF_HELPER_1(setend, void, env) DEF_HELPER_2(wfi, void, env, i32) DEF_HELPER_2(wfe, void, env, i32) DEF_HELPER_2(wfit, void, env, i32) +DEF_HELPER_2(wfet, void, env, i32) DEF_HELPER_1(yield, void, env) DEF_HELPER_1(pre_hvc, void, env) DEF_HELPER_2(pre_smc, void, env, i32) diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index fe34c94e890..112e0c2eb1a 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -620,6 +620,86 @@ void HELPER(wfe)(CPUARMState *env, uint32_t insn_len) #endif } =20 +void HELPER(wfet)(CPUARMState *env, uint32_t rd) +{ +#ifdef CONFIG_USER_ONLY + /* + * As for WFIT make it NOP here, because trying to raise EXCP_HLT + * would trigger an abort. + */ + return; +#else + ARMCPU *cpu =3D env_archcpu(env); + CPUState *cs =3D env_cpu(env); + uint32_t excp; + int target_el =3D check_wfx_trap(env, true, &excp); + /* The WFET should time out when CNTVCT_EL0 >=3D the specified value. = */ + uint64_t cntval =3D gt_get_countervalue(env); + uint64_t timeout =3D env->xregs[rd]; + /* + * We want the value that we would get if we read CNTVCT_EL0 from + * the current exception level, so the direct_access offset, not + * the indirect_access one. Compare the pseudocode LocalTimeoutEvent(), + * which calls VirtualCounterTimer(). + */ + uint64_t offset =3D gt_direct_access_timer_offset(env, GTIMER_VIRT); + uint64_t cntvct =3D cntval - offset; + uint64_t nexttick; + int64_t next_event; + + /* + * As for WFE if the event register is already set we can consume + * the event and return immediately. + */ + if (env->event_register) { + env->event_register =3D false; + return; + } + + + if (cpu_has_work(cs) || cntvct >=3D timeout) { + /* + * Don't bother to go into our "low power state" if + * we would just wake up immediately. + */ + return; + } + + /* We might sleep, so now we check to see if we should trap */ + if (target_el) { + env->pc -=3D 4; + raise_exception(env, excp, syn_wfx(1, 0xe, rd, true, WFET, false),= target_el); + } + + /* + * Finally work out if the timeout or event stream will kick in + * earlier. + */ + if (uadd64_overflow(timeout, offset, &nexttick)) { + nexttick =3D UINT64_MAX; + } + if (nexttick > INT64_MAX / gt_cntfrq_period_ns(cpu)) { + nexttick =3D INT64_MAX; + } + + next_event =3D gt_calc_next_event_stream(env); + if (next_event > 0 && next_event < nexttick) { + timer_mod(cpu->wfxt_timer, next_event); + } else { + if (nexttick =3D=3D INT64_MAX) { + timer_mod_ns(cpu->wfxt_timer, INT64_MAX); + } else { + timer_mod(cpu->wfxt_timer, nexttick); + } + } + + env->halt_reason =3D HALT_WFE; + cs->exception_index =3D EXCP_HLT; + cs->halted =3D 1; + cpu_loop_exit(cs); +#endif +} + void HELPER(yield)(CPUARMState *env) { CPUState *cs =3D env_cpu(env); diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 83b2a6e848f..c8c8a27956b 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -2093,14 +2093,15 @@ static bool trans_WFET(DisasContext *s, arg_WFET *a) return false; } =20 - /* - * We rely here on our WFE implementation being a NOP, so we - * don't need to do anything different to handle the WFET timeout - * from what trans_WFE does. - */ - if (!(tb_cflags(s->base.tb) & CF_PARALLEL)) { - s->base.is_jmp =3D DISAS_WFE; + if (s->ss_active) { + /* Act like a NOP under architectural singlestep */ + return true; } + + gen_a64_update_pc(s, 4); + gen_helper_wfet(tcg_env, tcg_constant_i32(a->rd)); + /* Go back to the main loop to check for interrupts */ + s->base.is_jmp =3D DISAS_EXIT; return true; } =20 --=20 2.47.3