Message ID | 20230411042658.1852730-1-luis.machado@arm.com |
---|---|
Headers |
Return-Path: <gdb-patches-bounces+patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8C658385772B for <patchwork@sourceware.org>; Tue, 11 Apr 2023 04:27:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8C658385772B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1681187263; bh=bY7kTYbDe2zJAf78ihGq9sK2tt3wFjlWK4d2aBNbNAM=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=vMH78KDgF2VqNQZfX0RIseFHrw+zuCWQeOzzchMCleIYYNrrniD0z41UNGFLTWlFz ioV12piiHInQvMdY/iVCYoktlSlbgJNCU5GdVrX/U4nkbqDpCuTGEIKY+n8rfHTSk/ hW6zQY/vQrIsOtMztzfiHO+9nIfcz4/lskAkLvQA= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2053.outbound.protection.outlook.com [40.107.241.53]) by sourceware.org (Postfix) with ESMTPS id 0D85D3858D20 for <gdb-patches@sourceware.org>; Tue, 11 Apr 2023 04:27:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0D85D3858D20 Received: from AM6P194CA0035.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::48) by PAWPR08MB10041.eurprd08.prod.outlook.com (2603:10a6:102:34f::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.38; Tue, 11 Apr 2023 04:27:12 +0000 Received: from AM7EUR03FT015.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:90:cafe::94) by AM6P194CA0035.outlook.office365.com (2603:10a6:209:90::48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.39 via Frontend Transport; Tue, 11 Apr 2023 04:27:12 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT015.mail.protection.outlook.com (100.127.140.173) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.28 via Frontend Transport; Tue, 11 Apr 2023 04:27:12 +0000 Received: ("Tessian outbound 3a01b65b5aad:v136"); Tue, 11 Apr 2023 04:27:12 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: c0b7677b70b0b646 X-CR-MTA-TID: 64aa7808 Received: from 053ade6d41ad.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E24F7AC6-332B-4288-991F-91D20E3BBB3A.1; Tue, 11 Apr 2023 04:27:05 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 053ade6d41ad.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 11 Apr 2023 04:27:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PzUS2izwHty3OYPKLqXhk3oVd+gewcDvA4btF5bXwedG5R2NmekzJAJqu/Twx7D7+Vzib8ajBS7n8oEcD+dcj9vRdZpQjMR5bmaNddWCxef8npMLsxVz3PNlFIT/aUP9MEzVbj/IESC+I0q70hzyx95XiEor1AN3QV4fxH2nccbIfMut8zj6BBWOXPKQISVGrUWfG5WHGNYYwZVED6yyPjfBDAmF64nmkwYiTqkXICpoiLaaN2NKs4UwqPAcoSRAAVon7iDaPpWufnBv2leDSOLNo3irIHnuWpPsM+aqNgd+ghh0fTaQOnKDRE8b1xVIxbmP7ZuLZ/ASXGAeCiVgqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bY7kTYbDe2zJAf78ihGq9sK2tt3wFjlWK4d2aBNbNAM=; b=NRkNOOpP+P6lDWCqEYc468OV9KElDahupbOhc2eRjouUGlCskpUY4TqNWjyV2U9u0jJO2oWvugNcTmjLBjaVoG7SG2eRXMHGIilMQGK5wKQ0AqH6zK/ld3MjjbzWmvqKVm5VbO4vt+AVUtDcTZLheNUPWIL0YcDKDjavKmDXIf5JNf8urTqCySlwhg/NSzKOk0unp5FBTeUk4hl0U6xP1DrS7utwCewJpeKmp1fl0PBJDqrlMjOhK0W64TpbINTsN657JA9ekJJ9rNG+DY1QhYhpzvFNCD9dZrXyxRWaVVnu5QCTmEy39yKV1nTrH0ooVVaEjXQ8kaWCFoG5xndmYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none Received: from AM3PR05CA0118.eurprd05.prod.outlook.com (2603:10a6:207:2::20) by PAVPR08MB8989.eurprd08.prod.outlook.com (2603:10a6:102:320::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.36; Tue, 11 Apr 2023 04:27:02 +0000 Received: from AM7EUR03FT053.eop-EUR03.prod.protection.outlook.com (2603:10a6:207:2:cafe::ad) by AM3PR05CA0118.outlook.office365.com (2603:10a6:207:2::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.36 via Frontend Transport; Tue, 11 Apr 2023 04:27:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by AM7EUR03FT053.mail.protection.outlook.com (100.127.140.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6298.25 via Frontend Transport; Tue, 11 Apr 2023 04:27:02 +0000 Received: from AZ-NEU-EX03.Arm.com (10.251.24.31) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.17; Tue, 11 Apr 2023 04:27:02 +0000 Received: from e129171.arm.com (10.57.80.123) by mail.arm.com (10.251.24.31) with Microsoft SMTP Server id 15.1.2507.17 via Frontend Transport; Tue, 11 Apr 2023 04:27:01 +0000 To: <gdb-patches@sourceware.org> Subject: [PATCH 00/17] SME support for AArch64 gdb/gdbserver on Linux. Date: Tue, 11 Apr 2023 05:26:41 +0100 Message-ID: <20230411042658.1852730-1-luis.machado@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM7EUR03FT053:EE_|PAVPR08MB8989:EE_|AM7EUR03FT015:EE_|PAWPR08MB10041:EE_ X-MS-Office365-Filtering-Correlation-Id: 72ff1e2b-10ba-4c1c-ca90-08db3a4505b1 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: eQgwTjLGlOpeULD5d7o5pX4IHDPh5SFzgK/XOk5NaGYR9YG86FRDFjkgKIPXRtqgKqMCE5xGV5VJPC3Ev8xQaAnsKDfPTgSVcWLV+qXfPtxKKEA/69QBI7PSIqGYvBhWCvAzME+vJpoy6luzLstmI3G9kdSMLdv679QTiZYLLGJuvHazx9wU4e8y/wkCRkBc40TeroH9OEIsBMw6uqE19jCu0/vTU/DD5eHP/GlnzBraRbrSFucCcT4N9aPYASyQsxRYnHbU+QB6MFcu3l6FsnZtsEK0s67NvJtLeX7w1aPbgj5a3NNzy32157dWMvfn2yKDUTwynZf8JB5dDKVmZmRpOb1LwKF0cMupXofH234WXtV7tu4hw0VamJFeTark1a+i9IzpumRwoBeAqCwvTU2cE1Xjfs+4/S1zqxZnEh60jC4JDS4TEPSHCT/k6Pq30k3VSYfe1GzQCkjxtEtNRxEumYl0t4G25mWcehZ7jxYvoFQ3JG0SyyP2rGm0vp4LBwzvhpglRkcbbR3pGtKhzanTkPoAjmC+gie3do8MuIidFm1d//vcmDyO8CrLWAyRnU5aZlF4CvP9gZkHg5XuL/mZsoy4H5MSTg5R0x1Bp8N4izMtTKCOqdG8Y04OVUufTjEi+e893S7Qc3rbtCoWsjMgsccSK8+k9bAgN+GQdBhNEB3KhR8ephAZSlzhD38/dMsspan/MRWXfKciWjbiwg== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230028)(4636009)(39860400002)(346002)(376002)(136003)(396003)(451199021)(46966006)(36840700001)(478600001)(6666004)(8676002)(8936002)(316002)(82740400003)(41300700001)(70206006)(70586007)(40480700001)(6916009)(356005)(81166007)(186003)(36860700001)(36756003)(2906002)(1076003)(26005)(47076005)(426003)(86362001)(336012)(83380400001)(2616005)(82310400005)(5660300002)(7696005)(44832011)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB8989 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT015.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 5ddb7110-a5ae-4702-0e9c-08db3a44ffb6 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8PzO9gHolzIr38RuizaVbLDkjl6YdCXMySbI0vKxiK9bcJRpzrtcfNt15L9N5/jPtjptNrvqr1SpRrWsnUTAWsNuEybJ0cp0JmAYYNvFZvb+see1tMNjy0bCk0T9t18F9wkVRa0TFAvWRmej5p2Uzt/M9VgafJhLSjMsv5HieWkXUnQKwkldr6XrOu7iXSxhfonaVdTOt3V3W+yOJ3yrA6L/xt1i4dURhCC9DI39OJGpDRE9FIsZSZPB7QnfTYBhb0R12yZ0tivwv5hj5AIa4tTXcs8LtJZ3NeOXv5gOZ/1qUDdydyaUUSOh41DtfCLFOFZN03zvLrJqjrneqnoOt0KlUKLb4WTkgleEAFCrQtKGWstZtEL+WVJ1HBNBvqYUGNEQCZCiKQUECIqMUrum3uvloQ/pRHoucyKnNpgey0im0SnA3sVqvioO99wjoQhhtQxMWtao3aau+IzLAHBiRtnTNvZ8hoXepK1eGYrBKU5zV8c28nvQlIKzrKRcBD5OV1/yt0oknPPeMUjMPLo58tuIB+N9pBf/tjSs93sZ+MFmMc+OVePBetKd8t6cVga7eTkx6OctCac4IA8Gi0glHiD/wfgzFLJpa5WqU1HJxN5piEjLFAZ9kUtsBT5WVG8HDxxjq1xq/1ZZ9WpSim6uRz306TW04/0GOHpifjf0ICe3YBiUiKk5mMkbbtf6JtUxsOE254q0RuaMNPj/bPJsLQ== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230028)(4636009)(136003)(396003)(376002)(346002)(39860400002)(451199021)(46966006)(40470700004)(36840700001)(478600001)(86362001)(336012)(426003)(8936002)(2616005)(70586007)(70206006)(44832011)(5660300002)(6916009)(8676002)(83380400001)(47076005)(2906002)(40480700001)(36860700001)(36756003)(82740400003)(81166007)(82310400005)(316002)(186003)(26005)(1076003)(40460700003)(7696005)(6666004)(41300700001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2023 04:27:12.4968 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 72ff1e2b-10ba-4c1c-ca90-08db3a4505b1 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT015.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10041 X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list <gdb-patches.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/gdb-patches>, <mailto:gdb-patches-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/gdb-patches>, <mailto:gdb-patches-request@sourceware.org?subject=subscribe> From: Luis Machado via Gdb-patches <gdb-patches@sourceware.org> Reply-To: Luis Machado <luis.machado@arm.com> Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" <gdb-patches-bounces+patchwork=sourceware.org@sourceware.org> |
Series |
SME support for AArch64 gdb/gdbserver on Linux.
|
|
Message
Luis Machado
April 11, 2023, 4:26 a.m. UTC
The following series enables SME 1 (Scalable Matrix Extension) support for AArch64 gdb and gdbserver. SME expands on SVE by having a variable-sized matrix (ZA) of dimensions SVL x SVL bytes. The first few patches and some intermediate ones refactor the code and fix issues prior to enabling SME support, and thus could go in independently. I've kept them in the series as they are closely/logically related. Ezra Sitorus (1): [binutils/aarch64] sme: Core file support Luis Machado (16): [gdb/aarch64] Fix register fetch/store order for native AArch64 Linux [gdb/aarch64] refactor: Rename SVE-specific files [gdb/gdbserver] refactor: Simplify SVE interface to read/write registers [gdb/aarch64] sve: Fix return command when using V registers in a SVE-enabled target [gdb/aarch64] sme: Enable SME registers and pseudo-registers [gdbserver/aarch64] refactor: Adjust expedited registers dynamically [gdbserver/aarch64] sme: Add support for SME [gdb/aarch64] sve: Fix signal frame z/v register restore [gdb/aarch64] sme: Signal frame support [gdb/aarch64] sme: Fixup sigframe gdbarch when vg/svg changes [gdb/aarch64] sme: Support TPIDR2 signal frame context [gdb/generic] corefile/bug: Use thread-specific gdbarch when dumping register state to core files [gdb/generic] corefile/bug: Fixup (gcore) core file target description reading order [gdb/aarch64] sme: Core file support for Linux [gdb/testsuite] sme: Add SVE/SME testcases [gdb/docs] sme: Document SME registers and features bfd/elf-bfd.h | 4 + bfd/elf.c | 58 + gdb/Makefile.in | 6 +- gdb/NEWS | 11 + gdb/aarch64-linux-nat.c | 179 ++-- gdb/aarch64-linux-tdep.c | 951 ++++++++++++++--- gdb/aarch64-tdep.c | 724 ++++++++++++- gdb/aarch64-tdep.h | 47 + gdb/arch/aarch64-scalable-linux.c | 55 + gdb/arch/aarch64-scalable-linux.h | 53 + gdb/arch/aarch64.c | 5 + gdb/arch/aarch64.h | 57 +- gdb/configure.nat | 2 +- gdb/configure.tgt | 1 + gdb/corelow.c | 24 +- gdb/doc/gdb.texinfo | 68 ++ gdb/features/aarch64-sme.c | 63 ++ gdb/linux-tdep.c | 18 +- gdb/nat/aarch64-scalable-linux-ptrace.c | 993 ++++++++++++++++++ gdb/nat/aarch64-scalable-linux-ptrace.h | 156 +++ ....h => aarch64-scalable-linux-sigcontext.h} | 73 +- gdb/nat/aarch64-sve-linux-ptrace.c | 392 ------- gdb/nat/aarch64-sve-linux-ptrace.h | 72 -- gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp | 18 + gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp | 18 + gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp | 18 + gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp | 18 + gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp | 18 + gdb/testsuite/gdb.arch/aarch64-sme-core.c | 361 +++++++ .../gdb.arch/aarch64-sme-core.exp.tcl | 167 +++ .../gdb.arch/aarch64-sme-regs-available-0.exp | 18 + .../gdb.arch/aarch64-sme-regs-available-1.exp | 18 + .../gdb.arch/aarch64-sme-regs-available-2.exp | 18 + .../gdb.arch/aarch64-sme-regs-available-3.exp | 18 + .../gdb.arch/aarch64-sme-regs-available-4.exp | 18 + .../gdb.arch/aarch64-sme-regs-available.c | 184 ++++ .../aarch64-sme-regs-available.exp.tcl | 194 ++++ .../gdb.arch/aarch64-sme-regs-sigframe-0.exp | 18 + .../gdb.arch/aarch64-sme-regs-sigframe-1.exp | 18 + .../gdb.arch/aarch64-sme-regs-sigframe-2.exp | 18 + .../gdb.arch/aarch64-sme-regs-sigframe-3.exp | 18 + .../gdb.arch/aarch64-sme-regs-sigframe-4.exp | 18 + .../gdb.arch/aarch64-sme-regs-sigframe.c | 368 +++++++ .../aarch64-sme-regs-sigframe.exp.tcl | 156 +++ .../aarch64-sme-regs-unavailable-0.exp | 18 + .../aarch64-sme-regs-unavailable-1.exp | 18 + .../aarch64-sme-regs-unavailable-2.exp | 18 + .../aarch64-sme-regs-unavailable-3.exp | 18 + .../aarch64-sme-regs-unavailable-4.exp | 18 + .../gdb.arch/aarch64-sme-regs-unavailable.c | 154 +++ .../aarch64-sme-regs-unavailable.exp.tcl | 162 +++ gdb/testsuite/gdb.arch/aarch64-sme-sanity.c | 249 +++++ gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp | 72 ++ gdb/testsuite/lib/aarch64.exp | 372 +++++++ gdb/testsuite/lib/gdb.exp | 63 ++ gdb/tramp-frame.c | 1 + gdb/tramp-frame.h | 12 + gdbserver/Makefile.in | 2 +- gdbserver/configure.srv | 3 +- gdbserver/linux-aarch64-low.cc | 100 +- gdbserver/linux-aarch64-tdesc.cc | 28 +- gdbserver/server.h | 2 +- 62 files changed, 6328 insertions(+), 694 deletions(-) create mode 100644 gdb/arch/aarch64-scalable-linux.c create mode 100644 gdb/arch/aarch64-scalable-linux.h create mode 100644 gdb/features/aarch64-sme.c create mode 100644 gdb/nat/aarch64-scalable-linux-ptrace.c create mode 100644 gdb/nat/aarch64-scalable-linux-ptrace.h rename gdb/nat/{aarch64-sve-linux-sigcontext.h => aarch64-scalable-linux-sigcontext.h} (78%) delete mode 100644 gdb/nat/aarch64-sve-linux-ptrace.c delete mode 100644 gdb/nat/aarch64-sve-linux-ptrace.h create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core.c create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-0.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-1.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-2.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-3.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-4.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available.c create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available.exp.tcl create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-0.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-1.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-2.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-3.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-4.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.c create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.exp.tcl create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-0.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-1.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-2.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-3.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-4.exp create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.c create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.exp.tcl create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-sanity.c create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp create mode 100644 gdb/testsuite/lib/aarch64.exp
Comments
On 4/10/23 9:26 PM, Luis Machado via Gdb-patches wrote: > The following series enables SME 1 (Scalable Matrix Extension) support for > AArch64 gdb and gdbserver. > > SME expands on SVE by having a variable-sized matrix (ZA) of dimensions > SVL x SVL bytes. > > The first few patches and some intermediate ones refactor the code and fix > issues prior to enabling SME support, and thus could go in independently. > > I've kept them in the series as they are closely/logically related. I briefly glanced at a few bits of the aarch64-specific parts I'm familiar with and they all look fine to me. One note is that I think the AMX patches from Intel (which deal with a similar "tile area" split into variable-sized subregisters IIUC) ran into some issues with wanting to update the tdesc to deal with the differing subregisters since the layout of those can change at runtime. I'm not sure if that applies to SME in the same way and if any of the issues Felix ran into might apply to SME as well (and thus if there are common solutions?) (I've cc'd Felix FYI) > Ezra Sitorus (1): > [binutils/aarch64] sme: Core file support > > Luis Machado (16): > [gdb/aarch64] Fix register fetch/store order for native AArch64 Linux > [gdb/aarch64] refactor: Rename SVE-specific files > [gdb/gdbserver] refactor: Simplify SVE interface to read/write > registers > [gdb/aarch64] sve: Fix return command when using V registers in a > SVE-enabled target > [gdb/aarch64] sme: Enable SME registers and pseudo-registers > [gdbserver/aarch64] refactor: Adjust expedited registers dynamically > [gdbserver/aarch64] sme: Add support for SME > [gdb/aarch64] sve: Fix signal frame z/v register restore > [gdb/aarch64] sme: Signal frame support > [gdb/aarch64] sme: Fixup sigframe gdbarch when vg/svg changes > [gdb/aarch64] sme: Support TPIDR2 signal frame context > [gdb/generic] corefile/bug: Use thread-specific gdbarch when dumping > register state to core files > [gdb/generic] corefile/bug: Fixup (gcore) core file target description > reading order > [gdb/aarch64] sme: Core file support for Linux > [gdb/testsuite] sme: Add SVE/SME testcases > [gdb/docs] sme: Document SME registers and features > > bfd/elf-bfd.h | 4 + > bfd/elf.c | 58 + > gdb/Makefile.in | 6 +- > gdb/NEWS | 11 + > gdb/aarch64-linux-nat.c | 179 ++-- > gdb/aarch64-linux-tdep.c | 951 ++++++++++++++--- > gdb/aarch64-tdep.c | 724 ++++++++++++- > gdb/aarch64-tdep.h | 47 + > gdb/arch/aarch64-scalable-linux.c | 55 + > gdb/arch/aarch64-scalable-linux.h | 53 + > gdb/arch/aarch64.c | 5 + > gdb/arch/aarch64.h | 57 +- > gdb/configure.nat | 2 +- > gdb/configure.tgt | 1 + > gdb/corelow.c | 24 +- > gdb/doc/gdb.texinfo | 68 ++ > gdb/features/aarch64-sme.c | 63 ++ > gdb/linux-tdep.c | 18 +- > gdb/nat/aarch64-scalable-linux-ptrace.c | 993 ++++++++++++++++++ > gdb/nat/aarch64-scalable-linux-ptrace.h | 156 +++ > ....h => aarch64-scalable-linux-sigcontext.h} | 73 +- > gdb/nat/aarch64-sve-linux-ptrace.c | 392 ------- > gdb/nat/aarch64-sve-linux-ptrace.h | 72 -- > gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp | 18 + > gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp | 18 + > gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp | 18 + > gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp | 18 + > gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp | 18 + > gdb/testsuite/gdb.arch/aarch64-sme-core.c | 361 +++++++ > .../gdb.arch/aarch64-sme-core.exp.tcl | 167 +++ > .../gdb.arch/aarch64-sme-regs-available-0.exp | 18 + > .../gdb.arch/aarch64-sme-regs-available-1.exp | 18 + > .../gdb.arch/aarch64-sme-regs-available-2.exp | 18 + > .../gdb.arch/aarch64-sme-regs-available-3.exp | 18 + > .../gdb.arch/aarch64-sme-regs-available-4.exp | 18 + > .../gdb.arch/aarch64-sme-regs-available.c | 184 ++++ > .../aarch64-sme-regs-available.exp.tcl | 194 ++++ > .../gdb.arch/aarch64-sme-regs-sigframe-0.exp | 18 + > .../gdb.arch/aarch64-sme-regs-sigframe-1.exp | 18 + > .../gdb.arch/aarch64-sme-regs-sigframe-2.exp | 18 + > .../gdb.arch/aarch64-sme-regs-sigframe-3.exp | 18 + > .../gdb.arch/aarch64-sme-regs-sigframe-4.exp | 18 + > .../gdb.arch/aarch64-sme-regs-sigframe.c | 368 +++++++ > .../aarch64-sme-regs-sigframe.exp.tcl | 156 +++ > .../aarch64-sme-regs-unavailable-0.exp | 18 + > .../aarch64-sme-regs-unavailable-1.exp | 18 + > .../aarch64-sme-regs-unavailable-2.exp | 18 + > .../aarch64-sme-regs-unavailable-3.exp | 18 + > .../aarch64-sme-regs-unavailable-4.exp | 18 + > .../gdb.arch/aarch64-sme-regs-unavailable.c | 154 +++ > .../aarch64-sme-regs-unavailable.exp.tcl | 162 +++ > gdb/testsuite/gdb.arch/aarch64-sme-sanity.c | 249 +++++ > gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp | 72 ++ > gdb/testsuite/lib/aarch64.exp | 372 +++++++ > gdb/testsuite/lib/gdb.exp | 63 ++ > gdb/tramp-frame.c | 1 + > gdb/tramp-frame.h | 12 + > gdbserver/Makefile.in | 2 +- > gdbserver/configure.srv | 3 +- > gdbserver/linux-aarch64-low.cc | 100 +- > gdbserver/linux-aarch64-tdesc.cc | 28 +- > gdbserver/server.h | 2 +- > 62 files changed, 6328 insertions(+), 694 deletions(-) > create mode 100644 gdb/arch/aarch64-scalable-linux.c > create mode 100644 gdb/arch/aarch64-scalable-linux.h > create mode 100644 gdb/features/aarch64-sme.c > create mode 100644 gdb/nat/aarch64-scalable-linux-ptrace.c > create mode 100644 gdb/nat/aarch64-scalable-linux-ptrace.h > rename gdb/nat/{aarch64-sve-linux-sigcontext.h => aarch64-scalable-linux-sigcontext.h} (78%) > delete mode 100644 gdb/nat/aarch64-sve-linux-ptrace.c > delete mode 100644 gdb/nat/aarch64-sve-linux-ptrace.h > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core.c > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-0.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-1.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-2.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-3.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-4.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available.c > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available.exp.tcl > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-0.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-1.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-2.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-3.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-4.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.c > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.exp.tcl > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-0.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-1.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-2.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-3.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-4.exp > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.c > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.exp.tcl > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-sanity.c > create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp > create mode 100644 gdb/testsuite/lib/aarch64.exp >
> -----Original Message----- > From: John Baldwin <jhb@FreeBSD.org> > Sent: Dienstag, 11. April 2023 17:51 > To: Luis Machado <luis.machado@arm.com>; gdb-patches@sourceware.org > Cc: Willgerodt, Felix <felix.willgerodt@intel.com> > Subject: Re: [PATCH 00/17] SME support for AArch64 gdb/gdbserver on > Linux. > > On 4/10/23 9:26 PM, Luis Machado via Gdb-patches wrote: > > The following series enables SME 1 (Scalable Matrix Extension) support for > > AArch64 gdb and gdbserver. > > > > SME expands on SVE by having a variable-sized matrix (ZA) of dimensions > > SVL x SVL bytes. > > > > The first few patches and some intermediate ones refactor the code and > fix > > issues prior to enabling SME support, and thus could go in independently. > > > > I've kept them in the series as they are closely/logically related. > > I briefly glanced at a few bits of the aarch64-specific parts I'm familiar > with and they all look fine to me. > > One note is that I think the AMX patches from Intel (which deal with a > similar "tile area" split into variable-sized subregisters IIUC) ran into > some issues with wanting to update the tdesc to deal with the differing > subregisters since the layout of those can change at runtime. I'm not > sure if that applies to SME in the same way and if any of the issues > Felix ran into might apply to SME as well (and thus if there are common > solutions?) (I've cc'd Felix FYI) Hi John, Luis, I didn't read the SME series in full detail and probably won't have the time to do that for a while, sorry. I can only repeat my AMX problems. My problem was related to the fact that I tried to make the AMX register pseudo registers to do the dynamic resizing. This doesn't work well with the regcache. I am currently waiting on this series to land to continue: https://sourceware.org/pipermail/gdb-patches/2023-January/196353.html I am planning to do the tdesc update dynamically instead, forgoing pseudo registers all together. But I haven't started implementing that. We had an internal version that tried this, but in the end we scrapped that because gdbserver doesn't support it (yet). I think my main problem with pseudo registers is that regcache is initialized with a certain size and types of registers. Even the pseudo registers. For AMX we have 8 kB of register state. That is currently divided into 8 registers of the same dimensions. But that is actually configurable, and it could be that future platforms add a configuration ("palette") that divides it into 4 registers of dimension "x * x". Or another palette that divides this into 4 registers of dimension "y * z". Or another palette that divides it into 16 registers. Switching configurations can be done at runtime. I was initially planning to just take the biggest dimension and the biggest amount of names, and keep that up-to-date. The actual problem I had in the end was discussed here: https://sourceware.org/pipermail/gdb-patches/2022-August/191259.html But the solution I proposed there isn't a good one. It works by accident for now. It only touches the type, but not the actual memory that is already reserved for the reg, which can become a problem. I am not familiar with SME. I see that the SME series also added pseudo registers and doesn't touch regcache.c. But I didn't look at the code in detail. I am not familiar with the aarch64 target code. I don't know if Luis found a way around the same problem or if it just doesn’t exist for SME. Or if my AMX code just wasn't smart enough or done the right way. Regards, Felix Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928
Hi John, On 4/11/23 16:50, John Baldwin wrote: > On 4/10/23 9:26 PM, Luis Machado via Gdb-patches wrote: >> The following series enables SME 1 (Scalable Matrix Extension) support for >> AArch64 gdb and gdbserver. >> >> SME expands on SVE by having a variable-sized matrix (ZA) of dimensions >> SVL x SVL bytes. >> >> The first few patches and some intermediate ones refactor the code and fix >> issues prior to enabling SME support, and thus could go in independently. >> >> I've kept them in the series as they are closely/logically related. > > I briefly glanced at a few bits of the aarch64-specific parts I'm familiar > with and they all look fine to me. Thanks for checking it. > > One note is that I think the AMX patches from Intel (which deal with a > similar "tile area" split into variable-sized subregisters IIUC) ran into > some issues with wanting to update the tdesc to deal with the differing > subregisters since the layout of those can change at runtime. I'm not > sure if that applies to SME in the same way and if any of the issues > Felix ran into might apply to SME as well (and thus if there are common > solutions?) (I've cc'd Felix FYI) I did read Felix's reply, but I'm replying to this thread instead. I'm not entirely familiar with the AMX spec, though from Felix's descriptions it sounds like there are similarities. The limitation of gdbserver not being able to properly communicate changes to the vector length to GDB is a known one for AArch64, as that has been the case since SVE support was put together. I know Thiago is working on it, and SME support should be fairly simple to adjust to match that design. So I don't see that as a blocker. For SME we have a new independent vector length (streaming vector length, SVL), so we handle that in the same way as we handle SVE's vector length (VL). The added complexity comes from the fact we have a new mode called streaming mode. Whenever that streaming mode is active, then the SVE vectors will use SVL rather than VL for their sizes. With that said, the new matrix register (ZA) has quite a few subregisters (tiles and tile slices), which I modelled as pseudo-registers. And yes, they change sizes based on SVL changes. I addressed that situation by having a separate gdbarch for each VL/SVL set. That means each pseudo-register has its type cached in the proper gdbarch, so we need to be careful to use the right gdbarch. I can see there are a few areas of gdb where the code is not totally aware that we can have multiple tdesc's and gdbarches. One such example is the gdb core file target XML dump note. That only dumps the process-wide tdesc, but for AArch64 we really need to dump a tdesc for each tdesc. There might be some corner cases here and there. While implementing SME support I did find some issues that I attempted to address. For example, the aarch64-linux-specific signal return code having to find out the proper gdbarch as opposed to just reusing the next frame's gdbarch, which is potentially wrong for SVE/SME. > >> Ezra Sitorus (1): >> [binutils/aarch64] sme: Core file support >> >> Luis Machado (16): >> [gdb/aarch64] Fix register fetch/store order for native AArch64 Linux >> [gdb/aarch64] refactor: Rename SVE-specific files >> [gdb/gdbserver] refactor: Simplify SVE interface to read/write >> registers >> [gdb/aarch64] sve: Fix return command when using V registers in a >> SVE-enabled target >> [gdb/aarch64] sme: Enable SME registers and pseudo-registers >> [gdbserver/aarch64] refactor: Adjust expedited registers dynamically >> [gdbserver/aarch64] sme: Add support for SME >> [gdb/aarch64] sve: Fix signal frame z/v register restore >> [gdb/aarch64] sme: Signal frame support >> [gdb/aarch64] sme: Fixup sigframe gdbarch when vg/svg changes >> [gdb/aarch64] sme: Support TPIDR2 signal frame context >> [gdb/generic] corefile/bug: Use thread-specific gdbarch when dumping >> register state to core files >> [gdb/generic] corefile/bug: Fixup (gcore) core file target description >> reading order >> [gdb/aarch64] sme: Core file support for Linux >> [gdb/testsuite] sme: Add SVE/SME testcases >> [gdb/docs] sme: Document SME registers and features >> >> bfd/elf-bfd.h | 4 + >> bfd/elf.c | 58 + >> gdb/Makefile.in | 6 +- >> gdb/NEWS | 11 + >> gdb/aarch64-linux-nat.c | 179 ++-- >> gdb/aarch64-linux-tdep.c | 951 ++++++++++++++--- >> gdb/aarch64-tdep.c | 724 ++++++++++++- >> gdb/aarch64-tdep.h | 47 + >> gdb/arch/aarch64-scalable-linux.c | 55 + >> gdb/arch/aarch64-scalable-linux.h | 53 + >> gdb/arch/aarch64.c | 5 + >> gdb/arch/aarch64.h | 57 +- >> gdb/configure.nat | 2 +- >> gdb/configure.tgt | 1 + >> gdb/corelow.c | 24 +- >> gdb/doc/gdb.texinfo | 68 ++ >> gdb/features/aarch64-sme.c | 63 ++ >> gdb/linux-tdep.c | 18 +- >> gdb/nat/aarch64-scalable-linux-ptrace.c | 993 ++++++++++++++++++ >> gdb/nat/aarch64-scalable-linux-ptrace.h | 156 +++ >> ....h => aarch64-scalable-linux-sigcontext.h} | 73 +- >> gdb/nat/aarch64-sve-linux-ptrace.c | 392 ------- >> gdb/nat/aarch64-sve-linux-ptrace.h | 72 -- >> gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp | 18 + >> gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp | 18 + >> gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp | 18 + >> gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp | 18 + >> gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp | 18 + >> gdb/testsuite/gdb.arch/aarch64-sme-core.c | 361 +++++++ >> .../gdb.arch/aarch64-sme-core.exp.tcl | 167 +++ >> .../gdb.arch/aarch64-sme-regs-available-0.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-available-1.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-available-2.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-available-3.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-available-4.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-available.c | 184 ++++ >> .../aarch64-sme-regs-available.exp.tcl | 194 ++++ >> .../gdb.arch/aarch64-sme-regs-sigframe-0.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-sigframe-1.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-sigframe-2.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-sigframe-3.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-sigframe-4.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-sigframe.c | 368 +++++++ >> .../aarch64-sme-regs-sigframe.exp.tcl | 156 +++ >> .../aarch64-sme-regs-unavailable-0.exp | 18 + >> .../aarch64-sme-regs-unavailable-1.exp | 18 + >> .../aarch64-sme-regs-unavailable-2.exp | 18 + >> .../aarch64-sme-regs-unavailable-3.exp | 18 + >> .../aarch64-sme-regs-unavailable-4.exp | 18 + >> .../gdb.arch/aarch64-sme-regs-unavailable.c | 154 +++ >> .../aarch64-sme-regs-unavailable.exp.tcl | 162 +++ >> gdb/testsuite/gdb.arch/aarch64-sme-sanity.c | 249 +++++ >> gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp | 72 ++ >> gdb/testsuite/lib/aarch64.exp | 372 +++++++ >> gdb/testsuite/lib/gdb.exp | 63 ++ >> gdb/tramp-frame.c | 1 + >> gdb/tramp-frame.h | 12 + >> gdbserver/Makefile.in | 2 +- >> gdbserver/configure.srv | 3 +- >> gdbserver/linux-aarch64-low.cc | 100 +- >> gdbserver/linux-aarch64-tdesc.cc | 28 +- >> gdbserver/server.h | 2 +- >> 62 files changed, 6328 insertions(+), 694 deletions(-) >> create mode 100644 gdb/arch/aarch64-scalable-linux.c >> create mode 100644 gdb/arch/aarch64-scalable-linux.h >> create mode 100644 gdb/features/aarch64-sme.c >> create mode 100644 gdb/nat/aarch64-scalable-linux-ptrace.c >> create mode 100644 gdb/nat/aarch64-scalable-linux-ptrace.h >> rename gdb/nat/{aarch64-sve-linux-sigcontext.h => aarch64-scalable-linux-sigcontext.h} (78%) >> delete mode 100644 gdb/nat/aarch64-sve-linux-ptrace.c >> delete mode 100644 gdb/nat/aarch64-sve-linux-ptrace.h >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core.c >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-0.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-1.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-2.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-3.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-4.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available.c >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available.exp.tcl >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-0.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-1.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-2.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-3.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-4.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.c >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.exp.tcl >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-0.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-1.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-2.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-3.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-4.exp >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.c >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.exp.tcl >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-sanity.c >> create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp >> create mode 100644 gdb/testsuite/lib/aarch64.exp >> >