From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2046.outbound.protection.outlook.com [40.107.20.46]) by sourceware.org (Postfix) with ESMTPS id 511483858425 for ; Wed, 21 Dec 2022 11:42:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 511483858425 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=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=By4cGH366p4bnXv3gYYVDVPcrnN9v2ENpdA1DNdAQIM=; b=GWn0TVmA7L3IRnPDJwR9qy4cTtSbS78U35YXoRPMnL4a+N1ip+ZAKwVsDWoktdEw7tNzwneEbu3x3tymhn1wFhnQG4PvZfUMwFaRp3xGQsHEIbasb7W+ZKsYlI7OooN+9GDQR6g9EhPu3nkLwYQA06dQtDQPJUvwHcKV6+7WvF0= Received: from DB8PR04CA0010.eurprd04.prod.outlook.com (2603:10a6:10:110::20) by AS2PR08MB9785.eurprd08.prod.outlook.com (2603:10a6:20b:606::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.6; Wed, 21 Dec 2022 11:42:22 +0000 Received: from DBAEUR03FT060.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:110:cafe::10) by DB8PR04CA0010.outlook.office365.com (2603:10a6:10:110::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5924.21 via Frontend Transport; Wed, 21 Dec 2022 11:42:22 +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 DBAEUR03FT060.mail.protection.outlook.com (100.127.142.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5924.16 via Frontend Transport; Wed, 21 Dec 2022 11:42:22 +0000 Received: ("Tessian outbound baf1b7a96f25:v132"); Wed, 21 Dec 2022 11:42:22 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 71b78c66fda85b6c X-CR-MTA-TID: 64aa7808 Received: from d3afee08b359.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3D60DD0D-A009-40D5-A834-B72494639DB5.1; Wed, 21 Dec 2022 11:42:15 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d3afee08b359.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 21 Dec 2022 11:42:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZSZzz+0bOVYN49eZJmJSdNzX5VuzFLffUtpxjAPzCT9OqPHDk5c4urK07iTGPlTcgmDDIoNdxMsIi62DoNBPH8SCAZFEBwfaLtb8yrQ810UPJx6aiwXIEAP3xDlOjk7gm49dhJt98CeHbmt1WM7cuUr9GGsR2JlMlspm9giLhPz84PHQzmfEviqek/1gdcdqFUCa5mQIcGF4H9ibZO0ZQ3caojdWptMasNy5zoePEA9Sjc+ZiptYdC/XeWW8jMYy+9pD34YUKqtt3zLGD9/9QrLSveT9hqsk5yTu5qV3JJXtBozANW9UFDrsVIgVk3GIlpHTnK1/wPeO3Q6KTh41yg== 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=By4cGH366p4bnXv3gYYVDVPcrnN9v2ENpdA1DNdAQIM=; b=JQLFkb0+Vut28jhrUTCwwkDtj5V/xDPBE4+e1swMFS/x8HpBynirv2nn6Rii++R1r+6ShKRearPC5j7WGE9ZyLQW/8jVbF20eguTLX8Cseve72BJRq1XrM6y6996QMWommqxYdzGey3/E0rzgtzipB5urMGijtSn3flOC/n3jjxEfw2fNhmw8hsQfZ1rzycMpgWkaoYUo230862x7p5P0A8PPvb+KN+o8WUj+irDaB2+pgMA4/Kr0OH7/DhB0++J63jxvv0EwHKql1g8NP1q5ztRRB7mDrt2ka4ccgMu9Bx11pUzrFfyVj8Oc92pJC1lNbUGzn+pCYSaCVnZLK/GAA== 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=By4cGH366p4bnXv3gYYVDVPcrnN9v2ENpdA1DNdAQIM=; b=GWn0TVmA7L3IRnPDJwR9qy4cTtSbS78U35YXoRPMnL4a+N1ip+ZAKwVsDWoktdEw7tNzwneEbu3x3tymhn1wFhnQG4PvZfUMwFaRp3xGQsHEIbasb7W+ZKsYlI7OooN+9GDQR6g9EhPu3nkLwYQA06dQtDQPJUvwHcKV6+7WvF0= Received: from AS9PR07CA0048.eurprd07.prod.outlook.com (2603:10a6:20b:46b::15) by GV2PR08MB9302.eurprd08.prod.outlook.com (2603:10a6:150:d4::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.6; Wed, 21 Dec 2022 11:42:12 +0000 Received: from AM7EUR03FT028.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:46b:cafe::81) by AS9PR07CA0048.outlook.office365.com (2603:10a6:20b:46b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.10 via Frontend Transport; Wed, 21 Dec 2022 11:42:12 +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 AM7EUR03FT028.mail.protection.outlook.com (100.127.140.192) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5944.10 via Frontend Transport; Wed, 21 Dec 2022 11:42:12 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Wed, 21 Dec 2022 11:42:11 +0000 Received: from e125768 (10.2.78.50) by mail.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.16 via Frontend Transport; Wed, 21 Dec 2022 11:42:10 +0000 From: "Victor L. Do Nascimento" To: CC: Richard Earnshaw Subject: [PATCH v5 8/8] newlib: libc: setjmp M-profile PACBTI-enablement In-Reply-To: (Victor Do Nascimento's message of "Wed, 21 Dec 2022 11:03:41 +0000") References: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) Date: Wed, 21 Dec 2022 11:42:10 +0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM7EUR03FT028:EE_|GV2PR08MB9302:EE_|DBAEUR03FT060:EE_|AS2PR08MB9785:EE_ X-MS-Office365-Filtering-Correlation-Id: e8b432c0-35af-43fc-6668-08dae3486c4f 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: 5A8nGYh2GCiPzdaQDnL09FRnRTMPluX7Mw2K3yVd9aSshZqJb2Fsauz+UTjWpPgSLLrDVuuKKfbxSjMGl5wUjS4thrRJ9n7wWOikSU5Pzeki9mBrb4qLRO0ZYbJktmdOMAREf9pBWFhIhTTZxFMqNbvz4kLd2o0KNWrdciITLNTk0GK6nfwzxiQdFeCyi1QGJNoyDWoB4ykQzXuuiP9/LmdS4GcSu01dcxFMi/+QC185+PYicnezjADIZuf90ipFBOsF0hbjlEQtXiQMnwgsPvXXAtAT/MBfychX6//DZ9ZGFOvTWOljpFsHNf8RHf3FsELTVgq0Ia19HX6aJrH9aJHWUBgSl0OqkJcY+9ySycg9vOKCfRLW+oS6h/AQBDa5ZAMs1/KR2GJknkBQycTj87HvXTWBjhps3Uu2cs5h5KKjtUjJ0//tfXjWUpLAdygCzROsgTNaSG4rvM+dP2zre7OuAFRgvjDvHB2QAAJQs8LrFxOuTzl2kl7ZNEtP1+7lsCmt9LsvGqFLR3ycqOvvOMeHHM8p5XYVADSS81HaBoUy28lVaGrihTi5w25gt4BazE/gD2Du085duDxm9Pbh7cGKLgzYRaxlOTnBoUCBjEbJ9eCAAYFhgQJB7el+Rdn1wqbYvqle6TaKJFiZAwUZfOnCV4RJwxGEN5STrls2lxFEvtJ7mGKMQRQoj9hpDInUrlWkyTMmuc3qSv4TcCEQiQ== 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:(13230022)(4636009)(346002)(39860400002)(136003)(376002)(396003)(451199015)(46966006)(36840700001)(478600001)(426003)(86362001)(41300700001)(336012)(47076005)(186003)(26005)(6916009)(356005)(36756003)(316002)(70206006)(8936002)(8676002)(81166007)(4326008)(2616005)(40480700001)(70586007)(5660300002)(83380400001)(2906002)(82310400005)(36860700001)(82740400003)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9302 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT060.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 9968c3a2-7bc9-4301-a5f5-08dae348668f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0+vGjweOvWnEiU7pFJMe2/8PLFcVH5suirVUn5AHlrvXAac9P9SRlJkIa89zJ7LJESKxnxjXSwY25AQSl950iGNYVtiR4N9JvFwppg9sITTanj46wmZKNPUrWMrTUqIQrbPFcJBqnvzzRVln7DAVTRHgiqq01oY7EvRxG37esDQ7aTD02b8WhUaAAUC3h8aSvhePD+RrgqfNN63EczjcI5e86Nu+qwDvhAOosGaX/RNXxdOJISMJONWxNBk7bSbzrJ8DTL/LdrzrUqNDwgyWpSJDOEPnj4u84OrxLRN8uOeJe298kJPBUeCy8tdv7x+dPFhGjOr/yxXyTlZjYKFcXPOfCLP6SgnND4PuBiqHlXxJ62vkoZ+zVGLrhfg9ooSgi/jlTwkRvt+pltZr2eeacXwQ8CQdUqgVUdiPORk6nKrXM+HM2oaRmBnQ2tKo4ct9a/fk9SI5GimPwQG/nd1L7RkdjaBPIpvzImnlhxImbnr3naBYiN87Sy5If/3vLYMHXwTtsOKXYqVo5oJm0pJevVQUz0/HFdFUDkyOS83aRj33amSXG5aXvgj4f8B5t5519Juk9sxdbnI4HAf6Cz5yVU6SiJp+2u6sTOIpKwSJMQybgr05HpdL5bBJA9ZzoIiEhFuGU7jsUGc8d/5007MOmOhmQbFVNboJ0MG9WmSYWpYV59X1A6GVQvfsmgMU3XJ25JrgP8PL368NtluLz3zJOg== 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:(13230022)(4636009)(39860400002)(396003)(346002)(376002)(136003)(451199015)(40470700004)(46966006)(36840700001)(41300700001)(82310400005)(36756003)(36860700001)(5660300002)(478600001)(26005)(186003)(426003)(2616005)(47076005)(8676002)(4326008)(70586007)(336012)(40460700003)(70206006)(86362001)(8936002)(82740400003)(2906002)(81166007)(6916009)(316002)(83380400001)(40480700001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2022 11:42:22.0639 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e8b432c0-35af-43fc-6668-08dae3486c4f 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: DBAEUR03FT060.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9785 X-Spam-Status: No, score=-12.9 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 List-Id: 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 | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/newlib/libc/machine/arm/setjmp.S b/newlib/libc/machine/arm/setjmp.S index d814afea8..3e4d7cb70 100644 --- a/newlib/libc/machine/arm/setjmp.S +++ b/newlib/libc/machine/arm/setjmp.S @@ -155,6 +155,8 @@ SYM (.arm_start_of.\name): .align 2 MODE .globl SYM (\name) + .fnstart + .cfi_startproc TYPE (\name) SYM (\name): PROLOGUE \name @@ -162,6 +164,8 @@ SYM (\name): .macro FUNC_END name RET + .cfi_endproc + .fnend SIZE (\name) .endm @@ -171,6 +175,21 @@ SYM (\name): FUNC_START setjmp +#if __ARM_FEATURE_PAC_DEFAULT +# if __ARM_FEATURE_BTI_DEFAULT + pacbti ip, lr, sp +# else + pac ip, lr, sp +# endif /* __ARM_FEATURE_BTI_DEFAULT */ + mov r3, ip + str r3, [r0, #104] + .cfi_register 143, 12 +#else +# if __ARM_FEATURE_BTI_DEFAULT + bti +# endif /* __ARM_FEATURE_BTI_DEFAULT */ +#endif /* __ARM_FEATURE_PAC_DEFAULT */ + /* Save all the callee-preserved registers into the jump buffer. */ #ifdef __thumb2__ mov ip, sp @@ -184,6 +203,10 @@ SYM (\name): /* When setting up the jump buffer return 0. */ mov r0, #0 +#if __ARM_FEATURE_PAC_DEFAULT + mov ip, r3 + aut ip, lr, sp +#endif /* __ARM_FEATURE_PAC_DEFAULT */ FUNC_END setjmp @@ -193,6 +216,16 @@ SYM (\name): FUNC_START longjmp +#if __ARM_FEATURE_BTI_DEFAULT + bti +#endif /* __ARM_FEATURE_BTI_DEFAULT */ + +#if __ARM_FEATURE_PAC_DEFAULT + /* Keep original jmpbuf address for retrieving pac-code + for authentication. */ + mov r2, r0 +#endif /* __ARM_FEATURE_PAC_DEFAULT */ + /* If we have stack extension code it ought to be handled here. */ /* Restore the registers, retrieving the state when setjmp() was called. */ @@ -212,5 +245,11 @@ SYM (\name): it eq moveq r0, #1 +#if __ARM_FEATURE_PAC_DEFAULT + ldr r3, [r2, #104] + mov ip, r3 + aut ip, lr, sp +#endif /* __ARM_FEATURE_PAC_DEFAULT */ + FUNC_END longjmp #endif -- 2.36.1