From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2067.outbound.protection.outlook.com [40.107.22.67]) by sourceware.org (Postfix) with ESMTPS id 8E6DD3858D1E for ; Wed, 21 Dec 2022 11:22:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8E6DD3858D1E 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=hyqG2K9k9D69DW17EHY53LcS4D/a4xY5kZco7HlNE84=; b=COCAeH4ee9Fl/Kg3DLWzeqMiFxNo2KKttYBq1J+g/M6HCtBpCIN+3lynpOi2KOO679H59ziHvhrLDt0JGtDbye79LPirDR4GJrfvrF8/4DKehx0xtuxxJpjj7A2hWxS4jDOK88wluHLkurxnafhZNk+utzguTjPR+/V05XkpM2I= Received: from FR3P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a5::14) by AM9PR08MB6196.eurprd08.prod.outlook.com (2603:10a6:20b:283::23) 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:22:46 +0000 Received: from VI1EUR03FT036.eop-EUR03.prod.protection.outlook.com (2603:10a6:d10:a5:cafe::7f) by FR3P281CA0196.outlook.office365.com (2603:10a6:d10:a5::14) 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:22:45 +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 VI1EUR03FT036.mail.protection.outlook.com (100.127.144.159) 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:22:45 +0000 Received: ("Tessian outbound baf1b7a96f25:v132"); Wed, 21 Dec 2022 11:22:45 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: c1543ca7b7f36229 X-CR-MTA-TID: 64aa7808 Received: from 6bbd48fff3e3.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id DD467F29-45EF-4EA5-8656-7EDEC23FE5FB.1; Wed, 21 Dec 2022 11:22:38 +0000 Received: from EUR02-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6bbd48fff3e3.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 21 Dec 2022 11:22:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=USGUFA0py+WdCTAyut+w6YxuK7paiNwt/olRXUwLdwNhyZzJ8/ybtS2CfgGLWZaDVd1iZj1FMpd/Ri5U/zlDpIIRpugcCvQJt9Q70imiZeXmoSWRK1lyoZ1WprlmIv0VuPDoxsJ42B7QT9+ENtJq8FLT6EgnJLrG3np34kCbtELYtp6N1eWgy7P16/513/LDw7lDZCxs7BnrdJUJBKL2vODv8+cmLlgjtIxzIO+wZFoPZSdhdvT156MOovykb4ZYdpBpfDFx4IoRPlq5USp39vpEtjqvk9buqLDJWBEVpqq0lJgrM47Bwi/tdO/7tyh+EdrNICm+LtCkyqgovTgSYQ== 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=hyqG2K9k9D69DW17EHY53LcS4D/a4xY5kZco7HlNE84=; b=QgsIrx2SK4RE8t6bTTHat4EL5IH7OmUVvFhZiowDR9h6TVhZdc+ZCCkIU4uGVUZHyaWqVUJxbs4A4dhOuvfGBCyowk55/3xFOJcjSSWmZWHwvcQ/5UYm1qnJivame9RBmcqjqMI8QYqjX7XN7qqj5gd7B13oMJD+2rpY+4JuhBmL5ldU6FehaZBkQ6eQK2kb/GS0bhggqzE+HqRiUbaQvT+TVK8G0w7oaxxiZDlLayg5z/gL/LV2GqKS1fCvagNFkPixKcDGdF6Fd47vIW7K5/5/C/LLNoEzeEH9gRLB/5+xuWVis1wsDyu+EQbkg6HxBPYemgPh+et7v3gMhzg1mg== 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=hyqG2K9k9D69DW17EHY53LcS4D/a4xY5kZco7HlNE84=; b=COCAeH4ee9Fl/Kg3DLWzeqMiFxNo2KKttYBq1J+g/M6HCtBpCIN+3lynpOi2KOO679H59ziHvhrLDt0JGtDbye79LPirDR4GJrfvrF8/4DKehx0xtuxxJpjj7A2hWxS4jDOK88wluHLkurxnafhZNk+utzguTjPR+/V05XkpM2I= Received: from DB8PR09CA0001.eurprd09.prod.outlook.com (2603:10a6:10:a0::14) by AS8PR08MB6616.eurprd08.prod.outlook.com (2603:10a6:20b:319::20) 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:22:37 +0000 Received: from DBAEUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:a0:cafe::c) by DB8PR09CA0001.outlook.office365.com (2603:10a6:10:a0::14) 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:22: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 DBAEUR03FT039.mail.protection.outlook.com (100.127.142.225) 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:22:37 +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:22:36 +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:22:36 +0000 From: "Victor L. Do Nascimento" To: CC: Richard Earnshaw Subject: [PATCH v5 3/8] newlib: libc: strlen 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:22:36 +0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DBAEUR03FT039:EE_|AS8PR08MB6616:EE_|VI1EUR03FT036:EE_|AM9PR08MB6196:EE_ X-MS-Office365-Filtering-Correlation-Id: e5b18b89-c289-42e4-ef31-08dae345af2f 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: RZMUs14FeOp1efoxPJJJ/7r96WYGoE2eRdm/0dis235ArptlORgY5xPRxH2TByaiQRCqFpNZ9iQxw2PPwo2sIoTowun4O8SIRByrOOa4iRmd8PIDhuEqQKZ2/eJUeUvyTBWqUcLER1kKKnrXfJDSpKCA7UFv6dtVd53frWUPbNBDrnvCg3+iHnogPRUJ98xB19gwEZREgAMD3ZBgZC24ipFSa/0lhBP3NaV5CzGRYKepaGPR7My5OcDMrs/+ncTocIlQqSQE9ts+3jjXyqd/L9U9nLEE8WG7yz9SNCozILm0muTbUrJP8T5DpXjhcxj4z2QzOU7DyRq7fn0psYSSRY4PPUvphQHRmHt2maQSCutCHYHANf/Guc38dh9vxWstVc0ZQ1UUerDihsVNestydsX24qeDwo8BSpR3saemZSiQ5XXzJOwwIrJjbtUmcXnjfU9yV9O9C0nqDePiht2KvoegKqtoYgp13i6C2ioKFGyaPBirvGKZUrY+fsk5DolKOlzRFtQTevi+oprzK4UvKd/cN/0SE3vkixbVVU7v46MHckdQoXyI8C1Jry4mO+CxEZtWCy10r2BvEmSh4sVEWX4WDEvdXG95UyY8qPkYEj5IVUN9A3eMprmgXDCX8u1iRu5ANMWOcj1eu5RfmelaZDwslZvH5+bxxvppL2WVeac0jdfGDPZBl/e9RY03IAW7SYHTHeayZTOWO5lcVtFIY52d5ZxlZRBEIqnU+jE9d4U= 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)(376002)(39860400002)(346002)(136003)(396003)(451199015)(36840700001)(46966006)(40480700001)(36756003)(316002)(6916009)(83380400001)(70586007)(41300700001)(426003)(5660300002)(4326008)(8676002)(26005)(186003)(70206006)(47076005)(2616005)(19627235002)(336012)(478600001)(81166007)(86362001)(82310400005)(356005)(2906002)(8936002)(82740400003)(36860700001)(36900700001)(357404004);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6616 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VI1EUR03FT036.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: e4d72107-c800-44a8-d374-08dae345aa15 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g/d1i1uRr9v3LNHkC15ZsV60TzkS5/OgqVwEBA0eKgFxHeSGnccxT+mqZbkkD3Ou6fWzlm/ycI4np8Wvh0fJl2lhbMcZdX8dZsqCXpT422IqrMuArNsNVyQXv/KaURFEaVB18Jsda5k5Tv8onW1OcxKvUfmuebUE2dFYBMYKgb6lJZNg8n/NqfAJ2x/kiwnpM7rC+HUzxO1JDQfN60cp85icTqnWwfihv51WzLMWkq2jdYYsjH2gVwAIflWDdNbQxsvaVrx7rgSH2c87iQEdNfXdiupdVD2yqQez5cqXtoZY92RcpzgLmN9pif4aeapMeUSbG15wf8mr0Yt0RVIM+ZTMwUklCbL1219G62Agn5wNJtKXrNLHq50/fE/JJ7sc+qoK4IaE+swSh9odksQ/ocjv3GCR3T6uiew/UeAx0wnTMB20kUSPfQNZyAfszDsT2k/t/fPn4DpQFR7Wv4ZGGTOFkiqbHLmXxplhDCD/a7/MQrITS8liWdyiWPuAcMhVCc8DwrCK6S+syHHxXkCP6ZWmM9ahBHciLLjHgI/ZF7D70mznzcYZFp/cjHIkYXs4N+gLuuY6rKy83QswxqcZlEgcRqXU4Kg1uz54QdsAsITexlyLQRD2Ax6Y+CiahguzPdZWZqNPzG48biFbZkKMw+1oA8/WtnNU/E53eQqHyFQMIoawOv0v1gwuDmLbX0ZSxfiO5vLlfx0nxKn+wBaWcvMatmvSIK0xUAmv+Fwtgdo= 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)(346002)(396003)(376002)(136003)(39860400002)(451199015)(40470700004)(46966006)(36840700001)(426003)(5660300002)(47076005)(8936002)(6916009)(19627235002)(2616005)(316002)(4326008)(36756003)(70586007)(41300700001)(336012)(81166007)(82310400005)(82740400003)(86362001)(40460700003)(83380400001)(8676002)(2906002)(40480700001)(36860700001)(70206006)(26005)(186003)(478600001)(357404004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2022 11:22:45.6655 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e5b18b89-c289-42e4-ef31-08dae345af2f 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: VI1EUR03FT036.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6196 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. This patch enables PACBTI for all relevant variants of strlen: * Newlib for armv8.1-m.main+pacbti * Newlib for armv8.1-m.main+pacbti+mve * Newlib-nano --- newlib/libc/machine/arm/strlen-armv7.S | 17 ++++++++++++++--- newlib/libc/machine/arm/strlen-thumb2-Os.S | 14 +++++++++++--- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/newlib/libc/machine/arm/strlen-armv7.S b/newlib/libc/machine/arm/strlen-armv7.S index f3dda0d60..27094040c 100644 --- a/newlib/libc/machine/arm/strlen-armv7.S +++ b/newlib/libc/machine/arm/strlen-armv7.S @@ -59,6 +59,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "acle-compat.h" +#include "arm_asm.h" .macro def_fn f p2align=0 .text @@ -78,7 +79,11 @@ /* This code requires Thumb. */ #if __ARM_ARCH_PROFILE == 'M' +#if __ARM_ARCH >= 8 + /* keep config inherited from -march=. */ +#else .arch armv7e-m +#endif /* if __ARM_ARCH >= 8 */ #else .arch armv6t2 #endif @@ -100,8 +105,10 @@ #define tmp2 r5 def_fn strlen p2align=6 + .fnstart + .cfi_startproc + prologue 4 5 push_ip=HAVE_PAC_LEAF pld [srcin, #0] - strd r4, r5, [sp, #-8]! bic src, srcin, #7 mvn const_m1, #0 ands tmp1, srcin, #7 /* (8 - bytes) to alignment. */ @@ -151,6 +158,7 @@ def_fn strlen p2align=6 beq .Lloop_aligned .Lnull_found: + .cfi_remember_state cmp data1a, #0 itt eq addeq result, result, #4 @@ -159,11 +167,11 @@ def_fn strlen p2align=6 rev data1a, data1a #endif clz data1a, data1a - ldrd r4, r5, [sp], #8 add result, result, data1a, lsr #3 /* Bits -> Bytes. */ - bx lr + epilogue 4 5 push_ip=HAVE_PAC_LEAF .Lmisaligned8: + .cfi_restore_state ldrd data1a, data1b, [src] and tmp2, tmp1, #3 rsb result, tmp1, #0 @@ -177,4 +185,7 @@ def_fn strlen p2align=6 movne data1a, const_m1 mov const_0, #0 b .Lstart_realigned + .cfi_endproc + .cantunwind + .fnend .size strlen, . - strlen diff --git a/newlib/libc/machine/arm/strlen-thumb2-Os.S b/newlib/libc/machine/arm/strlen-thumb2-Os.S index 961f41a0a..a46db573c 100644 --- a/newlib/libc/machine/arm/strlen-thumb2-Os.S +++ b/newlib/libc/machine/arm/strlen-thumb2-Os.S @@ -25,6 +25,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "acle-compat.h" +#include "arm_asm.h" .macro def_fn f p2align=0 .text @@ -33,8 +34,9 @@ .type \f, %function \f: .endm - -#if __ARM_ARCH_ISA_THUMB >= 2 && __ARM_ARCH >= 7 +#if __ARM_ARCH_PROFILE == 'M' && __ARM_ARCH >= 8 + /* keep config inherited from -march=. */ +#elif __ARM_ARCH_ISA_THUMB >= 2 && __ARM_ARCH >= 7 .arch armv7 #else .arch armv6t2 @@ -44,11 +46,17 @@ .syntax unified def_fn strlen p2align=1 + .fnstart + .cfi_startproc + prologue mov r3, r0 1: ldrb.w r2, [r3], #1 cmp r2, #0 bne 1b subs r0, r3, r0 subs r0, #1 - bx lr + epilogue + .cfi_endproc + .cantunwind + .fnend .size strlen, . - strlen -- 2.36.1