From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2057.outbound.protection.outlook.com [40.107.247.57]) by sourceware.org (Postfix) with ESMTPS id 416CE3844769 for ; Tue, 9 Apr 2024 23:19:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 416CE3844769 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-Filter: OpenARC Filter v1.0.0 sourceware.org 416CE3844769 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.247.57 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1712704757; cv=pass; b=Pe9x46eVT65cjYxOB/rauLIwqQUbZQOOycufggStCTS2Tr64SB95oI+9ThpHeXxGLyeMnuvibgMCvOYR1g+yrN/0cpEv73m2HdurYV0yX4BTgBhekq+FxrpF07xrfRVWHcgeuWuyi20N0kOLx4q0CFjyBBn/gMZidUAGB2/7dB8= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1712704757; c=relaxed/simple; bh=k7yqeIiToFZW7XAawtDIUgpFrIwZIxnyj8nIWmZNzxA=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=DOYqkY2667snxGOyPYEYWwKKZrTmYwtvyr12/fru1FSwrjWx5Q2UxDACh/XEV1BEwzZk9Os2pbendZwnNLT3Cy8cn+3rTbyvx/4eoXzSwlP7x/2SkFnN0axmrWGIq1Jvg1n0soChwLAXSZvgVsLAw/T/J9iJz+TXTmMHqFuU8GQ= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=XInSfV1Q63KK4u7Of1ApWgwSxr1Zea2at+Go/67pdVems8THzbYuHAKbUrrGmdMulQlpG3DTpj3vGsnGLJzJaPfDaG8mHK3M0X2W1xAmkZmh5Z10ULMrWpTx4J829TK2cRnndmNNmgWllaD7QnXlhDIAh/npBe2MLbF2WC+z/90vJ7e+BYErsPb1500vL6Pnaip4ZcFrPkwZUtJen1DKGtpElYdmtpp+AidqlsY0IbY58nca5XP9rGIuggNlnOr4Ctwr68jcAWFLcUrd+jZ4DB3uFoM/qxqQ0qIpM8k1urjgm5IiTQsCTPUrMarhzGQJM9AWSgMJm0CcI2JjPB08ew== ARC-Message-Signature: i=2; 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=rOoM2EbW18UB2AvgPoe49I0opDuZ/n3E4ymOIvchW8Q=; b=fcHPOyq9rNoCGeu2iuA0AsMLAVF5GSldVaq6DsHgOYszN++G5YiDIIAVelWsCJ8G02pRA1ZphQ2NDJ9Sp0VyIWuIy/GLBZVRXCw7qdQn3OL/6HhZnMlhxIjJqDrBHble1y+DAhrRtJqEQN0ZG+pIJ+ZOrPcEp/2ussfXEy8bXk/5G+mWevw8XUT6hm9mZDsbFBMIxaEy3EBSxVq2POS1rt/AaHxZQKug1tB2S/twMVat+Wert77A0PtkSx4HmITy1p7uQdrEJfJgrzwE3z3ZPM4yhvRu4Pzfo8gnO3JKlvdVb2w6dOEd5av0Zpii3RajRLTCCQTcJfvWjjbyMM8jaQ== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) 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=rOoM2EbW18UB2AvgPoe49I0opDuZ/n3E4ymOIvchW8Q=; b=PhpVcjhJg1JGPp5ctz0aJSBuG1uHwfHx1c9sVvuy2grsrlmt7oNzWBt1PXjV+/7vvhbG3ZXZtsH4X0laAvENn6jW/5oRWHjYpXFTVPHhouEbCLYu3J7YdPYfroAJsLjqszwJLU70ksIQP49pbCjLh4YL1IgvZBlo577eWMB89A4= Received: from DUZP191CA0054.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4fa::27) by DU0PR08MB8323.eurprd08.prod.outlook.com (2603:10a6:10:40c::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 9 Apr 2024 23:19:12 +0000 Received: from DU6PEPF0000A7DD.eurprd02.prod.outlook.com (2603:10a6:10:4fa:cafe::2e) by DUZP191CA0054.outlook.office365.com (2603:10a6:10:4fa::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.30 via Frontend Transport; Tue, 9 Apr 2024 23:19: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 DU6PEPF0000A7DD.mail.protection.outlook.com (10.167.8.37) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 9 Apr 2024 23:19:12 +0000 Received: ("Tessian outbound 9d16f63426bd:v300"); Tue, 09 Apr 2024 23:19:12 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 05524cd6bd0e3de2 X-CR-MTA-TID: 64aa7808 Received: from 11ee6dd79681.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EB0EBA04-8091-4698-8491-6E8137813E17.1; Tue, 09 Apr 2024 23:19:05 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 11ee6dd79681.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 09 Apr 2024 23:19:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aWKjS/BeaveEIKNPpoiZJtiLaa5ZvuU3Ezb4l22BFLnLBDjDogpfnAH7dVzY3TyRC2nkHlFM2pEdzn6rjG/5bDKJnEcv+7OvnYpHBajOiWTsQq6wQYWG53xbqCHhUl9km5Id7Qltf7dLz6+9IdD7BoP5gATrG+7K14XAosonxroLOgMBBxy0jGWs3ftnvzNm/fmMPwbJy3oScXPOdNH0VUDNZQUCo0wXKhqMWhl4qZwig5UOYUShQbFleI2DlY/e0K4lIBS2NweIptBXhvOrdIrGUGaRD5IveF0HaLrHqMZ6spNiyHVmVFCn3309GEb4jQk365X4JBhhr5MhDG3AqA== 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=rOoM2EbW18UB2AvgPoe49I0opDuZ/n3E4ymOIvchW8Q=; b=A6iVmDXfG8dFYhd3fQyrYaFon7ff1jyEwVZTMvgsmeH5KvkywXkOgr5/Abm+he5O+8jFMhaPuM3DmSJ4cgl435l+2MD0v8jhWEUjrMku9wFjnT/+LN0WUaiKex9E8tEOAkPPRv+nEdxZO8wIfRR2xV506GuHdCtbb7f6nTDbnumfesVzVICC+26WYvIOxW/TGru6eqXL0ecwP5ewDDcFpcqNlY5yV9y4cbImrmvoPp9IZJBihncZRKm6NHiUbykU4tk3zLaNm18bQ2MR3G3H34lGDy6d+L0uEGKczYO4HfCZ9lLODk4Sjt8C6LvyExXIgT/tcS7oJroYP1uY3qIbow== 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=rOoM2EbW18UB2AvgPoe49I0opDuZ/n3E4ymOIvchW8Q=; b=PhpVcjhJg1JGPp5ctz0aJSBuG1uHwfHx1c9sVvuy2grsrlmt7oNzWBt1PXjV+/7vvhbG3ZXZtsH4X0laAvENn6jW/5oRWHjYpXFTVPHhouEbCLYu3J7YdPYfroAJsLjqszwJLU70ksIQP49pbCjLh4YL1IgvZBlo577eWMB89A4= Received: from VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) by AS8PR08MB8611.eurprd08.prod.outlook.com (2603:10a6:20b:563::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Tue, 9 Apr 2024 23:19:03 +0000 Received: from VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::363f:3fc8:fc36:58ed]) by VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::363f:3fc8:fc36:58ed%5]) with mapi id 15.20.7409.053; Tue, 9 Apr 2024 23:19:02 +0000 Message-ID: <69b67287-9c0e-4ae6-9228-607aa0e34f91@arm.com> Date: Wed, 10 Apr 2024 00:18:58 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] gdb: specify sh pointer register types Content-Language: en-US To: =?UTF-8?Q?S=C3=A9bastien_Michelland?= , gdb-patches@sourceware.org References: <20240401100740.939986-1-sebastien.michelland@lcis.grenoble-inp.fr> Cc: Simon Marchi From: Luis Machado In-Reply-To: <20240401100740.939986-1-sebastien.michelland@lcis.grenoble-inp.fr> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: LO4P265CA0077.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2bd::8) To VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR08MB3919:EE_|AS8PR08MB8611:EE_|DU6PEPF0000A7DD:EE_|DU0PR08MB8323:EE_ 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: XymWTEmBD6DGySLySYtpAsFLLFtzyQw055GtWbDoeBVJLT1Pa9oF8uJjSyAdvp6THrEUluNsaHjeiCCS7WWHgEDgW+Cz4MVHCZwSR8jlS+RDmDkfpJaBAVSc+Oce1IYg8adEeJfKLYiJA0XSKUDNlcM4sgBzz/hN2UkjeRoaAfH/nUR4eBci38TUhowIU2rwQrbE54xyzArwaVnYyGuoRSO5PIHM5yvyo8zOVwqtZVXiu7f62TeUiM/uwqFy4CbSy2azHUk/yd1dIlKbUw1FVEdVTowUR26drtlxf7yLDVFUkJTyA7PwqVCGKEcjgCXONPp7FJXyi3BxhDiZDNMSsWE+nU/OjUVBou0IViI6tUjDtN+NI4CqVuX9kOmq26C5d+Xo7T50LDcTLxs4Laq3b67ggy8XB32vOvu/dIJjX0vgNTiFU0cs284oQsdzYJ0nqQqPmQryZPEgpxixgqabHIEMmHmDhvEY4e0SCnpEHfcPQgVgfyfVYQKERKEjQ6kuyRSLoACkqodUuitfdRi76/9/n0gBBP38Ziatw9nuaPEyVCmfJ+aBrhukBEXj1NgnP46CltHqH1qVlSkzpWtkxo0shcx2TqzCjdYyYUxbpDfLGnoJARoYsgNp8gwT9H2WN6waHskw6U5quvWwReaJyKrmDZI1BFkv/ktAWMCTv3c= X-Forefront-Antispam-Report-Untrusted: 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:(13230031)(1800799015)(376005)(366007);DIR:OUT;SFP:1102; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8611 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU6PEPF0000A7DD.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 081012b6-34a0-4251-2d6e-08dc58eb7786 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4SfBMGRTyyrOz4EFqp3d/Rez021soikZH3b4PDuxxK0VEjj0yYCrrkvAlyxu6H/i14I0f1npv0/ntwhISpTYHtkUxdU1t1pPc3UMG3CuG/G8aBdYYe1mS7xcx6g/TkgeZvLyEewSPIjnX/u3JPPVwKl+KvTJqZ526Y+rqKpqkABQ7kA2F6KDwIcfWKtYmOcdHWkmApHiDuEyPW4k5QWPS4rV7MxvmxZZLVRG33405om2U0D3ktMeL7ffcuUVI53Qeyde0flDjXT0nkkQQABVeH/Z9pZT9dOgoO9A1Veu4/jwfoEgrbRGYehKJ4D7xrODQ5BtFKcw64r7zhrnwcOnUPPMBCT+odocWBBi20lpPqYyn2f4t+xuuM3oToudbz7WzOMNc/P+TgsAJ2j5c7Cjg35k0hJD0nFtJZgTM9ywChJJCIRlmmoBg563eSd89u+b3Oi47c1XLVC/AsXXyiMu18UGBoOuuNhs8qzjaRo2DjKDRxCp58buyUIZAsIGkN6FV8VOU2i+Evuw9QUVgtLqgF+Aa/9iNMt39gha57x0zJcP0vU+IILfK9IfLTjoReogJTIg0LdC20uMftTH2ZFXKOjseQyook6YzQ9w9XTgyBJZEhVVzNKtilkaT6hEgNtF7KI+/hOfqLOz4nIMk61sQBDbfkgYwKROXi5RC1pErDzqebp5RHsqbI3pgzTmVMwmre5HK1+6F+CwHnq3uTRfyc9eZLqoA8jdRz9DM3iZDYVFmfbvD7Y5eVoBRMIL14ei 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:(13230031)(1800799015)(36860700004)(376005)(82310400014);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2024 23:19:12.5452 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 081012b6-34a0-4251-2d6e-08dc58eb7786 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: DU6PEPF0000A7DD.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8323 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,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY 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: Hi, On 4/1/24 10:55, Sébastien Michelland wrote: > This patch fixes a pretty funny issue on sh targets that occurred > because $pc (and similar registers) were typed as int. When $pc is in > the upper half of the address space (i.e. kernel code on sh), `x/i $pc' > would resolve to a negative value. At least in the case of a remote > target with an Xfer memory map, this leads to a spurious "cannot access > memory" error as negative addresses are out of bounds. > > (gdb) x/i $pc > 0x8c202c04: Cannot access memory at address 0x8c202c04 > (gdb) x/i 0x8c202c04 > => 0x8c202c04 : mov.l @r1,r10 > > The issue is fixed by specifying pointer types for pc and other pointer > registers. Code pointer registers on sh include pc, pr (return address > of a call), vbr (interrupt handler) and spc (return address after > interrupt). Data pointers include r15 (stack pointer) and gbr (base > register for a few specific addressing modes). > --- > > Compared to v1, this patch applies to all sh architectures. It also adds > r15 (stack pointer) as a data pointer and sets gbr to a data rather than > code pointer (which was a mistake). > > gdb/sh-tdep.c | 23 ++++++++++++++++++++++- > 1 file changed, 22 insertions(+), 1 deletion(-) > > diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c > index 1c67ea42..b76efa3a 100644 > --- a/gdb/sh-tdep.c > +++ b/gdb/sh-tdep.c > @@ -1400,6 +1400,11 @@ sh_sh2a_register_type (struct gdbarch *gdbarch, int reg_nr) > return builtin_type (gdbarch)->builtin_float; > else if (reg_nr >= DR0_REGNUM && reg_nr <= DR_LAST_REGNUM) > return builtin_type (gdbarch)->builtin_double; > + else if (reg_nr == PC_REGNUM || reg_nr == PR_REGNUM || reg_nr == VBR_REGNUM > + || reg_nr == SPC_REGNUM) > + return builtin_type (gdbarch)->builtin_func_ptr; > + else if (reg_nr == R0_REGNUM+15 || reg_nr == GBR_REGNUM) > + return builtin_type (gdbarch)->builtin_data_ptr; > else > return builtin_type (gdbarch)->builtin_int; > } > @@ -1412,6 +1417,11 @@ sh_sh3e_register_type (struct gdbarch *gdbarch, int reg_nr) > if ((reg_nr >= gdbarch_fp0_regnum (gdbarch) > && (reg_nr <= FP_LAST_REGNUM)) || (reg_nr == FPUL_REGNUM)) > return builtin_type (gdbarch)->builtin_float; > + else if (reg_nr == PC_REGNUM || reg_nr == PR_REGNUM || reg_nr == VBR_REGNUM > + || reg_nr == SPC_REGNUM) > + return builtin_type (gdbarch)->builtin_func_ptr; > + else if (reg_nr == R0_REGNUM+15 || reg_nr == GBR_REGNUM) > + return builtin_type (gdbarch)->builtin_data_ptr; > else > return builtin_type (gdbarch)->builtin_int; > } > @@ -1433,6 +1443,11 @@ sh_sh4_register_type (struct gdbarch *gdbarch, int reg_nr) > return builtin_type (gdbarch)->builtin_double; > else if (reg_nr >= FV0_REGNUM && reg_nr <= FV_LAST_REGNUM) > return sh_sh4_build_float_register_type (gdbarch, 3); > + else if (reg_nr == PC_REGNUM || reg_nr == PR_REGNUM || reg_nr == VBR_REGNUM > + || reg_nr == SPC_REGNUM) > + return builtin_type (gdbarch)->builtin_func_ptr; > + else if (reg_nr == R0_REGNUM+15 || reg_nr == GBR_REGNUM) > + return builtin_type (gdbarch)->builtin_data_ptr; > else > return builtin_type (gdbarch)->builtin_int; > } > @@ -1440,7 +1455,13 @@ sh_sh4_register_type (struct gdbarch *gdbarch, int reg_nr) > static struct type * > sh_default_register_type (struct gdbarch *gdbarch, int reg_nr) > { > - return builtin_type (gdbarch)->builtin_int; > + if (reg_nr == PC_REGNUM || reg_nr == PR_REGNUM || reg_nr == VBR_REGNUM > + || reg_nr == SPC_REGNUM) > + return builtin_type (gdbarch)->builtin_func_ptr; > + else if (reg_nr == R0_REGNUM+15 || reg_nr == GBR_REGNUM) > + return builtin_type (gdbarch)->builtin_data_ptr; > + else > + return builtin_type (gdbarch)->builtin_int; > } > > /* Is a register in a reggroup? This looks OK to me. Unfortunately it doesn't look like we have an active maintainer for SH, so testing might be a bit limited. Sounds like Simon had already OK-ed your approach. In any case, are you sure all the GPR's should also be typed as data pointer? Should those be unsigned integers maybe?