From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2052.outbound.protection.outlook.com [40.107.22.52]) by sourceware.org (Postfix) with ESMTPS id A72633854148 for ; Wed, 24 Aug 2022 10:36:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A72633854148 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=UHN0W7O14PP6AsNXc94bIYcRYWo7Z5ucBKNTG27h1FU7yrw4irF3KKhzeXuD6613ZLOk0MjnbE/PgsPE3LlsR+PUb4xxxzR4LBrOjrK9P8RrTUNOQIjyUT6dColm+p82f/WNXOhlbLZWWKhigmG2oL/kAfdO5lRDvS//vDETXTvFuoG2Ul7UA7IgUEtVP5BYu4TltO8hdYeURLiaTv96QhjPDocCR8H/7UpzFlUza/pk/07uUT76I3WOCbn7biY0fsoybNn2y+oovTtn4z2zxrqJufyoGXN30cJtEwUda91JCHzwVYgC8y+9ymBXWoj0FEZGIBeEjmmX6+poRgq5hQ== 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=pzxxd3QNq3465o24kudCm80PW5yCYl4pBtATGulfVG4=; b=K5NyyAY4mWJ2512t4jpvPm+/j7GH/O4xUO8UWWN0o9U90VRvsBOxWS8g+uCaFyWWClwrAYgzh+XzPUetLKj25SR4NZbGgsL4Z0xuQcVWNvwOQMRm/ZDLrvPtgH+NPyuk0u66rpdjxlaGd/uyWmUnu81uh0CvfzbdhJZMLnJLVm0NVLI7tspPB6u+jyhZ3u+mGatBPimco/qrRglFUUgX0myOk1oJEVLe+R3hc4dfKY4VyOvsUDHXYaMEzjZT70o0Wv7WWmeIA4hNwxcGbALL80yTKoga+Hz1mrKnwkEc89utxu1q5eAG7fBefO5osU6Wpw84YdUS9d4X+327s/pOMA== 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=pzxxd3QNq3465o24kudCm80PW5yCYl4pBtATGulfVG4=; b=2jzPaQLC1lplCTdu4GrWbar/1kCAzs6Eandj9UlImg80QmRwZGu1OFg7pEwoS8M2sBgU0QNnP90+fNpQl11Y6PeLUgEIM/NqCNVEBWKcBVTcHO0vClOY1zOELxX5Xt/PB3OqXqC4JnowxzxkDllutXqJv58kN25d64GHqAPwrBw= Received: from AM6PR04CA0040.eurprd04.prod.outlook.com (2603:10a6:20b:f0::17) by VI1PR0802MB2399.eurprd08.prod.outlook.com (2603:10a6:800:bb::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.19; Wed, 24 Aug 2022 10:36:35 +0000 Received: from VE1EUR03FT017.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:f0:cafe::f7) by AM6PR04CA0040.outlook.office365.com (2603:10a6:20b:f0::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15 via Frontend Transport; Wed, 24 Aug 2022 10:36:35 +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 VE1EUR03FT017.mail.protection.outlook.com (10.152.18.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.15 via Frontend Transport; Wed, 24 Aug 2022 10:36:35 +0000 Received: ("Tessian outbound 63c09d5d38ac:v123"); Wed, 24 Aug 2022 10:36:34 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 81ff111c7a045636 X-CR-MTA-TID: 64aa7808 Received: from 4e074502dbd6.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 7A4C74E2-778A-4EED-94DF-E087C3BD6B93.1; Wed, 24 Aug 2022 10:36:24 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4e074502dbd6.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 24 Aug 2022 10:36:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bgZ5tHyX1wRidLlA+TwJEHxTF6O3GzJwOcUhMc0JrEw2WGyLCCfF3LJdfPnorDT74alwpMupRyc0UUvC+Su5mUXkecP+za83BpfmCt6qiExOOf6SMAAcIjWy2sQQk+kfXOi8coMpS6gSecSHmlFmi8/SRFeTosd1fFhimwl4+rebfZyd4qTgGFIVRPPS0zhH7xxbAo8r6hrN7cPNS3y4Wtaw3qJeQuWipmqntKJcWp1USFtGEbAs1OoyDATemjjJkJ3jnzavaeMqNRW2Qz1n28DkSXdyjpRwd7pUmpivfspefcNnd2TXu9Lya8iaI0ZPQ9clKjM5KrLx6Eugaag0sA== 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=pzxxd3QNq3465o24kudCm80PW5yCYl4pBtATGulfVG4=; b=Zxbk9R9wfv3uRMHxwQPloH6qK4IwnqYuPicEI4C8YVDrRCmYNqJN6oTctE1VHDaMaxy1OvBSCkuto/+dns8j7//W7NGoW279FwhyaBh/nHZ5ply5VE8PgRpMrdw+r/SE88oYXsscj57qD7yJYNhZ0I63qnpeOV2h9SBnTAnHEktBq+zI3SZYgMCIDytEMrGUovCgPKi5gt3KPEL1lbiLNav7ndTKhESf1mESIy23+7TXx3c/WXNu/qARf6shH20veJz70GZNaEX/WLkqdrRb47xRoim9TocH9QsGIrY5VrODE+2Z8T6eYRzixSCWJdK9jfwIFw82/NlDG8IzBlR5Kw== 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=pzxxd3QNq3465o24kudCm80PW5yCYl4pBtATGulfVG4=; b=2jzPaQLC1lplCTdu4GrWbar/1kCAzs6Eandj9UlImg80QmRwZGu1OFg7pEwoS8M2sBgU0QNnP90+fNpQl11Y6PeLUgEIM/NqCNVEBWKcBVTcHO0vClOY1zOELxX5Xt/PB3OqXqC4JnowxzxkDllutXqJv58kN25d64GHqAPwrBw= Received: from DB6P191CA0024.EURP191.PROD.OUTLOOK.COM (2603:10a6:6:28::34) by PR3PR08MB5740.eurprd08.prod.outlook.com (2603:10a6:102:87::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Wed, 24 Aug 2022 10:36:21 +0000 Received: from DBAEUR03FT060.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:28:cafe::16) by DB6P191CA0024.outlook.office365.com (2603:10a6:6:28::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.14 via Frontend Transport; Wed, 24 Aug 2022 10:36:20 +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 DBAEUR03FT060.mail.protection.outlook.com (100.127.142.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5566.15 via Frontend Transport; Wed, 24 Aug 2022 10:36:20 +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.9; Wed, 24 Aug 2022 10:36:20 +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.9 via Frontend Transport; Wed, 24 Aug 2022 10:36:20 +0000 From: "Victor L. Do Nascimento" To: CC: Subject: [PATCH v3 5/8] newlib: libc: memcpy M-profile PACBTI-enablement In-Reply-To: (Victor L. Do Nascimento's message of "Wed, 24 Aug 2022 11:18:17 +0100") References: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) Date: Wed, 24 Aug 2022 11:36:19 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: e41321f5-3e9c-40c1-1ffb-08da85bc84c4 X-MS-TrafficTypeDiagnostic: PR3PR08MB5740:EE_|VE1EUR03FT017:EE_|VI1PR0802MB2399: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: 4aSr6ZLe4OrOj+m4+ti8WRcLqdC6ptyuL5rn8O1sA672Q1isoG+T+j3nn+WCmJ7uU3JM3H1nMa76g206o/3U2NivOl0hm0NxB8D0rdiaIz7bAg3VYx5wjSzSRWZ5UwI4ryeGkJImEDukc2a9NcMEgrrTeTBvB207HsW0Puj8bgK3A79/VLNXl6ZQe9gSyQ/U9nzim2WXLF1HZnn95YNM03TzRIgVPB28j/ekV4h3k4AdYBXkz7Pm1gFA87V/ZFm+ek4ES6LFu7x40etSf1M0DjOhcg5YFsIBVadsIhJbQrVQ1uni73p3mu2nN02lm5CI1hLJ/VzHazxd+0TDM4oAKJeDLAMMT3P1b0uNei9Ce/BwXCvWkFX/uKlouHEIIMG2cBf2w53Utks5wgASHTELpJ585MZOToJV4jvHQZZhYymEhz75aa5XTRZHqBOMdBL98CWlL4U5LYoUlPudQ9DIJ8DPgYHIhtgDTv3fX3D7qbZXIOHHOnpVjfzejXeMZ88goyhOsfpnl8SqIsp0QuVi3SpjicQBphqreZTA9pMi3qPyyHdPbjxHZXmw0EqQf2k14ODo1ee39zeRVQnZP+p0nAj8k5GhxA+qfe4i+40AasjTukXrt9hi80b843kue3tCV/ixbWPD9vBdIpzNwPCYPuUj4H24WbT75rFHY7OFmfIZLQJMam6RnDNl1D0WAGpk/73lhAH9bZRzQDfxe3rK3c7GAYt+OQ5Hc5E2qotO2x59UK49lJuO8aAKUTmyh4EPcS9ZaDVq5wYl1dsDt6HPDB7IqCcb4uWuQmPdc031fm11dG6BtRPiriw/evZZGyJZ 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)(346002)(136003)(376002)(396003)(39860400002)(36840700001)(40470700004)(46966006)(40460700003)(26005)(82740400003)(70586007)(70206006)(41300700001)(5660300002)(40480700001)(8936002)(81166007)(86362001)(4326008)(2906002)(8676002)(356005)(478600001)(47076005)(186003)(336012)(82310400005)(83380400001)(2616005)(36860700001)(6916009)(316002)(36756003)(426003)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5740 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT017.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b1d9e21f-1fdb-4d9d-68ca-08da85bc7c2b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yd1KEwJoJczTgtwHqdIPp/V9HQbQJBfHxkv3ue5GbiaHMY0V22rXvaIiebgAiSJPmAsX6iXfgpjkbA9fXNSxop9C/aEJvz43OUv+F5z+S1l4lkRyqCoCzm/aznUTHI7UmUz4itx+LytpyK6ggbZP1Tp4IKqlPgW+mezT8L3KA1ORzkNNgEK1uW06MhFIOD8eGbQtncCRSJ9xZtEdQMuVVY8xPtJVPPvU2PDaR2cTXHUumjuYVvEaYMiH+sGqH98vKUBUK7TbbKiFNeIIn3qfiqvmF/l41Ot2C+ZYebnl08rVMn0Te+LzeVXBHgGubukRGNMA2pC6nr7dX+tX7zarC84xFBvlqMF1YOtIWcQa23Hetbmla45yJIq1wyDE2LrK0PNLHHHnlN7SHZXI8Xatyu74kkluf+CJ6jPVKNAdhBaPn4Jq5gFxy6LABmG6kJ/RfYdfCdEGnT2KrE1ocp8K3E5F7AjVJstPg3qX35QMNlGF02OptD+eW+pUvA0+f2ZL0mth0d2qXBSq7sTRPKZwCp+8Whlea4NAzxDpy722WdbL5W1WKFQJ4gfH25rloMWCyZzxZbPypaQtyRe+wOxMKOPq3JARLh4MGfvttZ2jeh1rrLKVNYubxoBKLvVaClZmVTQ8f9rl7fVp3KogsGm9Z3E/Altmf5lpB/Ea2q5rU9IPvArACPhX//kREnprjMcjuPHPW1XQhlHp2ywIKmH7jlEYJreJZop9CQ2fpwQkqyJvXQUctiAt36r6e//uhC41HAQ0Q2BLI+Oo5EYrwobP9Q== 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)(396003)(136003)(346002)(39860400002)(40470700004)(36840700001)(46966006)(36860700001)(83380400001)(86362001)(82740400003)(426003)(82310400005)(81166007)(40460700003)(70586007)(70206006)(8676002)(4326008)(8936002)(478600001)(6916009)(41300700001)(316002)(26005)(186003)(2616005)(336012)(40480700001)(5660300002)(47076005)(36756003)(2906002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2022 10:36:35.3020 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e41321f5-3e9c-40c1-1ffb-08da85bc84c4 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: VE1EUR03FT017.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2399 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,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 List-Id: Hi all, This adds function prologue/epilogue to conditionally add BTI landing pads and/or PAC code generation & authentication instructions depending on compilation flags. Regards, Victor --- newlib/libc/machine/arm/memcpy-armv7m.S | 35 +++++++++++++++++-------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/newlib/libc/machine/arm/memcpy-armv7m.S b/newlib/libc/machine/arm/memcpy-armv7m.S index c8bff36f6..793989d36 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 savepac=HAVE_PAC_LEAF mov ip, r0 #else - push {r0} -#endif + prologue 0 savepac=HAVE_PAC_LEAF +#endif /* __ARM_FEATURE_UNALIGNED */ orr r3, r1, r0 ands r3, r3, #3 bne .Lmisaligned_copy @@ -135,13 +140,13 @@ memcpy: ldr r3, [r1], #4 str r3, [r0], #4 END_UNROLL -#else /* __ARM_ARCH_7M__ */ +#else ldr r3, [r1, \offset] str r3, [r0, \offset] END_UNROLL adds r0, __OPT_MID_BLOCK_SIZE adds r1, __OPT_MID_BLOCK_SIZE -#endif +#endif /* __ARM_ARCH_7M__ */ subs r2, __OPT_MID_BLOCK_SIZE bhs .Lmid_block_loop @@ -180,10 +185,10 @@ memcpy: .Ldone: #ifdef __ARM_FEATURE_UNALIGNED mov r0, ip + epilogue savepac=HAVE_PAC_LEAF #else - pop {r0} -#endif - bx lr + epilogue 0 savepac=HAVE_PAC_LEAF +#endif /* __ARM_FEATURE_UNALIGNED */ .align 2 .Lmisaligned_copy: @@ -247,6 +252,9 @@ memcpy: /* dst is aligned, but src isn't. Misaligned copy. */ push {r4, r5} + .cfi_adjust_cfa_offset 8 + .cfi_offset 4, -(8+PAC_CFI_ADJ) + .cfi_offset 5, -(4+PAC_CFI_ADJ) subs r2, #4 /* Backward r1 by misaligned bytes, to make r1 aligned. @@ -299,6 +307,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 +332,11 @@ memcpy: #ifdef __ARM_FEATURE_UNALIGNED mov r0, ip + epilogue savepac=HAVE_PAC_LEAF #else - pop {r0} -#endif - bx lr - + epilogue 0 savepac=HAVE_PAC_LEAF +#endif /* __ARM_FEATURE_UNALIGNED */ + .cfi_endproc + .cantunwind + .fnend .size memcpy, .-memcpy -- 2.36.1