From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2069.outbound.protection.outlook.com [40.107.20.69]) by sourceware.org (Postfix) with ESMTPS id 7BDB83885527 for ; Wed, 3 Aug 2022 15:35:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7BDB83885527 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=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=K+HzTY3vuPeiSFedpVmjB8gm1Yed/VjkhD+V5S3r2R8nv7jAXyWxmKvIcO0kFOV3cD99eRUt68B1HpmBL8dcKOJkcjkbJVqVnNXK/wBJApoQty0uuzK3eZjsQsvR2NIEyDB9zp4/DACO53CGCF9kPjVQ0t0MxB2C3I4d5gWTmHCXyE3e2Shz9pe/E7pdPc2udSoYVqDckMR7nujRS3e2d/Ec+ZTPVuIDfyWQmVxHeiEpd0Yq2qVNMOxFast/2hxI9xnUL3rd9GuQPnREmcupOj3Oa+6+gGr3aekm3DlY3MGiEjGZiilFoUS+PZ9LqS/+dWB8Nc92xVDgYBwZ8+INaQ== 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=LrqIT2ZgFE3xXuo2BPo/J8IcgteOjNiHZm/uK0r0fdk=; b=RftAyU17TYCKJ65dsWiRX2xZI6okj5Qjspl4OqfQvwRZ3pI6kNC0ypqVoXUk8wz3lP3UKGybjWNzvOD8JXA3a/26t/RLMvC4KS5XqYLQ1ndGSMd2gI2ChcNrwVWdDhUsgZqSvx6FAnON4xm51LmIruXRFGgNFrUHJrbGNvT3d1AgbcqXG+9ADZ9m+VJ2lQPWdm7gqdf0G85JmVQ0HegDhd3B/pjkHlY9MJnPnR38hrv7adi7mvhXKR+GdTyTPaElm+VugBLdYcAbrVAAiJjLtM2iwbQUCDfshn0fJFmoH7Hv4OEKTGSRwyxC3SGrmvkYDuIxiqwOZqP9oui6xt1bRg== 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] 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=LrqIT2ZgFE3xXuo2BPo/J8IcgteOjNiHZm/uK0r0fdk=; b=N6JscfXO6FEq+Yre4AUlTxyqbZ87HsFkRi62crCdNkgqI/BUvLYHBji1t3XwbCbjgDXN8CCsd4Ru7JB6Qu5uQBVUnS9VKWc6GGklcZ1jD5uZWzyMBkpUVbNXhCO4twK9pVFS9hr+OfeIAQzIlOxVoEDzJWzWaDm730/LISugik8= Received: from DB6PR07CA0197.eurprd07.prod.outlook.com (2603:10a6:6:42::27) by DB8PR08MB5065.eurprd08.prod.outlook.com (2603:10a6:10:e8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.15; Wed, 3 Aug 2022 15:35:47 +0000 Received: from DBAEUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:42:cafe::ed) by DB6PR07CA0197.outlook.office365.com (2603:10a6:6:42::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.6 via Frontend Transport; Wed, 3 Aug 2022 15:35:47 +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 DBAEUR03FT039.mail.protection.outlook.com (100.127.142.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.12 via Frontend Transport; Wed, 3 Aug 2022 15:35:45 +0000 Received: ("Tessian outbound 63c09d5d38ac:v123"); Wed, 03 Aug 2022 15:35:45 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7229ffb88000cdfb X-CR-MTA-TID: 64aa7808 Received: from d284e72ef59e.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EF3880DD-62C4-42EE-A770-AFED44E75042.1; Wed, 03 Aug 2022 15:35:39 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d284e72ef59e.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 03 Aug 2022 15:35:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q7BPyWaR5T8NbngKLfx7sKqNdHWuCODCGVKd+KC6w8TbbOLIAUigX0X7/AWsd1/McE1sgpLKDcwLIV+FOb8xSsdREgpH8uk/FEUUvLb3yAQuEAG4KcIsmYaKJx4jHnW/EBs8pHCkRgAtL5xIx4ePuXn57s1reTtTLYdENc8YRVzyrJPCJswpK4KuJR83UjEBoGq3H66s1GrFrcCDL6ix+W0hd5Eg7GzvLeY0+yPvLguRWjOkzZoAhS2vS8t6JZfqg8gwb6QsHrDwtQN/MLf10zpE+VR0VlKtGPPqdiJX/u3ahG0fbhbjAzwhIajTNXqA/Z7w8Q8E0omn2t/eIK2MRg== 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=LrqIT2ZgFE3xXuo2BPo/J8IcgteOjNiHZm/uK0r0fdk=; b=Mv/toqlaUcQYiT9x7w8ovbhAdiGLl3wGiTGlqtDcSsDUX+X8dHM7uk2jtG+NxQF/4vDKnZNgwDvjpl19UmD3fe1tc/UBtaiSZo0SEjPTpeycup9Z+08FuZ2YhqFveBVlWO7qA4VISv2GHKbaduNqdGrTPQrbV/4ZOlMYvKN7jV3c86+dZ8zO2trV2SOk+SSxNAXEdChmoXYjCOPgtMVk/KqPhYK2yv/G3qVElYts5tCK5vSrX7KeR3I0GFTW7FCfqRIMuzB4XkkGDGlEla+wTEZ8r/ZwNsWN/EGGk4DLV6rL5DiYh38Xq44Ea3C3SXhXeLZm9jTCuKHHIw+rHkLyag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); 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=LrqIT2ZgFE3xXuo2BPo/J8IcgteOjNiHZm/uK0r0fdk=; b=N6JscfXO6FEq+Yre4AUlTxyqbZ87HsFkRi62crCdNkgqI/BUvLYHBji1t3XwbCbjgDXN8CCsd4Ru7JB6Qu5uQBVUnS9VKWc6GGklcZ1jD5uZWzyMBkpUVbNXhCO4twK9pVFS9hr+OfeIAQzIlOxVoEDzJWzWaDm730/LISugik8= Received: from AS9PR0301CA0045.eurprd03.prod.outlook.com (2603:10a6:20b:469::13) by DU0PR08MB7858.eurprd08.prod.outlook.com (2603:10a6:10:3b2::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.11; Wed, 3 Aug 2022 15:35:38 +0000 Received: from AM5EUR03FT020.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:469:cafe::f4) by AS9PR0301CA0045.outlook.office365.com (2603:10a6:20b:469::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14 via Frontend Transport; Wed, 3 Aug 2022 15:35:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by AM5EUR03FT020.mail.protection.outlook.com (10.152.16.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5482.12 via Frontend Transport; Wed, 3 Aug 2022 15:35:37 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.9; Wed, 3 Aug 2022 15:35:33 +0000 Received: from e125768.cambridge.arm.com (10.2.78.50) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.9 via Frontend Transport; Wed, 3 Aug 2022 15:35:33 +0000 From: Victor Do Nascimento To: CC: , Victor Do Nascimento Subject: [PATCH v2 6/8] newlib: libc: setjmp/longjmp M-profile PACBTI-enablement Date: Wed, 3 Aug 2022 16:35:22 +0100 Message-ID: <20220803153524.20631-7-victor.donascimento@arm.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220803153524.20631-1-victor.donascimento@arm.com> References: <20220803153524.20631-1-victor.donascimento@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: 850ae0b9-427b-4c88-09d2-08da7565d55b X-MS-TrafficTypeDiagnostic: DU0PR08MB7858:EE_|DBAEUR03FT039:EE_|DB8PR08MB5065: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: mLkG+oh3dc7YzcHjE4gYwFwBZbH9VbX6t4UquwiUD7Q6lG6hLzieQlIQLsRmJaIk8NXvaYlwoMnuGR2YysS7G9Y1MJ76lv2xRJJQGSDPbhLEauJi/S1yiiD/sflUrHQt8v0IMkHO7zZcgRTLDcSGr6xgLkAxEV7Ks8TIlvLb52gtY4yZcvyYBnbA/NC2hVLE68hNqbGHdAYXDVjtq75Pu6rfdcCOCC2uieAb7prSxbULCOtDgTtjsJwccEyykM2N6G0jWIWbmAyUM67wOjcDKwgFkRCUqnJAqwdec76IULAMj+YUIlytNoIBUO4SYRpjCChy3KCZe/ESufRzXayMrLlkqFtPSpUV72rKDydhTa13son/0yHFucLJHJwvfZvpkJzYOlu0cUL9oQ7niMVZE84NhkpBR6tDYUSTXjUiaj39kRLcP8eSFFeZKFPhaEgyjfWgKMGzl7rbCiQGhGfMabaEaNxWxJnMxkVP+OAnEWvTQSQvniOqLxlXH29gdrRZQlHw78XAfHhV4UTTuYXqz71Lf1SaZaRS1T7jMLn0MRSPjhQ1VLMc/R15bwFovFnSobnLEqqf/BFc/e78lQZb7xqEREb2pQpmZuG5UUdbTaCxPRUo99z2SPJoQpNA4U4GNK/H+nVWbKEzRt0TI60MEkirA4U40d7KTTdzXESqSTOSmlFMe3hjfUgSAeq9zwq65XOm5xsR2OzqyxaOelujgaXrJgyHPJpMvYgEP3+eSGHKXk881g6Mq8BsUch+FvTD3Nv2Q//7Q3SsimAr0Mel3hNv2S8o2kshIyApj+WaDGp7Wur540bkWcbcHeu13lHg8tVafsQ4teqcquJK2SIspA== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230016)(4636009)(136003)(396003)(376002)(346002)(39860400002)(36840700001)(40470700004)(46966006)(426003)(83380400001)(5660300002)(2616005)(186003)(1076003)(36860700001)(8936002)(36756003)(2906002)(70206006)(4326008)(8676002)(70586007)(316002)(478600001)(40480700001)(7696005)(26005)(82310400005)(6916009)(54906003)(6666004)(41300700001)(86362001)(40460700003)(336012)(82740400003)(47076005)(81166007)(356005)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7858 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b58ffb78-d17f-4d88-8ef9-08da7565d099 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8F8BZIlMwM0pF+ehqwodN1SUVo6Apc6aHfZJBZjscrE5k84ifQSaTYL1pI6mkZ32y4/OI4aRkhHSmTuQovfZaav324l3VIdkRmqGgBS2iDmEW6Sn3yorVao8f6K2F5KIrbhBzIt+Kp1eRsFEI2Jc/DWP2KFE/oLvRxbj8onOPfwn5Ly98bcuokT58PdS6XMWCuc7gprjUsL/+gKMBE2gYyXfnYjYZw62IKbUGaSJpYCDvkIsA4oGur81cHg2xGMZatNZui3udakXuQH67MoUXYX0MdM9DYHDaORu5G+czMbteb4w+G9RWHTgLhmh+5LHABCcj5S0se3f542MFrTw7LUD/BdSQhoOOHi5Ahbj5wNkE6f0wCBw0CDpufsaUu3gX/BySvteonvNWq/Pa3+JFmrfevD1f4SaQb/9ueENj/kXHD2At/pfHkzmoHEuk9E8w3YwuhBuVj2jcs9Cdyb4MpBqPK+5c212iHzpSnjGxahmP5pa9OXLChsx+5Yq1KgZymwE15YNQAyaHKQaxBkS/0mGZ0CDiE3wGfA1hwtKEQIsmjms/15C4MN2nX0xmsRkYbuCcZq+B7TbJmi3p9LJd5FAAyPIKR09uoPr0Qx7OsxSt5IwGNO6UpEyi42E4kqEzasvT4PfpGpJbSS13hDnhWcs3bmDnp+vkrOmIIdq8uIx7x8Cjo3Uib/OqfBOMwsBovWEcTo04o0FoQ7dvkXku8d7MNhbcTP2xY9u5ZY6VTAT4G0Asar5mvunjCFVaO7hHoCzO7kxTZlx2xogAai3VYrF14sRORFQWPhMc4yZtkUjZIAXJtTr4dzpKbES8JB6 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)(376002)(136003)(396003)(39860400002)(346002)(46966006)(36840700001)(40470700004)(41300700001)(36756003)(40460700003)(5660300002)(2906002)(54906003)(82310400005)(83380400001)(6666004)(478600001)(2616005)(7696005)(82740400003)(1076003)(8936002)(36860700001)(6916009)(4326008)(186003)(316002)(8676002)(40480700001)(70206006)(336012)(426003)(26005)(47076005)(70586007)(86362001)(81166007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2022 15:35:45.8006 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 850ae0b9-427b-4c88-09d2-08da7565d55b 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: DBAEUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5065 X-Spam-Status: No, score=-13.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, RCVD_IN_DNSWL_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 X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Aug 2022 15:35:53 -0000 Add function prologue/epilogue to conditionally add BTI landing pads and/or PAC code generation & authentication instructions depending on compilation flags. --- newlib/libc/machine/arm/setjmp.S | 33 ++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/newlib/libc/machine/arm/setjmp.S b/newlib/libc/machine/arm/setjmp.S index 21d6ff9e7..d60dd57df 100644 --- a/newlib/libc/machine/arm/setjmp.S +++ b/newlib/libc/machine/arm/setjmp.S @@ -157,11 +157,15 @@ SYM (.arm_start_of.\name): .globl SYM (\name) TYPE (\name) SYM (\name): + .fnstart + .cfi_startproc PROLOGUE \name .endm .macro FUNC_END name RET + .cfi_endproc + .fnend SIZE (\name) .endm @@ -173,11 +177,26 @@ SYM (\name): /* Save all the callee-preserved registers into the jump buffer. */ #ifdef __thumb2__ +#if __ARM_FEATURE_PAC_DEFAULT +#if __ARM_FEATURE_BTI_DEFAULT + pacbti ip, lr, sp +#else + pac ip, lr, sp +#endif /* __ARM_FEATURE_BTI_DEFAULT */ + .cfi_register 143, 12 + mov a4, ip + mov ip, sp + stmea a1!, { a4, v1-v7, fp, ip, lr } +#else +#if __ARM_FEATURE_BTI_DEFAULT + bti +#endif /* __ARM_FEATURE_BTI_DEFAULT */ mov ip, sp stmea a1!, { v1-v7, fp, ip, lr } +#endif /* __ARM_FEATURE_PAC_DEFAULT */ #else stmea a1!, { v1-v7, fp, ip, sp, lr } -#endif +#endif /* __thumb2__ */ #if 0 /* Simulator does not cope with FP instructions yet. */ #ifndef __SOFTFP__ @@ -200,11 +219,17 @@ SYM (\name): /* Restore the registers, retrieving the state when setjmp() was called. */ #ifdef __thumb2__ +#if __ARM_FEATURE_PAC_DEFAULT + ldmfd a1!, { a4, v1-v7, fp, ip, lr } + mov sp, ip + mov ip, a4 +#else ldmfd a1!, { v1-v7, fp, ip, lr } mov sp, ip +#endif /* __ARM_FEATURE_PAC_DEFAULT */ #else ldmfd a1!, { v1-v7, fp, ip, sp, lr } -#endif +#endif /* __thumb2__ */ #if 0 /* Simulator does not cope with FP instructions yet. */ #ifndef __SOFTFP__ @@ -220,5 +245,9 @@ SYM (\name): #endif moveq a1, #1 +#if __ARM_FEATURE_PAC_DEFAULT + aut ip, lr, sp +#endif + FUNC_END longjmp #endif -- 2.36.1