From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 100066 invoked by alias); 11 May 2018 10:53:07 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 100054 invoked by uid 89); 11 May 2018 10:53:06 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-12.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=H*RU:sk:mail-ve, Hx-spam-relays-external:sk:mail-ve, regcachec, UD:regcache.c X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Received: from mail-ve1eur01on0049.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (104.47.1.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 11 May 2018 10:53:04 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; Received: from C02TF0U7HF1T.arm.com (217.140.96.140) by VI1PR0802MB2143.eurprd08.prod.outlook.com (2603:10a6:800:9b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.755.16; Fri, 11 May 2018 10:53:00 +0000 From: Alan Hayward To: gdb-patches@sourceware.org Cc: nd@arm.com, Alan Hayward Subject: [PATCH 0/8] Add SVE support for Aarch64 GDB Date: Fri, 11 May 2018 10:53:00 -0000 Message-Id: <20180511105256.27388-1-alan.hayward@arm.com> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: CWXP265CA0010.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:2e::22) To VI1PR0802MB2143.eurprd08.prod.outlook.com (2603:10a6:800:9b::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:VI1PR0802MB2143; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2143;3:VXALcwd1sHBSu6lWQ/xNOKmgH24PDsxF8pgrqyl7uAe2EgPlETVcyzqXC5C2Vf/vz1F9O3+d9VLP7u7oYQ/QXcbPSlUnXFvqruvXAQ0B/yuprAqh2JbVAkN6GQwvDw2b601TARDMn9+WvW+CipiW8JgmLhTNveLDwe0oxkRzW/59KJsulC3PLAEvd1fyvhdO8FCghk6h89KZe6UbMKSwUwI5RgXaYkurjoj+nXfTlWDhTWck5U5j+hdylwEepC1c;25:GVarmDu75xTVAZKpyVQxXuBETbPIFW14pAJj65eXnoYnZx2whHcq52VKxw1Omngq7z1lkBpigypWSRPXXwDP5mAtULOfb1V9V0FxTF7c2dVIesIm1q5pYNsAYxma8bjQ2YLwI2NV2zdHVo2QeTTo0+DfqKZqfrVFgjIPcjOqPm4g10Wg+vVUQf3FudFdSKtx5xtCYuupfMExGGx15oz/1FKpGinkhlBrEdTHX4EHemiicx8PEZu6oeYA9S0ENyFOMxv3xYxArOR9c9uHcDQkB4Ffpj08BPUjpUGcqhjzpL5R/M+1PlrWB+J66L1udp6rNQmx1xCw0MPbFlauhvDhkg==;31:xKA2e68FOAYtCgRNGjmj6GxdE5l99M/zTcvMEUmwLOWiYjALyemReTYp+AZJAgmaaOTKPQR88Q0fBXWyL/9lj9tgodqy8IO2egLkaKrEAveivBmKfxm+X9fmeR11cfyuczKJakXA+FgPYZajuimq3tmuz+o5dXetr5xG97/DqqXbVwFGNZl469fpXLOShs/dRSq/z86hziJ9uqXYFxz3dfUxDKKTj7Jbu+EneYf8380= X-MS-TrafficTypeDiagnostic: VI1PR0802MB2143: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2143;20:xTeSEPZxVfQqnDq2W3eGFFIScWfDI5TezIpueo1Lb1XCwYCZ+hO5ycIj+4mTPx/ZAGDZY1Gnp+qUX/Rt9qvktQFHpr+HHj5ZKMD7d5q1IqFE241H9xig/RTyvOHVvuRo2PB2hf3I+XfK2Y6mjp5YSI2QK15QOH2bdNvpQc3kj53sp0NMoiFjjaoPQ8gFtxZO1EKY1X8ARk0CPaV8O5ZWESNak3pW/FD1KLA2U3gHlRryPU5AFJBZNPQKj39EURC/;4:rBZ8qDVyBbXFH8juF0Nl1nkN6iZf3tOGGR3pQzDyFPD9PXyKEGPWMBNs9hzyE3h3gk2DTy/9IuDLmnWN9CGN9CZg9y5ZiGjCfvK7mmryaCSdQOTzvmHphpUCpz2ILsR8851GmzXPa1JknifqcFTAnSSRmkKfjLuun4Fa08W8XM1L2AhsMdtyqgUHX2eTzE2kiYAcWwdSGsal/6puZIepyg7oUQmYEP0gNR2Jn9gxwDXbNLE+klvUlKkaKvFNW3WUJGZaoFbCON0jI9Lz/CUxkQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:VI1PR0802MB2143;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0802MB2143; X-Forefront-PRVS: 06691A4183 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(366004)(39380400002)(376002)(39860400002)(346002)(396003)(189003)(199004)(476003)(956004)(2616005)(97736004)(4326008)(48376002)(53936002)(2906002)(50466002)(66066001)(52116002)(2351001)(72206003)(68736007)(51416003)(86362001)(47776003)(6116002)(386003)(7696005)(3846002)(1076002)(6486002)(26005)(6666003)(25786009)(16586007)(316002)(478600001)(486006)(53416004)(2361001)(8676002)(81156014)(50226002)(5660300001)(81166006)(305945005)(7736002)(36756003)(105586002)(8936002)(106356001)(6916009)(44832011)(186003)(16526019);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0802MB2143;H:C02TF0U7HF1T.arm.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR0802MB2143;23:yaQg4gttpHCP9HhdaEjp1rkoU3uvvc29VIPCjin?= =?us-ascii?Q?zuQ2ZpAZYceqNACNBq8xUTe5xm3NWCo0nu2nLgHH17loR1DK1hVQb6RLz8VR?= =?us-ascii?Q?ar9PwzJWQc7eY/YYlVDB0fVTKUVhyVlnE4EJtPvvEkX2oSP4EJ7wr8722B75?= =?us-ascii?Q?/bb28OkBh2vDoTK7E93D/Zr/okIcdlUbz+ONnxZu9NnGNB2XJRAZf+YV9kkI?= =?us-ascii?Q?V+jxaE5tKpM/7s/Vz8qsuNogBhZSGSRnZNtFALScmcRhr/u5OOSRLA/zAm6R?= =?us-ascii?Q?Xtz8z36JnoBFysjPSrdtPoC81jR7H2fLbgoM45Wfwg3gNzrAhGPPQiQhNyvd?= =?us-ascii?Q?gLPlJhiNe/HGUgsHl8yPG2xSsWJzXO1xXsQ2Nlh+gJPcf6DjGbkGRm7ZXS1P?= =?us-ascii?Q?s0p3AJDJlBIuIw8CLWkj4AbHZMO8M1uYYalLDWObaj0Ghqh0DYGS7La26lVm?= =?us-ascii?Q?EJPgkpUmaYjzb9Bq4YHyyyIhKncZ9c0Vw4AmUeJ7y3iJV6RHsYMDksZ4y3T7?= =?us-ascii?Q?jl/yDZenMMZYs4zXvV+y+fonHL1+SnMeILjkY1ELdIYB1fL8htGV8cevyMti?= =?us-ascii?Q?gtrF1QgvB9S8OaPJY6YJXxDsBPIDG1CHzYa37NsKoXd4QuWRBxeJ3VLrVHbR?= =?us-ascii?Q?BBeX+PsRRMxlNaloBuUBn8MHd5+vX3tudb3zQ3vDKyIkiSgEPfttAk/2wGC8?= =?us-ascii?Q?3FDB5m590QDLoVv8Hwc1zdySJKfEKiSyqTfgzMiXd7JL+MIpX75zzCmNUG/e?= =?us-ascii?Q?ViMlymuUjeSk+1Nv1L5gYbQDLzdxPjt9Q68o2FQfEddBKF88y118sSuu9UJE?= =?us-ascii?Q?iyVGhrHhOtxZ00BvlsT5ASOPmhhw7rMUlL6Ywn0dz+PLsMLihz2tMETzxot8?= =?us-ascii?Q?KbAF6xrZq33ChU2cvNuEdDemgECttE6H6mIEvGu7yZJmH7Hi1vXJazIShAA8?= =?us-ascii?Q?Po46p0YxZl20+PSJ8iKZ2oJUY/3vtkI42Tjq5Mf6ZO2Qu+0x8vNOVrLIwRGW?= =?us-ascii?Q?TXmVl439ArvsI+/ue8dlvylrliHCMQRV+hfvgDYIjWk+Eok/J9tf0r7Z+7Qm?= =?us-ascii?Q?aO4mLI9UYnIFNEoRLNOtVuZ+Vd3hFrAgSj1C9N9xab5zVMtmH1TR39WAm6Ms?= =?us-ascii?Q?4wfB+ZxH0FuqGbNRyMTl14+JQXcaVna/W3ae4egGqINlzEHghv1l32YNmn4p?= =?us-ascii?Q?i8tYO6YjGQrYAR3DCUDzwRz/BZNoPt5emnoRGOA8bLs/WTavc0L0IJRJC5Q?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Antispam-Message-Info: Ys5hEolsf9Zxham5UIP8VNihbAPdaRDbZu7exWv0TO/OzQrlCc90RMAk51VkwRz13fcp1g/KULVaIu4IDj6V7joJlRIWuNIS5Gp6ZuHZ8JGd752KW071Eqn8Qi1Nk+nB84Kyy7a5bEKHS0+4+iQU8TSaxX1sZaMxzbM14XNofMcC7E7qesRat2dZvD4P7MkY X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2143;6:ohYoQ2BCpYJLI/b1RyLEabg+IiH0hsGTne1iHvLIXDkY6O5MWo7vGxbvZiGd15VRxsLB/s0JVZtZS5C8js4Sgmmjqy/xWd6iSC0HaKPy7dXMRHSZyAJMAmR1NRJAJVHGixkqynHnFZk0wD6DBk8VEOR3t7qPRHVc6SRv9ygCT0A+ECPO9euxgtWuGiVhkgqHIBa60XLfuvuVXbR+pTbqoRcndXtDZrKRtBNWXTzBSuNFcjMIPQ6mrAFM2sWmMvxZD/4aSI2aKQ7R+de5XAb5AG9Y5r5s5FKJsO06CKaY6PHfawF5qtlbPUdU0ZLCaW3IAH2uDNSjx4q1TrRgxkan77I12g4CkrZjERF9V7UQb8w0qTV29/edp0ijrvdUEkJzm/in/Bc3FIWUJY1cB0cTDEgj2tjZCcqqwwxb6mxCvMdpCB0VTun79+7YZQXfVyHZGZlvXS3UwxNf+bQB1+6PjA==;5:ILS8l12VtO02qyYkBNbwljCXfkpzms5dKx9I3r25QKuF7C4iQ0rIuIUkwoP9pecCuRMBeg19ZBCJE74Cs8/NUfZyq6tYJAqXwzWmAefHrxl6jKfItoHg9iRDFI1oXiIyMlUR3rHoLL2RJVla9YSC5zHgSpqITx+p748pmRM3EMA=;24:0OI7jjAy1l9O/2F7yJo+7zSzmvM1hgcFkbw1VKBhHGZtyl0wW70LG/1FMP2Eu71iYbH9oBoOXnP6GVF+kUmpzvbNG+yfNg+19nvJ6+SPiuc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2143;7:VZfzRoqFuwMLXq8TsSvltc5vInJg6anT495/00d2gRzY7GqFw6TCIvRcg4pKD1s7L6JtmviOUSXMNuIIJb02tTnDx7nAeUWZiYYgEcS/tRBosfNdKfvMDpdHLwmiD9E3gTvhx052kCsSPQRlC19X40Jmelr4JH2mPBURT4QRTh3g/qsi+vHfFG9tn4qpzgEImSihX+80i8Xs3wyLHK8+B+uOLUWvXWSleXctPV3VWlRniMU6lgMIF6kcWYsvvKQ1 X-MS-Office365-Filtering-Correlation-Id: fa82f2f5-acb8-4982-9966-08d5b72d5d2c X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2018 10:53:00.3970 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fa82f2f5-acb8-4982-9966-08d5b72d5d2c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2143 X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00290.txt.bz2 This set of patches adds gdb support for SVE on AArch64. SVE is the new vector extension for Aarch64. SVE is different in that the length of a vector register is not fixed - it is can vary for different hardware implementors. All code compiled for SVE is vector length agnostic. The Linux kernel can then further restrict the vector length up to the supported maximum for the hardware. Potentially different process and threads can have different vector lengths, and they could change at any time. However, in practice, we expect the vector length to remain constant across the lifetime of a process. This set of patches assumes the vector length will not change and either warns once (when reading registers) or errors (when writing registers) if the vector length has changed. A future set of patches will offer full support. This series does not support gdbserver. However, where it makes sense I have commonised as much code as possible and have added the groundwork in gdbserver. Enabling gdbserver should be a small set of additional patches. Core files and watchpoints are not yet supported. The vector length is read from ptrace and is required to create the target description for the running process. There is no hardcoded SVE XML. The patches require recent linux header files for all the SVE ptrace macros. To allow builds for older headers, I've added all required macros and structures within ifdef checks. I'm not sure if this is the ideal solution. When including kernel header code, I've not performed any reformatting (ie they are not in GNU style). One of the later patches adds functions to gdbserver regcache so that I can add common functionality that works on gdb and gdbserver. Given there are no working SVE systems available today, this was manually tested on an Aarch64 SVE emulator running Ubuntu. In addition I've run make check on X86 and Aarch64 builds for both unix and native-gdbserver. Alan. Alan Hayward (8): Add Aarch64 SVE target description Function for reading the Aarch64 SVE vector length. Add SVE register defines Enable SVE for GDB Add aarch64 psuedo help functions Aarch64 SVE pseudo register support Add methods to gdbserver regcache and raw_compare Ptrace support for Aarch64 SVE gdb/Makefile.in | 1 + gdb/aarch64-linux-nat.c | 60 +++++- gdb/aarch64-linux-tdep.c | 5 +- gdb/aarch64-tdep.c | 402 +++++++++++++++++++++++------------- gdb/aarch64-tdep.h | 12 +- gdb/arch/aarch64.c | 12 +- gdb/arch/aarch64.h | 37 +++- gdb/configure.nat | 2 +- gdb/doc/gdb.texinfo | 4 + gdb/features/aarch64-sve.c | 158 ++++++++++++++ gdb/gdbserver/Makefile.in | 1 + gdb/gdbserver/configure.srv | 1 + gdb/gdbserver/linux-aarch64-tdesc.c | 3 +- gdb/gdbserver/regcache.c | 55 ++++- gdb/gdbserver/regcache.h | 8 + gdb/nat/aarch64-sve-linux-ptrace.c | 315 ++++++++++++++++++++++++++++ gdb/nat/aarch64-sve-linux-ptrace.h | 193 +++++++++++++++++ gdb/regcache.c | 17 ++ gdb/regcache.h | 2 + 19 files changed, 1122 insertions(+), 166 deletions(-) create mode 100644 gdb/features/aarch64-sve.c create mode 100644 gdb/nat/aarch64-sve-linux-ptrace.c create mode 100644 gdb/nat/aarch64-sve-linux-ptrace.h -- 2.15.1 (Apple Git-101)