From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20086.outbound.protection.outlook.com [40.107.2.86]) by sourceware.org (Postfix) with ESMTPS id 50FEC3858C52 for ; Tue, 17 May 2022 15:53:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 50FEC3858C52 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=mbNeV6PJAuUxoJ5rJbZVuW1t8/ONVHFNPI2t2ryhZ6X3ymG+7Pmo3AJnek4lkSNFcQTqu/S1yf+QVkkW2r5++DXi5TFN9onaJAJ4QU17c3vfoAuZmky+Oqh3hJHn1hF1X6wMn5GZa7QJfZcji5DziQ1JPSjaClcFyGjeppuL1ImRQxDhU3jv0LwTh4WxP5xjqBAEZQwjGkxt/4BNuMG3pTRB9+2oIN21AWAnNQT0tJ+vNKR/QKhDuyfCe9Yd2A9L29GKWGJYkd5IySyBchhG8oi5vD9BKjVDoIzpKmDMcifM1FzHCYmPy76GGRm9DP3fgGDlfJcSKWtGcXvM4Dcr3w== 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=HFz4SJISBaKld4I72mEV+pICrGfneUBtO8TFAyOyUSo=; b=M4yeFU40lzXI49+L/qUXziNIxRTtgOpdYiKCVmcMOVLNPmAAQ+79yoourlNVq6NG1gHB/uiLXYNb1iCt79DPS4BrrMOmNDDnUWXLESGyRknM35bPfyLfkUZptasmgd5D9vWg2NWS6AdUFjlI0s2GvazuOp0GV1xej4EdGexobdLl5OS6pAlWgqD/vD5hw0tm1a/fuOdsekzlBlGBN5B1okwzVJwGxK7GqOukYHMR3UHj+o14Ta/MyHBY+/72TaExmhTpjrspT2H+bhVZufSHeSrokornFkBkBig9gzAEYswtDVnq33YhDuu2f06t89zceyRF3bycv6llRQuTg4Qlww== 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]) Received: from AM6PR05CA0026.eurprd05.prod.outlook.com (2603:10a6:20b:2e::39) by GV1PR08MB7361.eurprd08.prod.outlook.com (2603:10a6:150:20::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.18; Tue, 17 May 2022 15:53:01 +0000 Received: from AM5EUR03FT029.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:2e:cafe::f3) by AM6PR05CA0026.outlook.office365.com (2603:10a6:20b:2e::39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.18 via Frontend Transport; Tue, 17 May 2022 15:53:01 +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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT029.mail.protection.outlook.com (10.152.16.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13 via Frontend Transport; Tue, 17 May 2022 15:53:01 +0000 Received: ("Tessian outbound 42cead292588:v119"); Tue, 17 May 2022 15:53:00 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8913fa03fedbc767 X-CR-MTA-TID: 64aa7808 Received: from 3585b50e0997.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 46C12A88-F6D6-47FC-BF1E-EA5E46AD4E77.1; Tue, 17 May 2022 15:52:54 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 3585b50e0997.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 17 May 2022 15:52:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fa+nWi3jCQ1ljVIFC5fL+cbOWgg4HgymKE/1NyL6hiHXZ/jmKeUrCaCVAQg2dGpAmzQSs2j9Y5gEBpOKxBx4ppr/IWvt1UCczyW4QTiFJ2o/O5xAhZo59oT69rMfbmOfc+p6a+/TBxksevdBy73dSGFO7vmgr/qfK0fNGxAjsFPa238JVVixPqgmghsFPfbQ2kNOmdTO3jmpC5LzEnw0+K5JU9niAfKHsjZqJD5VJzBjbvBNZi4jExIGuB8un47OZdvocc4lLwnl8ZVuZeCISeB2WE9CGEqsdVDFL0PxFi0aEOuwHHYpvzkukO4ucwybgN7GjxXUxGAkHiXj0fjDkg== 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=HFz4SJISBaKld4I72mEV+pICrGfneUBtO8TFAyOyUSo=; b=UPMfpGeOnKe1NDsyXrDOjWyNwvA/Lc01/SRRBHHw4ELtrsYgBPgBOMag38Td/ZI9Kq9ZfCkuBwwzkhWDNGHSo1vqT+zrm2NqdugMVq3tmKhjTgkRni2hu7tp7+sBL6UcOG5gTU6QKYO/KKzM5sR+p37R1X6K3n9fk4fy1xqo19hX/SYJ0aje3A1lbEhHA/Y36Tpr8IP5wozFClRaGvBv1r1dqtqKmrKYw/8rO0oaRt6bKrAXqHa+ZaYRkFiYFs5gF3ao3Jpz+tJtdTqtNOkGkcjzf3d2jIAuXYBb7BODzoE4xFkcAC38LNU5h+ez4FCwFfBdBlTWdCT2Fjc2VhWmnA== 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 Authentication-Results-Original: 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 PR3PR08MB5627.eurprd08.prod.outlook.com (2603:10a6:102:83::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.14; Tue, 17 May 2022 15:52:52 +0000 Received: from VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::7080:6233:cf8f:a8a6]) by VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::7080:6233:cf8f:a8a6%7]) with mapi id 15.20.5250.018; Tue, 17 May 2022 15:52:52 +0000 Message-ID: Date: Tue, 17 May 2022 16:52:46 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH 3/3] gdb/arm: Track msp and psp Content-Language: en-US To: Yvan Roux , gdb-patches@sourceware.org Cc: Torbjorn Svensson References: <20220516135454.GA27993@gnbcxd0114.gnb.st.com> <20220516140022.GD27993@gnbcxd0114.gnb.st.com> From: Luis Machado In-Reply-To: <20220516140022.GD27993@gnbcxd0114.gnb.st.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SN6PR01CA0007.prod.exchangelabs.com (2603:10b6:805:b6::20) To VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: b1e967ff-2dfd-4f49-a0cf-08da381d5241 X-MS-TrafficTypeDiagnostic: PR3PR08MB5627:EE_|AM5EUR03FT029:EE_|GV1PR08MB7361:EE_ X-Microsoft-Antispam-PRVS: 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: urrTId9ZwmIb4ebbK6hJS6xgIwWJd1dlQ37CH16qqngnsWmC0Y6H+FnJAW/QDwdrs3b/7iabYARTHn6Kbiq8Zz6Shw1ZYvKP5qF4Sl24ciHenYN06sOUf88Qq9s9nJbnzk82tBWP0sTE0x/Us0kLkE63uo9EnjDO3oRNFKrMN0NLHHAyVhydAfMq0tTMM5DKWKyO329tpmTSpNZ/fGDSDuIlxOWqW6278o8CJ1usXkUCKJLpw5zh1hfl0hPnOP7MATJKmjQbJN9DThGB8X4N4I02DHqPaqGOyCYfOTdpsvMizknjOcduDPGIwXIIpfdstmn2kkeohADeleizp3Aor3IPoZ/xjGr6XOZ6Gk+of/coyD2fMpngLvoIKdXivsHWVzjRD85yFyo7YL1MO1wRnt/ADga69OHJUG38A7YyVH6dSsi78VGO6D11goPvH+5ZeC8udRn+Mk9Qa4USMctCE6l6j277Bd4QwzfiuOLWu0yIofL2M+YF1MLf3w6DI/ZdQSFiH7TcJ8KfhUAhfGwcb5A7Rhov6QIZQ7KQvffRZ1MIBdKbW4hyW/PGDa34b+32KXmg4gUspSVs4usmIEdV+d38ViJ6xnIGLdnNseWcgAXpJshN1N+kXJzmmgylmeOe0bhllB7GOfzzcmgvFO0UnXOha+/iXHGA2t4YTPkOp2hJlFf0UZlr/XhaMmajQlM0jEr0T9D6Px3sLZ/vkMkaC1e2zv9pP36rYMlqFt1i2rHGzcsWDBtrJvKQvWSdmmNT3u9AjugzJS7Rag+2SRBa1c2W7I4b02VRdSb5Y1FNd9ek5c82eqDTTZbAfMTsbfwr 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:(13230001)(4636009)(366004)(6506007)(31696002)(4326008)(6666004)(31686004)(2906002)(6512007)(53546011)(316002)(66946007)(8936002)(86362001)(26005)(5660300002)(44832011)(66556008)(508600001)(186003)(83380400001)(8676002)(66476007)(36756003)(2616005)(38100700002)(966005)(6486002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5627 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT029.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 22a79bce-cb7c-49ba-f3d4-08da381d4cf1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mqBIZhu4feu6TfiN6ya/e89NZjXrOnEnaVFypcNPfy5i0JB5L4thOuGddotqbW8ZEFeicp/44uKyIIt9bbjUvT0X2S9uqBbB4jzUnpbFXFuilFYY17gmhTjypWA/w+Y6vjWXW+ZBx4IWdBLtqBPOg/k93LxXjLebaW1UBK6P/C0tizKtfQcryqvxh/PCt5IGnPuegIfWAb5IvUObEwNUBR5LTumNP1Qjtpl3ojNU2WACibh5F5yn05onnCkboOmjlsFL9YcKNHqjiQ9ETqbin3pZcdNX+Chy5BcESo5goEodrZip4yYSL6ChaoenyKM0QsCUaKPXP9X/xiICYbbC/kDWRDR1qbRSei2zg5PstpeekqsPbMY5l0qOIO7nhOzQAhcZB88meh+b6bbwOxKxq5iLxEID5EmLT22zUq5/uSUxhl8I9tOPqciiP4XE2UkFO2ppUK9fuZfZZR5E1q+pBPiqU3IUXREFQaIJ/SVoKy3IJkMmr6x1R/O56FFX5Bufoo5G4lIxWpBQBBYFtU77sXAXWTtAUxTu/NGKwEOk568vCxf5T2UAOzC3Rw8+EGtsyXCe4MdYuZjdRbbfq24sGJ/tuB8PNN6c5tBs5xphh7eaBurKKJ5ywn+D1OAlbxYuyX3ocmZGQoInOSiR/+lOp251S2OUufE7NvogbgEgro54j1Nti0DFi261kg3wj7HMO/mLRiSsw0u1yEnjMphea39lTvKHjajgXa/ToWyrOM1hqUzVanz3sHj3dlAImCD/bQ+zd4L6nldiH/VD/B1ERQHnd9a6NtIOFsTXJsp7KMU= 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:(13230001)(4636009)(40470700004)(36840700001)(46966006)(83380400001)(6666004)(2906002)(36860700001)(6512007)(186003)(26005)(2616005)(53546011)(40460700003)(44832011)(6506007)(47076005)(336012)(31686004)(31696002)(316002)(8676002)(86362001)(70206006)(70586007)(36756003)(4326008)(356005)(82310400005)(5660300002)(508600001)(8936002)(81166007)(966005)(6486002)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2022 15:53:01.0805 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b1e967ff-2dfd-4f49-a0cf-08da381d5241 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: AM5EUR03FT029.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7361 X-Spam-Status: No, score=-14.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, 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 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 May 2022 15:53:07 -0000 On 5/16/22 15:00, Yvan Roux via Gdb-patches wrote: > For Arm Cortex-M33 with security extensions, there are 4 different > stacks pointers (msp_s, msp_ns, psp_s, psp_ns). To be compatible stacks -> stack > with earlier Cortex-M derivates, the msp and psp register are register -> registers > aliases for one of the 4 real stack pointer registers. > > These are the combinations that exist: > sp -> msp -> msp_s > sp -> msp -> msp_ns > sp -> psp -> psp_s > sp -> psp -> psp_ns > > This means that when the GDB client is to show the value of "msp", > the value should always be equal to either "msp_s" or "msp_ns". > Same goes for "psp". > As a general comment, we should include, in the commit message, the bug ticket link related to this problem: Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29121 > Signed-off-by: Torbj�rn SVENSSON > Signed-off-by: Yvan Roux > --- > gdb/arm-tdep.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c > index 4aa277f5bc8..b9c35bcdae6 100644 > --- a/gdb/arm-tdep.c > +++ b/gdb/arm-tdep.c > @@ -288,6 +288,8 @@ struct arm_prologue_cache > > /* Active stack pointer. */ > int active_sp_regnum; > + int active_msp_regnum; > + int active_psp_regnum; Is it possible to have 3 active SP registers at the same time? Are msp and psp really needed here or are we just not doing a good job of figuring out what SP maps to? (msp_s, msp_ns, psp_s, psp_ns) > > /* The frame base for this frame is just prev_sp - frame size. > FRAMESIZE is the distance from the frame pointer to the > @@ -345,11 +347,23 @@ arm_cache_init (struct arm_prologue_cache *cache, struct frame_info *frame) > > if (tdep->have_sec_ext) > { > + CORE_ADDR msp_val = get_frame_register_unsigned (frame, tdep->m_profile_msp_regnum); > + CORE_ADDR psp_val = get_frame_register_unsigned (frame, tdep->m_profile_psp_regnum); > + > arm_cache_init_sp (tdep->m_profile_msp_s_regnum, &cache->msp_s, cache, frame); > arm_cache_init_sp (tdep->m_profile_psp_s_regnum, &cache->psp_s, cache, frame); > arm_cache_init_sp (tdep->m_profile_msp_ns_regnum, &cache->msp_ns, cache, frame); > arm_cache_init_sp (tdep->m_profile_psp_ns_regnum, &cache->psp_ns, cache, frame); > > + if (msp_val == cache->msp_s) > + cache->active_msp_regnum = tdep->m_profile_msp_s_regnum; > + else if (msp_val == cache->msp_ns) > + cache->active_msp_regnum = tdep->m_profile_msp_ns_regnum; > + if (psp_val == cache->psp_s) > + cache->active_psp_regnum = tdep->m_profile_psp_s_regnum; > + else if (psp_val == cache->psp_ns) > + cache->active_psp_regnum = tdep->m_profile_psp_ns_regnum; > + > /* Use MSP_S as default stack pointer. */ > if (cache->active_sp_regnum == ARM_SP_REGNUM) > cache->active_sp_regnum = tdep->m_profile_msp_s_regnum; > @@ -384,6 +398,10 @@ arm_cache_get_sp_register (struct arm_prologue_cache *cache, > return cache->psp_s; > if (regnum == tdep->m_profile_psp_ns_regnum) > return cache->psp_ns; > + if (regnum == tdep->m_profile_msp_regnum) > + return arm_cache_get_sp_register (cache, tdep, cache->active_msp_regnum); > + if (regnum == tdep->m_profile_psp_regnum) > + return arm_cache_get_sp_register (cache, tdep, cache->active_psp_regnum); > } > else if (tdep->is_m) > {