From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2071.outbound.protection.outlook.com [40.107.22.71]) by sourceware.org (Postfix) with ESMTPS id 2A6403858C56 for ; Tue, 21 Jun 2022 14:20:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2A6403858C56 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=NeUWN9Yt6/0mF5q9VAUnlXn9FlfGNx71SYiu7i3r7H66GVJfy3yyCXeyXh0wqJAUFHlGNeAcZ2NDkcHud0avn/+jzeGkdGMEGQ8UhcWT9mU6cWNbxIkJNGivWgs1O1TMa6bjUVjn6su7joNoYoitxQZjYQWChqJMtsi7nHA5bs0SnEVFjfaENfVYOk0dOFfqwR06d312EKrn2pbBhrM9MR2Xwixj82u3V7WhOFv3WXscSMfluY4SWlJIGXyYEOVC5LY9/wzdIJLhE8VZIeEi7MPIDO9UKVi+gGscgeHZbb7WpL4zRKGLyDodz2QKHtP6yJdBcyrLlPPuNKq/FvFYlQ== 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=08uxx9mwUTxPsdiS5xNgyP+yg4GIvGN4uYnD+/NBlvc=; b=GIEZmcEcOXp3ss2uDgho6/H28V2aLCvrLuGGfFn07xvjFTv3B/5WY9AUxFJzTnzxX8qpnKtUjHhLaxBIeRCqnUgDFkol8ljAQ31aefw8d/LB8jxbzQigi7ZEdwePFlynZhRjZMa/iL1tXRd9kgxYUJcoI+Zy1lgn2jhxzjt/TXfTfBWYgBgTAt4EwM+KmYercQNYz2x6Q384odir14hz+0w1FMBbFdfTCze0XjkTtZ3PPrS0iCJsd7tYc157fIXi0mq89O6bVt5bpHCvZmdKNUiQ+CtE34Dn6nP1voOOIbmhBoA49Jj/dPODPY0E3nM3QGL7+cUpK+lP3VN0B+RynQ== 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 AM5PR0101CA0016.eurprd01.prod.exchangelabs.com (2603:10a6:206:16::29) by AM9PR08MB7086.eurprd08.prod.outlook.com (2603:10a6:20b:418::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14; Tue, 21 Jun 2022 14:20:04 +0000 Received: from AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:16:cafe::76) by AM5PR0101CA0016.outlook.office365.com (2603:10a6:206:16::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14 via Frontend Transport; Tue, 21 Jun 2022 14:20:04 +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 AM5EUR03FT032.mail.protection.outlook.com (10.152.16.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14 via Frontend Transport; Tue, 21 Jun 2022 14:20:04 +0000 Received: ("Tessian outbound ff2e13d26e0f:v120"); Tue, 21 Jun 2022 14:20:03 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 60fba977a3650897 X-CR-MTA-TID: 64aa7808 Received: from 9293f9ad3b2e.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 30459696-70A4-4FF7-B382-3ADA9693A744.1; Tue, 21 Jun 2022 14:19:56 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9293f9ad3b2e.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 21 Jun 2022 14:19:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FYQbkaE/n3pMuljoFpyM5xHKWep8th2tagLpWvp8MlYlSHB886glA4IYcWcIn11KLsCbvzV+SCCP67TdwcNYEN6rwHSjjAh+a7k2aTyztgWl/mi6nquIkVad/ZsIwbOoOHGJgf5ZqSMblHuLk6qxWSG/aclloWhqxsW0tm8ZMOduGAP6EX2pmQCJKqI/5g8/omi9q1q9GzMAamPS28/SfM/uB5hC2aPe/3aRt6rAFIma7ia4SxTlzgVIUCHaZH/bGo3KnTo/OTqQ+1U9IHIll4udPDjWAvCBXwChtXNMXJVWzB5Bpuj62zz/rzRvCI69xHTt5buu5AkPBcMqYMtP9w== 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=08uxx9mwUTxPsdiS5xNgyP+yg4GIvGN4uYnD+/NBlvc=; b=HXTpEBXYIUHL6HBs5L3TKWMOSdeteTpFzjX2Loiqu/7KuqXNRBin9zN7/TrIGW0TPrpkxzaT15j8ZW+bysW1kwjQ4F/LSWuaHIJpR+XDy+h41apZktPLd7siFclPeOrlrgonNS/O6O/UKpK1ZbyXT/bTravX+Qdyzy4yv8cjNjWkYCZiDVGiHa8pqxbvWagIIyqp0HilvCHCUG4ZZrMKgkfSmLlxBESiNxOBgWS+JNkn9sYebc+BbricX9RnlsQ3Ar7zd1vJpgV0fvVbipaApCzsbTkKKvBkrEbCFdmUYRmTcFbswxX4BRGFFEc2fgVt+aAzvKVux824JN7OEnAdrw== 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 AS1PR08MB7538.eurprd08.prod.outlook.com (2603:10a6:20b:482::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.22; Tue, 21 Jun 2022 14:19:55 +0000 Received: from VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::1cda:8ca1:6353:572c]) by VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::1cda:8ca1:6353:572c%4]) with mapi id 15.20.5353.022; Tue, 21 Jun 2022 14:19:54 +0000 Message-ID: Date: Tue, 21 Jun 2022 15:19:52 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [PATCH] gdb/arm: Only stack S16..S31 when FPU registers are secure Content-Language: en-US To: Yvan Roux , gdb-patches@sourceware.org Cc: Torbjorn SVENSSON References: <20220614144751.GA12000@gnbcxd0114.gnb.st.com> From: Luis Machado In-Reply-To: <20220614144751.GA12000@gnbcxd0114.gnb.st.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: LO4P123CA0269.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:194::22) To VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: a4c4d081-4ffe-4bd3-cc62-08da5391229e X-MS-TrafficTypeDiagnostic: AS1PR08MB7538:EE_|AM5EUR03FT032:EE_|AM9PR08MB7086: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: hpsNrRarvliHUxPU3MzaBzGx9gx1ZhdrALSrC4E+ONlQadGYwejBxJh76nYkJBIuOCOQOlT3qOmR8FpgwpUk16i76nxztt3+37+uc5Efu/Aw71zSITV4hho0TEfSen3a/1MUs3ee3x204XXFmOSPxb+elL4T7Zl9UPfMhAvL6cD0+037xgcO/bFmo7SbBCZwz+8sT0KWWhPzQqeuF+1kUHVITJunD70oBJnvY1tBWc0TRwmuP+XT8b7ETzbe+kyAKJzTOCf5vDJBv0y79MYv6bZyjVi1f5DklL1b8KfyoEblTr5DbQKYua927C0wKnyoqXf7HD/d9TpRO4L463e6SUy78abKyu6wjlTbKuCob1NJQCeFEMLlzZ19BdHk/In8pzWZ8AKUos17ylZZXF3y1rtXQxgSdo/cSh4x/ItS9HljbcuYefNf8NLTaWfdVxrBWJP/ZdFlS7QeEGkv+hibnJkfMUS4Ptt8tph304CNcSJjtcOQsP1ESMYqT6PopGzWCKdOOkow0wMcFFRBQpYiIQXdaECbu/DQQBoV9ZAOO3gvJkLmfdvkud1m5iNmoGbn8jT8HXF3m9UCb6EIsVo+41uhaCzy/YYQm0INcSVf1sV/Yl8mmLVKiiFCrPDvgbdplCvI0ID4kfWsTpczORX6cxcrumwdZnBizbi8pD7kiOYxtzmt65oCT5N61yTX3WDb0L0PD+w2xPvWe8+59lGyjQ0LLkFn3iff9BbgyJdsjonFB4KlpCKRw4z5QiChOZ7/2v2I7mrnyEv2GITSX0DXMQ== 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)(396003)(376002)(39860400002)(366004)(346002)(136003)(66476007)(4326008)(8676002)(66556008)(66946007)(26005)(6512007)(2906002)(186003)(6506007)(31696002)(86362001)(478600001)(8936002)(5660300002)(6486002)(53546011)(2616005)(41300700001)(44832011)(31686004)(316002)(83380400001)(36756003)(38100700002)(101420200003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR08MB7538 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: AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 62e0ee83-85dc-4f28-55df-08da53911c6e X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wnWtWmCMPKYXYD61YeD3X8j3+udu4JwaQGatjGo5TpADLOLthqjd7TUYI0UkfsE02zU/2/Grr/XEfXFqlgLaK6kg9F3zyrFFLHokzcgwnmY+dsWOHh3oza/AmyKPvYszuvfWlTyQ4gxkREoAPma7Dke94BQV4PZqtzt8Q/fCimWOkiufZ28mcqd4ypPeIniEuaPo0kqY/riLweFm3rtS+HEBqeVKh4rMCjRYKUa9fXQYflYn3apW7GUyQseft+LZ3YHplx13l3W2sJ4OqGGF3Z4Q8DzxVQG4VE4vgMDvnmZNPe4wEiEnV2xkNxKxuGGtoYBmpQMzxnXXKmZFO1/WaPGRLCXkgZXp8nl3F50DUqvV75OIojeLnzjFs8HwTcDEXjtHobrNQ55BQjyzoW5spczspssYz4uoC3q0lujsTMMieCBbhz3vuVft8a9zy4tIvEIr6QGm79qYm+ZyrfkdHuuY60u0qAcqf0TcqaYCTa3lRaKrPKHWAkAKyVDHf3MsR6+g62tXxEW7bojD2CPDqbRzESpEgAAhQj5AnuLnPCUUIk9uX98PYrpukUge5ibfwORoC+7yzrb8Izb4Fo0qLUHACab+RnBGtRjuCVTnC0A6kKran90K9yQDGX++nz46FQFw2BVl9cBzXolFgfuDb85fgTDJegtI1g0h+M8PhnHNxynnd7jSYXT2NHJ9PzOkZ3LY9tMhqnBoo4Cr6r8W/WvKZpVy62BOkivueZa8bp/JNaywqlPeCXb9pY5ZdNHWr6coxq/4B2GENxlDJYbF4w== 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)(396003)(39860400002)(136003)(346002)(376002)(36840700001)(40470700004)(46966006)(356005)(31696002)(2616005)(6512007)(41300700001)(26005)(186003)(40460700003)(47076005)(81166007)(86362001)(83380400001)(36860700001)(53546011)(336012)(82310400005)(478600001)(82740400003)(8676002)(4326008)(70206006)(6506007)(5660300002)(6486002)(70586007)(40480700001)(36756003)(31686004)(44832011)(316002)(8936002)(2906002)(101420200003)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2022 14:20:04.1760 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a4c4d081-4ffe-4bd3-cc62-08da5391229e 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: AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB7086 X-Spam-Status: No, score=-12.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, 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, 21 Jun 2022 14:20:09 -0000 Hi, Sorry I missed this one. On 6/14/22 15:47, Yvan Roux wrote: > Hi, > > The FPCCR.TS bit is used to identify if FPU registers are considered > non-secure or secure. If they are secure, then callee saved registers Two spaces after `.`. > (S16 to S31) are stacked on exception entry or otherwise skipped. > > Signed-off-by: Torbj�rn SVENSSON > Signed-off-by: Yvan Roux > --- > gdb/arch/arm.h | 6 ++++++ > gdb/arm-tdep.c | 9 ++++++++- > 2 files changed, 14 insertions(+), 1 deletion(-) > > diff --git a/gdb/arch/arm.h b/gdb/arch/arm.h > index 4ad329f6f1f..de1b472fe71 100644 > --- a/gdb/arch/arm.h > +++ b/gdb/arch/arm.h > @@ -136,6 +136,12 @@ enum arm_m_profile_type { > > #define XPSR_T 0x01000000 > > +/* System control registers addresses. */ > + Maybe we should make it a bit more verbose. How about... /* System control registers accessible through an address. */ > +/* M-profile Floating-Point Context Control Register address, defined in ARMv7-M > + (Section B3.2.2) and ARMv8-M (Section D1.2.99) reference manuals. */ > +#define FPCCR 0xE000EF34 > + Since these are effectively addresses, I wonder if we should create an enum category for them, with a type that is really the type used to store an address, as opposed to storing a register number. enum class system_register_address: CORE_ADDR { FPCCR = 0xe000ef34, }; What do you think? > /* Size of registers. */ > > #define ARM_INT_REGISTER_SIZE 4 > diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c > index 456649afdaa..abc812817aa 100644 > --- a/gdb/arm-tdep.c > +++ b/gdb/arm-tdep.c > @@ -3519,6 +3519,13 @@ arm_m_exception_cache (struct frame_info *this_frame) > { > int i; > int fpu_regs_stack_offset; > + ULONGEST fpccr; > + bool fpccr_ts; Define the above during assignment. > + > + /* Read FPCCR register */ > + gdb_assert (safe_read_memory_unsigned_integer (FPCCR, 4, byte_order, > + &fpccr)); 4 -> ARM_INT_REGISTER_SIZE? > + fpccr_ts = fpccr & (1 << 26); Just a suggestion. How about having a function that extracts the bit, since we're really interested if the bit is set or not, and not in the position of the bit. > > /* This code does not take into account the lazy stacking, see "Lazy > context save of FP state", in B1.5.7, also ARM AN298, supported > @@ -3538,7 +3545,7 @@ arm_m_exception_cache (struct frame_info *this_frame) > cache->saved_regs[ARM_FPSCR_REGNUM].set_addr (unwound_sp + sp_r0_offset + 0x60); > fpu_regs_stack_offset += 4; > > - if (tdep->have_sec_ext && !default_callee_register_stacking) > + if (tdep->have_sec_ext && !default_callee_register_stacking && fpccr_ts) > { > /* Handle floating-point callee saved registers. */ > fpu_regs_stack_offset = unwound_sp + sp_r0_offset + 0x68;