From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 2VdYIi7TX2oesyEAWB0awg (envelope-from ) for ; Tue, 21 Jul 2026 16:14:38 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=E0iGzO8+; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 86DC11E09E; Tue, 21 Jul 2026 16:14:38 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id F3BCB1E033 for ; Tue, 21 Jul 2026 16:14:37 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6E5114BA2E17 for ; Tue, 21 Jul 2026 20:14:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6E5114BA2E17 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=E0iGzO8+ Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by sourceware.org (Postfix) with ESMTPS id 85B3D4BA2E0B for ; Tue, 21 Jul 2026 20:14:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 85B3D4BA2E0B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 85B3D4BA2E0B Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::42d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784664847; cv=none; b=tP0x2Yayb8/mWqWhNUl0Gq5QZTQAHf8vTDauhGzDN9duVIM3Pp3lXbYBHx8VVUDJhrFADqGgFzKaOwftBQ4szcDdA8ZFcOPKe83Q0pa7JCGfvwGJtDWinMsrE5xGO+Y52JAmafogoGVX9Er5ZZskv2+kq0Inz5tEg7ghtnCv4II= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784664847; c=relaxed/simple; bh=m5z3akF5per7xU8WRiO2S1rs2q73kQa5QS2ietUhpS4=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=HfSN2/d2V55STi34wxc3H0Ux9NgRPMyyotO0nFNg5M587VTYBG4DhzfxN2eDWY9ABdeGnwwMbNOHBIYxQlXSz7zbqWiH/J7vC4epHEaj9EU3f6T+MGRYJ+f5HBhcVxQ6Z7g7/FAf7S3e8ZQQzHUpdgDSoMjktHQVtDcrFPCsUsg= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=E0iGzO8+ DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 85B3D4BA2E0B Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-475417f010dso6717115f8f.2 for ; Tue, 21 Jul 2026 13:14:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784664846; x=1785269646; darn=sourceware.org; h=content-transfer-encoding:content-type:in-reply-to:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to:content-type; bh=GEuIOnfG8EDz8Qaf/ujqH97JDcj43grdhVqiaJKHB44=; b=E0iGzO8+5dYZrZLt825nTGIJnasIKyjzjkGogWu3BQRijM1hB8fNlVmANJdWjhy7q4 qSysK0RaDsJjEvklwY9KlfGpzAI+9DFIysgEB01Wye0OOchK/e0tgypPmEVnHcyknH+E ej2NGQyrd52j/Vp6YWyTEHwh1TB1LKE/s7UiFueqO+z68YZtXYsFZddMGCElgf5NJYH6 ivtOTfHro2Fdaro2h5iXhdA0CCA+PVlXXodgEua7ZdNXFh3mWDy6hUvtuF6PgvsXnxqM Ds2pM1NFIDmyeVRuFpYTj0wBYhc1ACqGu79JqY6DgByzwlfeQVk8Jdto6akMm1japLsD BX1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784664846; x=1785269646; h=content-transfer-encoding:content-type:in-reply-to:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=GEuIOnfG8EDz8Qaf/ujqH97JDcj43grdhVqiaJKHB44=; b=pigHCl8Y44pyuLSi3ZRiUSrFMANFFVFMdBxWuSjDu4+slqgbJqlT98lv1zYMHEI0cc FmZFW1e/IV/OaZKZ1bzxYkvLHmX0GIqP2mHrgwe2vHmWrTErPIcD5M/ob3rro2QLNOSE xxTVipS4eNUd/xNiEBxXksElOT/kqZRjgLWHHlHAS+1Lzp/vZADFPXuBmJDtNzZwcffV ccVmGfgIJAWqr/pSsSKkziGM28sw8GBCSzt0UAIIX+NtmKMzTSEb5GxiCIoT+EKj9Kyq SFaa+971ZQ/q7G+tkQTXJRQEFTNy8c3n+KXEq+AuWJ6+e7O9Wgq7wwApilcUPXeoVN74 c13A== X-Forwarded-Encrypted: i=1; AHgh+RotBrfHStvgmBAqV8bokO1lbfhXPUadmiOR9U+HanWQyIC30od5/JZXLrhUICo35TiOir9bLz8fzU1J3g==@sourceware.org X-Gm-Message-State: AOJu0Yx3UCN9ItpqdfzyQTJ31eQ+NStKnIvGn5Oe4fWv41rp0XbIV4Y+ B+LMifNmuQ7nDKMckqTQxzuSEhIWXGQ2w2RygC+GWUEQe8QfwavrL8xb X-Gm-Gg: AR+sD13oMqA1JD7Msn+ZDqG35nf+WoyRtURo29PlSKxmI1r9tQQWqe7k3XwFrczLKhb izx1zvn28GB1uhrFS3pteUY5sZDGg2QeQlNJ70nPjlqswq9KQl3GLgELp+0Mg+mgq/L0xnwhuqb Oab30mvzLcMT5ZB0xiBUcdZ9jXdmtUvIsmrJQK3nqqFI2D/WecKQfxSxDGaXPxWpy09+MIMxQwY oaAfNcLpxtY4uOL38yMLo1a2lVHdHkl6jbq78GT3mPj+lmJT3gvogWj3Y8QB2GEmjeC1W4VrcPP i/tKks92kQn0n2SIweK+FQqLisr6PF3fFJJnXyN4oJBddc07av1u9ibEAbanUG2Zmr7EvKXrR2T 9cGahHMU1IpubvXb809ynRtdJttJCUdeQ6hzJStJQmgmxAp8/HYJPuW29rhD5DrJMM1JyiQ7rL4 OU5tfmYpFTKAlKz/0= X-Received: by 2002:a05:6000:25fe:b0:46e:c978:7ddc with SMTP id ffacd0b85a97d-47f62316b85mr23520056f8f.24.1784664846174; Tue, 21 Jul 2026 13:14:06 -0700 (PDT) Received: from [192.168.0.38] ([86.12.216.189]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f63e51986sm47068435f8f.11.2026.07.21.13.14.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 21 Jul 2026 13:14:05 -0700 (PDT) Message-ID: <2e455a7c-1fd4-499b-b89e-dbb332e3237f@gmail.com> Date: Tue, 21 Jul 2026 21:14:04 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 4/5] [PATCH 4/5] gdb/aarch64: Add core file support for FEAT_S1POE Content-Language: en-US To: srinath.parvathaneni@arm.com, gdb-patches@sourceware.org Cc: guinevere@redhat.com, thiago.bauermann@linaro.org, Ezra.Sitorus@arm.com, Matthieu.Longo@arm.com, simark@simark.ca References: <20260714201530.78374-1-srinath.parvathaneni@arm.com> <20260714201530.78374-5-srinath.parvathaneni@arm.com> From: Luis In-Reply-To: <20260714201530.78374-5-srinath.parvathaneni@arm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org On 14/07/2026 21:15, srinath.parvathaneni@arm.com wrote: > From: Srinath Parvathaneni > > Add support for POR_EL0 dumps/reads for core files and also the > support for reading the POE values in the signal frame. You might want to split this patch in two for corefile and signal frame support, or update the patch subject to clarify what this is doing. > --- > gdb/aarch64-linux-tdep.c | 50 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 50 insertions(+) > > diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c > index b8a02ab9972..94ed3234009 100644 > --- a/gdb/aarch64-linux-tdep.c > +++ b/gdb/aarch64-linux-tdep.c > @@ -171,6 +171,7 @@ > #define AARCH64_ZT_MAGIC 0x5a544e01 > #define AARCH64_GCS_MAGIC 0x47435300 > #define AARCH64_FPMR_MAGIC 0x46504d52 > +#define AARCH64_POE_MAGIC 0x504f4530 > > /* Defines for the extra_context that follows an AARCH64_EXTRA_MAGIC. */ > #define AARCH64_EXTRA_DATAP_OFFSET 8 > @@ -220,6 +221,9 @@ > /* FPMR constants. */ > #define AARCH64_FPMR_OFFSET 8 > > +/* POE constants. */ > +#define AARCH64_POE_OFFSET 8 > + > /* Holds information about the signal frame. */ > struct aarch64_linux_sigframe > { > @@ -273,6 +277,10 @@ struct aarch64_linux_sigframe > /* FPMR value. */ > CORE_ADDR fpmr = 0; > > + /* True if we have an POE entry in the signal context, false otherwise. */ Nit: s/an POE/a POE > + bool poe_available = false; > + /* FPMR value. */ Spurious change above? > + CORE_ADDR poe = 0; > }; > > /* Read an aarch64_ctx, returning the magic value, and setting *SIZE to the > @@ -605,6 +613,22 @@ aarch64_linux_read_signal_frame_info (const frame_info_ptr &this_frame, > section += size; > break; > } > + case AARCH64_POE_MAGIC: > + { > + gdb_byte buf[8]; > + if (target_read_memory (section + AARCH64_POE_OFFSET, > + buf, 8) != 0) > + { > + warning (_("Failed to read the POE section address from the" > + " signal frame context.")); > + section += size; > + break; > + } > + signal_frame.poe = extract_unsigned_integer (buf, 8, byte_order); > + signal_frame.poe_available = true; > + section += size; > + break; > + } > case AARCH64_EXTRA_MAGIC: > { > /* Extra is always the last valid section in reserved and points to > @@ -775,6 +799,13 @@ aarch64_linux_sigframe_init (const struct tramp_frame *self, > signal_frame.fpmr); > } > > + /* Handle POE register. */ > + if (tdep->has_poe () && signal_frame.poe_available) > + { > + trad_frame_set_reg_value (this_cache, tdep->poe_regnum, > + signal_frame.poe); Is the identation off above? > + } > + > /* Restore the tpidr2 register, if the target supports it and if there is > an entry for it. */ > if (signal_frame.tpidr2_section != 0 && tdep->has_tls () > @@ -828,6 +859,7 @@ aarch64_linux_sigframe_prev_arch (const frame_info_ptr &this_frame, > features.vq = sve_vq_from_vl (signal_frame.vl); > features.svq = (uint8_t) sve_vq_from_vl (signal_frame.svl); > features.fpmr = signal_frame.fpmr_available; > + features.poe = signal_frame.poe_available; > > struct gdbarch_info info; > info.bfd_arch_info = bfd_lookup_arch (bfd_arch_aarch64, bfd_mach_aarch64); > @@ -1655,6 +1687,23 @@ aarch64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, > &aarch64_linux_fpmr_regset, "FPMR", cb_data); > } > > + if (tdep->has_poe ()) > + { > + const struct regcache_map_entry poe_regmap[] = > + { > + { 1, tdep->poe_regnum, sizeof (uint64_t) }, > + { 0 } > + }; > + > + const struct regset aarch64_linux_poe_regset = > + { > + poe_regmap, regcache_supply_regset, regcache_collect_regset > + }; > + > + cb (".reg-aarch-poe", sizeof (uint64_t), sizeof (uint64_t), > + &aarch64_linux_poe_regset, "POE register", cb_data); > + } > + > if (tdep->has_pauth ()) > { > /* Create this on the fly in order to handle the variable location. */ > @@ -1768,6 +1817,7 @@ aarch64_linux_core_read_description (struct gdbarch *gdbarch, > features.gcs = features.gcs_linux = hwcap & AARCH64_HWCAP_GCS; > features.mte = hwcap2 & AARCH64_HWCAP2_MTE; > features.fpmr = hwcap2 & AARCH64_HWCAP2_FPMR; > + features.poe = hwcap2 & AARCH64_HWCAP2_POE; > > /* Handle the TLS section. */ > asection *tls = bfd_get_section_by_name (abfd, ".reg-aarch-tls");