From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2056.outbound.protection.outlook.com [40.107.22.56]) by sourceware.org (Postfix) with ESMTPS id 90BE33858C2D for ; Wed, 3 Aug 2022 15:35:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 90BE33858C2D 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=jZDWoFs8glyACJS2dJ0j3HDemKJY62VM/KqEJHuPd85xYaulDvVd8RrDZVrN4QllOfIynC35i/AmjxD3Pkdz61qJGDwcfvJjzoTZ1TYdpP9lSiT/Z8FGA5x0VNv0Ca+gCEgmH420khZLhyGLn7k1YqVMw22O8dKXcRHcM7a4R8p/hksTQiOpswBcs1YYhqDJ1kWm33UFZkIMLYOcsI1F3N0fG6MKg3SoMVJH+AcoMQzt3AR/Zw28xaOLwROf7f2PHk7wjYjyn1/tpVGiU7tl6cKBVBKMUqwWoaGqua7vk/KeOwqMLZ1eI8CY8oG+ePPScDWdw75cXIdj+TeL6gVSAg== 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=FAm9y9f8wfytwvIk9Ve8jfTR2bFcJJ7uEo1OO7f4oNc=; b=NksjL8eRjNjg0Lo4ARtlgKCaFrjKP++TKQGDCBB9SO3764p/EaSNMuf//FKXXyVohWvBR/6wTnRM7Q76As2K52SJaGKloFJYzJE0nLbiPTq6P0KZpQVXOLeoKyMNWA0iNfLfvy8Jsys2qiwsY9UyfOFBHM8WaC1lZ+OCISjviVhxxS44qllkZYowaCiecyFOLVEONkQ/V/R9N9YwnyPqlenjpE64CyM7+FAoZ3dmM7Df9LKFxFw8i5/ZQNfZ9k5vbGnQEdXmc2+KQmF4dcQ6vudsudU88wTf+E/vwr3k+mDsiA4pHt372Ljh5ktP5PI7JV/uzFOSAtv7XqXAi3yk6g== 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=FAm9y9f8wfytwvIk9Ve8jfTR2bFcJJ7uEo1OO7f4oNc=; b=HJCEDpM4VIfJTiKikCW9jU4lprIaOQTWTIgOp/8E0ryQg/SFu4hfoHztJApe56tPIlf9EC56Zp9Lz5qoMq1uxfDcppglLAtSqGh4uhplZlBVI8p1/9e54VYPqi1r9I+yLgoiFOuO8HYb2yEEyGyMuqBxIgE8QN/BHo5zrGr6+MU= Received: from AM6P191CA0065.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::42) by AS8PR08MB5912.eurprd08.prod.outlook.com (2603:10a6:20b:29f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.12; Wed, 3 Aug 2022 15:35:42 +0000 Received: from AM5EUR03FT051.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:7f:cafe::51) by AM6P191CA0065.outlook.office365.com (2603:10a6:209:7f::42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.10 via Frontend Transport; Wed, 3 Aug 2022 15:35:42 +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 AM5EUR03FT051.mail.protection.outlook.com (10.152.16.246) 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:42 +0000 Received: ("Tessian outbound 6a3290ff1310:v123"); Wed, 03 Aug 2022 15:35:42 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: e30824936a46396a X-CR-MTA-TID: 64aa7808 Received: from 82f06048de2d.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3DFE3288-4071-4DA5-89A7-B2252EB735D7.1; Wed, 03 Aug 2022 15:35:35 +0000 Received: from EUR02-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 82f06048de2d.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 03 Aug 2022 15:35:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ED4rpqLu+2XBqt1BrRqVP7YSGKA5UudGT5981su9L6sT1VxaLKSj8+tjrlZtkZ7389CM47yJTjoAhSD7qOnKGtfhwzweCLhTGPTvor7SSP9LD07PN9OuUHdOpJlvwEwTOOY0unlnABS3hfnbJ9p/cCSgm4G61RjZm3EpJRc3G6dFWO2Difnu+QgWHlY8eVxFKpxqqQlZe3O/RRp0aWiad6AnC0ndyaHtiGQSZB/LyJyyogTe0Rz3fF6hdtTloyDxUzCSKfNgYWyPt4aCVtlasTkb2a++6OeIkLjtOEGuTrv1zMbxWvgc86mUx2R0w/weerF71Kb2nAXzZFKJjxUG4g== 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=FAm9y9f8wfytwvIk9Ve8jfTR2bFcJJ7uEo1OO7f4oNc=; b=Nri41BRamK4487e/xCeypZH8SIb4nxTf5gZMFfKbmMYtbDBUmFFJqp49zrECXmg6k5Rx7K665JNgtitOjuo94vL4SS3TIpB1SC7aWAOgp7lkgr4Ul1B+wQ6S6arxJW+BItvDZ+rodJv/zPB2Krc5MmRIO18VWU+VymUGNPfErPTtLYJR1I11XPnpKcwOudX5E9NEzYDBEFpjc6xTMDXaPAqdsRSY8Pkk472N8Uxc+9u+Jx78HCBX1vU8UbqxvpKEMOZkA1Pg3jlCLr/vPo6QX++fPMSVK/gXNBO61u4yGAq0w80uEoeou9kaCM101dOvGqlO7QQonClzjEmiVXCOkw== 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=FAm9y9f8wfytwvIk9Ve8jfTR2bFcJJ7uEo1OO7f4oNc=; b=HJCEDpM4VIfJTiKikCW9jU4lprIaOQTWTIgOp/8E0ryQg/SFu4hfoHztJApe56tPIlf9EC56Zp9Lz5qoMq1uxfDcppglLAtSqGh4uhplZlBVI8p1/9e54VYPqi1r9I+yLgoiFOuO8HYb2yEEyGyMuqBxIgE8QN/BHo5zrGr6+MU= Received: from DU2PR04CA0272.eurprd04.prod.outlook.com (2603:10a6:10:28c::7) by AM0PR08MB5329.eurprd08.prod.outlook.com (2603:10a6:208:185::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Wed, 3 Aug 2022 15:35:34 +0000 Received: from DBAEUR03FT052.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:28c:cafe::17) by DU2PR04CA0272.outlook.office365.com (2603:10a6:10:28c::7) 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:34 +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 DBAEUR03FT052.mail.protection.outlook.com (100.127.142.144) 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:34 +0000 Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2507.9; Wed, 3 Aug 2022 15:35:33 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) 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 5/8] newlib: libc: memcpy M-profile PACBTI-enablement Date: Wed, 3 Aug 2022 16:35:21 +0100 Message-ID: <20220803153524.20631-6-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: 6233da2a-9436-49a8-22f2-08da7565d33e X-MS-TrafficTypeDiagnostic: AM0PR08MB5329:EE_|AM5EUR03FT051:EE_|AS8PR08MB5912: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: zUsmvOy32VzIfstl0L31kAgE8FItbPVBXR6MZH6GEGgmIAILdxldY0MLPr+peDoxauTwE9Xb5vP0GsPG5cUoEQgl2msY4G55p/zKrRhiU9meDO99WHHpxgRaUDS6L4YpXggByGmt/yV/pNmP7WtDWl66/42Xe9vptvdcxBHvm1dGVUnZsfLdL9SbeN4tudUYMvO5UGabheFzN6zJNQc7BVfx/qlmJu0zQOCpSkhkF35FzqWabxSS+MyJFyTSZ6x4lhM2hdYY+Omcvj5mQso62rVFloRn+HD75b+jdg8AKKgl9iXxBG8ZlG8HV1u6tzKwjOtvD+cuYkhjDYLHRW7eJdNLLgEl+sy2a4v71GCoKaQIDfr+WOxkoSgIt9bVmNtTBY+IhJ1gQN67JHf4eep4+fZofO0reA6wc9W5xuHIyZ/LWCrTZBawAbl2mIa9+F0fSHlFx8y27patD+OwOrvj6PvWoCEjOHFLSHwuR1velXWZCVEkn6xuzHrvdfvOA7P5WeXfrEP7wchYmKOlddUiKNZ3TAHW88heHXpuoUoB4Kw00JYU79v0/vDr1P0EcJS9Cch9RzwE7n7gKNxXXEhk41O91OcCY+4ZPEr99ItLfY9fsLnvM9jrhT4+JP3VYo/DKgQJaU59/2WqL8OVBl0ynJyEF7ZWHsVCS7ToQzc1GZW2PBWSIwRyrIGobbft+s5Yy91U92wx/qMZG8Y5Bm6eSulrbCwW+3vXXATp5sutS5zdH3oz6UZvwN2SQLtnWlTQdXKGyC5HEkldy27UlXhDrEBMxiZ7HQw9YDCSRnurXgcHePRXu5fVIGw9s7otsRqf8EAqej7f+S/Bk+32QVPJnA== 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)(39860400002)(376002)(136003)(346002)(396003)(46966006)(36840700001)(40470700004)(356005)(7696005)(6666004)(41300700001)(83380400001)(478600001)(47076005)(426003)(36860700001)(336012)(186003)(81166007)(26005)(1076003)(82740400003)(8936002)(4326008)(5660300002)(2616005)(8676002)(70586007)(70206006)(86362001)(36756003)(2906002)(82310400005)(316002)(54906003)(6916009)(40480700001)(40460700003)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5329 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT051.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 105dd6f1-8d38-4773-f902-08da7565ce88 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g/nNqhzudxloWARsDMTQlYts2e0uDMly1zTVWEtWPkG2oTecdj6hQw9tnP2koR4TSd+lIsv9HPtTOj6upE3/q76/jfHxdIOE6ItoP7QsYRJ10K2VbqwNLaYTmiIh3+MUMvXOxWBdHFxqidUZtl4G2RMQgP8mbjIv8Dj3/7ckZK9AyvQ5qAXSCt0M15Mr6klzN0m8GFBW09aFxym7qVhVPUYvuu+t0MqbmIYKYqldMnijQ399D3Qpv/H9kqr+eWeRQlqxcKvtEZup7RsMnNnF+cPo3k7B7ZEeNF+qB2orNPKZ+siefxxXyPCBXd7srrwIKLkgT3IbIwhmP74gPBhLiUo2cGPMPRXMnjjZXcvoyiOKP0nL43EGBbeRdvivI4rfOh6Z8PyEGR/Uc7MrSLsAicaOkKDDdh2DsMaWbap1blzNGBds54mdB7tt6a++5A3qmOvgFSHnidF3mTAGJ1AmxxPA8CnW1wUU0UxLI2HllROVR5cW8PorIQnr2NzTd0nMSMdplEy8f1JHdmg1/+USgw30b0U/c8gCmfh9V+M9wp8EOfXhBf6oq2ZTvfF8yK3IvM/pQ6kLQY3mx3ONISADOJoPqbz06BAV9PeHMnfxJppGqHp662h0hK7qGrq67MPNSpg2df1p6t2t8zXWZulohFPFzXYCw4SFY83KmRo4ifobBpOGe+O+0QEFXn5bZ37L6vqu83kwZ51mK7h9sI7xnfnwgpwrpP0Lk3xDJskxOGPXYAx3OU61MSw6b+25/dq+In0g/LPknfILVz07xxaI3nEdDIUvGfdqUEn12OvXQrgj/jVgVaIqfpxyoJ23nle5 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)(136003)(396003)(39860400002)(346002)(376002)(36840700001)(46966006)(40470700004)(47076005)(426003)(336012)(186003)(1076003)(36756003)(26005)(36860700001)(2906002)(6666004)(82310400005)(2616005)(41300700001)(7696005)(478600001)(83380400001)(86362001)(5660300002)(316002)(82740400003)(40460700003)(54906003)(8676002)(81166007)(40480700001)(4326008)(70206006)(8936002)(70586007)(6916009); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2022 15:35:42.1932 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6233da2a-9436-49a8-22f2-08da7565d33e 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: AM5EUR03FT051.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5912 X-Spam-Status: No, score=-13.2 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:46 -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/memcpy-armv7m.S | 74 ++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 8 deletions(-) diff --git a/newlib/libc/machine/arm/memcpy-armv7m.S b/newlib/libc/machine/arm/memcpy-armv7m.S index c8bff36f6..d9b9e4984 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 "pacbti.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,31 @@ memcpy: #ifdef __ARM_FEATURE_UNALIGNED /* In case of UNALIGNED access supported, ip is not used in function body. */ + pacbti_prologue mov ip, r0 #else +#if __HAVE_PAC_LEAF +#if __ARM_FEATURE_BTI_DEFAULT + pacbti ip, lr, sp +#else + pac ip, lr, sp +#endif /* __ARM_FEATURE_BTI_DEFAULT */ + .cfi_register 143, 12 + push {r0, ip} + .save {r0, ra_auth_code} + .cfi_def_cfa_offset 8 + .cfi_offset 0, -8 + .cfi_offset 143, -4 +#else +#if __ARM_FEATURE_BTI_DEFAULT + bti +#endif /* __ARM_FEATURE_BTI_DEFAULT */ push {r0} -#endif + .save {r0} + .cfi_adjust_cfa_offset 4 + .cfi_offset 0, -4 +#endif /* __HAVE_PAC_LEAF */ +#endif /* __ARM_FEATURE_UNALIGNED */ orr r3, r1, r0 ands r3, r3, #3 bne .Lmisaligned_copy @@ -135,13 +160,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 +205,21 @@ memcpy: .Ldone: #ifdef __ARM_FEATURE_UNALIGNED mov r0, ip + pacbti_epilogue +#else +#if __HAVE_PAC_LEAF + pop {r0, ra_auth_code} + .cfi_restore 0 + .cfi_restore 143 + .cfi_def_cfa_offset 0 + aut ip, lr, sp #else pop {r0} -#endif - bx lr + .cfi_restore 0 + .cfi_def_cfa_offset 0 +#endif /* __HAVE_PAC_LEAF */ + bx lr +#endif /* __ARM_FEATURE_UNALIGNED */ .align 2 .Lmisaligned_copy: @@ -247,6 +283,15 @@ memcpy: /* dst is aligned, but src isn't. Misaligned copy. */ push {r4, r5} + .save {r4, r5} + .cfi_adjust_cfa_offset 8 +#if __HAVE_PAC_LEAF /* we pushed just the pac code. */ + .cfi_offset 4, -12 + .cfi_offset 5, -8 +#else /* we haven't pushed anything to stack. */ + .cfi_offset 4, -8 + .cfi_offset 5, -4 +#endif /* __HAVE_PAC_LEAF */ subs r2, #4 /* Backward r1 by misaligned bytes, to make r1 aligned. @@ -299,6 +344,7 @@ memcpy: adds r2, #4 subs r1, ip pop {r4, r5} + .cfi_adjust_cfa_offset -8 #endif /* __ARM_FEATURE_UNALIGNED */ @@ -321,9 +367,21 @@ memcpy: #ifdef __ARM_FEATURE_UNALIGNED mov r0, ip + pacbti_epilogue +#else +#if __HAVE_PAC_LEAF + pop {r0, ra_auth_code} + .cfi_restore 0 + .cfi_restore 143 + .cfi_def_cfa_offset 0 + aut ip, lr, sp #else pop {r0} -#endif - bx lr - + .cfi_restore 0 + .cfi_def_cfa_offset 0 +#endif /* __HAVE_PAC_LEAF */ + bx lr +#endif /* __ARM_FEATURE_UNALIGNED */ + .cfi_endproc + .fnend .size memcpy, .-memcpy -- 2.36.1