From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50073.outbound.protection.outlook.com [40.107.5.73]) by sourceware.org (Postfix) with ESMTPS id C57F03857B8B for ; Wed, 15 Jun 2022 08:57:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C57F03857B8B ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=dWBMs7TsfO3urpd2jij0auKJn5+sMh/epeZLFxZxrLh6XnPkROT2/ZXh+rCeyKrCKdHoVc2ISFwDEP9e9ledrM3wbEuyxrL2sTlB7S3Ul5WnP6kkPNqvxZoE830H2CibmHKMhLRNzPNAqLolCV3HFPrIXfURxRwP2ae/qHWTWGQnSGubIiXRPUsWa7vnKSBnfSp9Vx1f5EmQhqV1vi5ppAGXBN2i/egd4/yhJNstKSw515ybGHMdLvkjpM6q2Yq/VfY1ucW7z8zoHY2Wge2eFjnLYkrtZEjd2hm93x//ellY5tlmXdUsVvd25Nic/ZQ5PZmEJMYgxYc+fznFgyhhTw== 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=xHvJljLQN6X5jBdjOGlxxK4/XeUd/3RxbUGe7iF3MqI=; b=HpWLcFoKjvueKRmaoEXKwWYaSMUb6YstQ6Ty5f9ujAMC/jIHZKTflGcD6NcR9CrVdkWNFfEUPL3h1FGNKoZRq/nod1UWPRH27tEDnQF5Fd/3iV+hy5ZRyEbGDvJO2VqtqX27E07p+WcOYqNhBA2ax0tMT2ZXxCB6WnS5L4IYOFSBdkJoSxPbyQ7rrhyVb06TP2ELdsuHhi9xnwJI8fwl1XgnkYc5RrhelcT4eR33UIlZKW149c1ElihpruJPznB2PTm+EZ9z0WB5BIhfoKelVvZbs/hYGxI6bQBXUNXk02blWOKtAcKAm+M+2Acs+anW9EdguuTUxa5ArPyWAy7naA== 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 AS9PR06CA0023.eurprd06.prod.outlook.com (2603:10a6:20b:462::28) by AM9PR08MB5922.eurprd08.prod.outlook.com (2603:10a6:20b:2dd::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14; Wed, 15 Jun 2022 08:57:32 +0000 Received: from AM5EUR03FT057.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:462:cafe::9) by AS9PR06CA0023.outlook.office365.com (2603:10a6:20b:462::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14 via Frontend Transport; Wed, 15 Jun 2022 08:57:32 +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 AM5EUR03FT057.mail.protection.outlook.com (10.152.17.44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14 via Frontend Transport; Wed, 15 Jun 2022 08:57:32 +0000 Received: ("Tessian outbound 5b5a41c043d3:v120"); Wed, 15 Jun 2022 08:57:32 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: a86b8ad8f2950dc2 X-CR-MTA-TID: 64aa7808 Received: from 4a2de57dfa76.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 5F3AB23F-1FE4-4599-92EB-372D19F5C729.1; Wed, 15 Jun 2022 08:57:25 +0000 Received: from EUR02-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4a2de57dfa76.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 15 Jun 2022 08:57:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WOeGSghlqSAW/+PzsU/pBHPD8YoNXarZmBURqwws/vCOxGwxQkOBqXbxiv+ihOLICp4gzLJUmdf1X3GZamWze+1+uQjoFpcNHWakj5Spjc2FxRtMXfWjAv96KrVeKkS7zfPU9WdVJY8T+6T4kvjklIdr8kdZAcD86h/9zFuJz3wlbccmFOuftZT3uSe2WUVmwU+gRtw0YL5nxarnedPKEMBIRuijWafY769GVm9y2nA/WODrPS+QiD8ShIdbFHsfXn30ykdpiVLEVCxNv2qBsDlm+lCO2vU3RWXssWsKg+YfmvhswulwtUJYCDborqxng13nm/HPmUxlYMLmcUE4GA== 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=xHvJljLQN6X5jBdjOGlxxK4/XeUd/3RxbUGe7iF3MqI=; b=KWPu6hVJUl4bem+EuCspKGXW5N+cYXhxC+l98mYu/Z7pflLr1Dh3cwf9BHLEk8FrUCREyQShZ/j5AJGq4gd3wi36kmzrl5n5BTgrl5Jz0qTXW99YBTGVHI57nkMdPaF4FzJEkTG5tNgMrRoM0jsHj9ooaUJY1X5+/D6zCPRs/Fz5jriFcXJ8ZHjWHRwlYO3zZ75rnXGC9dC4SLLNNSFasxkAyQz7H15LuuESrhFgrLK5mziHufe+DFFrPKl9mch9MIK7bB1wvWVJaED+SeAsYzk7sjkjYW4MIsw8nPRqyg7ybYoxa67pQ5qpFOOIG4kWBnZNkRS4/61QICPuz9x9vw== 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 AM0PR08MB3748.eurprd08.prod.outlook.com (2603:10a6:208:fb::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.15; Wed, 15 Jun 2022 08:57:23 +0000 Received: from VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::d9c0:539c:a641:5735]) by VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::d9c0:539c:a641:5735%2]) with mapi id 15.20.5332.022; Wed, 15 Jun 2022 08:57:23 +0000 Message-ID: <65771da9-0ff9-170c-f682-337ae0296884@arm.com> Date: Wed, 15 Jun 2022 09:57:22 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [PATCH 2/3] gdb/arm: Track msp and psp Content-Language: en-US To: Yvan Roux , gdb-patches@sourceware.org Cc: Torbjorn SVENSSON References: <20220614145606.GB12000@gnbcxd0114.gnb.st.com> <20220614150032.GD12000@gnbcxd0114.gnb.st.com> From: Luis Machado In-Reply-To: <20220614150032.GD12000@gnbcxd0114.gnb.st.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: LO4P123CA0375.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18e::20) To VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: bc409f99-9be9-4c66-0b41-08da4ead156f X-MS-TrafficTypeDiagnostic: AM0PR08MB3748:EE_|AM5EUR03FT057:EE_|AM9PR08MB5922: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: lOE5NsVjp/qOQcqKbaYXhqqb9fsqMt0cpVHEgY3f7f3YTAM52BUN5z/YBaEWVgC6uUdM9lFp72jrn2V7Kuyhq2tCeXBQO1EHe4O8PI1YLGePtmOY6ts375i3QlJFZlQvf3dvIM9xownIRsVPuo6ixdnFxIMPFQuC80dU6rlwGKKbUkQhTt1fCrqQ58yqBOu2DQm22lSM47spi39PeeNJ7m4wQGK+qu3uJr+bDQYP34eQ8M2cAPD9Hl1VsWJcqbenDPKr/ynmwDaARJScOrmSSPICmsJ+L+t7PDrejaE91gRCmQBU0c3/0423Il2K8PjoOIRxKqwEy6lkUcxPHlya33CiC+fFLEz9PNVrAA5tRP7FFONdF7cznc7TkuZHSlbjo4a4kUi4yUXI47+AJhMYS693gDscRXskL8JEM0QVhNZLWHYENV2Z8gfnnP1X9ujtpXP8eaLZPI5+lCUhluOOFDbq6zcfdgXOg4dlvNN+dH3CWwjBXKUaqkVty/SjyaL5lXoH2oOE9sAkZzScn8WD/cYtiEYXv1romznOBpPs19CxLewiS7R99xym8sTNXak3brNLRn6aJlEBxAP2TLYsSb/ehPvgCGyHjNpF5kXDNZw5qH0qG8BQLfsTuNxAefNpo4zJ+nF3paLxKq4gvOmI24clHXys5N3SSq+Ber2XgyTWVvfbzjFVHm/EicLEqg5W87I0soXdU2jvRDoAEMaImEmz4swDaSrIL/BMMSIYRjXmyXKASgQOvwLxxIAxMxiIgtE80OeK18I7RnwtaXWewBLySQFsUadat5J36WmbuHab2LB2O9IArDnYkmjklLdd 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:(13230016)(4636009)(366004)(38100700002)(5660300002)(44832011)(66946007)(6506007)(316002)(2906002)(6512007)(86362001)(26005)(66556008)(31696002)(66476007)(186003)(2616005)(83380400001)(8676002)(4326008)(966005)(31686004)(53546011)(508600001)(6486002)(36756003)(8936002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3748 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: AM5EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 55b66d2c-573a-4be3-f17b-08da4ead101f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: M3n+5Ip3SUD62XqU06v5ZbAk4X2bfFgoIA/FgwlCZWv9qxtfAb/t9hosnend7jaPypJwyaMg0TWrXTX5+PwQy5AlyhdK9H2HfNO+sFCjXPejHc2jqgelto92CIpwHUH0H+x+t3zzyCJDzBgbLGC8oRF08BqfQ01TApD2ohbxiXSJWxsQp1wfCx+gHAaqtQ3V+Gj9pRqMGbjlZxlEEWO7kHox7cP1LPUmGLQsk68FAiqL4LoNBxXZCYKOoZ1t48kVgOo4odwc1FWhAzmdVX8OXumSVzL9CPWw4pfrP2nj34xzx+UXOcqNvYm/Yu09hn+4ExGbDRupS72wEcaFHeefDcL95qNCK5pjqgxrvqeCrMZJ0lEMJt3uXkuv3gCV0uq6DRghEZcagK1mo0qkslJ8g/1Be1pNTr2NzPfiQhDLlBp6byNYG6AeM4wIzqhsxUv0pUv7GWHA3ikILaWxAjjFGL+wxOsDIOTvpquSI8CjhvCJ2cUwU5BJh68BcDgc1gcvfqRBvjWkm6XN1JQusRO7C5aznwbJhlN5keaHB701H5Nqbq/I0+mX26hVUe5jeXmzHbADbWhVfuhbJGZ+Ai3wP48Unwi1YBRDjYOu6m5qrwEf0+gJcRTcOQlxLxjjJs1YQ6TalhFKbOdxe77OHCGfSeQXyIHpOncOSND/pen2dohNkiA5T7NoDwGKCEWRdAGCGEaZrfm6ULhFyxzO9IQdyO3hvHU/k9sP9uFrPid9fW/kp1WT/sSDTHo4vp3MSNpHTafR+Pv0WgQsBUZetYwgG7Ml1r/D8+GIl5l83JQq8D4= 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:(13230016)(4636009)(40470700004)(36840700001)(46966006)(82310400005)(36860700001)(83380400001)(508600001)(44832011)(2906002)(966005)(31686004)(6486002)(5660300002)(36756003)(186003)(336012)(47076005)(40460700003)(81166007)(8676002)(4326008)(31696002)(86362001)(316002)(8936002)(70206006)(70586007)(2616005)(53546011)(6506007)(356005)(26005)(6512007)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2022 08:57:32.1629 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bc409f99-9be9-4c66-0b41-08da4ead156f 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: AM5EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB5922 X-Spam-Status: No, score=-13.2 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, 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: Wed, 15 Jun 2022 08:57:41 -0000 On 6/14/22 16:00, Yvan Roux wrote: > For Arm Cortex-M33 with security extensions, there are 4 different > stack pointers (msp_s, msp_ns, psp_s, psp_ns). To be compatible > with earlier Cortex-M derivates, the msp and psp registers are > 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". > > 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 1df57f5b5c8..e497dd1b3b8 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; > > /* 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) > { Just so I understand this correctly, the problem is that we're not keeping the aliases in sync all the time, so sp/msp/psp and the 4 other registers are going out-of-sync. Also, although SP will be either msp or psp, we can have distinct and valid msp/psp values, right?