From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2081.outbound.protection.outlook.com [40.107.6.81]) by sourceware.org (Postfix) with ESMTPS id 188EF3858C62 for ; Mon, 28 Nov 2022 12:09:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 188EF3858C62 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UPVy1rcWJFSpPP+Dgv2IAxJuRUwfdIjEYEx91UOkyfw1KlcOeu3hcRzGZYcCInJ67ep4STd+X4VeeQm/FlHBKE4e22kfORkyXL2wAMtPW3la5fX5oXpqSwf884Rnat+oux1CAuVo1vIg8MzRf6j5blP81J/spXlWVVH5Cnv+8VxL20HPyFCOVxockSIW2DcIagnZx7BkTmcrfcEreFWDO1RcIQDUd/3zVW6YjunMg72YU08jfuiWqv1ygcXuYbYNQldX/P94fjFq0C24JgSSU70J5RDkjjpq3a7dj0lnCG+TiZa/QUAFBN6NDXGUM8muUsn3zY0/+FtiaxqvaqGL5g== 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=7ygcMc2hKFMlOlvkv/TnL6IeaCurIYfVm1h0hXp88pA=; b=bFZUdeONjGUpPSi/NT6NrnxSExlMBWZ3P4nimMHkTaBTlWejlxpOUervWIjfof9ymV5rrhxab/Dq/bkXdTelVZyPY80HZHNHyEljomAUy7AkrNKL8Pkn+5f+U5PqB31SxO55DWR5qPVvENoBxrOzTFlliPs9IQdmUGESIRBJuDuRx9CQ7UH7nYCRtaBjkvXUaFvvjmd1U73PocV3jsmilFPUVNOEeq/vRh18OgvF8JzeVyfL0g6QNraTyl21t+FA6Es9rKXiGq+b/PmNlRqxBady0NBcJ03nLkmNtgMCUawW/77CYQg/7GofvWNde7y4L0cRsdsFS7D4BndzxSIYbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7ygcMc2hKFMlOlvkv/TnL6IeaCurIYfVm1h0hXp88pA=; b=MbJZ+lpBxE1Wn0yY2hr7jIZDzNNn0A6DZ4HWHFF6Dj+3UqXKk5GyGmdZzLCdAm8vwHZki9AeGQIu1nS/wHjx5XyoCRkZMLs+6NuKPWDWzEtp5yoSVVHIWC1C/5k/rUV1BacoeZ7NqZrDi+mcTAG8dhKmlB6hE9UgougX1z5XexQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) by GV2PR08MB8100.eurprd08.prod.outlook.com (2603:10a6:150:7a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.6; Mon, 28 Nov 2022 12:09:10 +0000 Received: from VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::fe5c:b195:a2ad:b19c]) by VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::fe5c:b195:a2ad:b19c%4]) with mapi id 15.20.5880.008; Mon, 28 Nov 2022 12:09:10 +0000 Message-ID: <832ac76f-4cc1-1ab4-a80c-f4d92005ea7e@arm.com> Date: Mon, 28 Nov 2022 12:09:09 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH v2 5/6] gdb/aarch64: Factor out most of the thread_architecture method Content-Language: en-US To: Thiago Jung Bauermann , gdb-patches@sourceware.org References: <20221126020452.1686509-1-thiago.bauermann@linaro.org> <20221126020452.1686509-6-thiago.bauermann@linaro.org> From: Luis Machado In-Reply-To: <20221126020452.1686509-6-thiago.bauermann@linaro.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P265CA0256.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:37c::16) To VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1PR08MB3919:EE_|GV2PR08MB8100:EE_ X-MS-Office365-Filtering-Correlation-Id: d3d7df22-1dcb-412d-f8d3-08dad1395b83 NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FpB2W8b4InV+fkNnAopjmxt5zK8fNuAeirqevAIFL8V0COGYJsOfrs6GQ16wj/J4GoKh6QdjfxecDuJ8+677EyQGMmZPeWq4om2eNPfm/5cbsC7StTu5Tb1SgzvsBNfHtPKCp+brMhRWLCSW6zop3t6Z9uqDxI9fQnJVrcQeKU/ea4z+EJQJqJ4zvm0nEKb4fIncexwKFhYDXz6uxqJsb9vYj+EwbOzsDahoZFdbTJelD/HI7K4v/Su2NalAIxWiEwoFF+biwKORxKH8DEf9nSYtbt0X695G5ZP/EhXXs8EpMQ6D0awQ5kigWTkKjKXOEBjiZPv/sJUxasnaOuUDAZmXzs0UJs/8Wz5VBz/8TP+YhrkOAgESX+Cs6CkPcjtTftxf3/E9TwkroVbMfAxFALZh3+E+/6Q9hIHr9eYaeV0F441oYNJxWWi68TQHxD+EwWvDAWvwOHelY7xUqiQaUAbGG1evK2sNBspfONi1E3FTV9GCpHTMEmqCv8o3s914v45VvqqApFKJtJh+ksQX+WIWQWnBC2P4cs4auZEDuW7FJr93v22RvtwSu8Bt8d9IyUF1D4TCuwtUa9oaXUAk0dBTPtda9uAhbxcp3JCvce5O83j6sjOTx20QOEDPAviVwLe9erHKOF7ltTH/JwLnkou9qpArCJymQ2ikPLb6j5L+mntgCZ1J4CusOBlpclKMSFWJr8T+7VyO0NWZK7XhjkBTFrWfeklnOCZDy/m3fMk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB3919.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(346002)(396003)(376002)(136003)(366004)(39860400002)(451199015)(31696002)(86362001)(8936002)(41300700001)(5660300002)(44832011)(53546011)(2906002)(66946007)(6512007)(6506007)(26005)(83380400001)(2616005)(186003)(316002)(66556008)(8676002)(38100700002)(66476007)(478600001)(6486002)(31686004)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZFNvbjIybU1FQW5PSnN2cTNyeDE4YVcxNVh0SkIvSit5SG5iQzU5MmNVS0Yz?= =?utf-8?B?eUZJQ3FNbE5WWWNqejIzZHRuelZTcUFCNmRRRVFGTVlvY2REWkZRZkJ6N1VV?= =?utf-8?B?ZlU2Qmc2RzhoZzNnTjNmZWZIL0M1bGhxZlZ4VHFkMFArcTM1YzExTlQzTjd1?= =?utf-8?B?QjRuVEhOZGpPaTlLV2ZPR0dGL2JFdVF5U1IwMllkTFdQeWJ1Z0ZCa1NGMGsv?= =?utf-8?B?Y1BDVnBlbVR3WGlyMVdhN3VzNlJkMWhQSUVTc0puRlZITDEyYVhJbjZFY3Rm?= =?utf-8?B?V2tSbjc5Z0Vtc3ROYmxmcW9ZMTZmYnQzQzVoT3pzaU42VWRTLzhNS1FsNTAv?= =?utf-8?B?ZzMvYXdla3dnWDZHckFxdms3UGRScnpVbmtrUnhXYk44c2l1NmF4bkQveGIz?= =?utf-8?B?emJpd1FLSzQwRzhhZFp1ZGZRdm5OMDV4dCs0bUlGZUlnWDhmR01mNHVLTWRi?= =?utf-8?B?a0tFZE9XUHZQeFVHMkE1M0hydFpObmdia096RnFWTUR6Z1llNkxXbU1YM0hs?= =?utf-8?B?cjY5eTlab1c1bXFVNUpOYVZTSzFZTktXNXJWM2Uzb1crMjFXWDNZLzYyVVU4?= =?utf-8?B?VjRhZkRHMEFvbDVmQzUrVko0VWFTY0YxZWg1cFFGdTZRUEgrSWI4TlUwNHVN?= =?utf-8?B?c2FIS0NYMXg5dHdrVFdyWWtQa3NyT2dGdmYvVlZlUjBValVsV0t0ckZBeU56?= =?utf-8?B?aDFFRkZSbFhTVU1DY1BJUkxodDV5UVE5NHRHYkVpMWhuOGpoUGo4bVp5WlZE?= =?utf-8?B?eHZHVFhtZTk2bFExRFFMNXd0ZExkUldNRXE4bHJRa1AyclAzZ2VRcWZnN3lJ?= =?utf-8?B?VTV3QmFxcUtIalltVjZCRmxtVmhkT2tNbUc2d1dxcjZML0pzUWw4YndhS24w?= =?utf-8?B?OXlzTDRzeVhxbWorVVJHeXJ6d29YUElMSlJ6clVCNHAvcGovMGlydVQ0UGdZ?= =?utf-8?B?VXgySUlQUDVMWUJqMXlqV2RZOE43U1NobldKa3graSt6UVhUZmtqazV5anF3?= =?utf-8?B?MjN1TXc4N3Vqa0RreENMK21lbThMSEtBTHcrd1N1VHpIRllLd29oT2hTK2JJ?= =?utf-8?B?b1JldTFaWmtsdWtMSWFPNkF5bmxvYUJMTkY2NEhxb2hGcWVKSnF4MytyVDQy?= =?utf-8?B?amo4Y201RVYrNWhORlVlSDQyYkxXMDh5SnNDRG1DdCtkTFNEbTR5S3Y0Ti9I?= =?utf-8?B?bTl5RGpQQ283MUdYL0VRY25GRE5VbnUrbXh0T3dVYjl2SGtiT2M5VS9xU0Vn?= =?utf-8?B?RElsWElZQXZNR2NDUXRyRkkrTFNFblVYOHJPeG5NekJLS0JEVStvUHNHNFhR?= =?utf-8?B?d3ZNbmpUOGxDaWE2YUJGVW8zOGY3aEVCUWFzRHpqa3F0b3JaNVkyS0s0NSs4?= =?utf-8?B?SkJ4SlhoNzIzTUdZd2ZyenMzcVZ3c0p0cTBUOTlQaVM0UDcyU3huaUhJbkhj?= =?utf-8?B?WGo4Szk1VUxoUUFIK2txSHcwdmcrUGk3K3BoN0RCczJTd1B6UWtkTy9qR2Ru?= =?utf-8?B?bEJ1SEwzZmdNVFBNeFVtZDlWN1VBajNDeG45UlNMK3ZESnZLRngxbHlDK0pG?= =?utf-8?B?UGdTWmU0RnlwS0NrbmkwVGRpM3hGbkQveHI5c3AzV0ZhcTMrLzBITnJhMlYw?= =?utf-8?B?eWZDRFgzTEVDYTAvYUxHRVM1cUY0Z2ZJanhyYVNVTzNBYmlJUEZ5YjBobXhP?= =?utf-8?B?dWo4V3JBMGpEdjlmWHZWRWhqN04yblk0SFZER2ZJSnYrVzNydHE4Z1kzYWV3?= =?utf-8?B?L1dQKzA1K3pDMnZmYkt0R1phMXIzTUtTZkhzQUhDaWJwdkJiMGRaeFNRcUhh?= =?utf-8?B?TjFyU0pZeklXQ3V3bUcvK3FyblBEY3c0RnBWOHJiTVRZdVluMGw0dm1TOGhY?= =?utf-8?B?aGt1MXBVK2s2RTQvcjg0UnF0MFE2Z1ZtL3VUUSs2UStnYUdKYkVpMUZIeFBx?= =?utf-8?B?a2JRcmhvcHlET1pvcGVsS29LNmpveEllUGJEZWs5QXJVRTZWOUNMci9HMmNx?= =?utf-8?B?M0JFVnp0VFlmeDRleU5rOVBXeHN2aDAvdXR2TXlYMDdoK1g2ekV5T2NkTDNV?= =?utf-8?B?K0w2WWxqcEkzcmhZOCtFWnMrTnBhY25Wc0VTbTB1YjExOWNsRmUxLzh6NXFr?= =?utf-8?Q?Fw00TW7J9qamtl1wtfCVEEcmc?= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3d7df22-1dcb-412d-f8d3-08dad1395b83 X-MS-Exchange-CrossTenant-AuthSource: VI1PR08MB3919.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2022 12:09:10.6313 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5OlOLeDXXNBUt8gnOUG3JakWS76sy4M4TNQoaICTBSzTtNicns+CLrqZyL390Rz5Ccdngfatg9gyl31c3b22xg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8100 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 11/26/22 02:04, Thiago Jung Bauermann wrote: > The same logic will be used by a subsequent commit when remotely debugging > an aarch64-linux target. > > The code isn't changed, just moved around. > --- > gdb/aarch64-linux-nat.c | 28 ++-------------------------- > gdb/aarch64-tdep.c | 35 +++++++++++++++++++++++++++++++++++ > gdb/aarch64-tdep.h | 2 ++ > 3 files changed, 39 insertions(+), 26 deletions(-) > > diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c > index caefcb364852..ca230ea4fdb0 100644 > --- a/gdb/aarch64-linux-nat.c > +++ b/gdb/aarch64-linux-nat.c > @@ -884,33 +884,9 @@ aarch64_linux_nat_target::thread_architecture (ptid_t ptid) > /* Find the current gdbarch the same way as process_stratum_target. */ > inferior *inf = find_inferior_ptid (this, ptid); > gdb_assert (inf != NULL); > - > - /* If this is a 32-bit architecture, then this is ARM, not AArch64. > - There's no SVE vectors here, so just return the inferior > - architecture. */ > - if (gdbarch_bfd_arch_info (inf->gdbarch)->bits_per_word == 32) > - return inf->gdbarch; > - > - /* Only return it if the current vector length matches the one in the tdep. */ > - aarch64_gdbarch_tdep *tdep > - = gdbarch_tdep (inf->gdbarch); > uint64_t vq = aarch64_sve_get_vq (ptid.lwp ()); > - if (vq == tdep->vq) > - return inf->gdbarch; > - > - /* We reach here if the vector length for the thread is different from its > - value at process start. Lookup gdbarch via info (potentially creating a > - new one) by using a target description that corresponds to the new vq value > - and the current architecture features. */ > - > - const struct target_desc *tdesc = gdbarch_target_desc (inf->gdbarch); > - aarch64_features features = aarch64_features_from_target_desc (tdesc); > - features.vq = vq; > - > - struct gdbarch_info info; > - info.bfd_arch_info = bfd_lookup_arch (bfd_arch_aarch64, bfd_mach_aarch64); > - info.target_desc = aarch64_read_description (features); > - return gdbarch_find_by_info (info); > + > + return aarch64_update_gdbarch (inf->gdbarch, vq); > } > > /* Implement the "supports_memory_tagging" target_ops method. */ > diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c > index 07330356fdcb..ffc128d91f60 100644 > --- a/gdb/aarch64-tdep.c > +++ b/gdb/aarch64-tdep.c > @@ -3486,6 +3486,41 @@ aarch64_cannot_store_register (struct gdbarch *gdbarch, int regnum) > || regnum == AARCH64_PAUTH_CMASK_REGNUM (tdep->pauth_reg_base)); > } > > +/* Helper function for the "thread_architecture" target_ops method. > + > + Returns a new gdbarch that is equivalent to the given gdbarch, but with SVE > + registers reflecting the given vq value. */ > + > +struct gdbarch * > +aarch64_update_gdbarch (struct gdbarch *gdbarch, uint64_t vq) > +{ > + /* If this is a 32-bit architecture, then this is ARM, not AArch64. > + There's no SVE vectors here, so just return the inferior > + architecture. */ > + if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32) > + return gdbarch; > + > + /* Only return it if the current vector length matches the one in the > + tdep. */ > + aarch64_gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); > + if (vq == tdep->vq) > + return gdbarch; > + > + /* We reach here if the vector length for the thread is different from its > + value at process start. Lookup gdbarch via info (potentially creating a > + new one) by using a target description that corresponds to the new vq value > + and the current architecture features. */ > + > + const struct target_desc *tdesc = gdbarch_target_desc (gdbarch); > + aarch64_features features = aarch64_features_from_target_desc (tdesc); > + features.vq = vq; > + > + struct gdbarch_info info; > + info.bfd_arch_info = bfd_lookup_arch (bfd_arch_aarch64, bfd_mach_aarch64); > + info.target_desc = aarch64_read_description (features); > + return gdbarch_find_by_info (info); > +} > + > /* Implement the stack_frame_destroyed_p gdbarch method. */ > > static int > diff --git a/gdb/aarch64-tdep.h b/gdb/aarch64-tdep.h > index 55ccf2e777d2..80b9b3281a2d 100644 > --- a/gdb/aarch64-tdep.h > +++ b/gdb/aarch64-tdep.h > @@ -143,4 +143,6 @@ void aarch64_displaced_step_fixup (struct gdbarch *gdbarch, > > bool aarch64_displaced_step_hw_singlestep (struct gdbarch *gdbarch); > > +struct gdbarch *aarch64_update_gdbarch (struct gdbarch *gdbarch, uint64_t vq); > + > #endif /* aarch64-tdep.h */ LGTM. Approved-by: Luis Machado