From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18300 invoked by alias); 31 May 2018 13:22:27 -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 18288 invoked by uid 89); 31 May 2018 13:22:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy=Either, exhibit X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 31 May 2018 13:22:24 +0000 Received: from ESESSHC016.ericsson.se (Unknown_Domain [153.88.183.66]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 04.4F.13413.D07FF0B5; Thu, 31 May 2018 15:22:21 +0200 (CEST) Received: from ESESSMB501.ericsson.se (153.88.183.162) by ESESSHC016.ericsson.se (153.88.183.66) with Microsoft SMTP Server (TLS) id 14.3.382.0; Thu, 31 May 2018 15:22:21 +0200 Received: from ESESBMB502.ericsson.se (153.88.183.169) by ESESSMB501.ericsson.se (153.88.183.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Thu, 31 May 2018 15:22:20 +0200 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (153.88.183.157) by ESESBMB502.ericsson.se (153.88.183.169) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3 via Frontend Transport; Thu, 31 May 2018 15:22:20 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from [10.0.0.110] (192.222.164.54) by BN7PR15MB2386.namprd15.prod.outlook.com (2603:10b6:406:8c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.11; Thu, 31 May 2018 13:22:18 +0000 Subject: Re: [PATCH 8/8] Ptrace support for Aarch64 SVE To: Alan Hayward , CC: References: <20180511105256.27388-1-alan.hayward@arm.com> <20180511105256.27388-9-alan.hayward@arm.com> From: Simon Marchi Message-ID: <752617dd-3221-7aa7-d626-b841fe13761c@ericsson.com> Date: Thu, 31 May 2018 13:40:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20180511105256.27388-9-alan.hayward@arm.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQXPR0101CA0018.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c00:15::31) To BN7PR15MB2386.namprd15.prod.outlook.com (2603:10b6:406:8c::24) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:BN7PR15MB2386; X-Microsoft-Exchange-Diagnostics: 1;BN7PR15MB2386;3:VF3vQhL5j2a9S7Fg/9NgyIEdTwJ+eBo0AgKJI3Qrp6jtsJXKcxMbtRIkOkC3AnG8rPGAbeeAUzxVJzdWsUOJqvWIZbBRHtpE2P+15d+d2r3UXYLH5eU43TkxoWlrmMmE5bpZPuYWaztkXoycc3lqIgW8aGc3cGFtTqXIxs7RbMuoSNtdrSufu6I1p5QxA2VTXxs8kWpZMNjAMkgDJkZd4uCT+9aIaB7ZKhHz82tOkzY4lrp7ihmtaDGxFMuKalDs;25:xk/N+GLvY2QkhrHNIWAEBxsOq2IpJa++uDUPA3ufnfsD2WqIPjU72s7SGARjJ0FFxIW9S6TWvbYyQHfqGP1YAlw1JnnK7k7VTz5IGjUkrIh7+sjGLxMHfjEiAjDw7SIl9KttmedB3Rgmx7WRw7IaAwWzoDSeBk0nhQsoI0SpTyCGiZq48I30wXkIEJElbCISORaW9OVC8/AQseXE2wWQYh080Yh54F0t9jAUJoGnExlJovx1CiLiWPz5M+xL85uGsIRtxr9YJtCbGumCMREJdUw3qKb8m1uCJMTn6AIJcDQoXouW3zmrsGeDBPswzo03s4b0ULEDX6v6zg7T1+cdGQ==;31:6FBc19klAgZM0gKKdJfVksuUVgvkLs+swaIhr3vs6XmkyrtXOx5FHKg33WZU5qisz1NEgFRibOe3VoknekbQcYt4zr8Czb1HqRToJPeUEubH6J9LfxxNH7qkp6LmPEsOHiu7J9z9xWvUJ4vW3tCRqHxQ0SfcQnzbCEYaXihdNFi8XdxIlOCmbYNgRM6/v9xJY7A3sZ9/Ml8ZYbxHTdKw26jPIt5L8b+Bd3Oo+OL/2wU= X-MS-TrafficTypeDiagnostic: BN7PR15MB2386: X-Microsoft-Exchange-Diagnostics: 1;BN7PR15MB2386;20:hpt99xTSSgOZ1q9hGBiOx3K7zB/Jj+Wtk+jcc7OsMEERpa92i1rJXzPEwFY9dqd+PPM5izP/PI37lis5pdCAtzZi5+KL6/GYDozsJAwb7k3/zSXk7NWbDPZ1K2IwebQqpk2NRUsYtcnd74YHOaEBZDOvJ8UhPdGb34J7vvb1+/z1fFT9Wsg+Bd1LcqWGWgq6DI2QzQAIOoFBmfYbpN7kkZoBCF46djluZKQrxUd3f6a5Z+K/NDU6nOlhFsu6+ZlELfr076HpJUDUep/Jq7pjaWbX+eQEKWOu81P5vQuMb1z4MNVCvo/Kb088otrd+W6Z3TkfaAo975YHs/xcmRbGCuCAbLitjoeu5u3iqfk6qL0271pY+MNgeR0uxrdPgsVR3y0FACWiM2JqhnB//2iFjBPG4bKZDLB093rg2OksVgTfZi6qQ3yK4tQPb+3o5ftplltfekuNBuKzbNsVypnuQehfP7eossYcUIRJBY/3kx7raKyjechJAewz5GoMyV9Q;4:Tz1iUFxdATSOExHV/PjI6Qj+HNdk2695eK2nUIkLwfm5v4TEj8dgOqCq9bp1DWzle8iVDtUWlASDLjDKpRtsX4Ypbljm6W+qv8nKKKtd1D8F++RpD3QkqCil5Aqk49wSllYjMnQuKbFT5paT5tLwR3NuxM9TWBfWyDMh7fu9l4Bok8DL0gKjnokk1bqweLx8GBeZQAQ/m+19OAcbFfvnxD2MuT9kIMi2YsncyYnVqtqgcc/6WsoT/rWKK4gMczed40SxmhB0wYZxAbCQxn1jeA== 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)(10201501046)(3231254)(944501410)(52105095)(3002001)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016);SRVR:BN7PR15MB2386;BCL:0;PCL:0;RULEID:;SRVR:BN7PR15MB2386; X-Forefront-PRVS: 06891E23FB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(366004)(346002)(376002)(396003)(39860400002)(39380400002)(199004)(189003)(31686004)(6486002)(47776003)(44832011)(81156014)(81166006)(65956001)(31696002)(58126008)(316002)(66066001)(11346002)(65806001)(8676002)(478600001)(25786009)(4326008)(2906002)(16576012)(86362001)(8936002)(446003)(956004)(6116002)(36756003)(476003)(2616005)(3846002)(230700001)(68736007)(486006)(50466002)(52116002)(6666003)(76176011)(77096007)(59450400001)(386003)(23676004)(52146003)(2486003)(97736004)(26005)(16526019)(186003)(7736002)(966005)(6246003)(5660300001)(65826007)(64126003)(105586002)(6306002)(53936002)(305945005)(106356001)(229853002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN7PR15MB2386;H:[10.0.0.110];FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjdQUjE1TUIyMzg2OzIzOjMrc1ovdm5GOUdFT29RbU9NdTVvaXRpbjhl?= =?utf-8?B?dHV2RWlaZldwYUxEODRLdzI1SWVONkowbFBXWVgyNDE2Y1RKanNUcitsdm1y?= =?utf-8?B?UFZoMVJKTHlWWm1ZcVoyclFRcHFCQVlpSFgvT2R0ZC9XUndBdjhSL3lxdHpY?= =?utf-8?B?d09iUTQvQ2RENGdySE4xRWFDV0hqeml1QXlpMzRHQWZuWE9XWFV1YVlGOUVw?= =?utf-8?B?OFQ3R253U09Lc21SSkpLV0Rwek9JeXYvWFpuZkhBSWMxWFM1bmJBSXdKS2JV?= =?utf-8?B?LzJJRnpFaitDNnlmTG5VZFNSdU9IaXJvZk5wekxVdWFRaGNaRktsaGo0aFNG?= =?utf-8?B?NXZyeWtiWisyL0R3MHJvOWUwKzVBbWpub01lTi9MaXZGeWRLVkJSaWRIR2Nq?= =?utf-8?B?cXUxNWZBb0NIWElRYUlpM0E1UGJvS1BqN2ZYekl2NVh6NWRTSmNZdDV3SGZP?= =?utf-8?B?RXoyU1J0cmgyTVRmQlR5YVN0aUdyTFZxYUcwSngzdVlnYzlMTDZIL2x5UExI?= =?utf-8?B?NUxneTI1clIxUTBBWmRtRUFHS2NWV0l5ZjhxemhZa2QrZWhISUhjMUVhV3I5?= =?utf-8?B?dnVaWWw3bHJJYVlJR2JSNGtseWs0VTdyWGFPYnhFc2pMUU1kVE5lRFpEQmh4?= =?utf-8?B?Y3Vna212dk5MQTljZzBZTUYwWnlLZ3U0MWxQSnlEdWV4NXhwYlUyWUJSMjVS?= =?utf-8?B?bmlONVhHeUFyc0xUcUZUVmxJK0NGZ2l5TjhSU3Q1Nk1TOXVhOU9kaC84T3ZK?= =?utf-8?B?djRpQjV5YXBjOWs0K0RVMWg3WS83UHVEMzZSeW5HT2Z5VEtleG04ajRsSCtQ?= =?utf-8?B?TFc0cWdzUVJDY3ZXczBMZm0xNDN4ZW1GUGgwMmNEM1JyUkZPNFZ1U1gwb1Bq?= =?utf-8?B?N283Q3ZhaW5PUDdIaVNFL0lvQkFmZTVTVng4WDNnQ29VbktZazNQNlhnaE9V?= =?utf-8?B?TUhPQXNhVStoSVgvY3Z1bnl0WW1mbVJGZTJCNWwvd0k3SDkxVjhHdVNtSGNs?= =?utf-8?B?SXVjbFEzSDNrMU5EZ3QxYXQxeExQblFFcWpTN3JlUk16WDJzQkR4L25TWnlY?= =?utf-8?B?UHJaKzNxZkYrUDFNVWtlUXYwVzA5MnVnckxIVitXRFNDZ3l0Y2x2djVTOGxJ?= =?utf-8?B?UkY2bVcxUGVkTElpcHVmL1FFNVpSVldvRHN6RkZ6QTgxam51dU5PRjhVTjB0?= =?utf-8?B?NndYVWwyTEY0a1ZaemxKZlU1Z2liOC9RSjhhQ2hrSEc4c2hIRHFHZmNmaGNz?= =?utf-8?B?Ykc4eTJ3OUo0cnNkNm9OUEVkQVBYeWtzM2lTcTZYZSt0K1d0cHFEV21ibXhU?= =?utf-8?B?UFZaN2xOQzh5OGJxaytDcDc1K0RhOFFWOVRWUDBTbnc5TUQ0bllkREYzRDNU?= =?utf-8?B?RVYrOGdFRjNESUJRWkFibks2TWxJV0J3amVKbDNYVEJNei9sa0cweGZBNHRT?= =?utf-8?B?d0ZHak43ekE3OCtmVGVBN1BtS3gzZmcyM3doRnh2WnpURDFpNTFvUEwySzJB?= =?utf-8?B?M01YRnpUVDljOHYrK0pKdjJhTTZITHJSWDd3UEY1RTRuZHgvcHBCVmlzVUxn?= =?utf-8?B?U1pIRGwwcDRMdEpUeHhCRHhlVEdHR2g2ZXNHZE9oSlJYcHZGT2Y4d09lMnUz?= =?utf-8?B?eVI1TktDUUxDZXhxNlFOb1M5QXZlNHVqUUlRdGVYakFaajNNcjNZRW1rdWo3?= =?utf-8?B?eWJNcTRlamdZN09nMkI2S3J5VUFkZXFhV1ZIeGRScHRJelBEenUzdVd0ZTNa?= =?utf-8?B?aWgwOHFJYkZ2eklSQ08zYndhZ1NFYnNKL2NSSG51VDAwaDZWSDI2Wm4zVm85?= =?utf-8?B?Uzd0aEQ3VnNUSlM1WXRhdERsdDZKRkUxcHFVL0FjWDhyVHJBdnh4TThpdzhK?= =?utf-8?B?WGVRa3RDWUJPMm9yL0NMakVGUUtwd29wQ01Xc0pqTzNBajJkY0VPWHZNT0pN?= =?utf-8?B?OU9yTE9ETUt2UmhvZHVMSDVaWVVMTFBQeWZheGV5cDlMZmpEQXdGMlg1ekI4?= =?utf-8?Q?ktjEH+?= X-Microsoft-Antispam-Message-Info: WUNkvg35VQ/sX1pg58xjQuBs/ANWP2YhhxAbKwzLFwpJkD1/pVoeXH5/xkYyOXSSc9dPfHJEfCWo5p+TzG+dTi8RzfWXDp5sr9i5kKlRCMDThsFtlN02cKsiGtUVXZKwusEWXb2vBakok+0536McW/oDDTGV8b4xDKtVUPl/yPCkVAO5pS6ehne9AP0bAj/E X-Microsoft-Exchange-Diagnostics: 1;BN7PR15MB2386;6:4WElwvkZpGO6F01CRUkB93yAMqij6CpTYgcvSsvb4TNbqwaNRgWtpx6W7uv8+4A2XU5+NwAQai5dHvCo+ELNkKg3U3w4fBVMNcuZqpzm1+QF801lWB3wyT36SfE7/dSNjAk2Co0FdczvR4PYB06+Et+A9h6C7wc/7eqhgdOC+vKZ0b7kUe/xWCP0bO2yliOrBccXyMccHPOdZ7Tn05bmEd/HfE5YleIhlrwLjAbLsJtgqwdxYCXLWTLt6IQq5iiN8Rh8pRTmMbtwc/DQysFulC/7zYIPtV0b4Dp51WKHa8ix+/CuWj4Fwo4JM4KIMB7bMmL9u8RtwRy2NXh9Sp1YB4x72jbhbQLDfQDsJCbeH1kzP/ufVWJ9XY0Oj9p1BSCW/gUVlpU0ievHPjBCK05hgn7u8y2cZGCySAjSA37yHAUjuXpQhzHbdtsi1NG/qG0blpgH92NRBg9gb0oDqhkQUA==;5:+26HJ8Mbd6UMjkHtrFJF1xpzfUBYhYVkeulxEkPynEmLqdRtrROXX2A1BdXahLtTzIcm2NxiVmujvM5vtAhXQGtIpGU5hS19gxkTwRfOo5GcPxAurZsc7TgDaalr2WyJCLE9SW+PhFwLM5scnsAJgTP3PN3qlglwup+FJeSPmmw=;24:GfX2tQcT4mdHUCIPPLWkEgP4Hk3/5YILK93DOjSo1hg9nPqO188KOsbJW0UeFcKbQkXU9fQbPsYt9W6HEBNlx/tIVKddaE+2n54eEg+R0Pg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN7PR15MB2386;7:fH5cI1DjHqGf3k9PAsBRgGC+xeBrKVWIVJ6U089euPC8gG7KvPdOthi238xNRoUIsHIBOThkpvscuTo5Vdprwp67iwMrZYxgwXsKI3W3ElpsX4kUwbCcMh9/yCIUZscVzlEO0xMOWF/RIw3Xo4edqzW7urYwoKCSLRTc9F3jjd9VKlBAC/T5LbVClqugmvDqAb/KPf5iarANs1XDa6U1TXwftK+fqF6bskYW5AOpQfW0lN+lGh8Jx4uvFmdbDIw/ X-MS-Office365-Filtering-Correlation-Id: 8720f942-017a-49e7-8d21-08d5c6f988b7 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2018 13:22:18.2711 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8720f942-017a-49e7-8d21-08d5c6f988b7 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR15MB2386 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00846.txt.bz2 Hi Alan, Since there is a good number of macros copied from the Linux kernel, it might be a good idea to isolate in their own file. It would also be good to identify precisely which file they come from (the path relative to the root of the linux repo) and the git commit you used. Also, since the copied code is rather large and non-trivial, does it pose copyright problems? If we want to include it, maybe that separate file should not state that the copyright is owned by the FSF, since it's not the case? Maybe others have experience with this kind of things, or maybe we should get an advice from the FSF directly. > diff --git a/gdb/nat/aarch64-sve-linux-ptrace.c b/gdb/nat/aarch64-sve-linux-ptrace.c > index 9381786fda..84c7a41f40 100644 > --- a/gdb/nat/aarch64-sve-linux-ptrace.c > +++ b/gdb/nat/aarch64-sve-linux-ptrace.c > @@ -25,6 +25,13 @@ > #include "aarch64-sve-linux-ptrace.h" > #include "arch/aarch64.h" > > +#ifndef GDBSERVER > +#include "defs.h" > +#endif > +#include "regcache.h" Hmm we try not add any more "#ifdef GDBSERVER" in the common code. https://sourceware.org/gdb/wiki/Common#Header_files_in_common_code_.28defs.h_vs_server.h.2C_etc..29 Instead, we should try defining a common interface (probably in common/common-regcache.h?) that the common code will use, and that regcaches from GDB and GDBserver will implement. > + > +static bool vq_change_warned = false; > + > /* Read VQ for the given tid using ptrace. If SVE is not supported then zero > is returned (on a system that supports SVE, then VQ cannot be zeo). */ > > @@ -50,3 +57,259 @@ aarch64_sve_get_vq (int tid) > > return vq; > } > + > +/* Read the current SVE register set using ptrace, allocating space as > + required. */ Put a reference to the .h here. Since this returns allocated memory, could we return an RAII object? Either std::vector, std::unique_ptr or gdb::unique_xmalloc_ptr. > + > +gdb_byte * > +aarch64_sve_get_sveregs (int tid) > +{ > + int ret; > + struct iovec iovec; > + struct user_sve_header header; > + long vq = aarch64_sve_get_vq (tid); > + > + if (vq == 0) > + perror_with_name (_("Unable to fetch sve register header")); > + > + /* A ptrace call with NT_ARM_SVE will return a header followed by either a > + dump of all the SVE and FP registers, or an fpsimd structure (identical to > + the one returned by NT_FPREGSET) if the kernel has not yet executed any > + SVE code. Make sure we allocate enough space for a full SVE dump. */ > + > + iovec.iov_len = SVE_PT_SIZE (vq, SVE_PT_REGS_SVE); > + iovec.iov_base = xmalloc (iovec.iov_len); > + > + ret = ptrace (PTRACE_GETREGSET, tid, NT_ARM_SVE, &iovec); > + if (ret < 0) > + perror_with_name (_("Unable to fetch sve registers")); > + > + return (gdb_byte *) iovec.iov_base; > +} > + > +/* Put the registers from linux structure buf into regcache. */ > + > +void > +aarch64_sve_regs_copy_to_regcache (struct regcache *regcache, const void *buf) > +{ > + char *base = (char*) buf; > + int i; > + struct user_sve_header *header = (struct user_sve_header *) buf; > + long vq, vg_regcache; > + > + vq = sve_vq_from_vl (header->vl); > + > + /* Sanity check the data in the header. */ > + gdb_assert (sve_vl_valid (header->vl)); > + gdb_assert (SVE_PT_SIZE (vq, header->flags) == header->size); Again, we shouldn't use gdb_assert here, since this validates external input. > + > + regcache->raw_collect (AARCH64_SVE_VG_REGNUM, &vg_regcache); When fetching registers, won't it be usually to fill a shiny new, empty regcache? In that case, won't it always fall into the "if" branch? In any case, should we check the status of the VG register to make sure it's REG_VALID before we try to collect it? > + if (vg_regcache == 0) > + { > + /* VG has not been set. */ > + vg_regcache = sve_vg_from_vl (header->vl); > + regcache->raw_supply (AARCH64_SVE_VG_REGNUM, &vg_regcache); > + } > + else if (vg_regcache != sve_vg_from_vl (header->vl) && !vq_change_warned) > + { > + /* Vector length on the running process has changed. GDB currently does > + not support this and will result in GDB showing incorrect partially > + incorrect data for the vector registers. Warn once and continue. We > + do not expect many programs to exhibit this behaviour. To fix this > + we need to spot the change earlier and generate a new target > + descriptor. */ > + warning (_("Vector length has changed (%ld to %d). " > + "Vector registers may show incorrect data."), Perhaps mention "SVE vector length has changed..."? Otherwise the user may wonder what vectors we are talking about. > + vg_regcache, sve_vg_from_vl (header->vl)); > + vq_change_warned = true; > + } > + > + if (HAS_SVE_STATE (*header)) > + { > + /* The register dump contains a set of SVE registers. */ > + > + for (i = 0; i < AARCH64_SVE_Z_REGS_NUM; i++) > + regcache->raw_supply (AARCH64_SVE_Z0_REGNUM + i, > + base + SVE_PT_SVE_ZREG_OFFSET (vq, i)); > + > + for (i = 0; i < AARCH64_SVE_P_REGS_NUM; i++) > + regcache->raw_supply (AARCH64_SVE_P0_REGNUM + i, > + base + SVE_PT_SVE_PREG_OFFSET (vq, i)); > + > + regcache->raw_supply (AARCH64_SVE_FFR_REGNUM, > + base + SVE_PT_SVE_FFR_OFFSET (vq)); > + regcache->raw_supply (AARCH64_FPSR_REGNUM, > + base + SVE_PT_SVE_FPSR_OFFSET (vq)); > + regcache->raw_supply (AARCH64_FPCR_REGNUM, > + base + SVE_PT_SVE_FPCR_OFFSET (vq)); Align the second line with the first argument. Here's an example, though using spaces instead of tabs to make sure (hopefully) the mail clients display it correctly. regcache->raw_supply (AARCH64_SVE_Z0_REGNUM + i, base + SVE_PT_SVE_ZREG_OFFSET (vq, i)); There are many instances throughout this file. Simon