From nobody Fri Mar 20 20:34:28 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=1774012077; cv=none; d=zohomail.com; s=zohoarc; b=IO/EZhaxGC2TGi6Y5hGojYLlouH1++7tshzNZ1zUEYAveJ2rxfwvywUO8hcW+pyRvD4vJHxuDAvzaDXf+GOKHBlVPBhe8gEG5GA4Rk387MXEeI/muogANHxjxTEJ9T5foqPi4+KVhYbo8q3hvZ4/ZDgRskYdTNf5IhPR4k5awJw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012077; 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=raU2QYyeh2bNAFzY/qQe9KIkX23gauXvMjIACXU+ESw=; b=Cr00IGQKols6y6OhM3Bjgd4sVP/mOH0dQlMaP82k+/hfSeiNxNEYLixfM9C9zNhlaybYAQaR5AL+GHiwN7uWvHSPtIXJrx0PooUXyVlfUu5qgpUjJJuw5aZkJMyfKU6EJTkoVfDH9xLHHh+zPPQDMXwIxIH+RAWxEw8PHcbteVI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012077637570.344325862878; Fri, 20 Mar 2026 06:07:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYP-0002oL-SV; Fri, 20 Mar 2026 09:06:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYM-0002lH-8B for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:14 -0400 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYK-0005z0-3F for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:13 -0400 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-b97bca3797dso250074166b.0 for ; Fri, 20 Mar 2026 06:06:11 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b983398c140sm159879466b.63.2026.03.20.06.06.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 8648B5F909; Fri, 20 Mar 2026 13:06:07 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011970; x=1774616770; 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=raU2QYyeh2bNAFzY/qQe9KIkX23gauXvMjIACXU+ESw=; b=ppS8I8RTFlQ9+2ah4tzniSm14zpzBGsEmKXE4MzlFgdMI4xGSC1xrtTLKYMd4gmv6X phmITZImc+WryraLnJQ/PHQLAccP69Z7xOfVxbb+O+/G5rgah4OlxHYNXmvD3u3V6vkA fv+apXkgEhOoYdWGZ9cg7E8acE+CkHea410mCyYZh2Rn/aSUMAkTXTd1PqScmLX5Gk7i lWw9GsVRhWyDUL9XSPYQ6GfDVh0gQvzzGrmwYs6gjaVThrVFz+eTeIqeBqGbkoUHZ6Ia mgIHfQw6X9kJxzO1383+YBMPGtWifkpFUyFg1zSUvMqilGKJfAqlCVe1PrDONtEDglsD 5brA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011970; x=1774616770; 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=raU2QYyeh2bNAFzY/qQe9KIkX23gauXvMjIACXU+ESw=; b=FuPxC6GFHwHl4IEOT2L06ig95dbU7rRwaUv99O2WFY3Yi4xB9pXaXZwE9sKc8+gNNg 10S9B8lLWcbVGNl4wKE2SwogTmjxq7npaB7PBhk1ntjFTTGHvWQmAS296dHuJAkny6lC D5sdCYGT7PoquuRJpIMx5ktV2VzlF4ieB0l/cm6SXrlVncbZcQpuPNwdaIB3sp1hyLC1 vCraeo4xZ8e9F4ZD2ZuA7i0NHKzw1XUdyahuvc03jTcu3wlXe/kfO9Bot3vabttRKOyX o+xx+aF6hd03++2U4ppfCb0jgpNOWG+RsvDuwa86zj9t2MPlqbFSVfaVb7VVnUrgklXL v3EA== X-Gm-Message-State: AOJu0YwMpM3xsHbNtobUbRpaM13gvTWcG4QBt3wlrrU1XTIZBmPJbrzo Lj2bsOXhRGR+y1KZGFbKktZ5SaQEA1GDUlHLQIqbn/GJBy6QM/ee22wq5EtPjZD5kH4= X-Gm-Gg: ATEYQzznFoEOwkn7UDnLJ9QSg/8AQAjD5vqGRNv+uix4eKJE3MiMcZNBvAQSL4U+2h5 YaUThkSWTqF6/RkBUyT9QNeoe8Ok/5uEROOwoBiMIyYqTASYf0ztzEwo+uAbiAC/qbM4pBVZDVA wqtIPGvRLGL0yQI12Xfm5Uv6BKF5tJHR2XJIgZIASjfUQNg1LhnlfRbI2+UbVznC2dE9z5jYxt9 Q86sFfMByBsAHeD+aLh2KB9giOQUooJ1vezYDueNTOIi3DJ0U3zKaKMby5rSHLk5H71/HjDjFQu /tUDIbOp3+maDcFu0cV2lDBVXYqRZn66OSjbtAZexq4D6omcEbznE7iwhrOyNzjHsOGLEnaTD5G 3dNuHb1eeaiihk3skfwI/ktxJeY9WsEJDIyJUYh05mRK224BMlHO8JyJcAINvSuNiLL5J+rF1ek h9n0ukAW3KaOjSMrT2XuuAexc= X-Received: by 2002:a17:907:c789:b0:b88:6164:6421 with SMTP id a640c23a62f3a-b982f1f2b12mr196429266b.16.1774011969578; Fri, 20 Mar 2026 06:06:09 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 01/35] target/arm: migrate basic syndrome helpers to registerfields Date: Fri, 20 Mar 2026 13:05:32 +0000 Message-ID: <20260320130607.2071996-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62b; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62b.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: 1774012079190154100 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. 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 Fri Mar 20 20:34:28 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=1774012112; cv=none; d=zohomail.com; s=zohoarc; b=RfWyVzjEVbTZvsrfI+6uktqFhicIl6sIfRNUoa6I6ZLkkDMow9dxiLpegtGpzSSNXku1Ay9wJJj1GMvKmGqFuC25kml5YadSwKal6HGC2kI9cwTAcXiBUAmxZRwg9UteMmdTmBIUGaVYzIrUVN1UMq+l2PGUbbZx4eW+xIefXt0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012112; 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=xMvV+Z30MGWIFjks+wq6XxTD4icaEeIiNeTijsECLbs=; b=Hwn6b2872Daj6knX8giH03REJTJnFE5hxX360cM+U7NykR+SW9dYRu6OEm1frhBJwVQYiAI0Byi7hFT6sjyFj196cNhaKRqcaIZF/SeW6HlEso79yH/t5F//Ri7is2evsdPGw6jr1kXKsqhXIdSRt7FSIqV6iZ+loRoDZ5n4XeU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012112253641.0833387364934; Fri, 20 Mar 2026 06:08:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYR-0002r4-Dw; Fri, 20 Mar 2026 09:06:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYN-0002oK-V9 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:16 -0400 Received: from mail-ej1-x62f.google.com ([2a00:1450:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYK-0005yx-19 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:15 -0400 Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-b982d56dac4so9329166b.3 for ; Fri, 20 Mar 2026 06:06:11 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f8dff5sm156496766b.24.2026.03.20.06.06.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 9C8C15F910; Fri, 20 Mar 2026 13:06:07 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011969; x=1774616769; 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=xMvV+Z30MGWIFjks+wq6XxTD4icaEeIiNeTijsECLbs=; b=zI2vjjJUrqNu9zJJsY5zHYvFvY31W+xuo7ciZuFQpapwjPaIru4Be2yY9yL322yMYz 2EMX6zdXwAnrKZ+FQZ+s5JNh8Wo8tAlCKzuGgmLNjIrp3MFvKCV+dExaBjSxq5t1aagt VImSPa1iCmYjh58mlVdRF/VMp0kgPuyiTm5R3QVJf5oR3r2hsYbyHHkvwRjKdstMVu66 i1dqKBW8N/u1sWBkcccSbiJvHL2/q7rHo9NcDhG3F5hwf4JOb5YVqr4Fx3MQ0JVaKoYM IKml/I9pSYgKt1yB/zDjifOjFeuyVC9Xzd311cTQ30sUZ90mOLu1hwMB2HtR18I+K+ph Jy+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011969; x=1774616769; 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=xMvV+Z30MGWIFjks+wq6XxTD4icaEeIiNeTijsECLbs=; b=s9TxkiSbNRh6jfXMhBXGCphbQqZge//j9pB/mrCb+HXpAqrwJLeQ/bhpFyyM3TTiXk 6xVbADsuozWimZ66mYXRAwTA7HMvuq4NqJpGQh4qa+lzoKXftH5wKRA/H8uvhk0msQDc FDnVBxRbUGG8tCHSKEzqvhDUtZAfao6RBDr/GykH8Kn6hm5YNj7p0eV0u2+d411qRXqk llgZjCsRWWwxIHyTj7/Bo81xfeMgj3FcZD+U6gj+akqX43z2I+mmj3PMQ3h8cADy6isJ cmEljLlW+ZaAO9FXk342gM3Y0zqmiurNkvPhiMfKSHSVkTu22v5VTF6CmwAj/drFlpsn nveA== X-Gm-Message-State: AOJu0Yyg3KbVLFhzzszJ+W1P0fhNwjPqZcKiAe/5Z6H1jlKUOkkZ3x8d r4n4RYaRt9CYYmejueO1W7cZNLNCeBB3IXhZV5wWRaGq6l0na9dVhueyWDU7tay2kryGjk1p9Ss +xLMvaOc= X-Gm-Gg: ATEYQzy2D4QIhAzsl12+G1QqjSWP65Sd7G7LtB+Zrb2XbgrDRV2EK0rwXWWfXkl+4E2 YJA0NoNOP68BhwIiW8KJBEtebSLtFmD2/DOcakLuYyiOWSqRY7ZQzTx/caEOhlLnXzXqDfqNGkB Gq5anZhPr5aYptP+oBo14uH/gbuxCxBfuWJfL/+/NkpmfPTRPNmivANGPJtX5g+C3eBSaOmNl2V +JwH7iu0XvIh2MtetFe3FusKXRXLQ86dxf5n6BItGwNgPEvHZByoUrO+DtC6cKRmAh2GjwdAbwk DwHIaEvDMFtvsgEpNLf4OTChDB8Ge6mHemRB02KST47aIBTzh0ZZDpjBdO2tIWlD+4VAW/4Ilbs HvY0qvG3pOTHVVDQr7OWRRuM2kdJVgUs93o8cgTTddov2gc00baE1PqrVd86k7OYIfd4ad4o2KJ OdOXUbhrE2XNRJgNIASKtyskc= X-Received: by 2002:a17:907:a0cd:b0:b96:df8c:42da with SMTP id a640c23a62f3a-b982f524397mr224735566b.52.1774011969166; Fri, 20 Mar 2026 06:06:09 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 02/35] target/arm: migrate system/cp trap syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:33 +0000 Message-ID: <20260320130607.2071996-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62f; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62f.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: 1774012113414154100 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. Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 118 +++++++++++++++++++++++++++++++++++------- 1 file changed, 99 insertions(+), 19 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 517fb2368bc..3d2660614c6 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -208,53 +208,133 @@ static inline uint32_t syn_aa32_bkpt(uint32_t imm16,= bool is_16bit) 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 ? 0 : 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, 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 ? 0 : 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, 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 ? 0 : 1); + + 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 ? 0 : 1); + + 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 Fri Mar 20 20:34:28 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=1774012062; cv=none; d=zohomail.com; s=zohoarc; b=fldA8MIjsFdHTIWOV/+B7HHJaTVcEl+C9ocb7bpyb4BnPbwqD7r73tOQrtHlpi7QY0/3m4jtKOsMPU2dohd2jPOZ2Odwlie+7HoJfzYihEjxrNAhlj8Klm+ua5aYGxLRJmzobKDlfZq4Lucn8gYxO4AlJXfUFsYR8+qyMadV+4M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012062; 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=ACqQ25GaMsLx1AR6X4JG/cERT+D9ImfITj+Bq5qPC/8=; b=jBpIqiD5LVPbhGa9vHRHIiDWJm4NtwagpuaqC5Sn/yMZWdhn/Itd6dj0ES1QaCGMZMLF4H+lF5wlxU5VYBF7Pp9nNcNZHvUUY2mOHYRIUqI+sl6M4US7kNEkRw88w6s2GjkmC/vCl+LZ8uRuCkIFh3rib0LzKFyfIqSU8WriBCI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177401206283160.50112360107221; Fri, 20 Mar 2026 06:07:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYS-0002rZ-5F; Fri, 20 Mar 2026 09:06:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYN-0002n6-GX for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:15 -0400 Received: from mail-ej1-x62e.google.com ([2a00:1450:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYK-0005z6-5r for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:15 -0400 Received: by mail-ej1-x62e.google.com with SMTP id a640c23a62f3a-b936331786dso190830766b.3 for ; Fri, 20 Mar 2026 06:06:11 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b983365f607sm154749466b.50.2026.03.20.06.06.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id B1D9E5F911; Fri, 20 Mar 2026 13:06:07 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011970; x=1774616770; 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=ACqQ25GaMsLx1AR6X4JG/cERT+D9ImfITj+Bq5qPC/8=; b=BuzXJwAxcMFYl4UAqA8VmRzDKfBY2Xr7tRyXUkiEpwynw8Llzki2YqOqTAWsSv6423 OGUAtyWCDErCWbvY/G8m7w0Udn0UFwOBIEPFNC0jLvktQzgrjb3ziecdP5Q2pLVdC12S ZjdLZPFdkAWfKhIhVhiI12MDz1lc++zDSnED0Ezyq01HRnZO/xGpNGfHVI9iwny5SjNQ qsPfi51XKwBe10gjDKo62Aoi43K4nKcOPIHxkIAtxTRjjT8L9nRv9fGAeJtFU42OCc9o q+2qKTFXCLI+0wpOKTcFnmur4MUa+IqZwqYvuZzIUX/4YkwuZTKjLW1skPcjvH2UWqnR RfeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011970; x=1774616770; 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=ACqQ25GaMsLx1AR6X4JG/cERT+D9ImfITj+Bq5qPC/8=; b=roB2bOdnrIQtuTWIhpKiH/dg8+DauhoIAo55EKW1Gbs872pB41p7ONn89ECOoToehG 9cMgojQ5AlbS6jDpntUjA9rM5CcnuweCJ0ejnlwuX2hExvEKsUR50NJLOPOrf8i4ubm4 SNi7SEcRhgk5Ni3v0VX75ZxZYwUfgaJfTrL/jVxAYIdwdd/nmR7tWXsoeA1xO9UznBrh FSiucGVsiqnVcGYZXq/0BgI6xzqeU2xBLs39z/PlIDJRAVm6abxtQgN+5PMRw6uY4rrO /JiBRceh2hzu8+csADW6SoSsZx6PSoTSlqhAWghFR2d8qEX184QRyXpq6vB+6D4rxfiG m+Kg== X-Gm-Message-State: AOJu0YyH4SGMALe1ZJbcWple252rauFrJihyifWqF/C7hyX4KqDt2VJK ELuV+iR1EsnDPOoYL7Z50sVEv17EAQOf7xIJU//TDmHMDJ1wbh3G1wqMqo6jsOru6Gw= X-Gm-Gg: ATEYQzwhwvH/gpJkfRhAKe3rEPAcANPe69NJ39z8l8iB6YcHMSinffm8rg635ohvMlX vxAKytnqRMquHGf67rQUHpBHH02681q3H1d6duQCL9ZgNcz+l2ap7fIClEO6EqdqDdHfBuQIG1c 4F5FH19qEZ9FMJ1aVj1m5puGEdK78tmDv0WPv9uOblRaCG/OvJVNFFhe5zXnX+hQI7MJnNorSZv VgdDVu9xlzEOuFc+p34z5mHkqi1fBik7oBVr6vc0OryKsIn6xNCirufODG6QrwVhgTEsecq+eAR Pq4r08hbNczudECCYq5/i1CztwWZsrgrgSVygC2E4tRgdCtIByRMR3mOlqxytn06o3sPtGwRF7J Ck8M0hyXLonYLMBt/4cDqR8zKcicZKc8kvdNKR26W6ey5zOx1A74FAOwfejqJv3b4FlNrB+shTg padu8maO7UYX62kTjAWWPUYNlZD76wJtIHRw== X-Received: by 2002:a17:907:8d85:b0:b97:4e42:23f4 with SMTP id a640c23a62f3a-b982f0ab4a0mr200254066b.11.1774011970086; Fri, 20 Mar 2026 06:06:10 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 03/35] target/arm: migrate FP/SIMD trap syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:34 +0000 Message-ID: <20260320130607.2071996-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62e; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62e.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: 1774012064392158500 The syn_simd_access trap was never used so remove it. We should only see the COPROC encoding on v7 architectures. Signed-off-by: Alex Benn=C3=A9e --- 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 3d2660614c6..5b5a5cb182e 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 ? 0 : 1); =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 Fri Mar 20 20:34:28 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=1774012189; cv=none; d=zohomail.com; s=zohoarc; b=aTich3kNqB+HxH7eWHD+hsnOPRoMK+4PJn+MAfhFxhuHLUYY6Cn1CW/6ZoPcMI5/x8qRPLTYdg7hqLtG3U0HPPhZDUQYThy+P/quNaXCqaoMGWAvpB5EUwfHy069LB1sUIzLqvIUBWL8RtA6z+M0BUY3hrc+dA7AWRUqLabDuJQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012189; 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=QvS6HtxG4jcfhqka/2gZ2nh+60WKvsSv+L1snlQc09w=; b=BtVrzLlK9VVoAfUuSGwyCNdjLx3ppaWkyXOngj3WtoHB9K9tU7XCb79qi0ptS+IXOjJHMECRX8JXIksDkCWnb+WniNzDa1fRLLOKTV909KUqEX55xIw+fFZqCdm81aeKmgteHVKa52ZxOO23Q0eI6IUxox/yqmhcBW063ZE/whQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012189131240.17704890547907; Fri, 20 Mar 2026 06:09:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYU-0002ts-5N; Fri, 20 Mar 2026 09:06:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYQ-0002pq-DB for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:18 -0400 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYM-0005ze-ET for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:16 -0400 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-668e55bd36bso624035a12.3 for ; Fri, 20 Mar 2026 06:06:13 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f8be14sm165814966b.17.2026.03.20.06.06.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:08 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id C7F415F91F; Fri, 20 Mar 2026 13:06:07 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011973; x=1774616773; 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=QvS6HtxG4jcfhqka/2gZ2nh+60WKvsSv+L1snlQc09w=; b=ter5r22GBdMLXy8XQ0dKPYhT/MNlTX8n3dvZzX2uQah1Ot1o7cUTh+2c5aTFlBCbxv tnTO9rKGVQ3QZD44wqZUIzQTqPPwe3LuXfId0ackrjilsYwzC3Tadmyf1JpTGpNZVU4+ DLnDjTXsmBeffMGSgXqvDl5pPQLXiFHR47ckYC61w12UvHG863xtB90AlMhdMiAOl4TC fndIjKSvVQaLnPV4Djmosi9ZOIcAvcZQm4BGpgTNHIoJbpEdD/LUjvSigWhHvXrVesgO 1G2hpr9az5vJiHGubKAGUCGIiRF7JUQx5cM+AJHq9sLnlrEBUJICbkP22xPFAAXSUWms HD4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011973; x=1774616773; 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=QvS6HtxG4jcfhqka/2gZ2nh+60WKvsSv+L1snlQc09w=; b=SEVbWRC6WAtU5/U0mUGHrEy78/DY+Ugxy7WY0bxZB0cIaRZGZWPNCg/zU5nVfhFESL Y0uvv1ixeNGhRJQTUGG8x12tem5+vxH6jC23kXVHGxPu5/YTUe4QGVtM1oaxhYgFdAtt ZaalM1wrWU63xEBFS/n9ng+2xbFCr2aDBD0NWx63/4wrMlxIYnb7+gK3hlwufhoR8ctD +rxI/FlZyXL9RJ0sZmXn+HQchf+MzI2l9kajk95Mol9rPx/cPhecCHYiVbeKr55opX2h UOmY9Jml/bkAqFGqNLKPcYAyGu7iUMyRl8QljaL+ukwch7CP07DwfQR+69nKmYI8+yQo 8z3g== X-Gm-Message-State: AOJu0YzJ1y1Wx/90fPyUH8jAfPHPYw2yNryB5v6zix4+HBRCq2Su2Pek iQoi4d25HQoHFR0COefGHvUyPNUTddJLpgDtuJ7VzQEPTMDPlXybcKX2Wmw+AQ46sBA= X-Gm-Gg: ATEYQzxVOcuJScp8LXzBh0/8+/5E8nYOQl+OFdT7RdsUPnsvV4Pwy886SIlFH20emNh gB4X6StbpfONmTYtRs61a5ohPrHVQjILiDrH7HureF7oTTwBiul8IQA/cOxzGHop54RlLixlESB Ji244bxp/v5IkXheHG3rpBvJ+qW1R72o8CmI2A+QLU29xKAeP5w4Wba7P2qJ38ESZq3p+eVuGUa gdirNFS+m7whfk4GQ82f2/VGIvlxjY+/z8mx2EZz3XeRxsolcLAXoS08Nev+dT1txs2A+xviv8+ ThpRqtzqZD1KC8c8q0lQVNQZR9JoN9/1gTII9x3qaBrfohepgIGrPsg/zViJoBr8L65M9XIKVj5 c4FDvKbsAEC/XdRhwpAumAKuAq/mrPyNkFTuqEy554hhXJBR/78ArSJ7ZW2KsHb2B+BP+Mst3lZ qh9jn0NrGqz1c4e4D3FT8FnJo= X-Received: by 2002:a17:907:c8a3:b0:b98:9da:4d94 with SMTP id a640c23a62f3a-b982f38bd3cmr181168366b.48.1774011971057; Fri, 20 Mar 2026 06:06:11 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 04/35] target/arm: migrate eret trap syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:35 +0000 Message-ID: <20260320130607.2071996-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52b; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52b.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: 1774012190603158500 For simplicity keep the OP as a two bit field rather than the two interlinked fields in the docs (ERET/ERETA). 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 5b5a5cb182e..b145a52769f 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 Fri Mar 20 20:34:28 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=1774012397; cv=none; d=zohomail.com; s=zohoarc; b=aas0g+wcYeJc+M3hIrthcBDKyFggCTVHhakfUudGgWkP0n+ErBwwU1dbwTToLFZiJCQoPTrh9U5fb/Jrs66L4w2ejFKsK08YzXDf7kBsqC1PBg+TD1JQ+uMfYJpCzRnq+mMQrBZwO+I6SsH7gIEuEGZCNdon6Lcqkr84KDZoqro= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012397; 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=1oVoeG3Ip9tmzj6CI2CpooaKW3Tvdm92b0eoQG/BIYs=; b=RlZByO1RNwxsgjPKiyy+aS4Yu6/d3U4K0A5wzxCnySWfOE0vowB1ReMJkA5WRBassqFBNBBohShRiv02HXx0O3JI8kbv9unrBwqBfjckWow5F78taOGMkmXzYb98zbBk4lEcurITdU0apxQVE+tCkB9ijW7Wxb4r7hyBpAONSxA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012397259418.55000491159853; Fri, 20 Mar 2026 06:13:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYU-0002uG-TU; Fri, 20 Mar 2026 09:06:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYQ-0002px-GI for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:18 -0400 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYN-0005zz-5u for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:17 -0400 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-b97f9587e6eso236283266b.3 for ; Fri, 20 Mar 2026 06:06:14 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b983398c140sm159882766b.63.2026.03.20.06.06.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:11 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id DC0055F932; Fri, 20 Mar 2026 13:06:07 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011973; x=1774616773; 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=1oVoeG3Ip9tmzj6CI2CpooaKW3Tvdm92b0eoQG/BIYs=; b=K2oF38nD1Wvjh6aCTRBUcFoFgYoEqfIEYD6OAZtIqhOdMfKd0929vMOiFnnrFuulFn Ktm3ppgnnCv1rqk5SIOgYMbKlQnejhmHa9sKoYG+hqnWUxmgz6NPHG8hwkPBdFYSURbQ SxBqgntEshHrNrZNgv3VAGDyw3a2eU2wtJEx3984uSeUXP+Agwsjf+XJpzF+ImTOxlcY sKg5H8RPXCSGldaP470yGv4HBO99+7fXEMs9K2Wx7pJkr1UzeWOq22K4SeLS2PM/u7Gs Qip5uDAgod5NZrkAHMEnfzD8tI0KFKroogGrpIPwwKVDjDYQOTPBA/GZk1bpvRCBeUrX lWwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011973; x=1774616773; 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=1oVoeG3Ip9tmzj6CI2CpooaKW3Tvdm92b0eoQG/BIYs=; b=DVKiBnaqRiIhPec+s+3hrDtsKsut5J0s1ArKJqKoihnwc5PAfjWn4hoBQHxqd04efk fPeOXSIgaycVW0jd68yt9ozOanNCHtJCRhu89i5a7SRBhwdipaaXgEJNgvSt9iqnCM8Z SYaImXreM3gAsZPATR/+12ANQr8lsFavaPFaew51ayi1v/hxjQwV4Xn74nn7StZqyBHz kNImhy2N3okoQCpfhUovIa3WY6dVHAZ1Ki5buD+fBh1tBdFasxgZewoUU8U2kA6DhfUh MxSN8QQkXJ4Sre73mxG3BvS8M5BbpYJp5snzYhSLjJBiBWrBuB48Y3z7mSEGU7Kg8ztu Pwxg== X-Gm-Message-State: AOJu0Yy3RTzOn13WE0AhGEq2ibcHVqlIsqqszuz3gQiF/AU8eCaPaavT OnpESOvgl15p81lRI1f5kKNP22lQcdlX2Z0YIaH2BfmZ8NjDSY/E7AJxxG6nECw/xGU= X-Gm-Gg: ATEYQzx6Ko4O2N3Wr8G9ApP8KNDyGG77MlhkyMOHoGKo46BtrHcJ5eYfa2etgp1Rk1r Mj8BsSdLFvDDuu9xTAW8ToZZ73sl8dKrp9Q6CzkN8JiGgHW+dG+a1WhXXKw2mHaD0vigX7CIWUH IH25RhlYoxEJDxHtewpxRafCmo80toPHChhbrg6WGbIFfD5g1ue4R3/68ejzsmZTb+3zverVOL9 umUIbinLkqSyLjaCzRR22mg6uLxLbCfDa2qgTvENgHQk+CALx6kASKi/0WDrc1Nns9FK7IrRvJB BNnQ/hmZCo8Vg3vqzn70jzA0d1YbiAbqMtjpTs4Gr/zhOetMOuiEQocRkSM7gzvzJ/N8nV4lsgW sRIq7deZcTIKGlJVllTKLRGl5KamUnKclyll6961XynXGrwhdcwrD111UAM+Nbs5f4jIqvyJXW2 rTyCe8KZldBi5PWcJ+PedYCJ4IAVH6tFK1dQ== X-Received: by 2002:a17:907:398c:b0:b83:1433:78de with SMTP id a640c23a62f3a-b982f0bc06cmr215264466b.12.1774011973226; Fri, 20 Mar 2026 06:06:13 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 05/35] target/arm: migrate SME trap syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:36 +0000 Message-ID: <20260320130607.2071996-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::630; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x630.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: 1774012400164154100 Signed-off-by: Alex Benn=C3=A9e --- 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 b145a52769f..abec0a4908e 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 ? 0 : 1); + 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 Fri Mar 20 20:34:28 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=1774012175; cv=none; d=zohomail.com; s=zohoarc; b=CYhb4eotE+WFh7FVNhvCIjz0Wt7sJMD919+19gfN4mBLEi69+24LTeDYUulBZHA5UPr3xj3QGD/KVD0kxLS+cgaZhLwnwvbuULI53N+NusWeNjbnUDsyBCFJSs2dmtmn7uY7v9MmG44dYOcH3+zj7y/y+O5d1Z988IfiiW3lAOI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012175; 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=DXWjpi/kmC9idV0TGQYzInBfDXcfnYke1TU+YIa7noI=; b=VffK5ee6S3MrRpjAFGNVPyedhQ95Ql6OUoX2aR4OTCBCl3VG0nF75Iq5QKboLja+yBN6XYizPgivgNYeMyJf76oiUbwRb0y+XOmG8CajoeqSkHO8tyvnsW/0YLsH1tKupU6Bx5WwYJuzzxgnmkTrquArp/SsqJzJCVeIXAH5LDI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012175299891.1103389530474; Fri, 20 Mar 2026 06:09:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYf-000346-I8; Fri, 20 Mar 2026 09:06:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYQ-0002pv-E6 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:18 -0400 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYL-0005zS-Ub for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:16 -0400 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-661cfb9f3aaso2215865a12.2 for ; Fri, 20 Mar 2026 06:06:13 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f44034sm158324366b.4.2026.03.20.06.06.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:11 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id F14075F93F; Fri, 20 Mar 2026 13:06:07 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011972; x=1774616772; 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=DXWjpi/kmC9idV0TGQYzInBfDXcfnYke1TU+YIa7noI=; b=KvgD1v6rKVgRqnshcs5+xCIdDXxczlkIR8VJ5hscNs5WaGw8HSe4GrTnput9zed9z2 7ECgj5gjG/oKdX+3KHF08CaqifN75O4SeWlT5GtodGFgVEMiSzLacYVD4dYzhm1Q3ldb ZE8Rby361iw6mEU374yyzVSZkNQ/UjFY27eNaPVtY65zukhAVydP8k3JAd9ZxaFmXLvG KKrPadQJpmpkpINVyTyKODFQ8zWedIM617FB7hNhwdoJP6fHrW1Jyb1AcsjlfOzcyLkv 09iLZmrLldSNR4KFlL7wxzagcRzN0knrNfPvRtArviIw+ca8aNAWGoHckSiv2zSvFJbK GgPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011972; x=1774616772; 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=DXWjpi/kmC9idV0TGQYzInBfDXcfnYke1TU+YIa7noI=; b=BSM8eu9oZ9YOWrHrx6HgfdIy0ymAndwkqjSr4rXAHbnB6im5c/9+Zs9mnQYlFwmv8Z qs00LjjoOYncet3n2AkWaQmYLtYLCcRbMukzkI0v6CWmmX8fjQOY/R21ZlDf19fTb49m KzCWYkYVMFpgIlsG3xzLg065880aqOy78iPKmJyA2lqF2BDxBK2MK5PqdNu1FhPs5/rk y15W7fZHEYLA0ZGdNPR3PK4ksabk+sckCygg+uT29D0kuEERqnFfl6wgjb53oZAKGEJU nT5ylEIabmb9bM77vD+9BPi0PcPJYcbHUNeFBmnBMZuDYzfoxqflxstwKFkbatQoFHCz TYfA== X-Gm-Message-State: AOJu0YwjNOwy43pfUjyH3ZKepJB6wnJiHuxqEr63TCteK4vpjCtuxo4W qNkHKeVnoAf1JqcrYF1dAgoV9A8KkJpn+R1+eHwUvb7a1CKIwzieDDann/VSetRtQZk= X-Gm-Gg: ATEYQzxNdXS0uMZEfFJRi121y+7U+FqgsTiP/+5DtTRXLFg9LoQ3ARQ1/wu3EGHMDZX 7VgAjj7ffAxksCMRX3ech18Zj57smZ7vQei0b06/MJkqWV0ptuVANtJ14ziU1IG0FzSWjtaF/kC WQjmmbQcjsKpwsPIqb5BFKcrI14hm+LIv1Ce6ZqGRB52UgB6pVH0OwQ+arl7sYxIPBW4du10qZm +ytrhMXoBU20NEBhpcZ1xae9BvW3Gx/cXQ8wltdhLdHpq2Z8QZLX3eVbAZ3R2pr60IBJxkYfUbH oRVjC1qyhAoSxmWSV6VFZ8pmJlq1HAKL6d88wfiqe6PglVBYWxu4zykHsHeY6AC6c46kP9xAKWK mLIOfoAu/cTK26dzTAHxkxj6xWcBnMziToCCWRzkfl3PPwtOI24sBkk6R5bjG+LLreqR7YZjkbu xEgCdediKR13mH3xaAhs9vuas= X-Received: by 2002:a17:906:bc45:b0:b94:21a8:f7d9 with SMTP id a640c23a62f3a-b982f301d42mr167747566b.36.1774011971831; Fri, 20 Mar 2026 06:06:11 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 06/35] target/arm: migrate PAC trap syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:37 +0000 Message-ID: <20260320130607.2071996-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::535; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x535.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: 1774012176355158500 syn_pactrap is fairly simple as the ISS is all RES0. 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 abec0a4908e..19c7659fb4f 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 Fri Mar 20 20:34:28 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=1774012347; cv=none; d=zohomail.com; s=zohoarc; b=J5anWXB+aqBXn6MDql4NlG9KsKUnSWtk7PweEN81tKcQvvzkSDOQYxsXSkdzlupc2K1yWrHZj/hex7a8f77PnnHC8QJTzOvrgffuJ5qxOOvQw/Q+fYYGPUVMNhpXQWPtk5bSr9LqEtzoYqBWbwxte+PeYQs6MJJYDNX4zvb5co0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012347; 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=SJwDFHhBf+8AgcOpTirKnOmj9rGpr2ot57177Z/8DEE=; b=XcH845IKaf0WZks7hhxOAVDKXtuDQxUZi50res3f2aPRUTkxjYNVI9fNKJQmSd/m6keWL2jxg512gDKh5tmHRb5GMcpt/CKyOVfjMjt+4vA89IuBhwUhwRfe6M64L9ZDHspPESrH2AWQXtHXaKrZrzgcKGvqZff9KyjACXbpFHQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012347550640.5157646876079; Fri, 20 Mar 2026 06:12:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYX-0002vl-Mw; Fri, 20 Mar 2026 09:06:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYT-0002si-4O for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:21 -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 1w3ZYQ-00061W-TM for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:20 -0400 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-6687be9791cso2692661a12.0 for ; Fri, 20 Mar 2026 06:06:17 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b983365f607sm154752166b.50.2026.03.20.06.06.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:11 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 156AE5F943; Fri, 20 Mar 2026 13:06:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011976; x=1774616776; 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=SJwDFHhBf+8AgcOpTirKnOmj9rGpr2ot57177Z/8DEE=; b=U14H7Ew20jC35+sfVwoAVnGMQgXIdZzQFSitGKMVLRcJDinNR6T1GK1Y2siqgIqPpJ /pDn9JEfsKU5Ymf6J2u2a7SOqaIjizwfizjctA77B3s40SXqeL+7hE1MCgqfY9GU2bth AYUjJQNOPEuKk0dZBH/ppdv/kRt44bBy9MrvCm+70Dy0kS4BfpO2WgnWoKPDC3IfKOMg PwmWQyg3wzU7V5uEGqE5fL8hUWJm/aOhliNPbzOxtjc9+cVv0r162IrlHfxorBpMG/AA F8Ia9RvlVd/khrdhnG/poDdizWwHEMIk7ZP/G2eUJZKMjkfxlrNc9/oBnMpdu5yJH6at lpig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011976; x=1774616776; 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=SJwDFHhBf+8AgcOpTirKnOmj9rGpr2ot57177Z/8DEE=; b=EhaLagVFOfujAbBAw+bGGrKbtmalsD15oEQwtfnyBUoTV37b5nT29oYeIRDSU/muxN TGh2irXRBoz3Mt5X/cErfpbk1i9faUbAjFNKx+6nWOyGfA2Pt8ZOe2CcqTUmhjYAKcDa 9kN4VlnllH+fZKi/CC7OQvdgVJ/NwAdDuT9pyCprXBQLEmzLwRalNd5fb7VXAy6Fp26T sjzy7FUFP7rm/7s1ypbk2FZUf3DIS5mvSd9jWb8qKeJsLNNmJPG+VveYFIhL5bakGPS+ TwceWTW0W3R+nZUPDnZzR//H1sowbpF1gh7bouHCLNPytgjcOHxVauPtg02utQzS8Nwf c6jw== X-Gm-Message-State: AOJu0YyWKzfLPlhnTBxbeC2f7GqVvFHZLab2oljJaV3YAmVyssRF+f3C 2FjT/dxH9mV3f3JVCQof/2we9SAnD27RDwEoBXLrrWodhJfKv0ZGGc6jWEUWRzoqgDY= X-Gm-Gg: ATEYQzwneUeffQsZvp6BgUafSw+ZacGmN21KCCEE1KEPe1O+B+QqTQ5FemOmd4O2k/6 XSQpUZHPjFdrHWqn26U9UxnmoAKiMHt2e7jHeXOOdro/HUKQcE54oWOYQaAft+j3AUuL14GmYyx eo4nYlwPZzjAMO1/7Ba37+IpbufX+odWFsUp7+VtJOmdmuIM8V6sYsuK9DcM2Oi5pRGHeZWGIyK +9meYafoYSjWATfqCZWWsN1GXxEvRUs1Gb2A+cx+X8o5lLYpRj96zBawy1BCwyY7eS0Qj+XC7k+ rKNYM/76FNcD5k3qDBZhvEN8t6zKzOZ1gbKz6qxfiuFgG3OaNsq9Db7cCGvY6UuuMM0ZbB0uyNN pE6tR1r8Rtt+YziUM/DUVpxcAJLLHaZAH8NYovdZQZL5MG6OixxzhHv6mwDFqyQvOPwYqsVHHJT yoYHwQ1ufJ7kQnG3JQysfUEMc= X-Received: by 2002:a17:906:2746:b0:b97:f9c9:af61 with SMTP id a640c23a62f3a-b982f4e922fmr164777866b.45.1774011976362; Fri, 20 Mar 2026 06:06:16 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 07/35] target/arm: migrate BTI trap syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:38 +0000 Message-ID: <20260320130607.2071996-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.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=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: 1774012349360154100 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 19c7659fb4f..0520e51a686 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 Fri Mar 20 20:34:28 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=1774012088; cv=none; d=zohomail.com; s=zohoarc; b=AJpXO8lsIeaq55s73g7+nQbJP7yLqlFwKSSdZIzTsl5fFjlnE5WuLz+5WVaG8CN/wI4BHJxSH7xTvoVFaBvKyFCHeoCSiSGGuz/W466lY4WPg9p0w76jP/GCqEKul7cWk6uRtLFHtlmnE2UHCuXuqMqEPqWHKz5jFEKbSOt/vlA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012088; 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=H7IMorunvZEgUBqMMO2t6X3hXoPF7SbGEFrN2VHLAQ4=; b=fEuu2J+R6KJ7JO3awt2pk3t1buFDugyJtUPO6sR6dzmEKxBct9PbYl+48gdZ+oTy3B+X2+bubV1hsc2wXb+CNBoAKX7crjsqd/xOOleC9+x4unu6nF0XLzUBtckyzQWIZsPMwNHNIERu3OOZ8Yc/nfbbSKBM8KsCrecJFuBLxFI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012088527557.1685603157895; Fri, 20 Mar 2026 06:08:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYS-0002sP-OT; Fri, 20 Mar 2026 09:06:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYQ-0002pz-IH for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:18 -0400 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYO-00060H-7R for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:18 -0400 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-664f8bef4e7so2758920a12.3 for ; Fri, 20 Mar 2026 06:06:15 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b98336675e1sm154348266b.51.2026.03.20.06.06.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:11 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 2DE255F946; Fri, 20 Mar 2026 13:06:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011974; x=1774616774; 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=H7IMorunvZEgUBqMMO2t6X3hXoPF7SbGEFrN2VHLAQ4=; b=uVcdnSZOTw/F1qilb4lZ0HYmxMnVSabZu179eaFs/3KaYJio6PKC5y4cPAs13X14/v xGL111zXCsxtUk5riqXX3H4WLffX2T1gPPgi6Gpe3bFS7/Ks21T1HvtdRN0oQzyIMEds 6grNZ7KK+VrjIV2AJo+QQASg28EJ5dbMVOMd733oTkCJLMsAr1BxzZNMdaUKvWkYi1Ch HeoCiEEoVZEaEkzWAYQwKVEfA0X/3P1hlPr4F3hAyerXIMuG4Ko5BG/O1rytNIFUt85h nIamvR24/wRfz4eUKJjFgjZLujHw/JipK3TSkv+fxvG7XYtl9mvleQ8P0UJwOjNtGkAY aQaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011974; x=1774616774; 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=H7IMorunvZEgUBqMMO2t6X3hXoPF7SbGEFrN2VHLAQ4=; b=TSljoiW6KCeGG+BzyKNy/pXkqln+YnXK3DVA/yf5AMuyVe4Pf2hZ+fzgcegeDUxadk 2rcwgeaDaGnmszrcwKgtlaLHDq2FrhbdtQVQ/jnBjQ/OTPg5lVhGG8D69bDuRerCZhAf NfK5XJgOi3sSAj0h1hP3pSJFpGyT9nBDRitwBq4kUF1j3bPoVUFzeBtOwfCpJdJyQ0L3 FfRE3obcnyKlTb5/on6nGe5/sMUJAJB1ZaC6vM6VlgOaOcnrQiRPAh/8NjsLYG4+av3n 4RC8GvgCVvmNBgbONN0O6Q5TTarlPcbrbUaZ56AQp0/yT3MSXlNVwNatj6/oVnD7CoGC tkGg== X-Gm-Message-State: AOJu0YzWD9G4YVcMdoq6j/j4SGSzZzNNPGUaovC41UNJYT38hw8QoHNx 0Mss6PY8XVsxu5sYhdaosDarvV5P49/f79/aDfKUxxg4SRiStMKvafyWOojggSp5MCE= X-Gm-Gg: ATEYQzwIB3cn5gU6TCEwE13L8bErsqWPY0xEqjAGc/3tcLzPvO3CIbftMUd7F6A6IX6 66lFsp4jRKoKwsWhieafpk+MEFjf0Z5ZnUFSHPkKncIvqtlMfPRrZXFPxPXJ0pVagTopmWQ+HGD ZnB8Ghy9hJ/1izNlos7jN2SM0Q1RnnmAas0XJLpRAO3f47qO7N53KDPaNpbNlEKjGKDCu3RXXiJ k+hwIvm1lg1vZbb6LFun2En9aDMzF4iHClrbb1sbtQ40Nkecx1fGJLC59YuPfsbv0g5fvEpgdU4 zwudPAH6KwdmPNctyT5Eq3bz34rnKjCNRWZzd74U/Dc4IEvv2gMl7UCLsAK8qYbCzsDKaLGYv+7 64AgIXlIFxvnO5w8Q0ArXWf1i5G0KjT/3mUjNgce/CBVUlhy9r6uJ5h1ZkFrKNxbb3WNnhdpK3r oWHRCSTfeVS8r6USgx7KDMgl8= X-Received: by 2002:a17:907:170c:b0:b97:9139:738 with SMTP id a640c23a62f3a-b982f2f0c72mr174716466b.33.1774011974166; Fri, 20 Mar 2026 06:06:14 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 08/35] target/arm: migrate BXJ trap syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:39 +0000 Message-ID: <20260320130607.2071996-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52b; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52b.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: 1774012091304154100 This is an Armv7 specific syndrome for chips with Jazelle functionality. 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 0520e51a686..fb86e7bf6a8 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 Fri Mar 20 20:34:28 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=1774012213; cv=none; d=zohomail.com; s=zohoarc; b=EH9svOBuABbyfDsqfVnmusURWPAFpKrDNIEXZ7eBSd6BuCi8DP5Wl//ixRc+WYSsMmaD01grmCk8Xw3I+YNv06lNul+X+wTFaAg6AaP/pF+m8kxj/OQ+CHWsmCW6PnuugDuGiB15q6P4kDNAjV7vJ4z/oGxCV3Rw5mcHPygomT0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012213; 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=5gZF+bbO9K4Nyw/s2cHUG02dtJK9FnQPhbnaHyWdihg=; b=B0yd6WHWwiEA6LUWqLeUZ3lwAU11qQ4I9wySAZH4NNxl0ItWeAYtD5CJphbFrZRyUTM/cZDbPjb54G/7Rdug30LaIp4E5eJAOqZKKFEiaQyhyBPoN//u/pMc3OHiBbFbmRxRT7Vpr+3BQ+ZiElMskIa5XKGKhZCV/6d8eXsdkVA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012213794134.20758940736346; Fri, 20 Mar 2026 06:10:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYV-0002uf-7E; Fri, 20 Mar 2026 09:06:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYR-0002rP-RM for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:19 -0400 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYO-00060b-B1 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:19 -0400 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-668abc98923so1095577a12.3 for ; Fri, 20 Mar 2026 06:06:15 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b983387103asm156572266b.57.2026.03.20.06.06.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:11 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 463675F94A; Fri, 20 Mar 2026 13:06:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011975; x=1774616775; 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=5gZF+bbO9K4Nyw/s2cHUG02dtJK9FnQPhbnaHyWdihg=; b=zzN6wJpQEMUGKo0pVtofPPYP0VhSe9KPV/mJlqRALbmEmS/WLMu8T7Mr6s5fCaQUFm Bg4E6jONbknGn0RDcabMYmueGbYAvkrGNJwM3OLKaMQZAoKmpr9WgdG8Y5+zjHu7ddyl knNKd50yMW0vtZF5ip38EKxuA130Vf9IlSi/l7dJOQtyzvoUNzdPMnESjok0MrAbsPGI 4cW/5Jf/q/P58O79s56+UrriUnPFhbCfEJXCQCT63ghvBRKv2iZYqNeL9Zxd1+6PTx7J sBbIHMiH9WmuiZxrUfpzIWapURyrOT0n0mriNevHPCGc+XTbo2OlcqvROSH9/NmSbUxc +Uew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011975; x=1774616775; 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=5gZF+bbO9K4Nyw/s2cHUG02dtJK9FnQPhbnaHyWdihg=; b=XE471Q5lkFhP6ohl3dsyJ6KC8e6ytgCm/i5I+bvCxXKuXplUTxv79VfCDNYhrNbhVT HDmESsFnw5X3B04i7R0w4vQ0S6WGZ+B1Z2zKvwXa3guYAXMwgxmR3/EWSM5Cd83Ire7I AGFF3BIziDOH17SdRuxv01ob4pk9omg+eqG4LcXjfKAMVo5kT/rTbvlxu/XP0F0pnrKl Jb2x1WLuTHMvmPWJtQUNVZ+p44Yxe7PBgnIFEUoODUHaUCMuenki2XY/Tps2DxE31Hxm TQpAxxFU2CIuRgBTJJIhQSWlHfjHajAgFifWLjmvjh/c0bqDQB1ZB2mGNRScIEtYJhnl /i+w== X-Gm-Message-State: AOJu0YyTFQwrhoSw54TKYkshfxYE5lVhgx3XKpWBmTANl2bEk7JFlKqB CgkuIu0iJUtNLzTcM62/yBY7r16ZdNDgANEVvbyfMKrgJHi5zMuW7C4E16W77dAGgrg= X-Gm-Gg: ATEYQzwA4XiFCjfPkiASeC08qf0XCvyN5lATuEPUJY2Qm2Zj5bCtbpq6J0iLCa5hbED DW7IO4bPpTiPB7Xy0aGYt5n8noLWdR0vHlouMJNZhQ/fteD+i4XQ9DCkAmnmqkmPBTKb+ODoQk6 wCJXxjoyw7gdUF32QldKm9McVJ88fqW0DsE0KWr0ii7djelxR7gvcILhpAoR7c1E07/IG7/Pfag tmfVWsTEpMz/D/gx9LXzcZ1bX7m1Q1X85F8JZi7ZIi0Q8lfCSHarPuf/pNhADcuxVJrlKaKSZ/Y n3dFhBCC2PqFsPD1h8M9bR7ziERjwRcdxZxl67kItDx6mA8I8D66UW0mMi3Nj5d13MiyjXmXKTs D5HNLWkyHoh6Jzeaw17ATQXmQCx4zB1nKQAvBZ7eB/WRaH9xUQMHeZZZTuFJp6HVySzj6UrA8SD js9zRnP5IWLippOHTc/U1T58WDffYEXADlQw== X-Received: by 2002:a17:906:8a77:b0:b96:dec7:5209 with SMTP id a640c23a62f3a-b982f242bf4mr137318566b.17.1774011974772; Fri, 20 Mar 2026 06:06:14 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 09/35] target/arm: migrate Granule Protection traps to registerfields Date: Fri, 20 Mar 2026 13:05:40 +0000 Message-ID: <20260320130607.2071996-10-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52b; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52b.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: 1774012214535158500 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 fb86e7bf6a8..3fd82f5b565 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 Fri Mar 20 20:34:28 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=1774012132; cv=none; d=zohomail.com; s=zohoarc; b=XvI6QHsQqADE+FidOullixRCJiwoFTJWnYMV4aWkSG9utTvaPWc8haAqWyxIFq//4/ibeoUsRcphJwv2h+fDuT+QlmMQTzEAf6DtyjNhwQsaS/UGKOWZVGpK++EQM0nvMAxEV1LbNJm5Y6mebKY+21hWmXYuFVTdnreqPEOw9lI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012132; 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=mVhTaVtOsZGTF1nA/GiMlTKKLxEQJ4PvSrc2Fgrxyck=; b=aioQI+2JUkT4+RCQP26PIvS7IY+NksKCc2ZdJeD1ktskeQaWH83c6dnLOAqbf0bwZ15Lztu1PqsSGFcPWCO8hi04EKGA9x+vzI8fg6kYJ2/jIIi0TafbxcKW38ZbxYS8u9GW1TS+BCmuutGf4JKKFvwyvQ/H1YDIHOEhDj3qCi8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012132639606.3673118582844; Fri, 20 Mar 2026 06:08:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYW-0002vX-UF; Fri, 20 Mar 2026 09:06:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYS-0002rk-8p for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:20 -0400 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYP-000615-Ss for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:19 -0400 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-661d20c9787so3080947a12.0 for ; Fri, 20 Mar 2026 06:06:16 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832beecf4sm162492366b.0.2026.03.20.06.06.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:11 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 5E5655F94B; Fri, 20 Mar 2026 13:06:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011976; x=1774616776; 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=mVhTaVtOsZGTF1nA/GiMlTKKLxEQJ4PvSrc2Fgrxyck=; b=GLa4DMtn5nKpDVDZTOCKPSklg47fbF0E/tjSVfk14uCbpvZYnGHQ5TDeQ5fwzI2zUi 6sV5W4jVDuR7Ugm7jLxC1EnW/jI8wKlxEvVlrCWIpvadnxkiZuwjHEIumeBVJ82XW6Aj 4SmJLmJsD1PzDlPMILsahX+b1r5L7Im5LgfctX65poKI13LXuUrnl3YIxYu/LCbB7amT zSndhYDK47Ie1g43DfEhHMHL1+wxGeqfisV/M7COggoyzkQw3Cqsi4plKTwLSlh1oi1D 2gFOpE47V44RcE2JMqnoZc7fpgCnzQ2JJIxaxVNrd9Sm4x/7N8LIM0FnZ/zjw4t9F32V FOzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011976; x=1774616776; 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=mVhTaVtOsZGTF1nA/GiMlTKKLxEQJ4PvSrc2Fgrxyck=; b=k5QFnP4ew8G2i1C5kn03giMS6ycWGingUxvLDTaMCvzHJWmffxq//MC9RuRuJynau3 +RQBq2c0oigY6MA8OYoh4l7AoKqiyXNePmcGFD5kAw98qSsAavy8mzZgdD75WUey+RwK oFN4lqEE1HZtdYxgrrdD5xkDQOOYc+AUxnwMRIxM04vJfLkHyQTZn3DX7lhX5nbqgqXn 6hlIl9bFvWCkrm7L87o6n9m+oHd8WIG3sXpLXaSGjYdaItUmrRi3deCvHgXAZCkSozPF Xvow5ICOFCTMaq3n4u+/C2MfZqEErxO8pu1bh6Jg/foeCg2imhUJw89GKKd3nWLhkFKk wKzA== X-Gm-Message-State: AOJu0YxtE3cZShWvKTiO/b0kH2pI5may+jZifGxaTQ4fQGtLmRUHijPp I+0vU5b19yBPMG449bCp7sbR17jv7qdLdo18wslfrxGF+aWiQuOjmc99LTfUvjxnrMY= X-Gm-Gg: ATEYQzwIdkgA882ZaimNwV2cNqD53sOWAnjcYPZpP2sunBXxCp2PqCd+kuB5WdY/9+w 9SUxn6v8mxR/F6wjsbWDhe59LW+iVXTJu0SOIhC0Fu1X0QZtN0AyhG80KT5+kmjBR/KtqVvpser 10o6kxSv8mTmqA+fk5ch0L16tLpsZ5GWujhDxhuRbHPP5PPn7jM6/r2vmqg/PdeChYVpFGIpZL9 dn8B7ihyhwe+/pADqBAlz+lbIVpZ1BSTWJ6BQT5w2MnI7HU1SvnuJsdeIRTAnXMNxs52Z16rWMD OI7VKciTnaQd4RjJT29s7Vmtbe5z63yRJaBMA2SveCyGh76oZKIP1FOSK0zWyjuX7+QUKm+swP5 ZooetxLnV7GN2K1HEPMsHBpZ3HXqQAvXsDTduOUlm5GQkoEFiHs8kMvouyn/Bathq7/eXpPyAcG 8ZnGCEERnnjYQM0v7p0Eagqy8= X-Received: by 2002:a17:907:cb20:b0:b98:5b2:77f7 with SMTP id a640c23a62f3a-b982f0c9208mr146755066b.12.1774011975601; Fri, 20 Mar 2026 06:06:15 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 10/35] target/arm: migrate fault syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:41 +0000 Message-ID: <20260320130607.2071996-11-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52e; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52e.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: 1774012135750154100 Migrate syn_insn_abort and syn_data_abort_* to the registerfields API. Signed-off-by: Alex Benn=C3=A9e --- 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 3fd82f5b565..db92a8020e3 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 ? 0 : 1); + + 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 Fri Mar 20 20:34:28 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=1774012033; cv=none; d=zohomail.com; s=zohoarc; b=G0ikwudnrVgOasFMH8PLMXWtY4Or1shtOY/ZqHaOYb6cLkuvroxgssOSG/xG0QqSbpnTynV4WRnDfp5ChOQ1/v+xXrgLrK1uW16JunABJZgSby2SLlPebb0rlCf5xlPnP7wvobMBinF7OLLLDzVU+sB22EFV8tOh6LiyG05T3J4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012033; 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=yHKpdEI4cGFEScBIdDOoiuJbpmPrPZGyT97rrFJXrBk=; b=PTlLjRpsLq++E+lkHUgCem0e3Mec4bQulimgb0gwRQtkUjy4x8BZgfs9PSw8LnI9tHuC1docRaMuSbjx/0gzhaUqssrXjEpZMUgQLe6fcpJvBH5MbJsuufmZ76/K5pbcMZqrmYM49Zn1o20YIoJl6xjaUQ9tfcmZ9n5Zniqkj68= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012033446975.9835385161513; Fri, 20 Mar 2026 06:07:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYe-00033k-AE; Fri, 20 Mar 2026 09:06:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYY-0002wL-Ax for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:26 -0400 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYU-000648-Da for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:24 -0400 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-6634bb959a2so3115547a12.1 for ; Fri, 20 Mar 2026 06:06:21 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-668cf4f8874sm1316852a12.5.2026.03.20.06.06.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:16 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 752FB5F94C; Fri, 20 Mar 2026 13:06:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011981; x=1774616781; 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=yHKpdEI4cGFEScBIdDOoiuJbpmPrPZGyT97rrFJXrBk=; b=Nydrcj3LYrVhled/UHzgOyjn8zSXy141g5wpKd3zQN5gCXhQXrRCFD2HJ7UiUttDwq RceajZiB7asSKLmNRt3S1YJt1dpjvGlvjdiM9iDwyl43lleHqrIkx0EggJKHAS1p1CJI 3W5VA1gsl+EmnBJYMgsrbRptXX7HLjaofOqjhRr6ShDkA4E97fK8v0i37oxKoSNZsOjA yhSdYFyUWlsZ0RfWuDjmQcFp8NIlji63knJTfnw7CnsAeAuB9Da7SmzVfYGA+KtyImui zNOqGHgsUYFrObBrh6IikjDfwG9BsuHkxLYtW0rNCgtcAKpf4o8alYnjOrAMPbV1CtrY 2IPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011981; x=1774616781; 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=yHKpdEI4cGFEScBIdDOoiuJbpmPrPZGyT97rrFJXrBk=; b=Cxp0Qiw5sqAAYjnFisamMzl8PRRl2PUN6rz6Q/7rzudaNFbNV0xtXl+MbM7pDa5M58 6e79+bwUQHyYhvtPf4e3ZhG+03mzveIjRsaMY/xxnRnSgZcLAsa4836IjPCI/UONe+1+ pctAZt2UJipJwKkVqUCgRD6x3RcUlx86FP7n6sxCuehB0R92rVHrR9Pa2TWVPcZkzIz8 diqHOv3nm9BeLf66WFWmXFZ0pZHPx+nuCMV8GazOuf99IQYOGVXaS2z07SacpuShx/Zh an1+zT/o/YWNyDw9bfXD3aqKCsYojFZc1d9B14602I8410taT9PXTcJHWLiYWiDJIRJ3 tXoQ== X-Gm-Message-State: AOJu0YzIP3UzjtK4lVlRSA1/ZtpOIvlTcRsodUkEE4F0ptU8ToQ6J8ZL Wk6XCaFTgZKPFoctDjWBK2LU4TBmA+3uJ+oAz1kMMjU/QpJsSoofxkBNonFshNuArOT0DRJr5Po n093xrZE= X-Gm-Gg: ATEYQzyui/UOJh/lr0YPjjKw6cEFpJREtQ3wkSjAled7MHuVvrvx4ctufSvpcMh8DeW brs/WOasPzrRL9snhvtNwZNpMbHbT/MKRITiXTrquLNa+jYPS9LrC4nqnvqS8uviX7KeVwiFHt8 z3A9A7Wfv3V0arYP7aZzcbDj/2+svgJSkeYL0mTpsvBUE0ypIDPi06pIlKyqlmtJobFcn6jIH4f RnAHbNzvaTHgk3JaCJ/dfIoJWa4zTpj+MvHNBH5egP4qLFlUyERI3Jd6WoHdxckA4ze3yfg+BBt KdKayHvvWCHat12PRrHEKXTZK02zcqV6QFg6eJgLyWUT+8d84zUhPyPQ3Zk2mmZRt3zsksqduKj 6Hr8FYtGprbilSsj1QcA29WVQHmdcd2fMxnhzn2hTvGVMzPvo8zspjUuxOAvAyA1qmZKB3A0n1p MgRkSXFb+U2BTuMHavypTatQFvMSUfuuT4fQ== X-Received: by 2002:a05:6402:44da:b0:661:7ba8:a47c with SMTP id 4fb4d7f45d1cf-668c991c4ffmr1571729a12.23.1774011980527; Fri, 20 Mar 2026 06:06:20 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 11/35] target/arm: migrate debug syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:42 +0000 Message-ID: <20260320130607.2071996-12-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::532; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x532.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: 1774012034433154100 Migrate syn_swstep, syn_watchpoint and syn_breakpoint to the registerfields API. 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 db92a8020e3..3bd98a30367 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 Fri Mar 20 20:34:28 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=1774012335; cv=none; d=zohomail.com; s=zohoarc; b=cLHCCLx+mNi9etbbAzxRb7QXmind/TreeKYyxuabk85apK59qSsyp4gCror8RE2OuQJv6klBoUffe8FLCEWoRiAGCrPHTMW9Bdg1G/JlMCiDZh9jHhdSPV1sobgLJ/ZigXiw3/ioMVpwFLKBV/IEsc0Z4btKe8dBs7Y66FAjWmk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012335; 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=IIfuVNShSCGAnkztFExkrOnzU+0t+GNCxgKlZY4IitI=; b=NpqrU5vr5our9oo4D1zJfHb8Izh5G+aM6obAlmuLHWTlf0TO8zQf05hQ3gU/G6jsifDHXWTX/bpg8YxYNvGD2G579miPPfwuEVZzUOYiMu0YAjqZ74TPWsVhRBc45YxIXrRPGNMohvxvVDVJBxGLL6cVEO3iigrzgI+aUmw3Lng= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012335972153.4031079028864; Fri, 20 Mar 2026 06:12:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYZ-0002xv-3F; Fri, 20 Mar 2026 09:06:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYU-0002uF-Of for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:22 -0400 Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYS-00062X-5W for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:22 -0400 Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-b982d56dac4so9347966b.3 for ; Fri, 20 Mar 2026 06:06:19 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f43c3bsm156892166b.2.2026.03.20.06.06.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:16 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 8E5795F94F; Fri, 20 Mar 2026 13:06:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011978; x=1774616778; 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=IIfuVNShSCGAnkztFExkrOnzU+0t+GNCxgKlZY4IitI=; b=vfqyPK5O46edz9OxU7rDChyk5vHQSGSU4kK4Keg87N4XCcGOZTIRh53A8AcpTYem1d UyOQ0O6X6a3oFYJbwIrzoOikO03M2hCBnEK/6epNfFxkqf/dYpTE4JVg3O6nWC0x20X8 Li6D24By2XVUn6enLFg76oJ2bzfISWsqbiaACgjXleLk5RI5hV9WFB/MhcP/TYN6B88g o57RS7D+RC9xFX7ti0edNxXLlBSYqJmOagId9b2K2o4LjovzouMyGqJK6IVCkLDzfqNm ju1DP67fC8GChI77WDX9G2er+S0FHhthVGc4s/HBxM3AUQUby3zD/o1T0z/V777WKfcz YXbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011978; x=1774616778; 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=IIfuVNShSCGAnkztFExkrOnzU+0t+GNCxgKlZY4IitI=; b=fyKUo9EaE6+CWJlMuubd4U9PH5V5WkBAvNjdvYeumwFR/2iv9cg1JO8eBwRqB2bE+z xwGrmYRZeJrOsSQY5myLDV7QmlIzrAMasIZx4VyC9jMgEyryfOXAMClwNQoe/+/7uqx3 Z+G2YB1E03K/eYyk0HllpewAxtwgq1ka2lEG5nu/X4fLYpYh2oyGfjyul9+H9JrfPo+i K+7Kd+5gvqj4j6R8RstgJq9Bh1m6bvGyMwub5W9Gnu9XdnN1sDK6xojOlVZblxtfoehm mLodapSOZWjxvtQCMjnWLJusyYN6IWBLp+xcZGsf1eNkROccIlg5/nyCNxaWnhukIxl0 pSQw== X-Gm-Message-State: AOJu0YxAaW7H8yZsl2xYjEg/ytT9R/agXLBl0Ylqsy8amQ7k4THsNEEq cydENPPJmjR8yDRBOdSbw4lI8am4+3gTXFrACQcXDf3rqpMRlD0Y8Olr6VLXuRFj/bc= X-Gm-Gg: ATEYQzzag28V+4GiwZGczmcITYMtdIr8W0gsdZ8z/9jOhU5xZp+JV7dTeiRsvkqvC5E zTrnoAA0lRVYD1vFuRlXPhWdNrpbnqQED+6X5WkOPU+wnmwEoMu35/T9ZXWgLwlbNCV02rwfK6p 0Ri794kyKLRzIrcHaaujTV4SnVY0w6Qf1ztD/dF3f2xjZnGuOk7gfdePD3H6zPWFI7s4O8CeLC6 keYztK8AeddKWO+iisysM82bQlmsCyilG03lzV1XqBALBWauqVLG30P3eewco6zRhE61iC/vQYk UUnnBYnETScGHpE1N9ApKesm0+URzn0PXIcpXvXvxbFlF391zrd13pX+jUBMZbvRAHAEowBexM1 9uAiHmvXgx9PPXtc0sFS9q+0EiRzsW5JUmKRK7nXtA87Bp59ji205mDYy5ulckdhCuFp6jMGsHT 4Yd5Xz/gQNADJvWZAzP4xtRQo= X-Received: by 2002:a17:907:1805:b0:b98:13a:c92e with SMTP id a640c23a62f3a-b982f20c399mr201165266b.2.1774011978327; Fri, 20 Mar 2026 06:06:18 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 12/35] target/arm: migrate wfx syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:43 +0000 Message-ID: <20260320130607.2071996-13-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::631; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x631.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: 1774012337277154100 This will help later when we expand the fields we report. Signed-off-by: Alex Benn=C3=A9e --- 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 3bd98a30367..503b19b5d02 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 ? 0 : 1); + + 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 Fri Mar 20 20:34:28 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=1774012386; cv=none; d=zohomail.com; s=zohoarc; b=BGldIRiIHnbthkzswavnPuNMajEVsp1M2/4vkDky36Q9xrs22uMktpNvKFQlsugGhGAoqO8p39PccA/qNE249aAWvHrsmrAsRcIWtJ9RvQuDqenMDr8RKsKQdWpwwv0wHISluH4JBWJenvEHfuopBdoOQG26e2cEmZg5TuHlNLE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012386; 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=HI5bsg6gI1dq5e33RiLLzAmqut1VQt7v+7lGbNwBtkY=; b=T31Oq79egjTvkSmsddNbp/95lccTa66oNXf4j8NaoZH3agvulWvzopOxbkVe2AxMWNx1glK/YLGl+dgZCbWOfoML9yea4PUN3MJBDU4O1EBijdRHPGyHpXEXe4wrwNSCPZ4x+/Otz8MPwNcbZLUnITb1tFR58M/fXTAlcMBUee0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012386414652.1510813640108; Fri, 20 Mar 2026 06:13:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYZ-0002yt-VU; Fri, 20 Mar 2026 09:06:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYV-0002v2-CE for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:23 -0400 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYS-000635-MA for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:23 -0400 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-667acaeae82so2864660a12.3 for ; Fri, 20 Mar 2026 06:06:20 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-668d1cc5f1dsm1356965a12.14.2026.03.20.06.06.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:16 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id A65445F954; Fri, 20 Mar 2026 13:06:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011979; x=1774616779; 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=HI5bsg6gI1dq5e33RiLLzAmqut1VQt7v+7lGbNwBtkY=; b=omSix8FM5u5OljAKjZ+/eBcp7139xPoGWbSvAI91L4KOeINbVvDWMTMHQnTu7XOOhg CVrdrxef9nybu7mVTqqhQ/pQblv/48omJo7qVa16zlGXIUF++zk+qEdA5ebxJCXJoxtT M5etfFmt8qgJcTURwehq+IpQRPG4zzRkiXG0GR+QBiSUWZ2libR1gx0HEVIyUxY26lek tGOxnxAb+gWZCHgGu/DTR1MAPA6FC2gkIVN6HVqI2ZJxqvWDgWUws9/gbATJQ68rr0Hq NRX7qGXUpGhgqlmTtQXQqqJIO3QxTtMMZNF88WbyG2GW4AesIloD4xTLwskGc0tAybdj ziWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011979; x=1774616779; 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=HI5bsg6gI1dq5e33RiLLzAmqut1VQt7v+7lGbNwBtkY=; b=tNP0BvJLaHnAZCqNi1P46hihSjUh1Cgo+8UrcOAT/Gjhr/qoPKH91N+W6gY7ykqUXY JiS6F8y1/0LEpOGfUqX4kUGDO6c4nVzIcAWI3liQuXkIezLCcAEQyntx2CwPbbJed0vX 9edncyHO25HdzwBx2Mz3Zx3IA0tpE+CTcipFv67ekDKt+YcBtw4gyD/bFV7uH/mrJq1f udPRxKZfClIju7qSxkwTQKhz8uOOgt+DYX5Ril6POixK8skZ7JNLVMKB6YdGOgLFbvDN XGugFyuy5Gc1d0dYQdfZsFjblbmVf8dNtTDKPHZt4jf02iCcpoFJXPz5VP9uhQeZLit5 peYw== X-Gm-Message-State: AOJu0YzLEALWIOcYpGjCb+lPK+iuHO8/lvXhUJwbKbOI92wYcLZ4RwPQ o9dWRKv3mSrbUsSxQd0miPKzOVPONlbxC9aCxBfX7ZCyd4kQtM9cyiS9KsfVJZbhSi7snJ2JAf5 c6S9kjKk= X-Gm-Gg: ATEYQzwRzQsrPnTcfZ0IFP+aPa2dCZc6r3fpqQxWGr0fY/jyuWdP0MpFo1wXxr218ZY XQe6oW9B1Y8DKSLWVtyoCrfZGwP+BgZzGUXe5Li4pHy9IDM3Rr/slMde6vqtNTuTKf8YVJOzLzM hVW0Wc21VKSTkb0OZamCQ1uIhnh+HHZlZgAVav/j0Kj+DBK9ayozvvSLyQBYVRBTWlmKTGAk43b P1/k1qjAkXR+ZF/Br+x2gY4qHV8A1YrHnmThM+3rveO3Qj3msP+a7BEIAxSlzQGpqzujiyNFHKT YzYKW1zViMJaOCZcvfjmbnpp5mKzQ2lstCmN0NYtoTIS4qaOSdPpn1lPgKg0KEXBlY1bnLL36av 7LUUcsuEc5ukReIsQCyArl3erjiXjmK5UFRujx39dzHrFjE6lZ3oRvTEvTx21CiEa3zWBFsN2Oj PgAbdIJMh6FhD5uAYtgySt5Gbmhxw3Br2lkQ== X-Received: by 2002:a05:6402:358f:b0:668:599e:103a with SMTP id 4fb4d7f45d1cf-668c91005famr2219464a12.8.1774011978920; Fri, 20 Mar 2026 06:06:18 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 13/35] target/arm: migrate gcs syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:44 +0000 Message-ID: <20260320130607.2071996-14-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::529; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x529.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: 1774012387987154100 Added a little comment to explain the RADDR<->ra mismatch. Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 503b19b5d02..76f66b3beef 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -690,21 +690,49 @@ 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) { - 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); + /* when ExType =3D=3D 0b0010 RADDR is the data register */ + res =3D FIELD_DP32(res, GCS_ISS, RADDR, ra); + 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 Fri Mar 20 20:34:28 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=1774012670; cv=none; d=zohomail.com; s=zohoarc; b=ePmcGKYLGcCyNZ6TZkHUUqCtzeOD3KCqxAG3fLVqBDF63x2qUetmUSAd1uYPQM6iUUCSj7WXCB/QqDcGqTgm5+il90RgS1NFRgcrfnVFKiLvgezcSXrPg1nQgsfCIcPEXmDIepj3z5+PKkUfc2/7u5qaPWOVRUsX/18Pe/lVrVM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012670; 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=TCn4yIRAW7auCouuSuI90vgrmDQjVUO1b3NvJqSyDqU=; b=BnX/mn1TFrKy7DmGoqI3qP40nUWvGctwR38NYisdFYK0Qke6X2bylr4je0Q2tVYAVvxvTuQW3LDpgtfiQqw31J2Gzfyhm6qCpiM62wdjkm9AMvkO2/bdhpawx77bY2BofhDDd3fbMKj33BwYj97P+GrgD9N0ZoTgzUqV0v/5MFo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012670498161.50761645912723; Fri, 20 Mar 2026 06:17:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZiM-0006co-4o; Fri, 20 Mar 2026 09:16:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zhv-0005ym-6T for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:08 -0400 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3Zhs-0000Ms-7m for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:06 -0400 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b982d56dac4so10802666b.3 for ; Fri, 20 Mar 2026 06:16:03 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b98335de1d6sm158565666b.30.2026.03.20.06.15.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:58 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id BB9495F9CB; Fri, 20 Mar 2026 13:06:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012562; x=1774617362; 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=TCn4yIRAW7auCouuSuI90vgrmDQjVUO1b3NvJqSyDqU=; b=WNN1UmQl3PL5PKcAMnmoG5cV6yQLwkq5FIpzdAZ54nOj35Ea3RSwfVbEJA3nWo21+X CDP7QoR9hvAfNHXf6nkYkAoMIq+T4KSy6pYioc4jK5guKQFEgH5AOnP0S4hdLs362ry0 BgSzUgVvBkJYjvAz33avSV84z69u8o1LVDPEx63bxj8uzK8mCHvu/WRDl/NIGQTJncky QrKiinRnE4SyQJSyPOIWsfEBC4LdyYYLJidy+MpzbKRcrbULOchXJA6bWol4uFoZqlyd cVejnXcG008yStXpk1bDRlCOsn79WxHoViSWIZ8oTEEc+mLVonLlpruQrlkqbshGpz87 WL2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012562; x=1774617362; 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=TCn4yIRAW7auCouuSuI90vgrmDQjVUO1b3NvJqSyDqU=; b=a6WIyZhbVk64VagSTMsQwsVKlc1aHd9T+UZOGcFlBKCxCqxsFUP8DZDpkqkMBdJiwi qOCVAYrNag84OT6HFc0qzkwCXLlLbC0eQvXkIXR73GeXM3DYZnxDnsy8LudWO5SaGAXP xJWkKNs0eqZPOVqrvFvB6lqHeEWNU/D/rLUV/VDqA5JA2olBGXidKHQmC9PgE0mlR4Zv 4dGQqyyPMlmcvWZ16T2Vlv4A2p4jtdLyLC3gKYA0GXAWz59uyR3qDXVjdAJjtSGsvVa4 7LGfVEqMLupC+AH83a4clAdEua7qiDHzbKSk8KumWyCVHHKSlhZiC1VunnM1vnD8Zd63 Ef+w== X-Gm-Message-State: AOJu0YyWQqvgNKcTICykIJg7c51PqTFTryInRcRESZ3XYrYiSNd3fpZG ebz/pj9B/mAXL4wMIWqyuqyTrJLZdTDxCHRAmsJWgsTZ2rAC4Cc7thxAY3svkwylFgI= X-Gm-Gg: ATEYQzzueEXre53a5LmaX1rZ3RdyEFKUVy1GeNxxfYMAXH9uYMJr15smAwmh6TL0i9N 3wFar5N1ZcsprmIlxxbdBKhJv8shhOiukrajNV9bvlUxOwOE08KgV8JkJ9ELPCnPcZprbvqtHbx kJ3p5H72Jn2Km/sT7te7Aae72R7zzdrJsdT09IJnH+uXnUI0BEp81ehzDj9TCQNvUTis5/S0M8m oyv8rIv0TkozDqPg8BE4i9jwcB5R954kxBO/KGv6HDvc9k2xWyDn2CkroM3Rvp5KzXOn//owD71 pM5lx9lOneE8066Z+GxAh9M/LgvA8iZmjP/KL893NTH/wFNIWXnEdsjag5ADryPqQwKJK8DPcf7 ituYt3xMcpH7mS0IeO+RYEiOpCT6nfm6r/FBf1nXI99giMdCF9ZE+sllqOYlpveGHEP7dPWSNwM 8gIUqIC5w3zaXTQfDXJcA5qW4= X-Received: by 2002:a17:906:2746:b0:b97:a128:926a with SMTP id a640c23a62f3a-b982f4ecb3cmr179153966b.44.1774012562475; Fri, 20 Mar 2026 06:16:02 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 14/35] target/arm: migrate memory op syndromes to registerfields Date: Fri, 20 Mar 2026 13:05:45 +0000 Message-ID: <20260320130607.2071996-15-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62a; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62a.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: 1774012671342158500 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 76f66b3beef..2e3121aec9c 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -743,14 +743,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 Fri Mar 20 20:34:28 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=1774012381; cv=none; d=zohomail.com; s=zohoarc; b=I4lnNhiA4tqEmikWUEGJ/IpuKwpCI7UUlQxgchiQc+XlrySQE+gHiekkfvtAPSzW7rz7bfWtjjhCq491B06mnnx7Gi9FobDJWruRuVvq+vAYBr56pXptdg6ZzeTluKToedVax2QkIJiuoeFTL2cVEWkcHT97myVTUlbqpT3YppU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012381; 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=8STStOoYQOEp/cfPPvlXjVBa3GE+wDGGrfV/kvX1ag8=; b=QomIuOLSXgzv1BV/53ux2l8QgVHBfXtyualPkkyaRLhP9dPd5JqFNpSWhXhwNuHerbql7mlalKSryqK9GIdp8v41Yc3j37SHPiquiKPunDR9dT11/MZ5/ud+WkVqYnsSaHB1+Zuo5nWCI/3si9lireB9FDQXnuCRR60uqZAgkNs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17740123814471014.2668374704156; Fri, 20 Mar 2026 06:13:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYg-00035G-EP; Fri, 20 Mar 2026 09:06:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYT-0002sx-Cl for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:21 -0400 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYR-000621-AU for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:21 -0400 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-6674cba2c50so4140295a12.0 for ; Fri, 20 Mar 2026 06:06:18 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b983387085fsm155870666b.52.2026.03.20.06.06.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:16 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id D59F15F9CE; Fri, 20 Mar 2026 13:06:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011977; x=1774616777; 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=8STStOoYQOEp/cfPPvlXjVBa3GE+wDGGrfV/kvX1ag8=; b=boAPTB9eSQnVr5ES+YGqhk6SBBc8NN6Ro7rVZq5//F7DqlEF2IqNGcOWnBfxJx9V/T Ctx1OtEvfYMobng9LpyV/Q+aPODn3C/aBMdrUWFxSRsNJBTmB/V1A/VjIvMx5hWHgo9X XsDXtKlXK1ujbdOep0L1M4Poqqd401/znnFOpKPzIneNYBREFWVphYoH5uL5YwpLofxg Ruuf+b6Vu16xnkV0VvPs2wWTPWusaf1z20tMYH3DGAhDE/IpocwdEU705qLxQ1GY1QGl Ehs7JLbiEYwZjSdp0uMBrwZ9GVPVQkQNn3LpFAQehgk6wf+vR/tOkzav7ms0Hi2x5+bA xlzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011977; x=1774616777; 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=8STStOoYQOEp/cfPPvlXjVBa3GE+wDGGrfV/kvX1ag8=; b=r8l+6X1PEFBo/RQZMXUWRmv8Aumt3lNIo5SZBn19k5b1hywlThOoAfs5PAUivYPSPG nprDoH8yUTizAOsdBu+gzC3QsaiJCfHEMAPDclNBBqYIphvElIfR4Gm8poX7KqPje0tC V7AO9y98D9pqVY/EYfXk/ciVuijcYBnX10t/030Bx+UFM0ykh4tZ0i1WS0tbRnxq6sx+ FEygdK35HUz9L/ZjwEHL6Yfb2MX34WLxUayVmZTGOoPJ2KmaCdNKGxBLcHIog67BidJh rW6l2KWvbrb3rlxpjU2O/a3xc4HknB3gSTQzhMjxt+YnLgqFg+oWYlmzuf+4s/sMfiX0 mWIw== X-Gm-Message-State: AOJu0YxjgeUnN1HTuKxL8oM1gPbUcy8GL2oDa23xD4PrvK84ukiTxHZ1 c84folp8hFowcRGjrMyDqMWacokDWilSslPTkqCwZgFH9RRXOz4NfF/h4Cp1hdpUJyE= X-Gm-Gg: ATEYQzxvtje/IyEc0Qrp4qcimGEBwCRSWNrrmkda7wetsFWFtjEnUKJYz01gbkCprc0 JescBHcPBUCWNP93PzsRTLIPLz2TjMyXOLZPq3urZafUZiZy49IfpD0mlEDB6skv4JwmIy4mLOK ZPkjXosbYKTsr+qui/jkdHsVx0/ZXXrQZNvHrw1Av97sJKlOM4N246YRiXAmEgpywt9ZLrKvY25 1XHxgoWwHkDVj8xxm3TI+GtcUu0FAgluuCi55dnVB4WER+9txJ+WIXgkog1pVERuuiz3HiosEoo 3zJ17lsjRZaVJBBKbpNGJCyOEvVfwERvoPWSBbuaFsfJTyYeXLFqxYRKOLbB12NCe9JrEOSv0Cm CEpQl7PiS0DFf41iPZ/tSVTV/YvvG+vtgEzHIb2ZPHxdxTOUCD9owxei6ZFWGqX7UuNiLDvMeNu WI4pXIcLstomij3uEUJW/mp2M= X-Received: by 2002:a17:907:7f86:b0:b98:654:d9eb with SMTP id a640c23a62f3a-b980fa92acamr415061866b.22.1774011977490; Fri, 20 Mar 2026 06:06:17 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 15/35] target/arm: migrate check_hcr_el2_trap to use syndrome helper Date: Fri, 20 Mar 2026 13:05:46 +0000 Message-ID: <20260320130607.2071996-16-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::532; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x532.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: 1774012383564158500 It shares the same COPROC_ISS encoding as the other CP traps although not all the fields are used. 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 2e3121aec9c..4fbc35ce7b0 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 Fri Mar 20 20:34:28 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=1774012093; cv=none; d=zohomail.com; s=zohoarc; b=EuV1v0IQRCHrWcLgvs6mzIygupnt65La0M1QpJC7ceYJ4fG9yNwJL8fXeFUPNH9p0gFSygu1oAD/TKwbe1jTnc8fECj3YTfxtKDUwBXrLsVQLusBmGwlT8f/gU6ItUWAAr4Q45Ad+vt3FyZ9bdYKA7o6B7rDJBL/zTSO9pBdchc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012093; 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=XQk5EIWS/k8f7E8VJ5PddE89ZAccPM8Fu5MsTCn+yFg=; b=QUCTyJRMP3kLfz+2YY+gkuQ85yVf/Vk7ODm5gCmDT+XqM7f4DXbywDZwOZrCbf0mbtvqkC5p6fBi9wn1ZnokS7dNArLXnKMEjybTy9EZzIP9wOIWLh/NiVHaG64LFlJqaOGedJLM0JOpi84gXW+DomhHbVVZhAY5QdsO77OGQ8Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012093546850.7657603521096; Fri, 20 Mar 2026 06:08:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYj-00037i-4V; Fri, 20 Mar 2026 09:06:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYZ-0002yi-K4 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:27 -0400 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYX-00065T-QR for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:27 -0400 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-668c60b8f45so1748603a12.0 for ; Fri, 20 Mar 2026 06:06:23 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-668d2677970sm1350417a12.27.2026.03.20.06.06.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:16 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id EA74B5F9D3; Fri, 20 Mar 2026 13:06:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011983; x=1774616783; 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=XQk5EIWS/k8f7E8VJ5PddE89ZAccPM8Fu5MsTCn+yFg=; b=wwygJhF1IvIbA+AHsqfid4zxJWEwpIPd8E/mYRUVsNIxKyBqoW99e4/EQXkKtJdbk9 b3DtXyZhrFARu2FQQK1ZesoXHHStd1VC7pcdCcZAvGSE3d/WUGK6el8xgonnCRNGukwW CyHS1wHHjX2K6JKJg/a0SiwE35JlTU7XmY7yyIli+PXzjpw79IeK6qMPf6Aps3goHV8n qnIND9TarmcVDwXMdtY+Zdm6FX9WzE5IAiNHB41NMb/j4O/vv83x59IF0KGmm8+x5y2p DPx1H4Os2wpTWwyy9uyu/YDGbqaxaHBggaEDfy4T5MEd1FRVDLqiQbs/Wngj1LTiTMG7 kxQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011983; x=1774616783; 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=XQk5EIWS/k8f7E8VJ5PddE89ZAccPM8Fu5MsTCn+yFg=; b=gnnepKw4zRD9Sk5JYqRw/EoDAB0C+HE8NQQ0w0J8/hdJYprG+jwbWpKsnSp+8PC0Nk lblmgf8tmKE9WHRFgq+SqReOMwnV9quOkcvPqyxAh2chjl3EDnzw1CXx1DxSHPOOvtwe F7SKWXp6KpUJfQs4b+il0DJqEodYFGuAt2dlagHTpeKadOS+fTr8GngN2uycA8QOg9Iv P4eS3b8iP4YOIGdBnBUwtlunIbgWKKMGIIgFKsRY2LpNPSVSbvymLXQMON1CVVbl+V2O 5Vzl9howb3a+qj6TFuGDts/Lti+axzjbLM0bugxVOCof4i1QibNJUs5mIGXRhT/04is4 Gvhw== X-Gm-Message-State: AOJu0YzpMm5wGAgv/Bqg3TOsi1L/PIde2A5Bd9hE+qOeNiuXSZXex+Br ALwWryPqPLIAZ68RvUzaGFECeallFRCb0t38PG08FVeh24bW38Dv5N3WUOgE1552haY= X-Gm-Gg: ATEYQzx2aflp3NMvwF7RuiC4avlQwn1GWgeg4BGPn5ZHX0CLjEMVAvzf9z6N6EIcKeu dqoKl2RJIWjbIYcdOfbNE8X510c+GQDArgHztkD9tz3eObvEKry+vDdApXeAs9vTIQ8eRb4eR+2 ielyBorn3Zg/ok4V24tqyKryExQENppfYM++mQNO8qF/65YZ9+Jht3K7kjLFZL+ylsMF1tER6tf TSS18e9N7VIldv1Q3dq+R68UvdS+Evg/U6u6YyFI72KttGvYTweM6HNvreWZVvXbR+92RPjoEDU udoTaMYerPFpR4WY4moG5ld+YlT17joP+o52yv1a9gYwFmEK1+Pgzi1bmejG/6MrQo9qnBUfe5m rhMt/1vREjPmVhnk9lKdGmp6dSj5Ke6HnY/PqD4ME68v8dBVMRi7HFOypFZcSvUAu7j1m3y3fLn fQY8GTiImjqDx2eTmZkfSzzwk= X-Received: by 2002:a05:6402:27ce:b0:665:a417:3ed8 with SMTP id 4fb4d7f45d1cf-668c9b2ab19mr2361876a12.16.1774011982641; Fri, 20 Mar 2026 06:06:22 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 16/35] target/arm: use syndrome helpers in arm_cpu_do_interrupt_aarch32_hyp Date: Fri, 20 Mar 2026 13:05:47 +0000 Message-ID: <20260320130607.2071996-17-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::530; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x530.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: 1774012095282154100 One more step towards dropping the old #defines. Signed-off-by: Alex Benn=C3=A9e --- 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..5ee79f7564f 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 Fri Mar 20 20:34:28 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=1774012636; cv=none; d=zohomail.com; s=zohoarc; b=JdtmtavlkdNTebwUo4f8CHQB0+iHuIrD3t6SRL2voxOY5gl9eq8qniyJo0E324i0OKsAmmd5W4HNAsgFLvx7sYQccTesitFXkuWb4J2H0oxuQ/yYjA3wtBYs0I59f+bslooR/pDIJAPGuX3REPz7S1L8lHDvzekMxWzliNdBPcY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012636; 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=/4b4g1ndm+NdlMFQZnj8OfDx+Y1WcTpX3//RVeDa+Hw=; b=Tk2e3XKmcoUbt/rYxZJDbiWtYsDRQx/CFaJCPXVzeDUh74OSANR4+/k/YYFcNEPsHf6EXk+Jx26gzvoYKjQDgPzCmbwPA+xAT4Ld/qpRsMI9D1DFF2dn4uu7H2LZrhPIILbvsJv7t6oJvQqDtda5Tx+jAcuYzphq1YjBhThYeSk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17740126363016.63193394296502; Fri, 20 Mar 2026 06:17:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZiL-0006Z4-Jq; Fri, 20 Mar 2026 09:16:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zhr-0005ux-L3 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:05 -0400 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3Zhp-0000Lf-0D for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:02 -0400 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-b980b35534eso352554566b.1 for ; Fri, 20 Mar 2026 06:15:59 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f8da12sm160740366b.21.2026.03.20.06.15.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 0AC385F9D9; Fri, 20 Mar 2026 13:06:09 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012559; x=1774617359; 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=/4b4g1ndm+NdlMFQZnj8OfDx+Y1WcTpX3//RVeDa+Hw=; b=LbDryekaMpdhy151zLdMoSjOiWN9HTe9u9iDPscOGtmrejApkZlpgbsKuCpH4V2VkK 461TRahUlP4Jr1j53xj6UqvYviUg9wNDf6KPbACP/ZndkeV4xTtXjYuraV14Zs1I3FKj ut8vN8aqjaAIPou3UyG4mnnArrrcjUC8QoU8kYGWpUlnAXd86NNafTNXJfc27ASuK/aF wdcYBWK5yKLQr44lmq4QVQHqSlog0HCvJYcbPXdUmNzlKVMNWiOLXRgwl3LHeNKDK3Qb CJvBI23nG1ov7mpfZHc6jBS3hB1mAzZ8TA8p3q5h28WeLc4+6iQOmThf7MFeH+bMqhGH ycFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012559; x=1774617359; 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=/4b4g1ndm+NdlMFQZnj8OfDx+Y1WcTpX3//RVeDa+Hw=; b=YW42Qq5qR0xzPIzv1TV3hNL1uHZnwu4d9ZyVDzcl+jo1xWzIjK447K5Gnv+mWCvSFE FsJtH8/Torvl9KfMBdPsU6ijXgPciSHGvUz8YHZfiSLMHhSMhxOwcWaU1obD+d9098z+ vUHt6OXX0QfAibdJfsNFW37D93vAXa6SNo0nTCsAdl9Ze/WnXQmuGkTnsRdQJzCw3V7V cSNa3pkb9XOzsRc4nNkIueCtpy3fq/7v6bBHp2A5FaRe6wyS4ixAHxSvEkO7QRZwjVvY r6wQ9PHF3LEQBHNjaBKxCTuF5PdgNbaZnAp0OdBKMv07Uu2CLZlMc4ojQFXGtqoNaEhj y72g== X-Gm-Message-State: AOJu0YyVjqkJW3Nxlz1Uied9M7O1WBtukwtq24566tG/UT57tkpDiLvK szFwNgoqfCKpf7fvoGXa8PSZHqaS1kCNAg4WaYbtD9vVF1nzHXldkRh58f5xdygPgd0= X-Gm-Gg: ATEYQzwOtUPFDzhfNvkoErlDPDv10GW9ehvlG3AUyetapjb5DCxDDRF2hPRrEKsfG+z bNEkzpnZsxuO9VTZXqnrn409dam2pvveZE8MJ5U2u8dm05+hikBDjO14KsATEnkCSU/O74fWsGj OkTC60aq6ha9ftAY7Yin9Ued/DqAkAVqw5y7FTymYqnGQEyOZ58C27xKeRnm+ZzFN7Zr6rtb0ZK ISvdt0IH5fk6hZTP/NZdX7HAOfIRcUYno5zl/KbOkMfW36MKNu4thod55QV4wWlwJIn3RoOlvSl 3DFef3H6v1yE2sI/v8Cc8gk6vBSMponwtSDklP4VtM61qRTm5evXXFJPQx2nCQc93aVtgzpHPpg sa8iKTS6XHdUloYU1IibZC4ifbRisL8r8axKqppMvbRuQ1XRAgowRoqbqEpdylngGT3jWUpuT9k Cu/j+ZJgJZgNj1kOUbz/oxkxA= X-Received: by 2002:a17:907:1c09:b0:b97:bcac:2fd8 with SMTP id a640c23a62f3a-b980f950567mr536768866b.13.1774012558595; Fri, 20 Mar 2026 06:15:58 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 17/35] target/arm: use syndrome helpers to set SAME_EL EC bit Date: Fri, 20 Mar 2026 13:05:48 +0000 Message-ID: <20260320130607.2071996-18-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::630; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x630.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: 1774012637137158500 This removes the last use of ARM_EL_EC_SHIFT. Signed-off-by: Alex Benn=C3=A9e --- target/arm/tcg/debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 Fri Mar 20 20:34:28 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=1774012628; cv=none; d=zohomail.com; s=zohoarc; b=BqO6BrIaHuXFgEarjOWGcSqJ6D6wyLqXl9WGSIka8WsO/9UFF35qt0INTDqraeVZXUmR6EsLpYYTnAOzKxrRrnoe845/oeiGMci8j/q1y804pxutErjbX2DUGzPddPkYwSG2a/nYJifhbjMmqqJYpTYgAX0/L9C1MBhhSa6cxtg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012628; 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=ox09lJlrIlX36nSOA8lgaot7ry6qFt0dJt6CN6nPMoA=; b=N/TyS2JmfxACmAHsp5ohFmbEDakqsri+53poYJVRahh6Nc2LuRDdbTDsS23dAZkP5d8KVpPn8sipUKQcjpksCrV8aAnottyOs0MRkjQE6GW3NZ4ItB/9p7NHLvLOdjuASg0Q7wCPZnv4MULgHGkc4b2T514dkAIagH2i62bxeS8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012628312794.360441609353; Fri, 20 Mar 2026 06:17:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3Zi8-000686-6P; Fri, 20 Mar 2026 09:16:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zhs-0005v1-IH for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:05 -0400 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3Zhp-0000Lb-A7 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:03 -0400 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-b979d16dd0cso259899566b.1 for ; Fri, 20 Mar 2026 06:15:59 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f8db2fsm163039866b.23.2026.03.20.06.15.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 20F0E5F9E2; Fri, 20 Mar 2026 13:06:09 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012558; x=1774617358; 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=ox09lJlrIlX36nSOA8lgaot7ry6qFt0dJt6CN6nPMoA=; b=sU4T0j5rQj+oBfkRNHDvtITvBCKkewC10WuPK0PZ8UwtHmGiUtLpKYCpP575Xp4JES V6rJ6SCxtFxvJ9rP0moxYYatgkAcKdTrzr+4dG6yKqG6oxHUOscSgg7cImQNXmN0NbYR R9fgtwd/nrtK3aTCytvMtCKHVFQyAr/xohL6LJ+D9xEe8MMxDuh/s+DxW+miycjKncc3 jjnB3Goa7iTT4+lxEnxPkLGLmeAh7ZesoYZHksrmttfrsqQgeBKq0urZbmFJDYCAd+7F rtROuEYxgNycP+l3JioXUlB/lx/PfEIrIeStdoirwruh+7+fXq2MDZV/5Uj5Bdj1myVk QPEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012558; x=1774617358; 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=ox09lJlrIlX36nSOA8lgaot7ry6qFt0dJt6CN6nPMoA=; b=QZPoimxV2FVDqEQHpn5ssl8vq7QnBZmzBTWsFSbb3MGo3EW94/rvBku1jaBsYbC+pD o6r9f3ua9L5QmWYHMJRul5PfAeqos5THlM7Gd2SBI95uP9IGXBQ9iXbKSRVkvmSSaoui WJaBM39Ut0Z54s7E0wiZHk+Am1v/oTydCsaw9DsL3YX9TtEcbtLhHZlBCa0u/1iBKBqI Srcap1KQH1VoFqFbxqFGzkPIU3hiCXvRDXE7rDo35dz4KmDeH4P12JiTbkh/apYvKlLU nwQml6/CBsEjfoSMMRdfthQB2zFTxXu4EpCnMVGntb9LGkwHFkXIzv81sIPqgbgv+aTk 94tw== X-Gm-Message-State: AOJu0Yx32s/zxHwOag1U4f38a3MjL0tBP6uIQKWE0jCzGc0x3u3fMB5h txPziToPQXe/prw+sX3g4iR6qaJC2O+pgnFfLoAMTGl7xyt0Obn1NFO7s4m3RdsjIsqoxRATNx5 Suw8mnv4= X-Gm-Gg: ATEYQzwYIjfD0245p2AMFLq82Jup8DF0G3ENAx9U6rxyFOviOJFeAS9bmF2vzGLdGTl V62PY7B7rgotVeMgDIM1zPE868WivelHzSvILilDNWTutzLH/0EtJ21Syin9EURDcClYXcFU6Ml F4tctBdUIByMy+1/1+z+UZG+eJX53LLd021J0lGC1IzjJBv5WnqdlhD1pw0pfmt6Ligt3qSCDCj ettIXLVQzLT4+5hcZUxOjLQBCpVVOiN7V/LBRMcE9vIzU+cUzfct/4RimdXtRGyTfWFZozPZmMu yerTgAUPbYltlCyCPK+1zseSDMxmA9aSg6o8Yz7eSu9hIFvP5Qysdruui7UfMpeW+/9DyipCcZG D5cXYm4PCPa0LgElhbYwFo5jsenWWmo+TokB/xBkJZ/+7QEGK63I4IFC9PCaiGbpJevUS6bApDZ HKutRXHBYGKokjXDKdtou7eTQ= X-Received: by 2002:a17:906:8406:b0:b93:99a8:c366 with SMTP id a640c23a62f3a-b982f3df9d1mr182055366b.55.1774012558228; Fri, 20 Mar 2026 06:15:58 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 18/35] target/arm: make whpx use syndrome helpers for decode Date: Fri, 20 Mar 2026 13:05:49 +0000 Message-ID: <20260320130607.2071996-19-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62c; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62c.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: 1774012630078154100 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. 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 513551bec1b..f5646e7127e 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 Fri Mar 20 20:34:28 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=1774012649; cv=none; d=zohomail.com; s=zohoarc; b=D393g45C9AqZFqiWiJabKn/zx5YTqcy9sJVkGRNDB+fBHnvQcgIk7DPb8C3YufFugnihx3IDulEimt2E1wXmAl0fvwI9rLVCOvU9l6aXUD8gYWq488WRwICnuLDQU57qa0914LsMzq57J/dCYUHqWYOg5xCG3oDqn875MRWcSPQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012649; 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=bIz9gW23DrBUaEQreL8nJOWSO/UpZAg23ZESrVKKT9Y=; b=hMrlJg3bn9bEBBRzc8gv4xtllDwwVKcyPPBtnrdpMyR5BEuiUmfwA3n4yfQbpOw9whzo7YGIngOcDIOnvhOZc849yiWWEfu8UMKPlIVPVSqpYYTMTt1Pww1tkRy1LUXaHx8RRoqnpm+/wtMd2DA4iS56Hb9h09XthWa+yOrFO0M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012649103961.8590454146329; Fri, 20 Mar 2026 06:17:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZiM-0006dq-Ch; Fri, 20 Mar 2026 09:16:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zhs-0005v2-JK for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:05 -0400 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3Zhp-0000M7-Vc for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:03 -0400 Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-b9825ba7e8dso211889266b.3 for ; Fri, 20 Mar 2026 06:16:01 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f43b5csm157132766b.1.2026.03.20.06.15.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:58 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 35E255F9F7; Fri, 20 Mar 2026 13:06:09 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012560; x=1774617360; 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=bIz9gW23DrBUaEQreL8nJOWSO/UpZAg23ZESrVKKT9Y=; b=Y1Pb5FetPbGxEhiWBIrs0G8Op9wchqtAMB0wrqIadaJsKdJyetnC67bsqF7+ib1/L9 48wdWubzD6vWO5nKdz4z50ZwPFQ0yyfIoXnMucHBiJHSpIjxd6SHXdhTkSfNxHJDlQiN MgkQ9PwfHVLNKal55NjAH+9Zcnr7pT0Op3iZbWQ3PswRaqsNXAOIXvURGdL8x38QsXr8 taxr/TKmgZ/k6zPLMbxhqEvZuYIyfyEYpb4ZAb2bTdgtGv3P+nIoKO+XlUw4dJtHaAIC CuNqMNXmN1YPvF/RzzwUEdfYfGJrQd3Iip0izE/NuDy0nfon85B/O8H7a/U9hGA6KCI5 qOyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012560; x=1774617360; 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=bIz9gW23DrBUaEQreL8nJOWSO/UpZAg23ZESrVKKT9Y=; b=RQtVhSt3i/LtM1Yu6Q/mdCQuKj+VFqIvEciMLtpSB6eNnibuu70mnrec+SzJS0Ir/u L0GDfm4trc1mTtPnQ+Q46cMZ6tbBjCZQSh762NTshLZ4K5d+ClT4v8EcBjYiXbkgdxCA OVDna8UCGgF/Z4KqxLzI26/pN1VqZn6Nxs84SLZNfJevLe2EqbffOFyH0rhyIGFnD45z 2h9blEvaTDM8gCzPPpBZ0bFm9dAM00QgkbFaMN2jMzmufsBy0PEn2mikIiM8RWvRMvMZ 5KQsXUhAG0CjIDlSKj7wNDNMzNWIRyZEKu7XhQOKMzT+KQcDEmhzT99A40qXhc00CRea ecSw== X-Gm-Message-State: AOJu0YxFOSGwLcgV+4pgqmUQOnnSLj0tAi9MbaAdJtmiz32xSWI3eNsv NWphnBdgFG/2dblk432wS8hWlYrrzUjc/KBQ9zpsBYh0qoeru7FuDhdSkC1kx3GVixY= X-Gm-Gg: ATEYQzzrdgPACiQG3vQj4qJxpZLyVJ3Qc41OlOZZu4COtLCHrjP1Kv9OrNoh3yiuE1Y oZO27u/CT+ljNpsQ0OtscZL6srCJRKOJSaUfg9f+F+Ep0UNzN0pE7SeO3HHvfaXmlGK7yNzpxjg hHcsiD7u13mOosoqUATeMFPRJFwfcBHFWYFxlMM+0Fx8UofFZ/E5gIw9ZYDr5TN1utUuUnA+RNT Is0fpkgUrIJdoPsZ5vbgEoGc22xG2eU/HoJPIooXeD6w4dXd6bCuN1Y5w2HwYOM0uGdBfC4Jz6c n/DnmzyctNA1+BEuxggyGCDKM2FUnpiShpKdV3HtotgvWhYSoUcoBSxC6s5RYRCuoHpdSMP/NIi oxvN/u8OOSI9C3f2WjlmVclyk0t3mhLXu6s9cef0L3YoZjnzgYhtYN2eoFuxm9vDxpSEWcW45GV X79ffFnm7rGbCAFTPGcIWM62Q= X-Received: by 2002:a17:907:da4:b0:b98:44b3:7e95 with SMTP id a640c23a62f3a-b9844b38052mr33210866b.40.1774012559958; Fri, 20 Mar 2026 06:15:59 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 19/35] target/arm: make hvf use syndrome helpers for decode Date: Fri, 20 Mar 2026 13:05:50 +0000 Message-ID: <20260320130607.2071996-20-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62d; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62d.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: 1774012651236158500 Rather than open coding a bunch of shifts and masks we can use the syndrome definitions. Signed-off-by: Alex Benn=C3=A9e --- 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 Fri Mar 20 20:34:28 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=1774012671; cv=none; d=zohomail.com; s=zohoarc; b=dwTexrkG1CwEXCU0YG1zl88uoGkSptXnk5gYIkkrUGZPqy+bAG8d2YgFxvM5KKnxc/KZtFTwbJI7bpLtX8XSP3XjnhxclaMXKsLBgvRm39r1o2nwfGeX7wOgFc6n2AGqZnV46oVnxomvMN4WH07UWFEuNeMs47XTX70TMEXCZRE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012671; 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=ujKppTRG/sc4zJGYXpDLc5sF8JwfLa5qpUqi5ZvK+Cg=; b=gPXf6HjMMjCjABGN/Zhz7uAxLHxS9kx56+XcgWRUE2s5ND4Qtr1sLppnADMGTkXt9F2BHpqnIntbLPkh4ksOrdPLB1XcNLew4gwgPT0UAme9ILkTxltiwAVr16EcndJWjuLZsCg2ETklb0wQmWWVEf3XvSML/9ySdeErGyAwlhU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012671348594.937277335699; Fri, 20 Mar 2026 06:17:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZiM-0006k2-UH; Fri, 20 Mar 2026 09:16:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zhv-0005yn-6d for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:08 -0400 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3Zhr-0000Mo-Oh for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:05 -0400 Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-b979d16dd0cso259911666b.1 for ; Fri, 20 Mar 2026 06:16:03 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9833871003sm158908466b.54.2026.03.20.06.15.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:58 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 4B7D35F910; Fri, 20 Mar 2026 13:06:09 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012562; x=1774617362; 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=ujKppTRG/sc4zJGYXpDLc5sF8JwfLa5qpUqi5ZvK+Cg=; b=e8U6GiD46mOiklWq8BSzxz/awh2PRTW4Ok2rqTLDMvhAlcqOXHgxWIlnegrWtjOKGn 437bQ9IVzZY75ZF1S/I2MeMb4X60C+me3M82hsiwQXpZZCsobjJYFGnCh0hb/Vqxa+2u KWvx2FGh8dCLWybhnl9DUbX8RVaoR/P+KBW4+FDOE66MvPFWKu2isbyj85hdIU4r9t9W 4gc1Rf6vQ/v6E+Ohp7olES3OOdu72Z9pu2MO5z+s0iyVWShzEXZ+kxSI2JB0BjRA3Bxd ar6lkCrst77brHDjf7KMuhSb+wkhjN+49nkDm364qzbrjeXUPP9LsXY+g0sQpBgWcgkG ysdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012562; x=1774617362; 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=ujKppTRG/sc4zJGYXpDLc5sF8JwfLa5qpUqi5ZvK+Cg=; b=Ym+lKQxKhU9G8TM7mTfOVdnRFEejZwTx0TbXQFTbq2v7ArYYYQZGD9c2eokLL6Ml1P nB4N1kyBDdFPlIu3c7k8Ej3UnWJcKTBrkI4ULSTwXtg9AEX94AiUSRj+46U6X0sClvcS okbjdwXg68gpgho2cpMHZsgEim/tsSfqx2UbDMDUYo91FHlN++HfgK5U2Jr4gCQ0CYMZ +1Qu5+Z1xIUmWJ7AuGXDL6IntMOH7ouWG28H6Fg7JKJTP10yOQrxpZUwQufqYs0CvHbr JooO6FPyhnOkf0yzYB+7iJ/tmqhxHMulQqg8eEfz0NRmgsUaLYzv5rh9x1VrdBT/NJUP 7XCw== X-Gm-Message-State: AOJu0YxCsXsr5kYUUF0PoZskxgKYWr9Wf6a/9MQTPaOm2i5d708RWGW7 bO3GKw1JZ/keR2y5Cp0j+Zm84lSEhhmhYYC44iIDHMpkacO/5Y2odGVKQ4jH1GPnJ7c= X-Gm-Gg: ATEYQzzciBuTEfphA7ou7IS3hGEFKE1zMWRus+CZV5V0Vc1q++tHKt+r8FvEufoX1bk bP5M1JZcpky/M0aATBRGX3ITKnxf1so/SXLjnpH3YlSAWwkeAZGSXFN+7VSW1lIaPsRRFT+ZdCT t4GcpWYfzBL/Jh8e4yyUZ4ptJ1I3sN9F8bsg6HOh01SHXBGDkGGIvBX8y7dIxxdASN7+KCIDCvk nq5jM5b6TWsBxpWOPVXgkKjAhZbT6m63khygF1xZ3EpzNjwrquJsBi2GdWdL5nGSjhmyzBDUZC6 sqC+oALFgWjdun/LxbyzWWsscdtzCJUbFReL+UoEowx6s+LmpOHZFaTLIY8QBsIHcbOYcbZIoIc AwYE4m7sXU7vETmtbhjBNdMEWgrX0GXDO3XI5PWKurt93QYSColQZQ1kpX5v998IEGFs6KYENLR +0Km0gyFf4nZ89Qy1mHHsCnU4= X-Received: by 2002:a17:906:f0d8:b0:b97:b379:b3fa with SMTP id a640c23a62f3a-b982f35f23emr183606566b.39.1774012562080; Fri, 20 Mar 2026 06:16:02 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 20/35] target/arm: use syndrome helpers in merge_syn_data_abort Date: Fri, 20 Mar 2026 13:05:51 +0000 Message-ID: <20260320130607.2071996-21-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62d; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62d.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: 1774012672934154100 One more step to removing the old defines. 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 Fri Mar 20 20:34:28 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=1774012386; cv=none; d=zohomail.com; s=zohoarc; b=FapvU54dvvHFRUQ/RdQw7ApMYvuZOAY8/BZjMHa413NzWaUIlH8eZGwQjAxQi44oNNwdw6yMvACtEZ3RAZ4oxFrZZadsJ9XEsRqKKKSVDvg6x67SM0y89wsMv2LCLrXBV8DneUp2bPqyQpjkbZDnG8VzjTZXNTb2HskHIiYhOU4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012386; 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=fsdtiykTnW0VjyAme87SkjxBD+RX78r+rOirb5jXuhA=; b=MeIlj6MuygQd1qQ7CKEpswORFx9T+NEp6BjC9vVYJjja530yTWbyvXVJbHLaEn9pAXBzFwoT3o/NYk29q4736Iu0CX5mSneIuOl8CREVqmFuxU/woiyPDF29F1wxZ4pthcOp4PVF3x5bW+YLLa5WajPEHqQKSo/bHC05EEG1SpM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012386785168.32720738102682; Fri, 20 Mar 2026 06:13:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYU-0002uH-S8; Fri, 20 Mar 2026 09:06:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYT-0002t7-Hp for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:21 -0400 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYR-00062O-FX for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:21 -0400 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-6674cba2c50so4140301a12.0 for ; Fri, 20 Mar 2026 06:06:18 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f88d02sm158124966b.14.2026.03.20.06.06.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:17 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 617645F9F8; Fri, 20 Mar 2026 13:06:09 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011978; x=1774616778; 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=fsdtiykTnW0VjyAme87SkjxBD+RX78r+rOirb5jXuhA=; b=DciyGpdEL4wLt+nnEB/K8fQ9bBZ1J0Yc/2IfcJZrOm7A0780bOhEFOSZKNUDHa4FNt eF7laWU0bZpLCTotdSHiWXeJ8sC/CRW3Fr3b7DfWnggkazK7q8UvwxJVEC37wLBa6bPO nBa5HttgGBBxU0JGa3MRubsjA8PfumCD+7UK7356lU9trzMlAxKtZfWKJE8r41CDwHEa Ua8iJNOg/Vg6xR003AMaB74iQqkeoOCp07hcV4w1dW2BPHPfAQhK0MRZdYlsMOavRcjk W+3iYrTNGsP+5cMngkpV6KFKn6vatnFZUG1561h+UhaPmdFwVI4erkzGtE6ZOEZ364XU F+vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011978; x=1774616778; 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=fsdtiykTnW0VjyAme87SkjxBD+RX78r+rOirb5jXuhA=; b=agtIgGia+dnCtLbSPaoCNVFoSmVrE6s33Ciaiq7ZTOg3UtXe3rhSPXhSRzn1nFKFFl 4awUyol5MNP1mwTSI6GTa5lzVS4hCPdZ0G9Sy2gc7WbN2y+36+/ljPA9Rz3/NPM2Qp78 8FZKq1LaO9rB1bE1NxkgAaMXwXuefcMekHjGbyBt1GLBikBydBGNcsV3u/YS3tBWqc1h /x8I/yDvGTh9ryQck8s+pGZHHNB027lzOeG2nwS1HELoZ9LRyGGTNAJ9GJuTYCySqm2Y yE4Qv4Ehk/ktqrKNNAh+33P4na5B0ZJsCDlBHG0xfkBhG8P1VnG6Pinn+9bhoudb5W62 U7bQ== X-Gm-Message-State: AOJu0Yy4b0e4DI+EzjlEHY42kmRq0vuZa93yBX8sNwolfCyPpssMDkaK hhdUWivRR64Evd8sNXb3q0250u8NWxDeef9EbYIzlRWPJYOc/eITRgJ+OgGA18vBYgY= X-Gm-Gg: ATEYQzwKlNXMdYJ9Nn6IlTi3jcSo3cbkuU2pTNpu4TgdBvxFhghxkKwEUUnp83zXm33 pDA1366r1VSKvDwteChsdl/D6UOJ5YZ+qpqtgZB+9qWebyyVAf7Yp2vlLKVGiWpCJu3SR9/Mkbo aqUH4Cg7GDr+NTB2nIE7yPqym/N0OHFHlFS27GpwdCl+RjdHKKugplCQ+dOpbAIUqp1M2JE7aMj baeAP4VzCiKppE94mSKVfNe7/r5FOeIZ0NnTsW4gx/fTrEMtUO8rQomggufBjLeQmFRcupN3gzk EqGGI2VaLYfVgPQe98GGFYC67eQQNevb2irQNgixuBD3/qItA75Z0J0aPn2oAX3G+Okn0ZGN4dK AQ82NtI6UkiXDPEndPztOA/gStDMGtkAYf9ZHnOG0PsI3y8t+i/FjhwIN5Eq6eo3kIoup8B+Slt VEkf3VkVkQTcE7wG53J+B1zqQ= X-Received: by 2002:a17:906:7947:b0:b97:9a7a:9d21 with SMTP id a640c23a62f3a-b980f8f9d4amr463136066b.4.1774011977762; Fri, 20 Mar 2026 06:06:17 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 21/35] target/arm: use syndrome helpers to query VNCR bit Date: Fri, 20 Mar 2026 13:05:52 +0000 Message-ID: <20260320130607.2071996-22-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::534; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x534.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: 1774012387594158500 These are only valid for data abort syndromes. 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 Fri Mar 20 20:34:28 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=1774012638; cv=none; d=zohomail.com; s=zohoarc; b=cD0rHdi3nCvy3k/dZ7JKSpDASN16SRu7NQFsGcimAXxR4yjMnoPrOG/Zlaid2pLSV8DXKDPtyYB8Z9ZqeDPddQt/9vKYK80qs01KVZbX/V5OFDHn4IX3UqBxBAd1XljfWZSlH3azYMMzW529Uf8g179+eD78GI6hLjxSEZ4L0sY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012638; 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=D07oMhuWTwLxwANSJgDlzLINm06uozRFFDE1WuQsKhw=; b=akYiPJR0d0b7SwwsKMd77GYLuqMBJnZBOFKi9xSnQPOtYjLjuEfH6ZAtIhTb6gGwYorixu2EInsAtk4mPTlAbaUu/Mn9+bKjNXOThK6Un9KeJbrFXg1byRFVE562J0G1Ov976h1k4Dbn3aonPmrtdt7uT9yXuL2pgKRVIbv3nkw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012638199633.5607992677691; Fri, 20 Mar 2026 06:17:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZiJ-0006Lq-NO; Fri, 20 Mar 2026 09:16:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zhv-0005yk-6H for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:08 -0400 Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3Zhr-0000MM-AL for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:04 -0400 Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-b932fe2e1a7so253671366b.1 for ; Fri, 20 Mar 2026 06:16:01 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f8dc51sm157048166b.22.2026.03.20.06.15.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:58 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 76EFE5FA14; Fri, 20 Mar 2026 13:06:09 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012561; x=1774617361; 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=D07oMhuWTwLxwANSJgDlzLINm06uozRFFDE1WuQsKhw=; b=qOB2SWVn6vWqI+boKVaeQyrdKCRoCMZ4rFIDGZ9MvPIBOljcVDwdOG0/KTNpPTb5lp g1SYTne0xMfy7zUKWZP0U7DU34adANindCIQVXFxVd0dXcT6aDWv0pHOdHuyruzkmPsG jY3gXWYzgQqLiklrl+1FwYU3yiikR7OhyNCYJh3DAxty+3E1dVuYUEuLkpzpUrD3tjcr Rwjk+NeRNCkhXu175OEPiwDB/zK0GVwSyQ6qoLKnLLwEu13fTb30TqZ9NRI5SrRmvi1q Cy76fuc4f9oRBFhWGsgGgrGR3H8H104nz3iuw90mOunnGsaZw9JgcVUcP59Sg2akGdP6 L3Tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012561; x=1774617361; 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=D07oMhuWTwLxwANSJgDlzLINm06uozRFFDE1WuQsKhw=; b=cHpHIhkEuaHb2LpQEJMufDVE3mcD4+3wIEJWfnNUNkErTTDhIVYvgYNJb1bvgk1dBG JkTtuJUF8KDvIW+A1PoQW19RCoPPdS/07xn0+4ekB0mq7SzO3r0JTc4XDPsn8h53RGtP KsuCE7WC4kkWsZ7vFTK9mOPrNtcd2nlzO4PJppkWAAeOuKaQ2n4TddkKRF4yRXycXNIt 11IzMQoAzBkkYxQCkHKtcvUJETf0viRCHwP7qt9KI4OTt/cDmQueigjV0jc5V0Nmq3m3 hhLui1XYX0sRIJC+gZgEg9ie/h1GlAmBMzL+pROGm4JREg47XTRSrT2VafQN6jyX2Puh kQ4Q== X-Gm-Message-State: AOJu0YzyKBN+K/HQWDV4OTWEzxEBE3v17ywlEiAM6aw8sJykKO5JfsI8 q0ZWKkUd4rKsBH2vyFInrlsN0ZILFSr27B1wrX2V/en54LxtnWDs73neyJbpGrC7b1I= X-Gm-Gg: ATEYQzwvS8ODSdvV2OQhCDJqhBXNCVwSDdAPxu6VvowJ9iR+tzGhzFXSD1rJOuDG0Xb pBdgcRS4WaYwB7K70ZMj+UgKxDOccJ2Mki1QfTIJHEph9qyOywygwzHYgHTROXJR/qyPsfrqwEl mF8Vd6cfHdYGVPLkh1hgTPD8I688A4xqVGCR13umsT00X6dtAo18zDedtWgiJCIEKPIPNxG33/+ 6tuoeP/rAx6i4hTCQSVVHO7OiExJaLrnC1HyYZTm4X1+rxsURxdxsgwgPPw2Gy1h4HdV1JLnf3z 5BVbocqO7W7oYaTbayP1/PTQi0cQaFGEohd4eL6+wMJQQMgYtBXyQCrgK0LlkLCJH7TzJgTpvN9 aRO9YQfNaGpBzeFHvlxV3424RdoSFzIsCbUBNcnmEALrSSZMVR9y70UPMP4prI4CgGzUu6tZ4el TDIT+GTSO6TQPoo/KnWLcY5zg= X-Received: by 2002:a17:906:2092:b0:b97:c5dd:c661 with SMTP id a640c23a62f3a-b982f3d6e2bmr150366366b.45.1774012560679; Fri, 20 Mar 2026 06:16:00 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 22/35] target/arm: remove old syndrome defines Date: Fri, 20 Mar 2026 13:05:53 +0000 Message-ID: <20260320130607.2071996-23-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::631; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x631.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: 1774012640244154100 Now everything is defined with registerfields we can drop the old defines. Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 4fbc35ce7b0..1887467b719 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -106,16 +106,6 @@ typedef enum { GCS_IT_GCSPOPX =3D 9, } 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) -#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 Fri Mar 20 20:34:28 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=1774012627; cv=none; d=zohomail.com; s=zohoarc; b=ZEBTDw342BkJukTWOp6iCLxoew+iCuTG3s31FfcCZcim594YZZkjHoHfb559bBhngUTM1nLCpXEAM+PaLKLdbSeCmijs1K0K+V27l5A/E55HtGDtgDHx+aMlLm3B6YcDdvRM3LprrBadsUVLHlfpwRKdIaXhZXCzFRQ1pRvTCqQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012627; 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=JNdxjerdbcZP0JgKWD/vBlbem9xMpUBJ6AjRsNNYLJI=; b=Ey12XfRuHza78Aw6ZcnjkOz2H3LmJjonP5T+xIDn+w6CJKngsyv7B65A0QVq1xfu5mgLvYaPloomAZjh+jEFOhRDG/B5HuwfFZRr4mdPFc6RqhxWrwTBKERQcJi0MVLvMv9wVZ8Xm+tkeoWxxgfV/Hxq3O6pdW9zsexyTHpAAJc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012627535746.872650238293; Fri, 20 Mar 2026 06:17:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3Zi0-0005zZ-2E; Fri, 20 Mar 2026 09:16:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zhp-0005uj-K0 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:05 -0400 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3Zhm-0000LK-Fn for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:01 -0400 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-668d9dba217so1043760a12.3 for ; Fri, 20 Mar 2026 06:15:58 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f8c177sm161097866b.15.2026.03.20.06.15.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 974F75FA3C; Fri, 20 Mar 2026 13:06:09 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012557; x=1774617357; 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=JNdxjerdbcZP0JgKWD/vBlbem9xMpUBJ6AjRsNNYLJI=; b=Xv506pyY+L0lmzPhjPjBhhII2nSimXVh7ezb8zWscbiWaZHMe0aN5Io+FKIe5PfJz3 GLObtUNdKteMBlMXxYLg2tVXudUI7SguIizk/OKVd9iP9KeM3nf7elbooJTwkPSoDaPl dHznrAtGM6FSk10PDZcv+H0GLMegBCDUhI3nV1qMklAuy3gKN0tXIQmXGxVrnTgedX3I l8+3Jo6AhEoZsT3B5FyDeypNuCphIx4D7fZtfkY/bzMS9+L2MOR+9wYFrZrcoC1jE7Zn MdITPS0WQlgZJJ/4ZxnjBV8W1wLEmgiqW5z33pTw3cVWKHfrmM8IY20ae5D0kZBT8RkQ 2Kkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012557; x=1774617357; 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=JNdxjerdbcZP0JgKWD/vBlbem9xMpUBJ6AjRsNNYLJI=; b=OBr4+gtuXPI1413Iut8NyyRxdrI1zPVfDwNM3pRFZKiPSfvf56skpZQUlGvbOoguPE /sgIrx7bhi8XJx/J5qKMmje1qyyy3qVWwY3FxEwcUZ+0QVyW3KVPH/NwygukeydmTHnD 3fyaHYcmTkP468/g0/m0PWkzbdd9faTH3SyJD1CAgVf1JHT9WWOoFHFQR4VHpNarBIEg JdW4OQjruRmyrtWKjyzU77tdd02+wcn5Cmo5mp4+zibrvqyRJPLIMvBHLjufoHWVdL0j 6FVKWvqAqlU8VeiWMJnSgeEhk8PvjF/DX1/mKIVTCNJSamTZcg0OQaQXMxZNbp2R8Mnv HvYQ== X-Gm-Message-State: AOJu0YzY2vlUSO+2Y3vLZeC4DUQ08BMDV6Ci0RGPayR74PZCTc+kdLgX 9v6KGPvP4tLr4pa2/8LmgXEyC2LJmEj6GiveTKzQto7pfuqDCtm8DZBUOkc4xOOl3oU= X-Gm-Gg: ATEYQzzVOHSiuWHQ6eJoXc21VCgKD23vQR7NAK1i4OgSPbW8BsOq4SBcRZnUvz8qxK4 OC/6Gxzr+s9UXW+GmSRxV0OvTe7WtE5KWT4BQx18MRr+fTLaJQgbLdwjM2TbGF7iPPqlCW+SxVu pZ+jaoQmuVPGTXXRmtBdSD6oxh2t5SxRTyI/voFSRhDg7ibXz708PfmSouXBcPhPioEU1lVhMZL pPnohLcibrZvvPaccB0g4KotvFVioGdY65Hxp6qe0Bjq2HFhbx+xD4713oz44INX8quiUk91TAb wMHSf3ut3kldDDN6BzzB/s4xaT2Tc4ktAqFYCjYrTHtkMrXdyMFAo9JaU0w8E/AOEz6n83ZZde5 0k6S2fr9p/bu2JyxEVUZ0/crIwFd/0ODuN2Yw4p2Lj/Tsf7vbH3eUZ59y/ikbZMa7xyu+o4+y/v zpSNmaZ2xOBlFyLLpNrPkO/AQ= X-Received: by 2002:a17:906:1553:b0:b97:fbea:a618 with SMTP id a640c23a62f3a-b982f37d293mr199298466b.32.1774012556743; Fri, 20 Mar 2026 06:15:56 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 23/35] target/arm: report register in WFIT syndromes Date: Fri, 20 Mar 2026 13:05:54 +0000 Message-ID: <20260320130607.2071996-24-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52e; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52e.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: 1774012629133158500 Pass the register number (rd) to the wfit helper and report it in the syndrome ISS. This also includes the correction of the TI bits for WFIT traps to 0b10. TODO: split the helper flags Signed-off-by: Alex Benn=C3=A9e --- target/arm/syndrome.h | 4 +++- target/arm/tcg/helper-defs.h | 2 +- target/arm/tcg/op_helper.c | 7 ++++--- target/arm/tcg/translate-a64.c | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index 1887467b719..f303c41d71a 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -670,7 +670,7 @@ 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) +static inline uint32_t syn_wfx(int cv, int cond, int rn, int rv, int ti, b= ool is_16bit) { uint32_t res =3D syn_set_ec(0, EC_WFX_TRAP); res =3D FIELD_DP32(res, SYNDROME, IL, is_16bit ? 0 : 1); @@ -678,6 +678,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..635c538ed4b 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, 0, 0, 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, 1, 2, false), targe= t_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 Fri Mar 20 20:34:28 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=1774012627; cv=none; d=zohomail.com; s=zohoarc; b=INiRns84G/OjbHZwYYOP0X83BsY0h37a5ei/qngqAlzerVQkK86C212wfda0jzO89eMtli1+puj7IoGX4/jDPcXZP/0tP4h/sj2FESaaKv9hk/dAOG3KYBuuf1dDffVFBAOkBqcIvOTbhFFSVLOIXezkFz2RTc9e4hxuwZZ6Qqo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012627; 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=3bvPr4D3U4aYpEBDt0gtYg+QezK8BhDvD368zVSWXdg=; b=PHiCiAtQ+b5rN/KXetthm3ebI8wzWWpaqJghMncJIkp/1E30P9LZJfU/mtOapBf2rqMWFqWUpUCEopch9YZ37uWPaQd70R49ppus8lah9yc3nJw74M5D5PHtbDwGgl0ys5av8tSTWjauOYMzQ2Kf6KP6wQR0L/mLrMt1pEOPmAE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012627069444.6232186904025; Fri, 20 Mar 2026 06:17:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3Zi6-00067z-EZ; Fri, 20 Mar 2026 09:16:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zhx-0005zG-8D for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:10 -0400 Received: from mail-ed1-x533.google.com ([2a00:1450:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3Zhs-0000NC-Th for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:08 -0400 Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-668d4751a3bso946198a12.2 for ; Fri, 20 Mar 2026 06:16:04 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-668cf4f887fsm1427482a12.1.2026.03.20.06.15.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:58 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id B05CD5F909; Fri, 20 Mar 2026 13:06:09 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012563; x=1774617363; 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=3bvPr4D3U4aYpEBDt0gtYg+QezK8BhDvD368zVSWXdg=; b=LPBdfxmGDjHZfTAGIts/LJF0QkKVZYd+N1NgCali/S3dG/sbLhIxrGYy9342CUJFvn /duYzzNPGpUtO3ak4podA5RAqetPN9bQJvbdJavxGLIg1tIrNPG5UNsw9mDOGHaaG5/C QtNkpfn5qLFDeZNlJqhl3x7NUw5yI4N6zF5Hw9pEHBiFtlXhvRW9Wg9dd3d3fN3QdWx5 YSmMjKVDA2Q1qB/tWf9c3iuIJEz1O2JTsjjI8pWAHpA6CHc3nYmXFkBwH7y0yYOa60Pb EzS52voSrT08YiWm0Z3fuKlQE1yE5gFf7Kwjbz+gXinm84wFIJgSD7ZJSc1Wgac/uuJC sA3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012563; x=1774617363; 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=3bvPr4D3U4aYpEBDt0gtYg+QezK8BhDvD368zVSWXdg=; b=T8v1BuRA1rroKM0pWkqRhhzvYUP5bp6+gnLkYo/oYlk6B66AWQJ00cFTq2LU1Fptrt xOPrw3i7lcvPCU8r7lor/NM7EiyC9RyZtD6jiitdoJs7CLp3woyGIL3eM4Qt1xBmTdDi WwWFZblejGBSgg4DknLafONqy+YG1TMyig5CZhQdZW1ftI5/rIzhhnCINtDwBXkzQx73 Ddlz21KZYaTrmzw0zETu9XWVQwpmOgZcMSpJjIXGQpLQiGs+e+ARtL9cU5NOL4ndbBkX qGdEj3+0+3+38czDUmzkU/e252ycT6rOX5U8Q+wIxOfSjEiMzIvYGYSa9WUzFruLD2Wa ZNmA== X-Gm-Message-State: AOJu0YyTAXgvbcpzl1dqYUHF57VG7DiJKfTQsUDABlMMsnbYLwDgul2U ju4YQm6qHGydwIgWIv+9GXrbR2PHCtNGRI6o3aptQMD21rCfAyjFjfmgdnnfR79R27c= X-Gm-Gg: ATEYQzzRfhtiW0/N63YdxZY35dKPi8j1nVeFTK13WIPMUXHP6qZX5sDyhybdRzM7Vgm jnuaxahcn91tsYqkWELGV1oFLd2Cf5DuZ4sFdFxIgCTezaHijC5rOkADn/OvPWxasS5VGMvp9kd 1dy1kUUC4OkdzhTDTrRFt4ONI7n4FY4gsC34GizbQEjVCgS2nxJ/LmLNs/J3OyGUP0fKEiPCPlq ig8wU3peFQm4pDz+kt7EKXSeEV5VRaJvrsgaZhZFPBMNOGcBNYReAchF59tKmmANYROerUcrph5 8ChhCPGVbrTlov4IahKyko0044srqHjdtWrg1zGx/CPNgUHHyD12yNskl5u5gqW7lncN1Kx+56i jePZDVK08Wsp2YB5M5gDvxYo2tdxzQ0ej4uGNdi9XPYSvxBk6kc3lHUMX540+jdQNzVuLrYcujw Pp0bTpgv1JQ1Mrqu1+QldemFg= X-Received: by 2002:a05:6402:440a:b0:665:e9f:9021 with SMTP id 4fb4d7f45d1cf-668c932395fmr2098518a12.9.1774012562887; Fri, 20 Mar 2026 06:16:02 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 24/35] target/arm: remove event_register check from arm_cpu_has_work Date: Fri, 20 Mar 2026 13:05:55 +0000 Message-ID: <20260320130607.2071996-25-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::533; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x533.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: 1774012628034154100 The generation of events are not indications of work to be done and importantly for the case of WFI instructions not a reason to wake up. Remove the check. Fixes: d238858bff6 (target/arm: Implement WFE, SEV and SEVONPEND for Cortex= -M) Signed-off-by: Alex Benn=C3=A9e --- target/arm/cpu.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 98d09ac0656..d51599dfdab 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -144,12 +144,6 @@ 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; - } - } - return (cpu->power_state !=3D PSCI_OFF) && cpu_test_interrupt(cs, CPU_INTERRUPT_FIQ | CPU_INTERRUPT_HARD --=20 2.47.3 From nobody Fri Mar 20 20:34:28 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=1774012346; cv=none; d=zohomail.com; s=zohoarc; b=HCw2i4i7PUbvkTn7RJU3r46b0IoO+y0CFfMiRkIB/n6D+lA12jKvvFdXXcto8Yw58VtNtWx2ySWPxekIqY0h+aF5bUeQc7S8x2ij9N7mwJzzjZ+valP+1I/oF/7YDZV+d7AwK8hYqsqPhS06ptgIliglrbeYKZr6V9Wjs626HPQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012346; 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=YX0j0axZ/RBp77GoaFkpFK0DcOPDM4tK+si3g6SlcZI=; b=hKAEo2NjVWaadJwE1R5/L1C9OEL8F7L+s0fQGHWVqt45VYeIBlfBr4WgSKUkK77Clu8Q9vHLHXuUDBXme4Knt3jIHvhQ0m95IB4vdEASkTYMPEAGUI8RRD+jEgjHAmvgdge/1CRxAD56SVKUEETmFgndCAzl6BUg7bNbvDqHx+A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012346670980.3114873846245; Fri, 20 Mar 2026 06:12:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYc-00032M-NV; Fri, 20 Mar 2026 09:06:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYU-0002uI-RS for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:22 -0400 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYS-000639-Lf for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:22 -0400 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-668abc98923so1095740a12.3 for ; Fri, 20 Mar 2026 06:06:20 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-668cf7e4048sm1334074a12.9.2026.03.20.06.06.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:17 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id C7AE85FA3D; Fri, 20 Mar 2026 13:06:09 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011979; x=1774616779; 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=YX0j0axZ/RBp77GoaFkpFK0DcOPDM4tK+si3g6SlcZI=; b=MaDbjkF1uCgp9jobx3VNjHvK5FI4eeJpGjE25c9noHdw833vZjN0uRfYT+FiMECn2I ewVcR/xtQFpvsgrFFQh5jboM6sAlq4RyaevJkgrAwmwbT56KuWoMUhsJo6Qtf1HyZo5C GzyfrD7zYUPYDC5PJsX2OQM4dSoF7OihOq7fhF2EOIv4YNIlKgb/YaTSsCxj7+0CAfRA zFCoix1abd7Mt8FxnM091DJKmJ+vRTf7DTuia7Rq27WPYVn5GB7Ca9Rv98FGeVMK2dH1 bSuOxnlehqzwsb9GwlgQOBMQLobOLh2lbuy/Yf6YC3KzBK7iPJ/mHaapXvoix16OJjq/ PIGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011979; x=1774616779; 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=YX0j0axZ/RBp77GoaFkpFK0DcOPDM4tK+si3g6SlcZI=; b=iLYmopg+gqQ4pTA5xlk667u6XB4JSI+uqU+nVvZZKr948ctxyO1IX52gis+aNNznz1 LwPdZGhJXdn5O9dw/fQ6mOaVAqXHRKpesJzMnxbc2tO6motV7Thnrn+YyD0KDTBud9PZ BDFp3fA11QuwSfKVwIzNahEJZGuXAl5FNqtF6K1iOtiHPuEwFEFTSeRUrvdjd5j2PA/4 iOv0Ka7Ftb7+37jKXNKbcHScs6PktLqT3XnyF9Ge2+k24sQ0fT9EqwPkXs6RIayU9y6a dXnTOSxXyrgC/w/hdvgp3tbr61oVmT7YKJ8prR+TsLJU1Kko96rcbGUtGNWQ/cwyeSug W9KA== X-Gm-Message-State: AOJu0YwKSBkZbJcEQ5/0+sa9d58hMCcIEz+M1h/0EsFkrjx+eLidVRfm NJyvtLKParpWv6ZkI3tzzEnewgfscsa9BIj6e9MmfHNHjeVJU4H45AVGGgnAb5rn83g= X-Gm-Gg: ATEYQzz/x10TuuIOqEivRlryU8yFno5QXhLpkhRBqdteMGy0oHV66wxAZ3JtBTtY/7S 4sVtPVzO8ifXzd7CMq6vE8nygJJfcdbQVgAEa6e9qNQbbrcYhcBZ+g4KVl2iq7q1WJLyH257/JU haWd+k3Nl0oU04SfTuv57suMz8lz54F0v4cZ7kgHQ3TJLkEDwjJCemeYWrROTRxPQRWMDF4eZ1n NzgNOU5+Mf+5pxdKpOrDuYfR6RNzRCRzkvGGa2AnkB/TzZorGQmmfvIocRvzRAGhYwb4Zy71ibc vG91/eGLrY/d0Y6EDxy9U1y1BnZssjX5sqBQZSNxJ6hW1rDENF+vrTPvz9qigikKJ2jRthl2+3R x1MbrOxMsQ6av09Aku9xoYcFRPxmXrGTg+IwH81iRWJk/LpQ0cWzQYjk0+N5eDKjGknJkNzQwxW 0oZ3peSi0soxdTRFh2u991ZlOlWAjVnFQuMw== X-Received: by 2002:a05:6402:3593:b0:661:3f3c:400d with SMTP id 4fb4d7f45d1cf-668c9c52289mr1939771a12.26.1774011978838; Fri, 20 Mar 2026 06:06:18 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 25/35] target/arm: redefine event stream fields Date: Fri, 20 Mar 2026 13:05:56 +0000 Message-ID: <20260320130607.2071996-26-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52b; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52b.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: 1774012347447158500 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. 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 8ec27508473..2296ac9cfb6 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 5ee79f7564f..ba6db46d453 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 Fri Mar 20 20:34:28 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=1774012371; cv=none; d=zohomail.com; s=zohoarc; b=M98ZKaMlgsikTzzkqSJEiUaQOgnapShoIdSoGBmug1v7Yn47EJGBUdRQJPAV4EDoVQ+auR+CDAsTJ38V/nEn4Yf0vf6xYFPRVaRhrG0xD3GEilLZ2RUqfy2dxqMLGrZNSECS5dQGeVgNRJ9KzyNTDp0YoQaLn4eQzyeB+q7X3SI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012371; 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=KbP2/wL4u9tNVemn6DPcNDAdbehF4LxwnefobBcYCuw=; b=Q+vFwMkRUq0Lrr8otoealrd/aFJe8NluadW8NDvsC3XK0WW3mfh49ldyKsjoJEsp517e/NwCwJg89SSDGfDfL3Tu0UbVkLIg7t2Evp/5gYayZHm2RBdu1L6XVCHYxL3Psgu+79ndeSeEUUXjXcy19RKaJpTMZ/Ywo0nRwixJsrE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012371577179.12536731913985; Fri, 20 Mar 2026 06:12:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYd-000339-T5; Fri, 20 Mar 2026 09:06:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYY-0002xe-OB for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:26 -0400 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYV-00064k-A8 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:26 -0400 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b9358dd7f79so102808166b.1 for ; Fri, 20 Mar 2026 06:06:22 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f8c16csm160392766b.16.2026.03.20.06.06.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:17 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id E06F55FA49; Fri, 20 Mar 2026 13:06:09 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011981; x=1774616781; 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=KbP2/wL4u9tNVemn6DPcNDAdbehF4LxwnefobBcYCuw=; b=kzFdlJsXAR2vDui2UWLhgSk/aozn0zq8QB3M9UES3V1DcmU/DzI/fyEF9HaAHbysgf V0c6Yg84xfc8DlULhL/nQeBZeg//2Nx4/EcNiWLO7bWDgP1QCftgmKNHqFlNFHRLvu/y q8GT1KEmDmb/ygDlk0wDj7Ky/6IYiKmutRbFjWkZGYR8wfD9YS7qcfWKA9ZstnBsCP3Q KebxOmTj6bUILD1bdO288cuDguQSLUY9/ArOa9jRHPA+7Ot/ybo92uJoL8mt/N0oeJZK SS3pa3FQRkz51IUNNy1jTnth7RivZuHTyR1Th8OkjzMMa26njDDEvoLN4CAaxrK11x6W EOFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011981; x=1774616781; 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=KbP2/wL4u9tNVemn6DPcNDAdbehF4LxwnefobBcYCuw=; b=OgfvDC1ZDaJWbfJKoY6jBvdtx+lO5pGSgeLwiFJSiR/bOuRTRDLTgtPtqMbQ+MmZWt ounLnZGSr2nT+PAI+b6HX5/QblG0GCC8Sr7NhBtm5Y1E6z+/7fs6/CO1lSXlhQENGTHI ff216OVeX9LBI40snXXmNh6bM+vyfff7XgOEbQ2TVVDcf2n6JCeK4VkZUCCrXW4pCLiQ S8/VW9CWH4RxRKXwPn5CnAZ5HGRMpCZHi281O0rrpx49iDcHd8n55DdiAkZ/WSBaSDyV iK73VzZuI2Jo8Ae2tDtdEmxle808HyWfjgy+MxtUOHMKOR+owjGIl44i7ZyeC6wXq5pa 5rgQ== X-Gm-Message-State: AOJu0YxNDtciDJsaah0kUjrq2/Xd+haSUj16n7QBS6KV9B4umBZtnenP 2BEiHud+wGkPwwicCDtX7fF4FrifpeaOrIWXcuvYBQM9O08xLXV7ewKyKUaCOpCDQw4= X-Gm-Gg: ATEYQzwyrfJcPdG+FQa7axHCGBSgBkU7jpwRWS4UmEU/n6geYo8Bwr77F6pZekPb1D+ Mz3D0x4gbeBH/pehuQbTtoBXTOdKnZtAjuw7oSLXYRNoyB7lKJURgzZhPPui4+cS4NdP8DGEVuz //R7MQGqWkKCoK0CAZBafNHZKG8twQG9QTuNaN6DPyLM6Y/GkH+4MRq291yZzYBRSmV0hDS9Czo h5TyxPbc3lCI+WDluEdm3eSzLccrxVvA96kXif349mGDv3fXGMIZYD+YlFHz7Xv4vAQUhG0XqHS IY2TPZqkNYiSXki4Pw4eKKckPuwnm44H1UFlHIBHFSYecjM1Bslhne9Y5uS+U1oPbYdGYhG2txo H7uHZyDD5dE/eAGPVE+tZzYGD67ccnu3oFAfnnY76s1IFBtzxAtgE+YiSTfERb2voh8PRnK3HD4 +YmuuApMlelfwc5nzunNetdYY= X-Received: by 2002:a17:907:1604:b0:b97:edc1:f9c4 with SMTP id a640c23a62f3a-b982f1ed7b2mr242657266b.1.1774011981280; Fri, 20 Mar 2026 06:06:21 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 26/35] target/arm: add gt_calc_next_event_stream Date: Fri, 20 Mar 2026 13:05:57 +0000 Message-ID: <20260320130607.2071996-27-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62a; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x62a.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: 1774012373912154100 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. This will eventually be used when implementing WFE/WFET. Signed-off-by: Alex Benn=C3=A9e --- target/arm/cpu.h | 10 ++++++ target/arm/helper.c | 85 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 657ff4ab20b..bf6cf74c2e1 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1208,6 +1208,16 @@ void arm_gt_sel2vtimer_cb(void *opaque); unsigned int gt_cntfrq_period_ns(ARMCPU *cpu); void gt_rme_post_el_change(ARMCPU *cpu, void *opaque); =20 +/** + * gt_calc_next_event_stream() - calculate and arm event stream timer + * @env: CPUArmState + * + * 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. + */ +int64_t gt_calc_next_event_stream(CPUARMState *env); + #define ARM_AFF0_SHIFT 0 #define ARM_AFF0_MASK (0xFFULL << ARM_AFF0_SHIFT) #define ARM_AFF1_SHIFT 8 diff --git a/target/arm/helper.c b/target/arm/helper.c index ba6db46d453..3627ffcdcfd 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -25,6 +25,7 @@ #include "exec/icount.h" #include "system/kvm.h" #include "system/tcg.h" +#include "system/cpus.h" #include "qapi/error.h" #include "qemu/guest-random.h" #ifdef CONFIG_TCG @@ -2022,6 +2023,90 @@ void arm_gt_hvtimer_cb(void *opaque) gt_recalc_timer(cpu, GTIMER_HYPVIRT); } =20 +/* + * 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; +} + +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; +} + static const ARMCPRegInfo generic_timer_cp_reginfo[] =3D { /* * Note that CNTFRQ is purely reads-as-written for the benefit --=20 2.47.3 From nobody Fri Mar 20 20:34:28 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=1774012172; cv=none; d=zohomail.com; s=zohoarc; b=i712WTmUNb/cq/LQGsGxVJ6v9bUToAf4nT8xVoCynk+wNtci++pvz//tkPARefFGE0641qISreQQiw/LxnLx7kZHmHNYO2rj6RQQPV5EojVzPk8+sZ2JxNglIBmuZSSbeKRtAiAmp729U/km4UYnS2qa8+RmK6Kgvq6PfUMtpZY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012172; 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=pssv4yiloRewG2kTYaAF6W2Bd+ecbZHh3uu6HTuwmWY=; b=D8B2b6WdYYTxJF8UJGuHSf0EEAfhqvRlEuQ4S7oNNgYsWus1eTWAQEQQOwyxm50rcIH9onGgUvXfIMLWBi5MiTUNdWNPJAPW7ASrmK8eZ7xleo1Rnk6ehMNfkiPQJkiBtzOvg0mRqVi5mW077HwmKCBz589PDhyj+9mvgeh7IRM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012171992608.7006578297303; Fri, 20 Mar 2026 06:09:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYe-00033z-Jz; Fri, 20 Mar 2026 09:06:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYb-00030O-5U for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:29 -0400 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYX-00065n-Uo for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:28 -0400 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-b8f97c626aaso316999466b.2 for ; Fri, 20 Mar 2026 06:06:24 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f9024asm162354166b.26.2026.03.20.06.06.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:19 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 085965FA5C; Fri, 20 Mar 2026 13:06:10 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011983; x=1774616783; 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=pssv4yiloRewG2kTYaAF6W2Bd+ecbZHh3uu6HTuwmWY=; b=rfS0RcJZ+QBo+205Aa3D00uM6eoaDB2ILJBXMM+isfFXLYVTey1rKa5wm7Xhaqjf4R T3E/oCX1S1HIO7jSlAfB/jE0cYGMAg21fpWfRPgEHYrWt9GQE6iJWDBUgZJKgtEfukxo XA56CKz5kh+WNUf6qshcQcJZYLQZjq4IYuNjQHwBzPrRQRYUTGuQSQwL5aDCMV/M6Rg0 +0IkhNARUQ1wcaiX8BQTTGZ0BviMmr5XhRwp1zRgHdEp0otX0QeJ7jCfQ414NwLg+8X+ oEzUaxGuqUlR1OoCD18qNuYCwYHywEzjLJz/s5Sp82dNWJRq3MC9CFeeIte5/7hbuWv9 /6tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011983; x=1774616783; 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=pssv4yiloRewG2kTYaAF6W2Bd+ecbZHh3uu6HTuwmWY=; b=OlAwp3jZUpkUCREwPc2yzVeesGw3jWjQyxG6qwqj+c3pu0oe0ZU2wM5TF6Qq9mNlir AmWBl7LfYvOvkVpgD0z4cBBo/xY6cxgJZym619jQgGafptK5qHJWR+gFb678lXFVKHMj IPiyGYyV32xHyhFzHdQjKXmPlca573n9yCGX+GeyLVtNRMJFKm9WyemSC+IA2/OMh1Qw H0vfrrDQtqEhEnkaAojGF8f43H3aBWcvrtMe82SZAvuNX/YXTJwXZbnRaKxgzG5K1eGE cvCREtmhqeq401+CxuEc7jx8Fxl/aK/aFGltuFibImDRmpdKaAmzHib2xNJG4d3w/epg KPcA== X-Gm-Message-State: AOJu0YyVYQ5kto6NpAYszyFphsZsxhjxVTukZYX+P7KCpAQSRUJAAHaj m5Qq8HnxpxzjsT6KCHjOHfjtyC33YyjmUr/krybUqFSLXDYSSRiw1ZQiZA8mcGHNfwg= X-Gm-Gg: ATEYQzzgx52sl1pdO8Zab9nRtBZ2dvm5BwAsdn+V6eJ+ekmPwPIJDy8CzXdgDUEYr+p L8W3cb6hH64PUKKZJYdV+b+phk4KqCPZBoknyyeO92/K0kCpCJaLVhkBbYW9hn0hc0k78Xl5KpA O97FUHIPqnPUvrO1JG54335UFu731qt8E17kGKQLELp4rOEXfahIK2Y5gyHcMwP/mpLI7461fiF EOrOda1IEWg6Icb8Kj3BhEcioDWcWO8OTfmaFiz/TBRNiF42tQ0COFlDJdlCD0uV60mhNny7aBy SdygIVUEsWYbLKrQlUaXEN8pXV/oOFZJ4YK7JrE44yd6XxNDESxBXrsh9ZUK+sgZcMxSMJOKmyq d//VJUSrSGmtyt35nksNVMKwo5m4uZsNMNR1dZdEC1Zlh5BVplbNmBWPmdlrJTjSxHOrDvg9yX9 YlJ484uLeL85Me+BxchaoVcRo= X-Received: by 2002:a17:906:13c2:b0:b97:61d7:793f with SMTP id a640c23a62f3a-b982f282a9fmr176763866b.24.1774011983417; Fri, 20 Mar 2026 06:06:23 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 27/35] target/arm: wrap event_register in a union Date: Fri, 20 Mar 2026 13:05:58 +0000 Message-ID: <20260320130607.2071996-28-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::635; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x635.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: 1774012174450154100 While the event register is either set or not due to the implementation defined nature of bool types we can't set it directly from TCG code. By wrapping in a union we can alias a 32 bit value to the bool in a future patch. Signed-off-by: Alex Benn=C3=A9e --- target/arm/cpu.h | 9 +++++++-- hw/intc/armv7m_nvic.c | 2 +- target/arm/machine.c | 4 ++-- target/arm/tcg/m_helper.c | 4 ++-- target/arm/tcg/op_helper.c | 6 +++--- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index bf6cf74c2e1..9c25b60ae83 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -763,9 +763,14 @@ typedef struct CPUArchState { /* * The event register is shared by all ARM profiles (A/R/M), * so it is stored in the top-level CPU state. - * WFE/SEV handling is currently implemented only for M-profile. + * + * It is treated as a boolean but we need the union so we can set + * it from TCG. */ - bool event_register; + union { + bool as_bool; + uint32_t as_uint32; + } event_register; =20 /* Fields up to this point are cleared by a CPU reset */ struct {} end_reset_fields; diff --git a/hw/intc/armv7m_nvic.c b/hw/intc/armv7m_nvic.c index a7651f831eb..d630f80e51a 100644 --- a/hw/intc/armv7m_nvic.c +++ b/hw/intc/armv7m_nvic.c @@ -238,7 +238,7 @@ static void nvic_update_pending_state(NVICState *s, Vec= Info *vec, int scr_bank =3D exc_targets_secure(s, irq) ? M_REG_S : M_REG_NS; /* SEVONPEND: interrupt going to pending is a WFE wakeup event */ if (s->cpu->env.v7m.scr[scr_bank] & R_V7M_SCR_SEVONPEND_MASK) { - s->cpu->env.event_register =3D true; + s->cpu->env.event_register.as_bool =3D true; qemu_cpu_kick(CPU(s->cpu)); } } diff --git a/target/arm/machine.c b/target/arm/machine.c index b0e499515cf..844e6a37c77 100644 --- a/target/arm/machine.c +++ b/target/arm/machine.c @@ -514,7 +514,7 @@ static bool event_needed(void *opaque) { ARMCPU *cpu =3D opaque; =20 - return cpu->env.event_register; + return cpu->env.event_register.as_bool; } =20 static const VMStateDescription vmstate_event =3D { @@ -523,7 +523,7 @@ static const VMStateDescription vmstate_event =3D { .minimum_version_id =3D 1, .needed =3D event_needed, .fields =3D (const VMStateField[]) { - VMSTATE_BOOL(env.event_register, ARMCPU), + VMSTATE_BOOL(env.event_register.as_bool, ARMCPU), VMSTATE_END_OF_LIST() } }; diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c index a0cb8cb021e..3259e624e02 100644 --- a/target/arm/tcg/m_helper.c +++ b/target/arm/tcg/m_helper.c @@ -964,7 +964,7 @@ static void v7m_exception_taken(ARMCPU *cpu, uint32_t l= r, bool dotailchain, * take (which might now be the derived exception). * Exception entry sets the event register (ARM ARM R_BPBR) */ - env->event_register =3D true; + env->event_register.as_bool =3D true; armv7m_nvic_acknowledge_irq(env->nvic); =20 /* Switch to target security state -- must do this before writing SPSE= L */ @@ -1910,7 +1910,7 @@ static void do_v7m_exception_exit(ARMCPU *cpu) arm_rebuild_hflags(env); =20 /* Exception return sets the event register (ARM ARM R_BPBR) */ - env->event_register =3D true; + env->event_register.as_bool =3D true; qemu_log_mask(CPU_LOG_INT, "...successful exception return\n"); } =20 diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index 635c538ed4b..b5c8024ace7 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -476,7 +476,7 @@ void HELPER(sev)(CPUARMState *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.as_bool =3D true; } if (!qemu_cpu_is_self(cs)) { qemu_cpu_kick(cs); @@ -503,8 +503,8 @@ void HELPER(wfe)(CPUARMState *env) if (arm_feature(env, ARM_FEATURE_M)) { CPUState *cs =3D env_cpu(env); =20 - if (env->event_register) { - env->event_register =3D false; + if (env->event_register.as_bool) { + env->event_register.as_bool =3D false; return; } =20 --=20 2.47.3 From nobody Fri Mar 20 20:34:28 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=1774012142; cv=none; d=zohomail.com; s=zohoarc; b=oJ9v9Tg40v57wVgPweuWsL0C4vF+0UhIL97AOtJGCd5lLH/wx9VuQDu5yAWcf+GHN9Xf4QGa4tWZyYOd8I2KpSpXTYU/cbQqhjbs/C9C97/r+sevUqVuyNbjd2RygeNHtgYw1L+QUTyIhCRb7hkcfKXhAO0ZSdXYfBiH0gcyK1E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012142; 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=/ME2yp5h28Rlv+Asr12H5+K2Rp3za2VjxSDO27hHiBk=; b=QXoEnaQi7V0zjT3SRKbc0WfkPCpxqwl+7q74da1Z+t9FI7+rzosz36+dnTYoCdWkvGMYjahNdgBNyQv9DKA9+qtPv8L5Xoqyge8r9UdoyHTmtcPsD3/upC56e1HvoL65c1FK7cgMNq16KNWrtQ0mD10x4T+G1OjIPz92z4aJXRc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17740121419941007.820029184915; Fri, 20 Mar 2026 06:09:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYd-000338-NN; Fri, 20 Mar 2026 09:06:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYY-0002wJ-A2 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:26 -0400 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYU-00063n-3b for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:23 -0400 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-667cc4ec065so3010536a12.1 for ; Fri, 20 Mar 2026 06:06:21 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-668d2a4d72bsm1363982a12.30.2026.03.20.06.06.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:19 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 2130E5FADA; Fri, 20 Mar 2026 13:06:10 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011980; x=1774616780; 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=/ME2yp5h28Rlv+Asr12H5+K2Rp3za2VjxSDO27hHiBk=; b=EhJRsYGuuZ+PaVb3hR/kd0PXXxZwPX9hK5o+P1r3yeornk3s0kJ02wWGXXyj7GpdXR ReMiuTE6THAYUIRHlAnrn/qY5C6uDijr5WHZA3RoFc0pWwhXDCYsxSieTkrV6j2ZRxl4 BQMoHtN4Hdjlz+csBPveQKOOMsT7NiqhEsDfHw48z1KMwEkksXmDBH/UU9UOtNCTyhp4 n8XxeNKDA/2pEbzJeQPEofob/htVcgn81f8Qf3lkhnGm4e69kWhVa3IrkljUYHpn+2uK dwj4kSIYxZNxG1OQVVuF9cstkKX00EeyuHMyp1jKnrIkXdPn9dQIFUFIFxz+dXO4Wwo3 iWHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011980; x=1774616780; 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=/ME2yp5h28Rlv+Asr12H5+K2Rp3za2VjxSDO27hHiBk=; b=iZghCz4cV5tWdhKDq0TLf2TiQKTxLuj3uYamCrKX6qetfq2AWpEpkjRu8wkPmwK4pu 5N94GB9+QGvKR7u3MOdoeylPm8Fke2ykQCSDKXWxRZPo3nu96PcQ3SSYGG5mXWS5y1IY ExbLUwcn65aTBzIfqQuW1Pl0bzq788UaO+9QtZaIRpAJBqn+KY/t40vWLSQMewDm8qGn WZSlpxYTOIgzGRM4jQHe5EBbrxRIoFJmWfqs701OZbqXNBmdakf8+u7zxZPwP/xpQkrx MQ1fcy969vyvwTbJvk9SAA0pJzhO8mkhO7XzMevtzjqlWUYR07fgoVozFNAmLM0GfhUY FYfg== X-Gm-Message-State: AOJu0YzSw2wSRDcLgJNUhdFAildydxtRG03RCIswn65UyggkmNtmu12W PXEALqaAcJQMYL6tjxzicEaAjjHPt0NE4ljhyhkLfzmZGryndOy6iEJTSqttxxRXiq0= X-Gm-Gg: ATEYQzxI2P14xWpmmZ+xHhzIc1oNU/n+hObJElk49eKmwqB9sniSewxikudML9Vo2Fr 8ojWzu8A6UtR4kepa+jZvY/0Dwx0OZ3dUMmJvLIx4y6KjP1w4PrXVTr/qwk9VHbfLBV5f3i5dLp sUtsxzePO4+4wR4Sfrr/aEPd8MDRPhD6RLpbrjc9/c/F0FNi7SYqh7WNbelfYsBR8jvOiPtcmyB wmbwErveR+nLacTzxDyBuZp2pP9i4QjL4Arkf4ok8fMUMgLi2yc3isgM1tdWrGpRYcT6PmcZ3nr tgDIOw8QBjp2JXd7AgGR8FXfE6/rcaGiAaTAlvxLf8gGFCI5GQZqzIdIaW7G/xQQGQsTU0B37cj DqbNuc9MTB5IBIbWv4D2U60fiP+pzuG+bWSRzhfCXJ4EyVo/3uuqAR5uyWCSl5ipWHfOuzd9dfu t3FYlBzkb5ZXBE/tKg6LN23mc= X-Received: by 2002:a05:6402:3885:b0:658:3972:3a3d with SMTP id 4fb4d7f45d1cf-668c9620d66mr2267525a12.15.1774011980391; Fri, 20 Mar 2026 06:06:20 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 28/35] target/arm: ensure aarch64 DISAS_WFE will exit Date: Fri, 20 Mar 2026 13:05:59 +0000 Message-ID: <20260320130607.2071996-29-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::530; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x530.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: 1774012143797154100 This mirrors the logic for DISAS_WFE in 32 bit world. Signed-off-by: Alex Benn=C3=A9e --- 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 Fri Mar 20 20:34:28 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=1774012598; cv=none; d=zohomail.com; s=zohoarc; b=PMUbqsAo9gNzZIbZj/5Mif4Co2V6pOdZN6uZiGu+Qc7aTa/nO+TshS6hesFHrKgeQ2K+usiu/YdXdNJzeH/sjBGt6xpi1e6oTrPCBXedrgosLEWtJvsU8XN7bwtEBCQd0wuO9PJ8GwK1EfX1lQfjuJ6qqhdK8nVS7tQPolSoe+I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012598; 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=s87AYFhMOGqqanPbizV73ZLyBsxi0YeGo2JAxp0jA8g=; b=FggjMdcYSdoJPIQ9PcxMBuQ/MI9djMJoQaKCy+rPkLGfZPZ7/vduDtvNANIdVzsTzk6F+0NSCOE0Ybzu1GucHNQqCDzIEw945s+lWd0reTsNGu813sOceJwFYb1M9myFG9MbN74DhqPS8hgBxJd5cZdLX8MnahSTJddTaJDcC1U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012598133665.1189198870419; Fri, 20 Mar 2026 06:16:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3Zi4-00066z-LW; Fri, 20 Mar 2026 09:16:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zhv-0005yi-6d for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:08 -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 1w3Zhq-0000MC-Bo for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:05 -0400 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-661d20c9787so3095486a12.0 for ; Fri, 20 Mar 2026 06:16:01 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f8d3d0sm160464066b.19.2026.03.20.06.15.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:58 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 3CE3B5F911; Fri, 20 Mar 2026 13:06:10 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012560; x=1774617360; 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=s87AYFhMOGqqanPbizV73ZLyBsxi0YeGo2JAxp0jA8g=; b=e4iZXPAWmy/8LSznZuy2XW2pOUH6xyZQOWQHe3qsqFKZLXeUxhefTgxmtf+gUdvwVA bBmsbrmQz+h0gQttlF2Kek9/PbTHwyw4NmV1wuEh/ox0i+TqJCFIb3sSCxUsy/5eRcuB unRh61M85VmubY2IiZkeM961OM3glWv+NroIx8u0xx5ZWqqvS/4Df0w+DQTBur5bCBqY 6Pk3gSR98gxaABayygmynNY9d4Fy12MLqd3AouPAsiphC3SZ2y2USO3GY45e5ofw3zJJ NlUnHEJ5tEf/xVQBwxF5NJx3tMpvNfBoTgmj5fiZ5mGYvjKPSjH9ccOjnERiD2cOKTXh mhHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012560; x=1774617360; 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=s87AYFhMOGqqanPbizV73ZLyBsxi0YeGo2JAxp0jA8g=; b=tBp6onRMeZPT8oYWB8jLAY2/09jTjFc58WawEQikljrj9fUVNusbYWRFkWLClwK7k8 QlRHXFBaWPs6kww1ZDhguxl95DOoxFMxGK6bG/xVjMJbYWL8fkf5BblnyYAS3y4OwPWy b14oKDt8VgRcVbjcNiN8aPTwc+Pyb3jSHgH6/pCITHPNXUsCJem++4VzSJZGWRBcxUad hqGz85SBCauiOHNfcAF9nBpU+tkSvQMN6SijGzKqPJm9vi4qpa1Tfcv6KT2OtCnMOizM EvjHNZVitTqb3+wL6+Lgho9S8AqkMzXxWxmyBEu0NWlbNHM4fz5SKPMh1SoAVmVLvg5n tGSQ== X-Gm-Message-State: AOJu0Yzp1T8srx7h/tj12R8p1ygM3JJ4n+3KI9kar2jpff/Mfhd6oZrc 2BsIuhcJT2DevIfMPDi+LBV2cw9+SuU4uuJlf5TLGn8MGUDbMZIgXvxE4zOmpc7NULs= X-Gm-Gg: ATEYQzwewXRtXIZ4kvnWCJN3ImeEypP0LYY0+j5KmHLNWfNuPZFh96j4a7QQn5s9OZR 2/wyuG+LuRfgSwgz5j4sXHXosja2ZdcB/1Pk/eUsUJtWOIIs9eX1G/RvflNK+vrTl5Cb8wDFzOj KZQ2JuTCsTeD04g2lrOsxk9ELywHhWPe6c1e8GLxzU7vz4RNDnyYa+2oQLatPzIByqPeIc3TfQ5 cP863cr7USjHzl9jq2j3Ca6B5ZnA45jvVvoMvXYpX+UkB6NlGUJmrpKQCS8ktx3dNKhOWEbMhTY p0h8mbtgx26OXYolTYnTHOUmQ8NBFFT2DAOhERAl56sAfP+Yw1Ptc9exEgHAng3igxZxFvw/Gkl pbSu7yX8t/RlJlzJEJFHbGiV/3dUeoXr9AAYKgbovpfqo/YHtjF7HDyAXN//XDmSUxGo1jOPD4k /kePlUYJbNKNUCiOKOxKMi4oQ= X-Received: by 2002:a17:907:3fa8:b0:b98:33c5:1bb2 with SMTP id a640c23a62f3a-b9833c56788mr155124966b.25.1774012560322; Fri, 20 Mar 2026 06:16:00 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 29/35] target/arm: implements SEV/SEVL for all modes Date: Fri, 20 Mar 2026 13:06:00 +0000 Message-ID: <20260320130607.2071996-30-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.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=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: 1774012598970158500 Remove the restrictions that make this a M-profile only operation and enable the instructions for all Arm instructions. Signed-off-by: Alex Benn=C3=A9e --- 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 | 34 ++++++++++++++++++++++++++++++++++ target/arm/tcg/translate.c | 19 ++++++++++++++----- 7 files changed, 55 insertions(+), 20 deletions(-) diff --git a/target/arm/tcg/a32.decode b/target/arm/tcg/a32.decode index f2ca4809495..d076681bf97 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 b5c8024ace7..d513045269c 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -475,9 +475,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.as_bool =3D true; - } + target_cpu->env.event_register.as_bool =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..c25ff9351b4 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -562,6 +562,23 @@ static void gen_goto_tb(DisasContext *s, unsigned tb_s= lot_idx, int64_t diff) } } =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 void gen_event_reg(void) +{ +#ifndef CONFIG_USER_ONLY + TCGv_i32 set_event =3D tcg_constant_i32(-1); + tcg_gen_st_i32(set_event, tcg_env, offsetof(CPUARMState, event_registe= r)); +#endif +} + /* * Register access functions * @@ -2032,6 +2049,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..3707561af0d 100644 --- a/target/arm/tcg/translate.c +++ b/target/arm/tcg/translate.c @@ -3244,13 +3244,22 @@ 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; +} + +static bool trans_SEVL(DisasContext *s, arg_SEV *a) +{ + /* + * SEVL is a NOP for user-mode emulation. + */ +#ifndef CONFIG_USER_ONLY + TCGv_i32 set_event =3D tcg_constant_i32(-1); + tcg_gen_st_i32(set_event, tcg_env, offsetof(CPUARMState, event_registe= r)); #endif return true; } --=20 2.47.3 From nobody Fri Mar 20 20:34:28 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=1774012383; cv=none; d=zohomail.com; s=zohoarc; b=VC28vG3FjoJPM+zFB07XF/hXO5GKyMZNb2NkDtkBJ7mcMCdB2RL8AtDTWkmHDpEy601PRzWK0lvkvlSzev9ZHBSE/pXsn04ZYdWjCtKgIh/NcMi5tzXIeK344f5m33a2k9crT2Q31CnskoyyBpu36grVWE+6zwM057uPoA3nhes= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012383; 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=JIk29T9DhqqlbPhNrWYQVA1tgjm08zB9Z2xOKW4fUVs=; b=N0h5Hnh4//XwKFFwz4D8TgJE7PEVHPeK58+T2FUJtqy7EMhsK0d+s9MgDJodIDTqxbNGy9ZKUE4Tc272+9ksGQ7GMDFSnV4kfAk/sLlB+RcyebXb/x3IB8e1ceFfDvgq4oykCDneaynbjzQwUT9jQxpI34ytgdzvVDbNK9ejhjg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012383328504.21149323991085; Fri, 20 Mar 2026 06:13:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYm-00038z-AX; Fri, 20 Mar 2026 09:06:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYb-00031B-MS for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:29 -0400 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYY-00066A-U6 for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:29 -0400 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-667cc4ec065so3010641a12.1 for ; Fri, 20 Mar 2026 06:06:26 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f42c8fsm152962266b.9.2026.03.20.06.06.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:19 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 573325FAE2; Fri, 20 Mar 2026 13:06:10 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011985; x=1774616785; 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=JIk29T9DhqqlbPhNrWYQVA1tgjm08zB9Z2xOKW4fUVs=; b=zZwOG00pawGtJxtpb+yTXpaSJwnwY3MKoSnwzeCcgVgyd4bDo2UJlZUpcZDX1WpxIu ZxXcZ9OXxzxCt4SB8TRorkMCVPqnrUV3yq3TFpnTAciot+TPZf2uHNCnGy7NVIwva9i7 7gz9/jFkcgEUsqcCjhVuEdszDPuuBrnt281mcXlpB+V47xGpQqMjuQDydFMZfpCx/oM2 oCvzIe7Ocsrxx0rHaYarxZkY0Tpmscunt9qmYvbAyhtuowk3rqULsrBVsb8TG22WeSsL XjXSygGcdNFthkobhpoqAwg6AeoiZwrx7OtJGYBiJGS626JQe5rzOBxNITeRK1wR2++N fmlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011985; x=1774616785; 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=JIk29T9DhqqlbPhNrWYQVA1tgjm08zB9Z2xOKW4fUVs=; b=ivjCIO/8DVOglWNSrG2BwQWGhyNG43lwqqCFTJUNEV6JGWwT7oOIzr34BId3uic9uv Oa1QJRsFUIDVw1eLzvX4S4dGPcNF9eZYd0pUoXwFGHlB+MjOvkPsn+jpNkjOfbuhm2b5 8Hl/zKdQr+hDZ+QyJ1hO1AFMA0n9Rnc2Ov0sW2r6Zab4TTU3X/aTk6lyZmhNLf8SJg+6 LYQuUxEVV0VdqcPjaNb0+t1wkwe1fVIADJheNojES/GRhP2r8iBNTJVdauCx2XSEdico zra0hwRS8bDbrjO5tgZAgD218sI3ocVTlQtCdy3eKBq7D2HI1Vu9ni+E12wSJp6w+Qdj AdrQ== X-Gm-Message-State: AOJu0YwVwOZqBSsbCdXffXwqs/LIjFZj/OSkY/F3XwOk+vaXvuS3wnRS SQ+YLIK2DRdx4qC1kF2+S5skqAgP7XRy3Hlbbrf5lnNLDOKZN1TB/6L9wRVqOmWXUmc= X-Gm-Gg: ATEYQzyPX4pvyQNj45dOIR+3mERUOFFU6A5iDy57Ua34XVR5ijJgqRpz3lxVmVH8Jvj 9P73yp/aTDwWOMe6iSqil3I+P6dDu34uo1JGhekMJib5BFVPQQAjgqOd0W1xX4g3A/ZEsTVuxt9 l46S2z34L+Q77J6N3TbuvaPX/yv0fE4gRFjZWkrsBSHkayXJD0G6Z4sAH9aQfrkWjCs/fX+JQgQ ryf0nLsFdgA92L/v84bG9uNS1Hi8eNBZvwNtz6arsh1BNt3cL2OvR1lrGgELxvDWtAt5S/SmUVu d6RdZxMNTfrX1lUqg8Vzz8UTowLidM/JFmLEOtJgwUo6FoIrqAtMY23UF4T7ngiXy2to8oniT5E 3aheec9/0DRHJZ7GyjsRn6s3QimM+ItjY84xHoHQ2XpBQpd3Micvks2Wo4snSuaLFUUK6djRq9e Z+fAzVQDk895GP5sIhMYpMBXI= X-Received: by 2002:a17:907:cb89:b0:b93:51df:dd23 with SMTP id a640c23a62f3a-b982f1ecb62mr218938766b.16.1774011985297; Fri, 20 Mar 2026 06:06:25 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 30/35] target/arm: implement global monitor events Date: Fri, 20 Mar 2026 13:06:01 +0000 Message-ID: <20260320130607.2071996-31-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52c; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52c.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: 1774012383632158501 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). Signed-off-by: Alex Benn=C3=A9e --- target/arm/internals.h | 1 + target/arm/tcg/translate-a64.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/target/arm/internals.h b/target/arm/internals.h index 2296ac9cfb6..2e59d58f3d0 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -690,6 +690,7 @@ void arm_handle_psci_call(ARMCPU *cpu); static inline void arm_clear_exclusive(CPUARMState *env) { env->exclusive_addr =3D -1; + env->event_register.as_bool =3D true; } =20 /** diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index c25ff9351b4..38a51eb3600 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -2270,6 +2270,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_event_reg(); return true; } =20 @@ -3336,6 +3337,13 @@ static void gen_store_exclusive(DisasContext *s, int= rd, int rt, int rt2, TCGv_i64 tmp, clean_addr; MemOp memop; =20 + /* + * All StoreExcl operations will transition the global monitor + * from Exclusive to Open Access and at that point generate an + * Event. + */ + gen_event_reg(); + /* * FIXME: We are out of spec here. We have recorded only the address * from load_exclusive, not the entire range, and we assume that the --=20 2.47.3 From nobody Fri Mar 20 20:34:28 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=1774012156; cv=none; d=zohomail.com; s=zohoarc; b=I7miEWaXQi1GY2QVUVSeMKOEiD7jjVoXowJeaZKBYezJvZjTrKXorwWP6zxQW3M4qdnlthCMa/QKv5GwWzIYvHnhMqNd9dsyNRCDa9GsuTNtN1u4Qk/Mch2B2xnLxkemfRjNdYqysNIEpmWLlIbN/MPcNgYcii8JyiokztoZCVo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012156; 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=4oPB471eXj4owIYL5CBF7Q395nZGbkHiFon/ZP2/K+k=; b=F2ioT0GMI9eUH8wwphp6HPhNYIoQRejHiSGs2vuxJ3vSuFHYXnH7W6ntJBANLfo3HGwGKWQFzKih2xsAcFKGJYYzGcOJxzF1We660LKIsLewH4z5J8RDP4W+/dV6J7jVs9Eg2w/0wJef6xZbIDgr9Ll01rvwsaEi1J7mLrWfN8Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012156089216.07169804590535; Fri, 20 Mar 2026 06:09:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYb-00030A-0o; Fri, 20 Mar 2026 09:06:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYY-0002wI-8s for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:26 -0400 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYU-00063t-3l for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:23 -0400 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-667acaeae82so2864686a12.3 for ; Fri, 20 Mar 2026 06:06:21 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-668d1cc8a17sm1340445a12.18.2026.03.20.06.06.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:19 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 6E90C5FAEB; Fri, 20 Mar 2026 13:06:10 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011980; x=1774616780; 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=4oPB471eXj4owIYL5CBF7Q395nZGbkHiFon/ZP2/K+k=; b=IHYHI5EX6VKTy4l4e8G7hG34T1PWQ6+Ug5744yot++EMWTz/5sUeoTuy/rNStKqfp8 ikdfkNTVviPT7bv+9zpVCRfmc8CHNfgp4Uo9ZYhuZLPOR1RF0yUpDPY3dIc8e/VC3QU+ V5S7aYZsv4pFbxJsQGFLP6TqGezYV9p7BgzrRMvxy+WMP+G4hyV4zb5tmrQ7Aqrd6Brk suVqVuIHTcBTfMioJiIyDVRuswiRjuLs7XT4yZ9cYcJJ9xdWwxVwlovsWrRXh1OpvuL/ a4K3jpMwj8vk52Ji8OvbP1IJV5fz4w3TzvJ1oK77UZrOo9fM/FUeJCsuzENqSdJSksjH A9lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011980; x=1774616780; 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=4oPB471eXj4owIYL5CBF7Q395nZGbkHiFon/ZP2/K+k=; b=heVxMqSCYG/dAdaXcQl8kFJzcNSzyC3XeW47QTd8DP+jrylytzdV3Qrss4axGczsTH 1iyPS5PAT4IfalncsOZUlwq54xbsQbi8ZZvIXLGuVA+3OPMEuS7S5nqkhxaqyuimAqk9 XC+eOYo8wnOHShczK4BuA9CW5lbMA+J7nAVQrwuS4Bh6zgjNSnsBmFv2T3QAvKOK1H0G E84t43szvfQo7RNZ/c2cxmAQyojCg3iP7fb39ZTQ1hLsLKTjjA14Awlfi14sKfPwvuQ/ aPPnABJwRaFJnWX0o0+oPXp+4JBfhB9MF97vjpxs+ZmneDPuVgq052knzkQca1oAQQe2 MP1w== X-Gm-Message-State: AOJu0Yyneqf2q5/gixjpXnntN5Jw5JHP1QAab2uSr298EBuStZ8vTe7j 4fh2I28a6Nt2P4Mjq8RE1v1h5p2O7gGmHk5CuCfyqWkjJOmS2ldCAFTiZwJKeKT5owE= X-Gm-Gg: ATEYQzzO4ie4S7LD3to2wgI2dR+PK1CSwKjFgKOiUMJ6Vac1dt26QnJ7EdsoIcBDKAm vG8ns038iWOXxplvCHLnAdxwTofi8Qx2Qmbew2VEJgnfICQzCjuvCNM8/fND07i/2Onb/R7jkO8 imE+xdXSBJcZwxGvbjaue+2LdoQ9phCb0NW1ho3mvdkisFCKPZk9SQv/7pPUxUJUo+95iQpnbEX lisl/jgH6pRwvPBQvVsifWwH9nXa1UuJHn9yNK0y7uJ42UGlpRytld+LkXKcW6tjpN6nNfvseYs ufKi4JdjxmaAZf+cXsitvdL2Uz9jRcBQ+ekBc6iLpN1by90tN25dCXgLP7ogccX/BViNXoHoLtg EVvvl5QapXpKpATMAkhJmmsqDaOn431lKoymcUe/k+4euha1TRLSbV8+jhsfC5TZRDcxyXe0nfc VsMz0Hdp81R6G2p4nnH/SGKrU= X-Received: by 2002:a05:6402:5289:b0:666:ebb7:1232 with SMTP id 4fb4d7f45d1cf-668c8f0492bmr2439429a12.6.1774011980404; Fri, 20 Mar 2026 06:06:20 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 31/35] target/arm: enable event stream on WFE instructions Date: Fri, 20 Mar 2026 13:06:02 +0000 Message-ID: <20260320130607.2071996-32-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::532; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x532.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: 1774012156255158500 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 --- target/arm/cpu.h | 2 ++ target/arm/cpu.c | 5 +++++ target/arm/tcg/op_helper.c | 37 ++++++++++++++++++------------------- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 9c25b60ae83..6a7d92d73db 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -967,6 +967,8 @@ struct ArchCPU { QEMUTimer *pmu_timer; /* Timer used for WFxT timeouts */ QEMUTimer *wfxt_timer; + /* Are we in a WFE */ + bool waiting_for_event; =20 /* GPIO outputs for generic timer */ qemu_irq gt_timer_outputs[NUM_GTIMERS]; diff --git a/target/arm/cpu.c b/target/arm/cpu.c index d51599dfdab..a0569f74cd5 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -780,6 +780,11 @@ static void arm_wfxt_timer_cb(void *opaque) ARMCPU *cpu =3D opaque; CPUState *cs =3D CPU(cpu); =20 + if (cpu->waiting_for_event) { + CPUARMState *env =3D &cpu->env; + env->event_register.as_bool =3D true; + } + /* * We expect the CPU to be halted; this will cause arm_cpu_is_work() * to return true (so we will come out of halt even with no other diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index d513045269c..fbe160ab70a 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -494,31 +494,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.as_bool) { - env->event_register.as_bool =3D false; - return; - } + if (env->event_register.as_bool) { + env->event_register.as_bool =3D false; + return; + } =20 - 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) { + cpu->waiting_for_event =3D true; + timer_mod(cpu->wfxt_timer, next_event); + } } + + cs->exception_index =3D EXCP_HLT; + cs->halted =3D 1; + cpu_loop_exit(cs); #endif } =20 --=20 2.47.3 From nobody Fri Mar 20 20:34:28 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=1774012589; cv=none; d=zohomail.com; s=zohoarc; b=HxcaPgoAoa/jap0Paxt/tNWOtjY+8SvSvYkNuAb1iFe57j6hcQQVf64vpQEFHpnYnqLVOqMTYIt613aYAQY78w/7W4WXaoObACC3GaDxynDkz/5zLtgBa6mUeFZ8RFuTyPPwBMCd6HTeVByfPe3OznFbFNOF4+yWXzE6MfJIsZI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012589; 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=KXkEIWSkkfTa0uGz005fdTwbnhJNC0icQNS5LfaBmDg=; b=QRo4jI/zqQE9aRqLZF7Z9AQOtBuTANNUQLHfpAndHTrhO6kfkYBCvEPu6Iyj/sSZ2jVuKtsO5HEQpOu9/C+kUGTLLOrCHTDbGFm6agHjD0P0x1gIct4KpIhe6CFK7OZHyZ0tSdSbbgfGwaJymxfZA/K9bcuXQ9h6dTez+qBKBaM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012589680717.4950660152845; Fri, 20 Mar 2026 06:16:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3Zi1-00064E-UR; Fri, 20 Mar 2026 09:16:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zhp-0005uk-LO for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:05 -0400 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3Zhm-0000LG-Hl for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:01 -0400 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-662b5bf4b10so3898150a12.1 for ; Fri, 20 Mar 2026 06:15:58 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f8db2fsm163039966b.23.2026.03.20.06.15.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 887F55FAED; Fri, 20 Mar 2026 13:06:10 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012556; x=1774617356; 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=KXkEIWSkkfTa0uGz005fdTwbnhJNC0icQNS5LfaBmDg=; b=aI6tFbfUZF+7Jdvpb2zkE0KyAMS7Vji56ePjwMEDqEDPyezLKasQWaB/0a1BHARpKT rDnaddlvvokKypbt4roBUcOBMWwnl9uG3hRo7WoisJu6x6AyteCvDZEMLA4AKRxMw9lS GOOjBwR5GBJWMWhUlw/gRHEFrYwoifhm/OAm1h4h10dcra+CN/Ib7IG+H/rmaaB6lo97 pFhDa1JTiYVj0lV1h9pMrf4+1B7bCWm63aHry5CWaOLT9m8dXg3wo09+7dOVH2uT9VhG ZKTrL6HXV/+7yo9Gg7ZRLvWQVLjiY0La7z/ExTXGVsuneY+tflN0x0r9cCH+aV2K1jq3 d/2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012556; x=1774617356; 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=KXkEIWSkkfTa0uGz005fdTwbnhJNC0icQNS5LfaBmDg=; b=Rwcmmx0to+m8ai/D4nGbgIoQBJ+uER8aEkoov1rIgPsU1E8kaFO0sEoMMiNtGVdw/+ e7dw7uP+vlBNNoafADtk3uTYPXgRPWiX54cLG/kD/AUlIbLTITSk3YYYSrSODLTcpWCS t4qeS0xexzr3zsM+2BNq6/b9UuC38d1vEm3kIbDubxOkksj/0s4s13F7uiF756zCh1pz MFoAPrwO0j5gGc6YRW1bxNI9Z78yPXDQrKM624vMXJJBHO1XbbKrKuhBYnSpwrWh86pM GEN232lfKG9S7Tj8CmZN9bFINpMtGecwsEalvMsZjwoiSGnIGSkVJnR9uM+IaXrGnh7w ImBg== X-Gm-Message-State: AOJu0YwHbJJX6xStnsMcZph8rHcfdpFdAZ3w+lv70a+rQEnQMCoB98zw TGktomVsKhzH5Z6xh9BVrq/gzDIam4FV/CAngGHte+D6A/4o2/+c3+k7twKbrFAnG8w= X-Gm-Gg: ATEYQzwfGCILVLu0tuu38HTQdduOt3EYYZzrwI7z0pRvipFWoXFX3G866VaWEitNKRD Izhl7R+rDqFJpHZc+NoMnZrZMnRHZV5iCnGpPA5VG+W44kbPpE9/noJYIZBvrPCiUm2KeuZFw/A RbXGXsl7urEzluen5vcHaIbcSFRUBp1D0S8tZV18wuE/lKQVAN6gospwHwNfX+filLfnY/y+6fh FrzveBqZU0C7YTBo1VnT0EP20Cul+KSPgTdSPW5eDrgtlwEzDoUpaIMfI9gF5U8xfuXvaGeb23k L6vp2gw9WW6I9FAi13wZlpjrWu/1RFssDbQjG4R2n/fZr5Buc5+fJz8S8xcHO9y1EcjGGuNw7q4 yaForsQ210JoI6JhmLPzZ2sNG/00t0CA9mjGvZgbb1bw+NMhL5SUv7g0qIxsDc6uNL/yhHdtwJK DU3PiWntTS0gaW5oda/1sgfZw= X-Received: by 2002:a17:907:1805:b0:b98:13a:c92e with SMTP id a640c23a62f3a-b982f20c399mr203464366b.2.1774012556337; Fri, 20 Mar 2026 06:15:56 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 32/35] target/arm: implement WFET Date: Fri, 20 Mar 2026 13:06:03 +0000 Message-ID: <20260320130607.2071996-33-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::529; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x529.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: 1774012591449154100 Now we have the event stream and SEV/SEVL implemented we can finally enable WFET for Aarch64. Signed-off-by: Alex Benn=C3=A9e --- 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 a05f2258f29..31ffcbc6448 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_1(wfe, void, env) 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 fbe160ab70a..8b917b344c9 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -521,6 +521,86 @@ void HELPER(wfe)(CPUARMState *env) #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, false, &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.as_bool) { + env->event_register.as_bool =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, 1, 2, false), targe= t_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) { + cpu->waiting_for_event =3D true; + 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); + } + } + + 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 38a51eb3600..f7d33ac2310 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -2110,14 +2110,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 From nobody Fri Mar 20 20:34:28 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=1774012604; cv=none; d=zohomail.com; s=zohoarc; b=SVILiC4YO3LB2FPmSMj4VqS0fxWcEO9rb1ic3SZmovS+QAJMrRrgcvT6LX2nHsRy1il/gsiJEBS0fy2euasch89U05p75NXdyaL5fzRSPuF7I+x9WrNTbWMSgW9Z63vQn5pQjT/OK6kxc88+DGnJtgHbwiWZmLe09lQcUY3oAXE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012604; 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=kbg/XjaS6+MPWBcOfNuHiSkOYAA/xRfptxmMgNfQPiI=; b=HTSTaxElkBFLkOec01sXQWVxD+Koehro/E9q4LlFFo7rHP5VQruSj8uLpJNJi1+j1MSSsK6n1Mk+asxJyEQSbkg7rzLFw0qX2ie+ufZRmwBOBF7n5Kkjcq1FQJYncZE0PVwSIqJrL+5qSrKqs9qi7tCxj/bRiUnLO0JPigV8Y8o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012604817980.4377764413008; Fri, 20 Mar 2026 06:16:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3Zi1-00062i-Cb; Fri, 20 Mar 2026 09:16:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3Zho-0005uf-DC for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:16:05 -0400 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3Zhm-0000LE-3A for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:15:59 -0400 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-b976536806cso303958766b.0 for ; Fri, 20 Mar 2026 06:15:57 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832beecf4sm163503866b.0.2026.03.20.06.15.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:15:55 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 9FE115FAF0; Fri, 20 Mar 2026 13:06:10 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774012556; x=1774617356; 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=kbg/XjaS6+MPWBcOfNuHiSkOYAA/xRfptxmMgNfQPiI=; b=BPj7O80IPK0kdkKc2rYnQBNXb9s5feQCBoyak5nHfWQsto3rWXFsfa1txw8zkRd35P 2ocH6xN/cYJA/rUk4RrUlvWI3OTmGj6YwqP28nN8ZTeEqtbOvlzTZMj0De40/dfnWHnm X5xRi1BxCFOomJ/q6nfNy9KwuGU4krzm7ft4R+zu9+U1nfFzSlBXaD9cSSf7ezb3a1j/ AtYKhTfHTBr3+91KBIKUbNfjvRtjzItJOgTmS3HZVZfmhAMvKTeMvYOIT1qvGAZVZnXs tUAZK36npro849b2D6ZIn9uFEE2DXfawC1NiXzkg6K9la15wVie/CiXjtSVAn8oXbboD Wk0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774012556; x=1774617356; 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=kbg/XjaS6+MPWBcOfNuHiSkOYAA/xRfptxmMgNfQPiI=; b=FHUnfsPYOnxNoP/3A4y5ZSCMQqMc1GAh0BAfoY2aG4SMZD16IXhfoz6mg/XEMFHsbw 7kOd2UROKpCs4lTjpYE34lOqqGeIRWxVLXd/rCZH49xHiECqQZuhfIObKKm4mHBsXe0b vNoPp0+4j0Rkx9RScs3WkF03fxV8kPvt6txN1FbKdacbEshsqxaIvK6s3h1QGB8mcxxl riDSNMVKHRQidMCUxqY/eWTTX+UsTQ4hLyZvi4TJ1HM+QTM3DkjZHFPdwC0psg4jVlm+ DtYGRGBV2aIxvUlSkM2F19orInFGAGz3480PlYNl2izWiR7kQkT385jRH0uj7f68M67L zMYQ== X-Gm-Message-State: AOJu0YyK3bsWS82LhvtYX9ptFp62V/3/OZSzZj84HbNMNVPxGk/jkNo3 fvkNW+hPnxOPTywJILveUA7d+gy3xiAarVHMn8IGvOcWwID7YoWPs8ksDWRbOanYoSw= X-Gm-Gg: ATEYQzyFRegQXt/wVmfD/KqneOXl3+Lp90KuN1sKBRsvJ4WiDFeAHUhD4Mh4tczLpXO 6qpuNCGaAxzAo1IwfUkQ/oXv5Ib/nTH2aksQoB2kCzT/l2qfno0QoFV3r6ooD+h79MzkWMlB50j r1PC2qPJHhrLJsj3YvPsFqDFP0okq42Oo2OVTQKwl7iCZHhu9ikFDAxh7RTIelxVtIz8XIQO62m 5UfxNyJUrYwcOMeAzCBM6G7wh43uMGwus3WVaHLdhMvTsimlRJmPFZ1MNJtkLiJU0IW9wRU7fsz HLNQy1VpHVxXkyc8SDJDoJ/pmVtFHNbNG4n+t/um34TeIcLESF5S9BpOkmv9Bs6EXOAP7Oluav2 /jISW3qNly61jcnZ/W22yMKxYovgvO42rLyCkJYZ9qXJhHgfWYKQPUd/mdspx2JE0b10kv14gaF xVTymetLvK/kF91vq8FgXxa4k= X-Received: by 2002:a17:907:d307:b0:b87:965:9079 with SMTP id a640c23a62f3a-b982f1ec9cdmr220292466b.3.1774012555972; Fri, 20 Mar 2026 06:15:55 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 33/35] tests/tcg: split stage 1 between devices and RAM Date: Fri, 20 Mar 2026 13:06:04 +0000 Message-ID: <20260320130607.2071996-34-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::633; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x633.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: 1774012604988158500 All the -M virt devices live in the first GB of address space. Add a 1Gb block mapping for devices and continue pointing the second block at stage 2 and adjust appropriately. Signed-off-by: Alex Benn=C3=A9e --- tests/tcg/aarch64/system/boot.S | 43 ++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/tests/tcg/aarch64/system/boot.S b/tests/tcg/aarch64/system/boo= t.S index 8bfa4e4efc7..03a5bad2ab0 100644 --- a/tests/tcg/aarch64/system/boot.S +++ b/tests/tcg/aarch64/system/boot.S @@ -248,29 +248,34 @@ at_testel: msr ttbr0_el1, x0 =20 /* - * Setup a flat address mapping page-tables. Stage one simply - * maps RAM to the first Gb. The stage2 tables have two 2mb - * translation block entries covering a series of adjacent - * 4k pages. + * Setup a flat address mapping page-tables. + * + * ttb (Level 1): + * - Entry 0 [0 - 1GB]: 1GB Device block (for GIC and other H/W) + * - Entry 1 [1GB - 2GB]: Table entry pointing to ttb_stage2 (for RAM) */ =20 - /* Stage 1 entry: indexed by IA[38:30] */ - adr x1, . /* phys address */ - bic x1, x1, #(1 << 30) - 1 /* 1GB alignment*/ - add x2, x0, x1, lsr #(30 - 3) /* offset in l1 page table */ + /* Entry 0: 1GB Device block mapping at 0x0 */ + ldr x1, =3D0x401 | (1 << 2) /* AF=3D1, block, AttrIndx=3DAttr1 (Device) = */ + str x1, [x0] =20 - /* point to stage 2 table [47:12] */ - adrp x0, ttb_stage2 - orr x1, x0, #3 /* ptr to stage 2 */ - str x1, [x2] + /* Entry 1: Table entry pointing to ttb_stage2 */ + adrp x1, ttb_stage2 + orr x1, x1, #3 /* ptr to table (type=3D3) */ + str x1, [x0, #8] =20 - /* Stage 2 entries: indexed by IA[29:21] */ + /* Stage 2 entries: indexed by IA[29:21] (within 1GB-2GB range) */ + adrp x0, ttb_stage2 + add x0, x0, :lo12:ttb_stage2 ldr x5, =3D(((1 << 9) - 1) << 21) =20 /* First block: .text/RO/execute enabled */ adr x1, . /* phys address */ bic x1, x1, #(1 << 21) - 1 /* 2mb block alignment */ - and x4, x1, x5 /* IA[29:21] */ + /* Note: we assume RAM is in the 1GB-2GB range, so IA[30] is 1 */ + mov x4, x1 + bic x4, x4, #(1 << 30) /* remove 1GB offset for L2 index */ + and x4, x4, x5 /* IA[29:21] */ add x2, x0, x4, lsr #(21 - 3) /* offset in l2 page table */ ldr x3, =3D0x401 /* attr(AF, block) */ orr x1, x1, x3 @@ -280,7 +285,9 @@ at_testel: adrp x1, .data add x1, x1, :lo12:.data bic x1, x1, #(1 << 21) - 1 /* 2mb block alignment */ - and x4, x1, x5 /* IA[29:21] */ + mov x4, x1 + bic x4, x4, #(1 << 30) /* remove 1GB offset for L2 index */ + and x4, x4, x5 /* IA[29:21] */ add x2, x0, x4, lsr #(21 - 3) /* offset in l2 page table */ ldr x3, =3D(3 << 53) | 0x401 /* attr(AF, NX, block) */ orr x1, x1, x3 @@ -290,7 +297,9 @@ at_testel: adrp x1, mte_page add x1, x1, :lo12:mte_page bic x1, x1, #(1 << 21) - 1 - and x4, x1, x5 + mov x4, x1 + bic x4, x4, #(1 << 30) /* remove 1GB offset for L2 index */ + and x4, x4, x5 add x2, x0, x4, lsr #(21 - 3) /* attr(AF, NX, block, AttrIndx=3DAttr1) */ ldr x3, =3D(3 << 53) | 0x401 | (1 << 2) @@ -317,7 +326,7 @@ at_testel: ldr x0, =3D (2 << 32) | 25 | (3 << 10) | (3 << 8) msr tcr_el1, x0 =20 - mov x0, #0xee /* Inner/outer cacheable WB */ + ldr x0, =3D0x04ee /* Attr1: Device-nGnRE, Attr0: Normal WB */ msr mair_el1, x0 isb =20 --=20 2.47.3 From nobody Fri Mar 20 20:34:28 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=1774012010; cv=none; d=zohomail.com; s=zohoarc; b=Bq+KcJ6DfjWYZvrlUftwnwZc36mUYWHtMGk6ATNm4z4oH1obn7jGWlN5cvDl2UGh9oU7ZSt2yv9BnUAnFWGDMfHOUuJyH7PVLQSGEWB71F9c49tvAQ7JShbtFh+zwRY1lemPylV3PU0YgZ+tiVA0T4vSyl/KCi7519fyDjpsgi0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012010; 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=cAlPlaT/8Hy9mK47F+22fBNn4gCuZDEOegCdhpCflck=; b=FFoS56MNcWP+oCtk0qwsooSCgp39GBcEq45tM5sDbchBJicWewgEM8jt5k7uh+n1R58ahVXLJbmt7yuJfBTLNsR42eiwlO77NB2pDZPsTEtUkn9BqgcsfXZoAr8R27kdJV//5HsHJ68bXJP9YcLQxNehlK+7JFLoo4RUB7HUw7k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012010951192.6381662646072; Fri, 20 Mar 2026 06:06:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYk-00038b-Lf; Fri, 20 Mar 2026 09:06:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYa-0002za-Ea for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:28 -0400 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYX-00065X-Rz for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:28 -0400 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-666f646f5cfso4730392a12.1 for ; Fri, 20 Mar 2026 06:06:23 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b983365f607sm154760966b.50.2026.03.20.06.06.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:17 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id B8E605FAF9; Fri, 20 Mar 2026 13:06:10 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011983; x=1774616783; 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=cAlPlaT/8Hy9mK47F+22fBNn4gCuZDEOegCdhpCflck=; b=X/1hJ3JY04EIZtG1oUJQtDZRQ2vQIlyL+eb6hKgrU9Gv0yYeqDtFU2wLB55e/S96Ej jelPO5EduyIw+XnNsbaPIjhc1nwKgNFkep7uXeFy4CJWBdQAHamA3G3m7GsmnvCdZfk7 NdzcnzKrZHZqM1Zba2tldxWHHCNZYGh+tQca2OUnl++DeS4cVKBwAOLIorcXJFhPO2LG DrWxAM3vaOehgoAt5+6tJ3KXJMKohk7JEOYlLyJ8xrvxuf3Z9nK3scM7TBIV0Jsytn8h wCUTcy+fPdII4aLrgPlflNQXIBf5vkfUfPOD+4CLgRfOJJ/vr4MBUuqorJNvA8AQub6v E6nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011983; x=1774616783; 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=cAlPlaT/8Hy9mK47F+22fBNn4gCuZDEOegCdhpCflck=; b=QpIF6f3sETRzHaBbrdUux6rXPKoUGL6xRPV/aHI8RuWPAhwsnSZe0MFd/CsXYKiepu cfshgUKTeDtfgGtoSnLpslnrmvM3DHChybJ3+wkihZeIJhu8RyWehW2g/lhE6f32xCo4 shN9ZyM+pDOg/WHRZOoBuupjzju/mZWQNWi/PaW4Thw2TsMarm9204q5WfcbcpCeOUZp 61Vm+iopQWMlQ2kM0XqRLdBr6wOoLNySTO1ki20EwyC8N0xvw43dgJ4cnvd/OCSzvtDf 0ZKFVDn7XBNZ2BeogXTJoKTISduVqOQpQSjswLnnFM90APyCQ37/7YiUXdxLdiBGkYee vVHA== X-Gm-Message-State: AOJu0YxrCUBbdVlJhorN4lekfVdPEHqBtYMcF6dLcX3sGIicPZ7wmnq/ Ri9epDWNQQKu8vAsrD3ZZWzRQbGO0c34sAtSW7DIxqVh8yZPs4vBNrdgceNue8o5JB0= X-Gm-Gg: ATEYQzwXUukoBGDJeM2VfnSwO0/tS3ca/TIfSdNoaKeof3+G18gRAF5Ieve67HskhMn BKoKDoaWAaKBTssYffly4ZMR8RtBj6hlUTWuOCEtqpjjdC2oDQDworKS9+AKknlIJ8DJDHIHyi0 xEG8T5e6lNPsaRvBufVBQFaQ8xCjkfUXrA5IA58skAwwqyfj1mELNIMyiglRjB2Iny8EZc4Tsqx xrHWoDRcGWqLsBQHngseZegtJiAkiGIgJDiH6OLNcHJn6Kk3TAcLRE3xXBWJGpiWN1MQSNQLwKC Zo0FlHESMg4xrD8mKiOS3hhixkE13HbikVPJDiyH4XU2hJEBeOD9LvYq37ToIqPWoav+AHQPrQ1 eaToNkyHrG61g42JYkgr+B0mylZiB/4nqnalhTN0tv8ioJLXFZ+GgUB9d8ih1uvckhfG41RY3gz 7k31Q8ENLKiP5MlFYHT9BASw4= X-Received: by 2002:a17:906:f2d4:b0:b8f:c684:db37 with SMTP id a640c23a62f3a-b982f39b0a4mr163030866b.9.1774011981969; Fri, 20 Mar 2026 06:06:21 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 34/35] tests/tcg: create a mini-gic3 library Date: Fri, 20 Mar 2026 13:06:05 +0000 Message-ID: <20260320130607.2071996-35-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52e; envelope-from=alex.bennee@linaro.org; helo=mail-ed1-x52e.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: 1774012012435158500 Just enough GIC to trigger timer interrupts. Signed-off-by: Alex Benn=C3=A9e --- tests/tcg/aarch64/system/lib/gicv3.h | 56 +++++++++++++++++ tests/tcg/aarch64/system/lib/gicv3.c | 77 +++++++++++++++++++++++ tests/tcg/aarch64/Makefile.softmmu-target | 7 ++- 3 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 tests/tcg/aarch64/system/lib/gicv3.h create mode 100644 tests/tcg/aarch64/system/lib/gicv3.c diff --git a/tests/tcg/aarch64/system/lib/gicv3.h b/tests/tcg/aarch64/syste= m/lib/gicv3.h new file mode 100644 index 00000000000..9a1268937c6 --- /dev/null +++ b/tests/tcg/aarch64/system/lib/gicv3.h @@ -0,0 +1,56 @@ +/* + * GICv3 Helper Library + * + * Copyright (c) 2024 Linaro Ltd + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef GICV3_H +#define GICV3_H + +#include + +/* Virt machine GICv3 base addresses */ +#define GICD_BASE 0x08000000 /* c.f. VIRT_GIC_DIST */ +#define GICR_BASE 0x080a0000 /* c.f. VIRT_GIC_REDIST */ + +/* Distributor registers */ +#define GICD_CTLR (GICD_BASE + 0x0000) +#define GICD_TYPER (GICD_BASE + 0x0004) +#define GICD_IIDR (GICD_BASE + 0x0008) + +/* Redistributor registers (per-CPU) */ +#define GICR_SGI_OFFSET 0x00010000 + +#define GICR_CTLR 0x0000 +#define GICR_WAKER 0x0014 +#define GICR_IGROUPR0 (GICR_SGI_OFFSET + 0x0080) +#define GICR_ISENABLER0 (GICR_SGI_OFFSET + 0x0100) +#define GICR_IPRIORITYR0 (GICR_SGI_OFFSET + 0x0400) + +/* GICD_CTLR bits */ +#define GICD_CTLR_ARE_NS (1U << 4) +#define GICD_CTLR_ENA_G1NS (1U << 1) +#define GICD_CTLR_ENA_G0 (1U << 0) + +/* GICR_WAKER bits */ +#define GICR_WAKER_ChildrenAsleep (1U << 2) +#define GICR_WAKER_ProcessorSleep (1U << 1) + +/** + * gicv3_init: + * + * Initialize GICv3 distributor and the redistributor for the current CPU. + */ +void gicv3_init(void); + +/** + * gicv3_enable_irq: + * @irq: The IRQ number to enable + * + * Enable the specified IRQ (SPI or PPI). + */ +void gicv3_enable_irq(unsigned int irq); + +#endif /* GICV3_H */ diff --git a/tests/tcg/aarch64/system/lib/gicv3.c b/tests/tcg/aarch64/syste= m/lib/gicv3.c new file mode 100644 index 00000000000..a09a0e430e6 --- /dev/null +++ b/tests/tcg/aarch64/system/lib/gicv3.c @@ -0,0 +1,77 @@ +/* + * GICv3 Helper Library Implementation + * + * Copyright (c) 2024 Linaro Ltd + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "gicv3.h" + +#define write_sysreg(r, v) do { \ + uint64_t __val =3D (uint64_t)(v); \ + asm volatile("msr " #r ", %x0" \ + : : "rZ" (__val)); \ +} while (0) + +#define isb() asm volatile("isb" : : : "memory") + +static inline void write_reg(uintptr_t addr, uint32_t val) +{ + *(volatile uint32_t *)addr =3D val; +} + +static inline uint32_t read_reg(uintptr_t addr) +{ + return *(volatile uint32_t *)addr; +} + +void gicv3_init(void) +{ + uint32_t val; + + /* 1. Enable Distributor ARE and Group 1 NS */ + val =3D read_reg(GICD_CTLR); + val |=3D GICD_CTLR_ARE_NS | GICD_CTLR_ENA_G1NS; + write_reg(GICD_CTLR, val); + + /* 2. Wake up Redistributor 0 */ + /* Clear ProcessorSleep */ + val =3D read_reg(GICR_BASE + GICR_WAKER); + val &=3D ~GICR_WAKER_ProcessorSleep; + write_reg(GICR_BASE + GICR_WAKER, val); + + /* Wait for ChildrenAsleep to be cleared */ + while (read_reg(GICR_BASE + GICR_WAKER) & GICR_WAKER_ChildrenAsleep) { + /* spin */ + } + + /* 3. Enable CPU interface */ + /* Set Priority Mask to allow all interrupts */ + write_sysreg(ICC_PMR_EL1, 0xff); + /* Enable Group 1 Non-Secure interrupts */ + write_sysreg(ICC_IGRPEN1_EL1, 1); + isb(); +} + +void gicv3_enable_irq(unsigned int irq) +{ + if (irq < 32) { + /* PPI: use GICR_ISENABLER0 */ + uintptr_t addr; + + /* Set Group 1 */ + addr =3D GICR_BASE + GICR_IGROUPR0; + write_reg(addr, read_reg(addr) | (1U << irq)); + + /* Set priority (0xa0) */ + addr =3D GICR_BASE + GICR_IPRIORITYR0 + irq; + *(volatile uint8_t *)addr =3D 0xa0; + + /* Enable it */ + addr =3D GICR_BASE + GICR_ISENABLER0; + write_reg(addr, 1U << irq); + } else { + /* SPI: not implemented yet */ + } +} diff --git a/tests/tcg/aarch64/Makefile.softmmu-target b/tests/tcg/aarch64/= Makefile.softmmu-target index f7a7d2b800f..c0939a0eeca 100644 --- a/tests/tcg/aarch64/Makefile.softmmu-target +++ b/tests/tcg/aarch64/Makefile.softmmu-target @@ -4,8 +4,9 @@ =20 AARCH64_SRC=3D$(SRC_PATH)/tests/tcg/aarch64 AARCH64_SYSTEM_SRC=3D$(AARCH64_SRC)/system +AARCH64_SYSTEM_LIB_SRC=3D$(AARCH64_SYSTEM_SRC)/lib =20 -VPATH+=3D$(AARCH64_SYSTEM_SRC) +VPATH+=3D$(AARCH64_SYSTEM_SRC) $(AARCH64_SYSTEM_LIB_SRC) =20 # These objects provide the basic boot code and helper functions for all t= ests CRT_OBJS=3Dboot.o @@ -24,7 +25,7 @@ LINK_SCRIPT=3D$(AARCH64_SYSTEM_SRC)/kernel.ld LDFLAGS=3D-Wl,-T$(LINK_SCRIPT) TESTS+=3D$(AARCH64_TESTS) $(MULTIARCH_TESTS) EXTRA_RUNS+=3D$(MULTIARCH_RUNS) -CFLAGS+=3D-nostdlib -ggdb -O0 $(MINILIB_INC) +CFLAGS+=3D-nostdlib -ggdb -O0 $(MINILIB_INC) -I$(AARCH64_SYSTEM_LIB_SRC) LDFLAGS+=3D-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc =20 config-cc.mak: Makefile @@ -102,6 +103,8 @@ run-pauth-3: $(call skip-test, "RUN of pauth-3", "not built") endif =20 +gicv3.o: gicv3.c gicv3.h + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@ ifneq ($(CROSS_CC_HAS_ARMV8_MTE),) QEMU_MTE_ENABLED_MACHINE=3D-M virt,mte=3Don -cpu max -display none QEMU_OPTS_WITH_MTE_ON =3D $(QEMU_MTE_ENABLED_MACHINE) $(QEMU_BASE_ARGS) -k= ernel --=20 2.47.3 From nobody Fri Mar 20 20:34:28 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=1774012373; cv=none; d=zohomail.com; s=zohoarc; b=Ab+t8E8jXH5cxW3lFjT5QeHUy66qTxdMAN0k25/RCh+oBJJuAM8jtsJuQjTuEAPy64iuReN7lg/jbnwK6Uf+IqSKHDR8BZUE7T+KasQxTojOolbPaD3g1LBfSxOeL6uS2hN5oUEWwHs3AXIlj71ifiFZRlxZ+vPRIgYeXUEc26Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774012373; 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=KRX6bSLNd7JglBnF8oTUHMvUmVbVrp85pY+kXHoaidI=; b=aiPrME6BBBOHCyKxOkg9+Goq4iQQQpKr1TmZnvpIfvLyTEzPVgHZntbiw8mKopxt1s2I91sCAX5jBaRzBKZtY5Y1WaSsPrLmqveR6dgqq0O02DVW/imNojQEilFStJe/9h35aC72GRdQ/LmPLQceTp5qlfdhLc0D6XgPxCo1aW8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1774012373310486.09603589779147; Fri, 20 Mar 2026 06:12:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w3ZYZ-0002yl-Qv; Fri, 20 Mar 2026 09:06:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3ZYY-0002wH-9L for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:26 -0400 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w3ZYU-00064H-Eh for qemu-devel@nongnu.org; Fri, 20 Mar 2026 09:06:25 -0400 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-b97e6e48b24so101102066b.2 for ; Fri, 20 Mar 2026 06:06:21 -0700 (PDT) Received: from draig.lan ([185.124.0.237]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b98335de3casm158540866b.35.2026.03.20.06.06.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:06:20 -0700 (PDT) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id D39035FAFB; Fri, 20 Mar 2026 13:06:10 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774011981; x=1774616781; 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=KRX6bSLNd7JglBnF8oTUHMvUmVbVrp85pY+kXHoaidI=; b=jCOjyp6KS+VIbddUTvGRRnN5kV7xxXEQnwzwrkS5kPbRnTOsFNac05+HYFkrRRg4Co 4zcZecwcDkrd/YOMXXvpMglqLGVIU3njCLQuZyX0Ov+r+zMqK942dfVV6twRl1I1cREu V/5pUCS4MAVDLcbB8gFDyBoOac20jVuSavLUaRK/eKl2dTn/YA0WhL7Bq5ad+TnoGTDn BnWSpCmvZgJMjpqo9+0wBfC41kCyAQCD7N2iHVEcPAp+4flxNXgMaArU3qxBq3NxmuEt H+U26ZzTzgNdQT4sS2SFchUws3vkhx4C5KUJJtmaWjkLw6aDHkAb7+GqnbBrMnlcvZcD RySg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774011981; x=1774616781; 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=KRX6bSLNd7JglBnF8oTUHMvUmVbVrp85pY+kXHoaidI=; b=GVpsj4KZ0qOhDMMM4CTiSBQe+GwVxPMBqOQb0mCcggDpKDJCg9tDBz4ReI1qYvcWyg oX/wIYseLH1rG1l/Y/vyzMCF2WkEc1ujF5qCi4eThCbvdUYQ57kuS781aj0K6itC//fx W9JXJE8Lu0MRYsFoVkPRD18h+gc5plJTTnm+aAX8Biq35yXO6k6GDks+BJ9sZilsqusl Ryl502WVUiDbSJI0qnzmEj89dOdeWkhxJes3MRRcM1W9Q+r6EYJM82mkGhoo958H6MiA HSzMJgmdKfJRcK665DceC3LlxLFvJhymgoDuA08oE/dX9fFgWigNaJ4WX9OxCfpLcXe3 vxKw== X-Gm-Message-State: AOJu0YwsgqNINodGE5bGtRyl1G/DCcMUb8GSLy4xg9n7xH1P19fccJ0r yv0mhLt4Ns2F11gidbTMDpWUTYzNxIfN8wTb4Nzs0D/eOY8H8BMMVaMdiqcten/dl+Q= X-Gm-Gg: ATEYQzxz4L3a6rnK9Qgq0YS9gm8E0bkH8y8g8Ic/EzNwjierUfcwV1OJZsowI4dJPob HfBxS2PB2AqleYnnEdvbUq6V3YESutEwUdzJHAm48AgJr5jtuO/b3xSHlI4cPbzRmxtQhAXdJKD +R0dtjW7rC6YZB68B67GTDDK+tc59zVB+xa+KBmn5/6OzurXSkhFPtaeWDU8cJ8QyCbjydaWupn 2+t5GV6BNXIcze7LC0giIbyrOin0l2XfVXRhpK24q+f2qSbaHcBwpOJyB6bv6x+dj84pG8YJpMF oDkwufU57A0v0kVh8rF9vsMubWK+0XlAIZEr/b3dtHTS5pG+FrpdSsNkijM8Tct9I9iMsCeG0xt hiep7rjIktOo4FjHR5ZaXPaD8UAEAxJ1/p5itd4qn/G69RRLKBjAb3Cl0nbiVj8y5sAYZFpudSG MTWVAoSHx003xonbZ+wDwYe18= X-Received: by 2002:a17:906:2099:b0:b8a:f2cb:8088 with SMTP id a640c23a62f3a-b982f37d13fmr133976766b.33.1774011980711; Fri, 20 Mar 2026 06:06:20 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Peter Maydell , qemu-arm@nongnu.org, Pedro Barbuda , Mohamed Mediouni , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [RFC PATCH 35/35] tests/tcg: add basic test for aarch64 wf[ie][t] insns Date: Fri, 20 Mar 2026 13:06:06 +0000 Message-ID: <20260320130607.2071996-36-alex.bennee@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320130607.2071996-1-alex.bennee@linaro.org> References: <20260320130607.2071996-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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::636; envelope-from=alex.bennee@linaro.org; helo=mail-ej1-x636.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: 1774012373630158500 Signed-off-by: Alex Benn=C3=A9e --- tests/tcg/aarch64/system/wfx.c | 126 ++++++++++++++++++++++ tests/tcg/aarch64/Makefile.softmmu-target | 8 ++ tests/tcg/aarch64/system/boot.S | 12 ++- 3 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 tests/tcg/aarch64/system/wfx.c diff --git a/tests/tcg/aarch64/system/wfx.c b/tests/tcg/aarch64/system/wfx.c new file mode 100644 index 00000000000..567d9e59c70 --- /dev/null +++ b/tests/tcg/aarch64/system/wfx.c @@ -0,0 +1,126 @@ +/* + * WFX Instructions Test (WFI, WFE, WFIT, WFET) + * + * Copyright (c) 2024 Linaro Ltd + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include "gicv3.h" + +#define __stringify_1(x...) #x +#define __stringify(x...) __stringify_1(x) + +#define read_sysreg(r) ({ \ + uint64_t __val; \ + asm volatile("mrs %0, " __stringify(r) : "=3Dr" (__val)); \ + __val; \ +}) + +#define write_sysreg(r, v) do { \ + uint64_t __val =3D (uint64_t)(v); \ + asm volatile("msr " __stringify(r) ", %x0" \ + : : "rZ" (__val)); \ +} while (0) + +#define isb() asm volatile("isb" : : : "memory") +#define sev() asm volatile("sev" : : : "memory") +#define wfi() asm volatile("wfi" : : : "memory") +#define wfe() asm volatile("wfe" : : : "memory") +#define wfit(reg) asm volatile("wfit %0" : : "r" (reg) : "memory") +#define wfet(reg) asm volatile("wfet %0" : : "r" (reg) : "memory") + +#define enable_irq() asm volatile("msr daifclr, #2" : : : "memory") +#define disable_irq() asm volatile("msr daifset, #2" : : : "memory") + +static void wait_ticks(uint64_t ticks) +{ + uint64_t start =3D read_sysreg(cntvct_el0); + while ((read_sysreg(cntvct_el0) - start) < ticks) { + /* spin */ + } +} + +int main(void) +{ + uint64_t start, end, elapsed; + uint64_t timeout; + + gicv3_init(); + gicv3_enable_irq(27); /* Virtual Timer PPI */ + + ml_printf("WFX Test\n"); + + /* 1. Test WFI with timer interrupt */ + ml_printf("Testing WFI..."); + /* Setup virtual timer to fire in 100000 ticks (~2ms at 50MHz) */ + start =3D read_sysreg(cntvct_el0); + write_sysreg(cntv_tval_el0, 100000); + write_sysreg(cntv_ctl_el0, 1); /* Enable timer, no mask */ + isb(); + + /* + * We don't have a full interrupt handler, but WFI should wake up + * when the interrupt is pending even if we have it masked at the CPU. + * PSTATE.I is set by boot code. + * + * We unmask interrupts here to ensure the CPU can take the minimal + * exception handler defined in boot.S. + */ + enable_irq(); + wfi(); + disable_irq(); + end =3D read_sysreg(cntvct_el0); + elapsed =3D end - start; + if (elapsed < 100000) { + ml_printf("FAILED: WFI woke too early (%ld ticks)\n", elapsed); + return 1; + } + ml_printf("PASSED (elapsed %ld ticks)\n", elapsed); + write_sysreg(cntv_ctl_el0, 0); /* Disable timer */ + + /* 2. Test WFE and SEV */ + ml_printf("Testing WFE/SEV..."); + sev(); /* Set event register */ + start =3D read_sysreg(cntvct_el0); + wfe(); /* Should return immediately */ + end =3D read_sysreg(cntvct_el0); + elapsed =3D end - start; + /* while this should be fast there is some overhead from TCG */ + if (elapsed > 20000) { + ml_printf("FAILED: WFE slept despite SEV (%ld ticks)\n", elapsed); + return 1; + } + ml_printf("PASSED (%ld ticks)\n", elapsed); + + /* 3. Test WFIT */ + ml_printf("Testing WFIT..."); + start =3D read_sysreg(cntvct_el0); + timeout =3D start + 200000; + wfit(timeout); + end =3D read_sysreg(cntvct_el0); + elapsed =3D end - start; + if (elapsed < 200000) { + ml_printf("FAILED: WFIT woke too early (%ld ticks)\n", elapsed); + return 1; + } + ml_printf("PASSED (elapsed %ld ticks)\n", elapsed); + + /* 4. Test WFET */ + ml_printf("Testing WFET..."); + start =3D read_sysreg(cntvct_el0); + timeout =3D start + 200000; + wfet(timeout); + end =3D read_sysreg(cntvct_el0); + elapsed =3D end - start; + if (elapsed < 200000) { + ml_printf("FAILED: WFET woke too early (%ld ticks)\n", elapsed); + return 1; + } + ml_printf("PASSED (elapsed %ld ticks)\n", elapsed); + + ml_printf("ALL WFX TESTS PASSED\n"); + return 0; +} diff --git a/tests/tcg/aarch64/Makefile.softmmu-target b/tests/tcg/aarch64/= Makefile.softmmu-target index c0939a0eeca..9a5b95de621 100644 --- a/tests/tcg/aarch64/Makefile.softmmu-target +++ b/tests/tcg/aarch64/Makefile.softmmu-target @@ -105,6 +105,14 @@ endif =20 gicv3.o: gicv3.c gicv3.h $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@ + +wfx: CFLAGS +=3D -march=3Darmv8.7-a +wfx: LDFLAGS +=3D gicv3.o +wfx: gicv3.o + +QEMU_GICV3_MACHINE=3D-M virt,gic-version=3D3 -cpu max -display none +run-wfx: QEMU_OPTS=3D$(QEMU_GICV3_MACHINE) $(QEMU_BASE_ARGS) -kernel + ifneq ($(CROSS_CC_HAS_ARMV8_MTE),) QEMU_MTE_ENABLED_MACHINE=3D-M virt,mte=3Don -cpu max -display none QEMU_OPTS_WITH_MTE_ON =3D $(QEMU_MTE_ENABLED_MACHINE) $(QEMU_BASE_ARGS) -k= ernel diff --git a/tests/tcg/aarch64/system/boot.S b/tests/tcg/aarch64/system/boo= t.S index 03a5bad2ab0..6a71fc0da5a 100644 --- a/tests/tcg/aarch64/system/boot.S +++ b/tests/tcg/aarch64/system/boot.S @@ -60,7 +60,6 @@ curr_sp0_irq: curr_sp0_fiq: curr_sp0_serror: curr_spx_sync: -curr_spx_irq: curr_spx_fiq: curr_spx_serror: lower_a64_sync: @@ -379,6 +378,17 @@ _exit: semihosting_call /* never returns */ =20 + /* + * IRQ handler + */ + .global curr_spx_irq +curr_spx_irq: + /* Minimal IRQ handler: just mask the timer and return */ + mrs x0, cntv_ctl_el0 + orr x0, x0, #2 /* IMASK=3D1 */ + msr cntv_ctl_el0, x0 + eret + /* * Helper Functions */ --=20 2.47.3