From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id jfFvKhuZZGr3wywAWB0awg (envelope-from ) for ; Sat, 25 Jul 2026 07:08:11 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=I5rPhNoF; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 894D31E09E; Sat, 25 Jul 2026 07:08:11 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham 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 1C9901E099 for ; Sat, 25 Jul 2026 07:08:10 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 249CB4BA2E3B for ; Sat, 25 Jul 2026 11:08:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 249CB4BA2E3B Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=I5rPhNoF Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 60ABF4BA5435 for ; Sat, 25 Jul 2026 11:07:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 60ABF4BA5435 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gnu.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gnu.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 60ABF4BA5435 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784977666; cv=none; b=TeZ29dUkLC8tdAfUUIbWPBWjGr4USDsCtX96hFo5XwNP51mHyreYX/238OIUyxZ7IFJEa1zBE8Uvg3ryC1qc9Bpu1tgMWJy4/Xs9DXR+RwViRAMTyveNedJF0jdzhQw12XEbv0cLKyGw3UsgJXDSfK08TxKdNy2W5A85v+bx/1w= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784977666; c=relaxed/simple; bh=Lp2rZqVzbKJADSqI0H3/vpUtS1etO9x5QG93C/5M8FM=; h=DKIM-Signature:Date:Message-Id:From:To:Subject; b=iO07H7ihI0RZTZ65BA9fgxnT9vXkUTVS+RbNqPH72U/48B49mZpOHi0SufGBoU/kmbr7iHf0gZsNrLTW4WPEP7qWcOwjfztoVK/aCgx8t96dq8QekmoGK9zHV9qNlm6gUEawyMiQ2r94Ri8GQc6o82E1TYxwplWCKLvD36HZPv0= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=I5rPhNoF DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 60ABF4BA5435 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wnaEK-0005UP-Ja; Sat, 25 Jul 2026 07:07:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=d511abmS2ZTUTq5PNoxYq1Hc96FxbiAqgQitsk0E73A=; b=I5rPhNoFgI9k HYZtzSGAiUYEjT0jMaRJ0Gkch0+ysCrRi/wcGv6yiGrcNbWGgDehyXqvut2mZjMzCeCLLRc3BK8FA m6a/3NqW+T/Mcw5M7cKh2TtipDODKiAUFrLHy35xc1kzsfreO4XuZwRYadlO+oU0aagdPct2l37QO DCsIAzr7db8iTtBB2Y7J9jkOE+c3I1YyxupDJxl8i2tjADD79XzP25l3s/MRlObel2zi3Bf8htvjY FsbOhWyFBhkxkSbPMnTCMX77IHy8QHiOR/glEzJ2RTrdsi9BXDNy2+mdpv+ax/dSsC+eTBXC9s/Qr 2UH/uTuOncBga2bwnvPbXQ==; Date: Sat, 25 Jul 2026 14:07:41 +0300 Message-Id: <86zezftjia.fsf@gnu.org> From: Eli Zaretskii To: Christina Joos Cc: gdb-patches@sourceware.org, keiths@redhat.com In-Reply-To: <20260725105335.2664219-2-christina.joos@intel.com> (message from Christina Joos on Sat, 25 Jul 2026 10:53:35 +0000) Subject: Re: [PATCH 1/1] gdb, gdbserver: Add Intel APX register support References: <20260725105335.2664219-1-christina.joos@intel.com> <20260725105335.2664219-2-christina.joos@intel.com> 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 > From: Christina Joos > Cc: keiths@redhat.com > Date: Sat, 25 Jul 2026 10:53:35 +0000 > > From: "H.J. Lu" > > Intel Advanced Performance Extensions (APX) doubles the number of > general-purpose registers (GPRs) from 16 to 32 (r16-r31). > > Those new 64-bit Extended GPRs (EGPRs) do not change the size of the > XSAVE area, as they take up the space left behind by the deprecated > MPX registers. > > In contrast to the legacy GPRS, EGPRs are not enabled by default in 64-bit > mode but are xcr0 enabled based on APX_F Intel APX state. Define > X86_XSTATE_APX_F to support this new configuration. > > Add gdb and gdbserver registers support for those new 64-bit EGPRs. > Also add byte, word and dword pseudo register support. > > Co-Authored-By: Christina Joos > --- > gdb/NEWS | 4 + > gdb/amd64-linux-tdep.c | 2 + > gdb/amd64-tdep.c | 262 ++++++++++++++---- > gdb/amd64-tdep.h | 2 + > gdb/arch/amd64.c | 4 + > gdb/arch/x86-linux-tdesc-features.c | 1 + > gdb/doc/gdb.texinfo | 5 + > gdb/features/Makefile | 1 + > gdb/features/i386/64bit-apx.c | 29 ++ > gdb/features/i386/64bit-apx.xml | 26 ++ > gdb/i386-tdep.c | 32 ++- > gdb/i386-tdep.h | 26 ++ > gdb/i387-tdep.c | 105 ++++++- > gdb/i387-tdep.h | 6 + > gdb/nat/x86-xstate.c | 1 + > gdb/target-debug.h | 1 + > gdb/testsuite/gdb.arch/amd64-apx-core.c | 88 ++++++ > gdb/testsuite/gdb.arch/amd64-apx-corefile.c | 71 +++++ > gdb/testsuite/gdb.arch/amd64-apx-corefile.exp | 67 +++++ > gdb/testsuite/gdb.arch/amd64-apx.c | 66 +++++ > gdb/testsuite/gdb.arch/amd64-apx.exp | 77 +++++ > gdb/testsuite/lib/gdb.exp | 58 ++++ > gdbserver/i387-fp.cc | 43 +++ > gdbserver/linux-x86-low.cc | 4 +- > gdbsupport/x86-xstate.h | 12 +- > 25 files changed, 931 insertions(+), 62 deletions(-) > create mode 100644 gdb/features/i386/64bit-apx.c > create mode 100644 gdb/features/i386/64bit-apx.xml > create mode 100644 gdb/testsuite/gdb.arch/amd64-apx-core.c > create mode 100644 gdb/testsuite/gdb.arch/amd64-apx-corefile.c > create mode 100644 gdb/testsuite/gdb.arch/amd64-apx-corefile.exp > create mode 100644 gdb/testsuite/gdb.arch/amd64-apx.c > create mode 100644 gdb/testsuite/gdb.arch/amd64-apx.exp Thanks. > diff --git a/gdb/NEWS b/gdb/NEWS > index 8f40ca5cb11..5b3ba152188 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -3,6 +3,10 @@ > > *** Changes since GDB 17 > > +* Support for Intel APX registers on amd64 GNU/Linux. > + Support displaying and modifying Intel APX registers (Extended GPRs > + $r16 - $r31) including byte, word and dword pseudo registers. > + > * Support for the Common Trace Format (CTF) has been removed. GDB now > saves trace information exclusively in its own "tfile" format. This part is okay. > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo > index 0030698dcee..69a2d714299 100644 > --- a/gdb/doc/gdb.texinfo > +++ b/gdb/doc/gdb.texinfo > @@ -50753,6 +50753,11 @@ amd64, 32 bits on amd64 with 32-bit pointer size (X32) and 32 bits on i386. > Following the restriction of the Linux kernel, only @value{GDBN} for amd64 > targets makes use of this feature for now. > > +The @samp{org.gnu.gdb.i386.apx} feature is optional. It should describe > +16 Extended General Purpose registers (@acronym{EGPRs}) > +@samp{r16} - @samp{r31} with 64 bits each. All @acronym{Intel APX} > +registers are valid only on amd64. This is also OK, but please use @acronym only for "APX", leaving the "Intel" part outside of it. Reviewed-By: Eli Zaretskii