From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2080.outbound.protection.outlook.com [40.107.8.80]) by sourceware.org (Postfix) with ESMTPS id 6F7343858D1E for ; Wed, 21 Dec 2022 11:25:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6F7343858D1E 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=+bU0O6Y0anS6NgehAph3OrL23B6cXlFY5YBUp322n9E=; b=CIvM4jEZB03Wsy019meSrxCuL8Sgch+T0CQAcW7r707+A6AMXgPU7bdIGB7cqooGPhTeql2FiBCsC2Oo7Yn1YWU5Aon5LY8lMbI/O7wV5K2H8yaU9qHEok/KjlbU0iHGb26lOo1W+avnMDJwGSp8nzn9sg8DUiHFD4SN2jYbJ84= Received: from DBBPR09CA0024.eurprd09.prod.outlook.com (2603:10a6:10:c0::36) by DB4PR08MB7933.eurprd08.prod.outlook.com (2603:10a6:10:37b::19) 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:25:46 +0000 Received: from DBAEUR03FT056.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:c0:cafe::a7) by DBBPR09CA0024.outlook.office365.com (2603:10a6:10:c0::36) 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:25:46 +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 DBAEUR03FT056.mail.protection.outlook.com (100.127.142.88) 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:25:46 +0000 Received: ("Tessian outbound baf1b7a96f25:v132"); Wed, 21 Dec 2022 11:25:46 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 4b323fbba2f2cc81 X-CR-MTA-TID: 64aa7808 Received: from 0a0a7feaba9f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B8EC2861-FCD5-4272-BAFA-6BB2F2C76F69.1; Wed, 21 Dec 2022 11:25:39 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0a0a7feaba9f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 21 Dec 2022 11:25:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TVkobQqyKvhrMKU7VDAzM4/KBczOUz/NB2JE6QQigEzOjT+tTN/3xIzyZXV9njbnZisPuttsYMDBdyh7CZ5YkHwY0mvPNEnO4Si7UTK/3PrM8sQTvXFWOCc9h+Q8+JncYIf445Fu8JPM/oUR3lBczFb25rNEyzQPJZC6ZLhfy1nlXY/079CXsASwZW2d0PHkbMbMnCecpuJaXWgXHQ33SSlUaJHGzQZNgsJyNWjLhj0HZauLIPtFwEEB2rPQd8HtpGvBJfW4Ly9Pgl4CKUriNQdjLxWPRA++h2oSV24lKfhIoMzN/GemsSrjoW7fQumIfkoi6Xnjno3W+xLSOpYLbw== 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=+bU0O6Y0anS6NgehAph3OrL23B6cXlFY5YBUp322n9E=; b=bPjAKAlg4xzDCine0pJs7cgKz5f8EF3IKkZCi4juw4EE0eL8HEfxIqokKQ0Nj36RBMgKtxkNK0eDiQ39P4XiJdv6COcbMF+Nir8KQYwS0hLiZPbueTQfgHU12EnCdYXpLsY/pCF52PsxXPBh9kD9Nt7+eqWTQLBmYCQ8a6sWDYPoVD8MUZqf70V31DJ2gm5TsFwLJWB1J0KdM57PTT2zYVyrehNuOWtyfqO7p0321bV9R1B+kZVIf98+D+L7SCR1SfqYgbKkU+vty6/34tg117VVehk1L9DL+x+V8ZBxaDrk5o0l5z9ZBhOgOLtZ5j8mRhvl/oEo98bvIJp7GpZwaw== 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=+bU0O6Y0anS6NgehAph3OrL23B6cXlFY5YBUp322n9E=; b=CIvM4jEZB03Wsy019meSrxCuL8Sgch+T0CQAcW7r707+A6AMXgPU7bdIGB7cqooGPhTeql2FiBCsC2Oo7Yn1YWU5Aon5LY8lMbI/O7wV5K2H8yaU9qHEok/KjlbU0iHGb26lOo1W+avnMDJwGSp8nzn9sg8DUiHFD4SN2jYbJ84= Received: from DB6PR0501CA0028.eurprd05.prod.outlook.com (2603:10a6:4:67::14) by DB9PR08MB7557.eurprd08.prod.outlook.com (2603:10a6:10:304::19) 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:25:38 +0000 Received: from DBAEUR03FT015.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:67:cafe::50) by DB6PR0501CA0028.outlook.office365.com (2603:10a6:4:67::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:25: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 DBAEUR03FT015.mail.protection.outlook.com (100.127.142.112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5944.6 via Frontend Transport; Wed, 21 Dec 2022 11:25:37 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) 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:25:37 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) 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:25: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:25:36 +0000 From: "Victor L. Do Nascimento" To: CC: Richard Earnshaw Subject: [PATCH v5 5/8] newlib: libc: memcpy 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:25:36 +0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DBAEUR03FT015:EE_|DB9PR08MB7557:EE_|DBAEUR03FT056:EE_|DB4PR08MB7933:EE_ X-MS-Office365-Filtering-Correlation-Id: 89232064-c9d1-47de-088d-08dae3461b0f 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: Uah8ASrJezmIa8Ql/liVqAEfkpPTUmbp0aSrmPU0WZXufUup9S7v41GBIbQXCust3rQHtWyhgDoQj6q2LQFCejKP+KNYnT0dBErqIuvUcLWKcsNJYZiI+s2IhNCNNO0DR+4qkxlhFJRLfYrhoaYuRLm4ohqk5coVheI2qpXgocjp2hYzm4jfb427LqqK3g4icm7+zTHV2uYVa4NGWSnMFyUFjVSKV7g4CgP4YjyLr3t51hVC+uv1O9WrgGMhajqL8vuJaNmbFFfbsY1E2MyEd8ZaxsWkJ33hZxv7XuVFmpGGGJNBP4efvzOjyOmkXAwR+VOobQQu92cufo5D2h22eA9TuGSehcrUtFiH4sLTR0mOMwQiDsRdx9/zsmA8H3jv6c97bDCXmNriXUrDa+gIItrpx+egtAkJPaxBWVEuP3WJ5wb18bAHvyNQgXQ5BuD7oX6xxw//NmfU6PbVVmHOpjUBReiKGLYWV5Z2/cypK7EIJvgezDpBi64jCcbUzLj3JnzRlNNfXekY0P0JMEUqjU10B49XubRtavKR9HoX8rCFkAaIwLWSyNYG4q8uqpnavMM46Hh/UfRcmtq/TjhCIhwUARTO2UVAeJzg8W+Qd0i6v4pY4NCVjwNwLmiFsBXIasWKfm0oZLsW6xi947Jx95DAi05CSLfG/laioGFzEBJT67KowAqHOf3kEdaf0M3p6/CtkrSvHjqtsRs9eLMfXA== 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)(136003)(39860400002)(396003)(346002)(451199015)(36840700001)(46966006)(82740400003)(81166007)(86362001)(41300700001)(356005)(5660300002)(6916009)(186003)(2616005)(4743002)(47076005)(26005)(336012)(426003)(2906002)(316002)(36860700001)(478600001)(82310400005)(36756003)(83380400001)(40480700001)(4326008)(8676002)(8936002)(70586007)(70206006)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7557 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT056.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: ed719025-59e3-4f5c-506d-08dae346158f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: X4Y9kGVpa2xP86szdmFBtA66KfkQNqnOaNd8p1ZZHSwBmipCKx+l8xuQSgmSqsCr5ypqlN/1ptX3rDaxvyfsxcevgX4rHxSHAArBKNcE4LaZ6drdcytMjkebH8cfAo9u3xvrZENYtwQAuKCJOm0jb94jDx27Pad24+7vSSLifa7VOLoBhoAjXa5heEuIMyWMQ1I4wlBHW7XYqNJ7Y5TqWG8qBgwfraYY3bHwHFyGOTy64dv25Qenu46hxkZ5b6NaRl0+dan2J049pG8dQzRtkdOjb3AIHyKCXN8roq863uv+cpMZFMlwy19pvXqPh+kLsROBfKGJ4vFTVc13KLTylPK01ITmRv7RrbIvo1snKEz1cyTsrqbaW6/jhtMWf0bF8zhj+ybV2wYjMH3y6sGF8dOar1cYe385K1clSgPlmjjaONPSx2dK4h2gGak6z5KH3KnrV9quRYfPhe9ukRUDXG7gybZRff0A5/VEaOavZFHyJdkRyi9MQ8Ei0ZZJYRBdZ/1BUnKL36SxyAFl0ys/ow0wtevD+P26sIMrEeuAn7ptTGGFWXidTvsyAv6tuty8z4xUXs51OyrSH/ZBZBbGeDvl3B5kjc306wuN2w/yhHA+6Z5DzzOrwfdBeXOaLowImHmXcvRSvTGpcSCQ6ZcATIht3ZRR9Ywl709bDdP9Arncx/gYgyg+LUX5FeDT7VsXgBRoKV/sBYuaf+sDla5ESg== 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)(396003)(346002)(376002)(136003)(39860400002)(451199015)(36840700001)(40470700004)(46966006)(316002)(36756003)(2616005)(36860700001)(86362001)(426003)(4743002)(186003)(82310400005)(6916009)(5660300002)(8936002)(40480700001)(83380400001)(4326008)(8676002)(70206006)(70586007)(81166007)(40460700003)(2906002)(41300700001)(47076005)(336012)(82740400003)(478600001)(26005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2022 11:25:46.7376 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 89232064-c9d1-47de-088d-08dae3461b0f 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: DBAEUR03FT056.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB7933 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/memcpy-armv7m.S | 33 ++++++++++++++++++------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/newlib/libc/machine/arm/memcpy-armv7m.S b/newlib/libc/machine/arm/memcpy-armv7m.S index c8bff36f6..ec1ad6485 100644 --- a/newlib/libc/machine/arm/memcpy-armv7m.S +++ b/newlib/libc/machine/arm/memcpy-armv7m.S @@ -46,6 +46,8 @@ __OPT_BIG_BLOCK_SIZE: Size of big block in words. Default to 64. __OPT_MID_BLOCK_SIZE: Size of big block in words. Default to 16. */ +#include "arm_asm.h" + #ifndef __OPT_BIG_BLOCK_SIZE #define __OPT_BIG_BLOCK_SIZE (4 * 16) #endif @@ -85,6 +87,8 @@ .global memcpy .thumb .thumb_func + .fnstart + .cfi_startproc .type memcpy, %function memcpy: @ r0: dst @@ -93,10 +97,11 @@ memcpy: #ifdef __ARM_FEATURE_UNALIGNED /* In case of UNALIGNED access supported, ip is not used in function body. */ + prologue push_ip=HAVE_PAC_LEAF mov ip, r0 #else - push {r0} -#endif + prologue 0 push_ip=HAVE_PAC_LEAF +#endif /* __ARM_FEATURE_UNALIGNED */ orr r3, r1, r0 ands r3, r3, #3 bne .Lmisaligned_copy @@ -178,15 +183,17 @@ memcpy: #endif /* __ARM_FEATURE_UNALIGNED */ .Ldone: + .cfi_remember_state #ifdef __ARM_FEATURE_UNALIGNED mov r0, ip + epilogue push_ip=HAVE_PAC_LEAF #else - pop {r0} -#endif - bx lr + epilogue 0 push_ip=HAVE_PAC_LEAF +#endif /* __ARM_FEATURE_UNALIGNED */ .align 2 .Lmisaligned_copy: + .cfi_restore_state #ifdef __ARM_FEATURE_UNALIGNED /* Define label DST_ALIGNED to BIG_BLOCK. It will go to aligned copy once destination is adjusted to aligned. */ @@ -247,6 +254,9 @@ memcpy: /* dst is aligned, but src isn't. Misaligned copy. */ push {r4, r5} + .cfi_adjust_cfa_offset 8 + .cfi_rel_offset 4, 0 + .cfi_rel_offset 5, 4 subs r2, #4 /* Backward r1 by misaligned bytes, to make r1 aligned. @@ -299,6 +309,9 @@ memcpy: adds r2, #4 subs r1, ip pop {r4, r5} + .cfi_restore 4 + .cfi_restore 5 + .cfi_adjust_cfa_offset -8 #endif /* __ARM_FEATURE_UNALIGNED */ @@ -321,9 +334,11 @@ memcpy: #ifdef __ARM_FEATURE_UNALIGNED mov r0, ip + epilogue push_ip=HAVE_PAC_LEAF #else - pop {r0} -#endif - bx lr - + epilogue 0 push_ip=HAVE_PAC_LEAF +#endif /* __ARM_FEATURE_UNALIGNED */ + .cfi_endproc + .cantunwind + .fnend .size memcpy, .-memcpy -- 2.36.1