From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130044.outbound.protection.outlook.com [40.107.13.44]) by sourceware.org (Postfix) with ESMTPS id C5662385C401 for ; Wed, 24 Aug 2022 10:31:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C5662385C401 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=ckA8UtoJV24wCQLlbqxbCD1fajZFtzw0Ilsf27NLn/dawdhOyCl2hF+VAar/yB5KnSEjmREwKv6nCRzJgY8wkN8PFTFK+/Ks3Fl4CfmTpAcUleqwJ5goyeXJZGNnwwqZWkRc39tfqRL/KuhXYd34sbZVzYAr+WSb7tC8hFvIAn9AQ6PHQXqH7tM8NDVYWUkDSqvCnDBtad0LV1yxEtgADmlGSuEVrlMdxjFEzhO5zqhERd59w7iJT+GICj54oUUBKACYlAy+AbVp3ZvIgRAkv9GCb+rMpPWz7LvpOn1N9fpDutgl/ZOwMxX/gI4wo9OiEHR9jeOi+7nc2+rzNrEgrQ== 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=ZvpE9L280+a1ilQGa7sw0QANRiwVRopF6JPjtEk6xKs=; b=MkIitIu+KfTtgn5zVQS9u3Y0CnCp9+tXz1EMLxGxHR5vbAM2AhrciyX5QI4ZAOkF1X87O7tHPi5JanxCU66z6FXVrs4rhjU5vFbnzZR9N4JU/AtfHUq54W59SFZwCZLj7ii43uLQNBYwJBpSIzXQ6wp8dnNszT550aFNR5vZh0GvVsP1vUJyW1VBzoPdDJwshLK+/lXnlJaDxnEiYhlOheHTEIIx0dcokCFhhMGtkMkPsQSIwWT/EKTPrz0z6o2yACLSYGaErDm1ety9k32wgvxF13CCtDqgUxMDr/ZbHaMsczLjxMdsAMXSoQL51JgAGPlKK82ner20wU+NWODirA== 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=ZvpE9L280+a1ilQGa7sw0QANRiwVRopF6JPjtEk6xKs=; b=RGRsHCGhmRxi+YuBya67t+HuBNNY010j+Z/gnZ8mq8TbNtRSY7fq3F6Qz/pp78KlDbah/jfNAUte8zY5nan98q2C7GgFovOBB8VC3bgSUCDICuN+BMwk3dTj4UCWfZYX79ZUNMSsIaw7gMvB2hY4IZfsHX7JR08GmNOLAZ6bVKM= Received: from AS9PR06CA0305.eurprd06.prod.outlook.com (2603:10a6:20b:45b::24) by VE1PR08MB4813.eurprd08.prod.outlook.com (2603:10a6:802:ae::13) 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:30:57 +0000 Received: from VE1EUR03FT052.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:45b:cafe::18) by AS9PR06CA0305.outlook.office365.com (2603:10a6:20b:45b::24) 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:30:57 +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 VE1EUR03FT052.mail.protection.outlook.com (10.152.19.173) 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:30:56 +0000 Received: ("Tessian outbound cc6a8ab50b6b:v123"); Wed, 24 Aug 2022 10:30:55 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d3a0366be701beaa X-CR-MTA-TID: 64aa7808 Received: from 229251c9e77b.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B506D8F0-EE85-4294-A796-01CAC153C2DE.1; Wed, 24 Aug 2022 10:30:49 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 229251c9e77b.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 24 Aug 2022 10:30:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DgKo5pAnyB7noidMqK+CbFikzHEI40+DNAAVkrxA5xGdfh77008XyUr8dq5Jvb1JtfvGf7u5SVMAg5rpd8HgElu8BwiIc4jtxx9sFkeBJU0W+FFCb5lKSjP3wjPGK04ziTalH3Rszw2K/cB+Xt6Z2ZWShf5zJSf6oFhhDylzw/904Ip/8nns/DRmKN6dyDOrMxngtF1ksXQIwO2bUfqMcEbf1HKJjt3T0Yfyuli0xqTE/HUyx47fnEfc/HjQJRSQG2KXPty3JM+BPTlj8sAX0ePwC6DGGpImPkrhowwyfVwXHQIVneBl/rofOSxEszxIufMLaiNvOrZeNkRqSLWxHQ== 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=ZvpE9L280+a1ilQGa7sw0QANRiwVRopF6JPjtEk6xKs=; b=hh5SU47ODdweZv7P85jn2wa1GuwQ0CCJMxApaSjE9qopaMANpT0uf5Ygzc8pyPR7ZxDCz9ZOdtzHzI/CVHgjH1SHuSSoxnO4DIwj9cVJbpY5nKOxGabfbCRXp0xqf8eAnRaPhuCK3lb6KH7htfr7hsWpa1op2Pl8LPbwWcTMeiyQtJ02yz/GbK5+O+/Jz6BK/9+GS5iWm+GmzKVNMFiNB3k0VOsqknXFYZbkg8/R5Z6wGicKE3o8z2JT3pfS8G5zGrfUishpN5r0Tu9zh4fEf8nIMiX5lCs2jPD1y6l1vpLsYIXGH0M0n0yqYK4U9/y4JwtD52gERH17hKk14E0a+Q== 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=ZvpE9L280+a1ilQGa7sw0QANRiwVRopF6JPjtEk6xKs=; b=RGRsHCGhmRxi+YuBya67t+HuBNNY010j+Z/gnZ8mq8TbNtRSY7fq3F6Qz/pp78KlDbah/jfNAUte8zY5nan98q2C7GgFovOBB8VC3bgSUCDICuN+BMwk3dTj4UCWfZYX79ZUNMSsIaw7gMvB2hY4IZfsHX7JR08GmNOLAZ6bVKM= Received: from AS8PR05CA0010.eurprd05.prod.outlook.com (2603:10a6:20b:311::15) by PAXPR08MB7106.eurprd08.prod.outlook.com (2603:10a6:102:204::15) 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:30:48 +0000 Received: from VE1EUR03FT029.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:311:cafe::85) by AS8PR05CA0010.outlook.office365.com (2603:10a6:20b:311::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.24 via Frontend Transport; Wed, 24 Aug 2022 10:30:47 +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 VE1EUR03FT029.mail.protection.outlook.com (10.152.18.107) 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:30:47 +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:30:46 +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:30:46 +0000 From: "Victor L. Do Nascimento" To: CC: Subject: [PATCH v3 2/8] newlib: libc: strcmp 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:30:46 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: 0cb20aec-f2df-4f36-610f-08da85bbbaed X-MS-TrafficTypeDiagnostic: PAXPR08MB7106:EE_|VE1EUR03FT052:EE_|VE1PR08MB4813: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: y3AXKEA9Is+A6KrWYdSmTb0TtNy1S+S1DK1jGOGRxhmEoyP+e+Lb9IG+joSPuLmHcEWXQgy4dB6YJjWHCayyLa9U+5SZQiuPLADuA2StjSHFU6Q3r+ckta06x2Wp1dfOfnZvruD0uprQZ+w2Rch4ThtTzBjvIhGhiuGTWNJCdAhS0z34AW4Qkq/L/9h4Gwwea2i7FdKx5dkahikM9lRLdr1+3RpU7D9VWvq0Pa8dc05+jbqhP4MFsHg0JGxjgB4MMBNFLWKCggaronCEC03BR7DlDNt23kTqzLXkjh0XtgYYhtVcLbKmK6pFlSfmuTPB6bQPYJ0wNLvnAQjxXkDNBRna5gIbuliPjJUKkhYztsp/+s4ISi8/iGeBl9+qNW3HmwvJyCGwGh9xy1ea3fcRy+YuG96qXmKUH7BJPrE5SkenJiyI5ZX1ZhLfO+pncMFwgUczx7zLGf198SalwxDscFoEAi+j9KJ3hJVtcseK15Y0q2lkxbxEYbX24EVw337NMO+c56lzZ5uVyLXuscD6L4IHueywXsHKx70vGJOhho3WOK0EkQVdtSDGtwpY0WU0GjohYq6zT5FGe5umiE0t7f7bpLQTanVqVN51eGFDUktwc93+TAyG0FMO8IWFskrYkbDuK8xpZiBKkF974dnJpSXjP3vrXK7QcnBXIBC7jBp2X0GuHtjl6gXqYb51mjR4CT9tXCseMzTS0wT9x0jQN/ELYo35yQYn9qu8LKmsXBc0OShX6Ruzot1EcpnTZeT83qOVBjNIXpjgE1Xw03KXr25dsy/f8U9vOg4SYqeRdOABy5sqxc77YoPAk+D0Na7iG1fM6XJlq/byAA+zHVH1dA== 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)(396003)(346002)(40470700004)(46966006)(36840700001)(83380400001)(336012)(2616005)(186003)(36756003)(36860700001)(478600001)(41300700001)(26005)(2906002)(426003)(47076005)(40460700003)(82740400003)(5660300002)(81166007)(82310400005)(8936002)(6916009)(316002)(8676002)(4326008)(40480700001)(70586007)(70206006)(356005)(86362001)(40753002)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7106 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT052.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: d9a27060-5445-48ef-6676-08da85bbb587 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zV72iyGrM+oRhRddixBFYTr3UmOIKjqVyeU6Lr9VxNtnmxfccr42r5lDm2pJA98a/UvasIxFIdsKFByRjzKpwt2oOp0wBUrmkamoIy7KLMLA1/gEYVnWY/jCTystkhPNstR9hYoy5uT5ee4s1Mi6eZsb3I9f4oelKlYinX7yr0k6RtiFSf+1Qu33awqRJRfd8uBYeviJ7omuxh2UfCxetlg27V7rhTaXxNPDSIHUX8jPVtNJ0muY89EhztwggORKZ35KZoTEN+MFs+WKTuacAAgKinqM68eWZd7S4hOetmuHFBGN4/SU/TX36sZnZFsN4Dpsz2ngdVRg3kumFkGp61NOcVyZ0sEyKpeSgJmfPGjitgTq76chxmueAwCpvqXEPAlKp/XA7mssa7XW358vvM1/vYvQX+TVXDssqW0gXHa0EXUuz5eiWKeqoCEzHCvoUDqJtpZd+G0hF+eNjk0u70Fd6o4cWyrlOHzcDmbKkuIQIevJftn+EPtTuj1wruPCfCFfa3sAHM66fGwtPhcUXEIH7cPyUIqQKjDq/s32djE+v5Bp+KYH9x31M/Ftzp5ZZmUg4KcZlGePAE9loYmcZzNtAut1tfgH0gqhr2w/csEIHXUVOt+9xFt8+3rX3/MwhqeojTITeFDZ0bZXbDD7EP0QyH11qPA1Tiqiw0e8dg6UZEqVHaAqqE4E5OJMAH533g0hZsHsGCbCM7yKspjDOEGkIOh2NiGP6+wyWg3MVe+wJCrMUR31WVL4uIX+5qxdeM8kyaxywux/HmBaVN/2mzh/uKTrldHnknstNXk12vU= 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)(346002)(136003)(376002)(396003)(39860400002)(36840700001)(40470700004)(46966006)(40460700003)(26005)(82740400003)(70586007)(70206006)(41300700001)(5660300002)(40480700001)(8936002)(81166007)(86362001)(4326008)(2906002)(8676002)(478600001)(47076005)(186003)(336012)(82310400005)(83380400001)(2616005)(36860700001)(6916009)(316002)(36756003)(426003)(40753002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2022 10:30:56.6750 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0cb20aec-f2df-4f36-610f-08da85bbbaed 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: VE1EUR03FT052.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4813 X-Spam-Status: No, score=-13.0 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. This patch enables PACBTI for all relevant variants of strcmp: * Newlib for armv8.1-m.main+pacbti * Newlib for armv8.1-m.main+pacbti+mve * Newlib-nano Regards, Victor --- newlib/libc/machine/arm/strcmp-arm-tiny.S | 8 ++++- newlib/libc/machine/arm/strcmp-armv7.S | 42 +++++++++++++++-------- newlib/libc/machine/arm/strcmp-armv7m.S | 24 ++++++------- 3 files changed, 46 insertions(+), 28 deletions(-) diff --git a/newlib/libc/machine/arm/strcmp-arm-tiny.S b/newlib/libc/machine/arm/strcmp-arm-tiny.S index 607a41daf..0bd2a2e6e 100644 --- a/newlib/libc/machine/arm/strcmp-arm-tiny.S +++ b/newlib/libc/machine/arm/strcmp-arm-tiny.S @@ -29,10 +29,14 @@ /* Tiny version of strcmp in ARM state. Used only when optimizing for size. Also supports Thumb-2. */ +#include "arm_asm.h" + .syntax unified def_fn strcmp + .fnstart .cfi_sections .debug_frame .cfi_startproc + prologue 1: ldrb r2, [r0], #1 ldrb r3, [r1], #1 @@ -42,6 +46,8 @@ def_fn strcmp beq 1b 2: subs r0, r2, r3 - bx lr + epilogue .cfi_endproc + .cantunwind + .fnend .size strcmp, . - strcmp diff --git a/newlib/libc/machine/arm/strcmp-armv7.S b/newlib/libc/machine/arm/strcmp-armv7.S index 2f93bfb73..5bd27cb9c 100644 --- a/newlib/libc/machine/arm/strcmp-armv7.S +++ b/newlib/libc/machine/arm/strcmp-armv7.S @@ -45,6 +45,8 @@ .thumb .syntax unified +#include "arm_asm.h" + /* Parameters and result. */ #define src1 r0 #define src2 r1 @@ -91,8 +93,9 @@ ldrd r4, r5, [sp], #16 .cfi_restore 4 .cfi_restore 5 + .cfi_adjust_cfa_offset -16 sub result, result, r1, lsr #24 - bx lr + epilogue savepac=HAVE_PAC_LEAF #else /* To use the big-endian trick we'd have to reverse all three words. that's slower than this approach. */ @@ -112,22 +115,28 @@ ldrd r4, r5, [sp], #16 .cfi_restore 4 .cfi_restore 5 + .cfi_adjust_cfa_offset -16 sub result, result, r1 - bx lr + epilogue savepac=HAVE_PAC_LEAF #endif .endm + .text .p2align 5 + .fnstart + .cfi_sections .debug_frame + .cfi_startproc .Lstrcmp_start_addr: #ifndef STRCMP_NO_PRECHECK .Lfastpath_exit: sub r0, r2, r3 - bx lr + epilogue savepac=HAVE_PAC_LEAF nop #endif def_fn strcmp + prologue savepac=HAVE_PAC_LEAF #ifndef STRCMP_NO_PRECHECK ldrb r2, [src1] ldrb r3, [src2] @@ -136,16 +145,14 @@ def_fn strcmp cmpcs r2, r3 bne .Lfastpath_exit #endif - .cfi_sections .debug_frame - .cfi_startproc strd r4, r5, [sp, #-16]! - .cfi_def_cfa_offset 16 - .cfi_offset 4, -16 - .cfi_offset 5, -12 + .cfi_adjust_cfa_offset 16 + .cfi_offset 4, -(16+PAC_CFI_ADJ) + .cfi_offset 5, -(12+PAC_CFI_ADJ) orr tmp1, src1, src2 strd r6, r7, [sp, #8] - .cfi_offset 6, -8 - .cfi_offset 7, -4 + .cfi_offset 6, -(8+PAC_CFI_ADJ) + .cfi_offset 7, -(4+PAC_CFI_ADJ) mvn const_m1, #0 lsl r2, tmp1, #29 cbz r2, .Lloop_aligned8 @@ -270,7 +277,6 @@ def_fn strcmp ldr data1, [src1], #4 beq .Laligned_m2 bcs .Laligned_m1 - #ifdef STRCMP_NO_PRECHECK ldrb data2, [src2, #1] uxtb tmp1, data1, ror #BYTE1_OFFSET @@ -314,7 +320,8 @@ def_fn strcmp mov result, tmp1 ldr r4, [sp], #16 .cfi_restore 4 - bx lr + .cfi_adjust_cfa_offset -16 + epilogue savepac=HAVE_PAC_LEAF #ifndef STRCMP_NO_PRECHECK .Laligned_m1: @@ -364,8 +371,9 @@ def_fn strcmp /* R6/7 Not used in this sequence. */ .cfi_restore 6 .cfi_restore 7 + .cfi_adjust_cfa_offset -16 neg result, result - bx lr + epilogue savepac=HAVE_PAC_LEAF 6: .cfi_restore_state @@ -441,7 +449,8 @@ def_fn strcmp /* R6/7 not used in this sequence. */ .cfi_restore 6 .cfi_restore 7 - bx lr + .cfi_adjust_cfa_offset -16 + epilogue savepac=HAVE_PAC_LEAF .Lstrcmp_tail: .cfi_restore_state @@ -463,7 +472,10 @@ def_fn strcmp /* R6/7 not used in this sequence. */ .cfi_restore 6 .cfi_restore 7 + .cfi_adjust_cfa_offset -16 sub result, result, data2, lsr #24 - bx lr + epilogue savepac=HAVE_PAC_LEAF .cfi_endproc + .cantunwind + .fnend .size strcmp, . - .Lstrcmp_start_addr diff --git a/newlib/libc/machine/arm/strcmp-armv7m.S b/newlib/libc/machine/arm/strcmp-armv7m.S index cdb4912df..989886574 100644 --- a/newlib/libc/machine/arm/strcmp-armv7m.S +++ b/newlib/libc/machine/arm/strcmp-armv7m.S @@ -29,6 +29,8 @@ /* Very similar to the generic code, but uses Thumb2 as implemented in ARMv7-M. */ +#include "arm_asm.h" + /* Parameters and result. */ #define src1 r0 #define src2 r1 @@ -44,8 +46,10 @@ .thumb .syntax unified def_fn strcmp + .fnstart .cfi_sections .debug_frame .cfi_startproc + prologue savepac=HAVE_PAC_LEAF eor tmp1, src1, src2 tst tmp1, #3 /* Strings not at same byte offset from a word boundary. */ @@ -106,7 +110,7 @@ def_fn strcmp lsrs result, result, #24 subs result, result, data2 #endif - bx lr + epilogue savepac=HAVE_PAC_LEAF #if 0 @@ -214,12 +218,12 @@ def_fn strcmp cmpcs data1, data2 beq .Lstrcmp_unaligned sub result, data1, data2 - bx lr + epilogue savepac=HAVE_PAC_LEAF 2: stmfd sp!, {r5} - .cfi_def_cfa_offset 4 - .cfi_offset 5, -4 + .cfi_adjust_cfa_offset 4 + .cfi_offset 5, -(4+PAC_CFI_ADJ) ldr data1, [src1], #4 and tmp2, src2, #3 @@ -353,10 +357,7 @@ def_fn strcmp .Lstrcmp_done_equal: mov result, #0 .cfi_remember_state - ldmfd sp!, {r5} - .cfi_restore 5 - .cfi_def_cfa_offset 0 - bx lr + epilogue 5 savepac=HAVE_PAC_LEAF .Lstrcmp_tail: .cfi_restore_state @@ -370,9 +371,8 @@ def_fn strcmp S2LOEQ data2, data2, #8 beq .Lstrcmp_tail sub result, r2, result - ldmfd sp!, {r5} - .cfi_restore 5 - .cfi_def_cfa_offset 0 - bx lr + epilogue 5 savepac=HAVE_PAC_LEAF .cfi_endproc + .cantunwind + .fnend .size strcmp, . - strcmp -- 2.36.1