From patchwork Fri Oct 8 12:17:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejas Belagod X-Patchwork-Id: 46001 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2CED73857C5F for ; Fri, 8 Oct 2021 12:18:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2CED73857C5F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1633695508; bh=QtR4QXKUN4PSPtr3JQ1UPxhSDfuX8e5E12ENnbC2Sr0=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=N6eNTyxdiauQ/4+C9PaEXcV/F6ikOsigCO/65hazpaKe8VxSDQwKmKhJXMzNRKxoW aSQxT2raLUUh/9dDXuhbUwL5fXfHO3kIDaSe9JhpV94PX9SHVW6CyHSSKWUDA9j7o/ qX7tS7d8NQC5jDQne3Al4SECIKWC0G1yZ9rECc+0= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2051.outbound.protection.outlook.com [40.107.22.51]) by sourceware.org (Postfix) with ESMTPS id 74A173857C76 for ; Fri, 8 Oct 2021 12:17:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 74A173857C76 Received: from AM5PR0601CA0055.eurprd06.prod.outlook.com (2603:10a6:206::20) by AM6PR08MB3384.eurprd08.prod.outlook.com (2603:10a6:20b:4a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Fri, 8 Oct 2021 12:17:37 +0000 Received: from AM5EUR03FT058.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:0:cafe::ca) by AM5PR0601CA0055.outlook.office365.com (2603:10a6:206::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 12:17:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT058.mail.protection.outlook.com (10.152.17.48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 12:17:36 +0000 Received: ("Tessian outbound 16951d3c485e:v103"); Fri, 08 Oct 2021 12:17:36 +0000 X-CR-MTA-TID: 64aa7808 Received: from f0af66ef1e46.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 6871E242-6BE1-4ACE-A28B-98F5860E5CD5.1; Fri, 08 Oct 2021 12:17:30 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f0af66ef1e46.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Oct 2021 12:17:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BoVJOLt165+5oj0QoTSixhPIDNhz6C6UnZdmlabdrFFZb5jf1E3WOROqHFLk9TJlhG5DJ/zuiuSB37qDq/cOU6zJY5QlWhRlwHcVeCZjyXwIidaaoA06hp5fdMqga8jAAjfkSOgISlBh5OJputBMBEoVvKhLpQ+9qiie4Jnn7BkQ1HCy9L/HWQPMNE5ucP8ODzoB7EeJWg9oCAIEldKdXZbuMZvGou2l+j2T3eGSoCXBnndFHbCpIjGW7fma9P1T8upPrbOQaEizUQ013zz2K3J9Pfc3fKUn6bZMnZGLlncjiX8NF7keMrE5GiCCdYYJ7MWk4rryXVjfY+Ve82oL6g== 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=QtR4QXKUN4PSPtr3JQ1UPxhSDfuX8e5E12ENnbC2Sr0=; b=QYi4lPPBvuJ5MdZNpzBPkWluq/c1bICpz/nUetdaAPrQdsWfPb6Hy7spNZIlmYukrVm9UMwMAwiLQ41Q7zX5iUjUJD8i3B8smvEWx+kZst74BR46ZgtZAn2hOat28VtcOBRkTXDv4Oc6XL+DQWx4i31htMAxc8J+d5NFu1yxop+f48B8i7bp3CHD6rk0fXS2OV7Iy3eDxtvEdTW4QhQrDu7lTND/CcjmfwYlNPpbFC4FrfPtezUyhC3v1rK0oIXqeBfrXbI7hEYgCY3pCTIFYHVSYKIjVPxmUbL0g21L90EbqBM4A0di91P0ZNnHEOIr5HfiVpLR7AN3AAO3t0kfAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com (2603:10a6:203:39::22) by AM5PR0801MB1906.eurprd08.prod.outlook.com (2603:10a6:203:48::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.19; Fri, 8 Oct 2021 12:17:28 +0000 Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec]) by AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec%9]) with mapi id 15.20.4566.022; Fri, 8 Oct 2021 12:17:27 +0000 To: "gcc-patches@gcc.gnu.org" Subject: [Patch 1/7, Arm, GCC] Add Armv8.1-M Mainline target feature +pacbti. Thread-Topic: [Patch 1/7, Arm, GCC] Add Armv8.1-M Mainline target feature +pacbti. Thread-Index: Ade8OyCVlqmWWdKARPe4O850r7omiw== Date: Fri, 8 Oct 2021 12:17:27 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: 9A505FDBF08B4D4BAB5AC10FD491C044.0 x-checkrecipientchecked: true Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 9351593b-9ed1-4bd8-c813-08d98a559d65 x-ms-traffictypediagnostic: AM5PR0801MB1906:|AM6PR08MB3384: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: d+dovtPtNbE58fSO5H2scIDA6UVd1bKR5x8snmutvWq1SoG7ICstQ+Ru824kFMJ3KcQdnZrlc1+jlyD8k3JWkkMd4R+HkQk+5E5TB7ak1b3q0yFAoCctX+F364wAbW0QuhYbhZimy/Gnalw3ZoFLjYmApbm/q5rsf2OVMptEwb8Fzdq0ytTrtOnqn+NetkFm+eF012DD0/kKqNiVtG0Bhf9kw0p5F+lnr6X1RSrJzrZU67UzgOv/NExa1ODjkrx5hlSV0gKxpGFn33uN1+NKN+zrTPd3a0TNahQDbtP4svtts3lnIXHEiOm2TANWmW7HOXWHWNFk6Ax0kdeqNIFKaHcwFHK0VYjTStTKdhYhVWtsaYadaRYKaP1MDu1VxDStmG16lKd+P21mQ426PNUA/4pfQCI+tc7BW08yzhJevRRCu3Nub1sdzdxsC0dQStO5B9crL2PFHFW4VTDJpJVcgBf2mlIbTAdWU4lQbZgVXlthUZ2DqOvQ0Qx0eTJZ4P8eAU9G50LOEhJ1NfPWJppAxyWmJbkIs9rrPuJWjZXehelvVTHRMKl7PWiTvbg60eirRGGfHovsH/yBAHn3fI2oZRvHxZZA6VWWeXNmsv4p5RnDVLYxwBg6Q63ztVBrvRmqaAgxr9H1SrALzSjCcDRuQJeMueAmuHCvj3BX0Uyw93yPxLD3dvp21QnGHHp63QOq/BWFatxXROBHP907wGmcsw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM5PR0801MB1844.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(6916009)(52536014)(33656002)(71200400001)(8676002)(122000001)(4744005)(26005)(38100700002)(5660300002)(9686003)(38070700005)(86362001)(55016002)(316002)(508600001)(66446008)(64756008)(66476007)(7696005)(8936002)(2906002)(186003)(66556008)(6506007)(99936003)(76116006)(66946007)(83380400001); DIR:OUT; SFP:1101; x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1906 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: c2f7875f-b1b8-4757-aab7-08d98a559830 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EoRbWXvm9UArr7KvDvwl1b3y0359iDzH0nvXTrGCTU9PagxS0SdPPBx6gu3UtjzybYhCIhzexyMO5oIThpa+JLo48edgSt94LpKvHu1Jvo0UFRd3QLBDus6eEGiaG8AxhtH2R1+V9SbEID/kv87uauo9rRuZPM83NlYn7bIJHQsgdsBfkJAF5J/Wl5qnveKywm9et78OFX1JEAZkhwznWCSEPu2/nNaHDGbQq4dA9TdU8O7j99p7gYdD+2ZU7TPmQj8UucuNzxNzQqZOFHTCWhPLtGXh2hBC/zl5WbAM25AEFlCNyQH38yd2vM4J51mnmBJOpcp+t31tC1ErpIHSTKF2nmtkEl8j0U4VweiPOlVAc0Jxxv80Ifb99gEv6pwWQBKX1x3G2PVXsyQd3VLqbAGIieUN3Q9M+9pjpIGxTLwBpZLPVlT25mzuNw8mKgQz5NGroCtAbR30H9d93TILJmcxa/Fs7dDeVDf7qHnLiErzWGJNw87M0oJ3nhm5LVWfnRSkDiKmo9MKMAkpVcr/5dqqv94ugsCb0yrWLbWflH5WKt4cd8PLgaKbZOUdFrNK+2zBbkHaHvriazXci88p5+BAf+RbVNf0nWMH7dQ5GW66w6W7kSL1OxHiunmUVmRmpwIKAujuDH1EECUMnXNeurSVgZYm8pj495fENNpUuXmMogSu6e3W/bL1gRLgJMieTAB0ExXGLP8QvddnbsrhnA== 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:(4636009)(36840700001)(46966006)(336012)(99936003)(356005)(52536014)(186003)(83380400001)(70206006)(26005)(21480400003)(86362001)(70586007)(81166007)(6916009)(47076005)(8936002)(82310400003)(55016002)(5660300002)(316002)(33656002)(7696005)(2906002)(36860700001)(8676002)(235185007)(6506007)(9686003)(508600001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 12:17:36.6562 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9351593b-9ed1-4bd8-c813-08d98a559d65 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: AM5EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3384 X-Spam-Status: No, score=-13.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tejas Belagod via Gcc-patches From: Tejas Belagod Reply-To: Tejas Belagod Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, This patch adds the -march feature +pacbti to Armv8.1-M Mainline. This feature enables pointer signing and authentication instructions on M-class architectures. Tested on arm-none-eabi. OK for trunk? 2021-10-04 Tejas Belagod gcc/Changelog: * config/arm/arm-cpus.in: Define new feature pacbti. * config/arm/arm.h (TARGET_HAVE_PACBTI): New. diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in index d0d0d0f1c7e4176fc4aa30d82394fe938b083a59..8a0e9c79682766ee2bec3fd7ba6ed67dff69dbad 100644 --- a/gcc/config/arm/arm-cpus.in +++ b/gcc/config/arm/arm-cpus.in @@ -223,6 +223,10 @@ define feature cdecp5 define feature cdecp6 define feature cdecp7 +# M-profile control flow integrity extensions (PAC/AUT/BTI). +# Optional from Armv8.1-M Mainline. +define feature pacbti + # Feature groups. Conventionally all (or mostly) upper case. # ALL_FPU lists all the feature bits associated with the floating-point # unit; these will all be removed if the floating-point unit is disabled @@ -741,6 +745,7 @@ begin arch armv8.1-m.main option nofp remove ALL_FP option mve add MVE option mve.fp add MVE_FP + option pacbti add pacbti option cdecp0 add cdecp0 option cdecp1 add cdecp1 option cdecp2 add cdecp2 diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 015299c15346f1bea59d70fdcb1d19545473b23b..8e6ef41f6b065217d1af3f4f1cb85b2d8fbd0dc0 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -335,6 +335,12 @@ emission of floating point pcs attributes. */ isa_bit_mve_float) \ && !TARGET_GENERAL_REGS_ONLY) +/* Non-zero if this target supports Armv8.1-M Mainline pointer-signing + extension. */ +#define TARGET_HAVE_PACBTI (arm_arch8_1m_main \ + && bitmap_bit_p (arm_active_target.isa, \ + isa_bit_pacbti)) + /* MVE have few common instructions as VFP, like VLDM alias VPOP, VLDR, VSTM alia VPUSH, VSTR and VMOV, VMSR and VMRS. In the same manner it updates few registers such as FPCAR, FPCCR, FPDSCR, FPSCR, MVFR0, MVFR1 and MVFR2. All From patchwork Fri Oct 8 12:17:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejas Belagod X-Patchwork-Id: 46002 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E95403857C5D for ; Fri, 8 Oct 2021 12:19:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E95403857C5D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1633695574; bh=V/ckW+Ppz1C8A+WjXGa9n+fyWnWVkPV4sPFFK86ye5A=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=AbiAP4CRSoGnBPjsPBTM9k8F+LgiWuxAhLVkte6N2ftZ5W9QYdahLwbEqfoMwb/ZR jw+o47DXhZN8BvAdDSRkrF3AFsn7PZEpgl49GgIEbLr6gOUEpjdcKNjU5TF6OTY26v K5yU8Yapuls08yCdQkUzX4o8rGApDSqZnOyMHa4I= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2047.outbound.protection.outlook.com [40.107.20.47]) by sourceware.org (Postfix) with ESMTPS id E91AE3857809 for ; Fri, 8 Oct 2021 12:17:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E91AE3857809 Received: from AM6P191CA0077.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8a::18) by HE1PR0801MB1945.eurprd08.prod.outlook.com (2603:10a6:3:4f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.19; Fri, 8 Oct 2021 12:17:43 +0000 Received: from AM5EUR03FT051.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8a:cafe::1) by AM6P191CA0077.outlook.office365.com (2603:10a6:209:8a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 12:17:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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; 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.4587.18 via Frontend Transport; Fri, 8 Oct 2021 12:17:43 +0000 Received: ("Tessian outbound 8e26f7114b75:v103"); Fri, 08 Oct 2021 12:17:43 +0000 X-CR-MTA-TID: 64aa7808 Received: from 35b3b59e696a.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id DF5A6BE6-2B77-4E90-82B8-BBFD2CB3A8D3.1; Fri, 08 Oct 2021 12:17:36 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 35b3b59e696a.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Oct 2021 12:17:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Iyh0Lklhp3zUlU9h8PpsXZGjKCOMmLTpUs6V7Q2lK+MapIHEbJYMEgLOX5c8VxvAp+zGsJgnD8I9SFl/w298t9QcapnsTSlhncS14ShdXDLRPGNBKKBXQUBT5XvVNtARFAqwpj18B9UhAet4EWvV3u+r5X3googM6ssFIWaLwqm94r/Gwsd6Trvstu/gYDlBT/FPoSIqW53cc8uLlnReOmHip/Dq+jPY3IvKVgpKIPM2M9jr8Z3IkuLO+hcG3be7Y/+Y7R4Kj7+Pw/PXlMI/ohyR7u4U2afkt8dvnNLe9AdSpAhY7QA5VQK1k4A+Jahq1sH6+rYfbrSqIcrhLstvrg== 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=V/ckW+Ppz1C8A+WjXGa9n+fyWnWVkPV4sPFFK86ye5A=; b=TdvfhQ2WtbRmqdP7VGG40gpQPDXus+YpZEjMwU3sU4j2lLrJwMhre4v7DE1lJGvwG3KIv63wk05RUxFAVOMTIRMTtpt+o3ktT2M1uBYGaS8pP/OCDXdDXfJ1NIuLUezeVdkMCg3ChB4iWzt7772Hx/wphk7iJhWbP0LpO9nZElg2N0SuAYfYqWwu5cg7vgIdQYLvN3s6KYrN/8rlErAj/YK0injZK8Aq0EPa+LyGq3UDbczvT9d8Y/959Vbit193sb0JxpASp2on1qPZfiX4TA0ujivRuKVnAORpnDSlIWPalZeAJKiACLA40TjyGG4rLv2n7mPcBtNV3TB+KthvWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com (2603:10a6:203:39::22) by AM5PR0801MB1906.eurprd08.prod.outlook.com (2603:10a6:203:48::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.19; Fri, 8 Oct 2021 12:17:35 +0000 Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec]) by AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec%9]) with mapi id 15.20.4566.022; Fri, 8 Oct 2021 12:17:35 +0000 To: "gcc-patches@gcc.gnu.org" Subject: [Patch 2/7, Arm, GCC] Add option -mbranch-protection. Thread-Topic: [Patch 2/7, Arm, GCC] Add option -mbranch-protection. Thread-Index: Ade8OvtjhNs8zoVAQ+mvKjXXvoc1kA== Date: Fri, 8 Oct 2021 12:17:35 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: E193116D0AAF87499928C0EFC88D7779.0 x-checkrecipientchecked: true Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: d3733924-2e4c-46ab-97d4-08d98a55a164 x-ms-traffictypediagnostic: AM5PR0801MB1906:|HE1PR0801MB1945: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:281;OLM:281; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: xzpzv/kagm1voOyrmPplTnsRGBAHwpCAe/tx+A+93jQqlOrJ/6Mx+tWIx0pNsBXO1BD6l7XShaLlYfRusFEsPPvpmHgJwb9nFdRYjvVkcQHAJW6mZ3+2Rlra+XO+KPFdy83fYKnL1mJdzCaHugL6WM4DdMA0otWw1B7we+sQAzR45KmN8/18dYz1EqRNOa7yb2WLNdcuXm1TjjYvhZ7IfIdAj6MjsX1GTjwUW2XzLAZObj7ub1oWKfz5wRcrz2+cTunc0UrfLdpAtaiHfhFY+wmeUTCn04NnQQNH05m5LcthLtHz/FigmkleEkHYNniKINlBY7JQcW8miVKLFBbVu5Kplo3Rd960DWUhtUMiXUOaYDP35AV5W4uxqZqgmjReRV8XWH5eHHmkQVHzuFPo8f6CFCeaMOeTeqLd5g9oisfVTcUej5AjPcItqmELIpaRcVAU76aMsDQNkAGNLESbil8aOpDla+lQnTKyf7pA7i7ut1LCL8rNsZ5nHJNzW44vM6+J4pDbz/7VFq4mRSiq3hHMridIWDKW9t5CxK5TUTUBL26syg1vkOV6L/oxCamCLk3snv/avIsdGmVvC49jUKBqhwFViPsjF05kXv1uow5e0RxtUk6oqDJHIv4kheBCpsajApoPt9mV9KWWwGZPQ67TYycMoEuMrt3CIVni1/664Pa5MH2o3AsAS84r3+oOj6wmnEHwUr0t7RC3Twy8vA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM5PR0801MB1844.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(6916009)(52536014)(33656002)(71200400001)(8676002)(122000001)(4744005)(26005)(38100700002)(5660300002)(9686003)(38070700005)(86362001)(55016002)(316002)(508600001)(66446008)(64756008)(66476007)(7696005)(8936002)(2906002)(186003)(66556008)(6506007)(99936003)(76116006)(66946007)(83380400001); DIR:OUT; SFP:1101; x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1906 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT051.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: fd40fea2-2056-4d85-859e-08d98a559cdb X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xe9N58u3bNJeC2XjkjFbi7XmcjxtrJVn7qpn+VMsndHRoBffhXAM0zT3qz1LMMx5DFPhf7i2S9t8Fl+bn74MEmbLDRQIgpfJLk2G5y2B6rKUSvRhXzNVHNhzFrka97h2Y5siMbuJ2eUhsaT3Jiz+FkTunx+NKfjzEq7gRh2e0qNwsAQau62Df9auNWcAvZCkrhl5cHUV0PVEUrTUzu6IDy3jBL4vJYwpDsOIe5fnEdJ1fX1dPC3zG/7KDzNwmlqyManYnj1sj6lnxLDKVg5+/K9tG8cgwoHgcxquTp4QZ/K+Ln5LvYcr7N18Xmk+HqRVNx4F6x518IqSSOpiT83CnjSFqyb5mg8yAlOk9d6SbNsmRXCQyNYeJinJONszsgJb9dp4LWmB82yaQvj0YhylGGfhY+lRiuJ9zZC/jtSWz8B12JoGfcP+0POXudJi/samxC4z9OTexaKO5CXqTxgtFZVmVSBvzWD9ohKjTiISEnRO64vZAUKmv/YWmpsIDhkYYzvnuTHNSV2eXQeLdTb91h1oKnb0VCzlq8AQUo/Tf6j2IjGMguSyyLnnnW04RJN7qc/0L6HcjGRnc/b6mpCotNi250vKGrCiXLhkNFAfHs8OgPpeUPBNKFSDFt23L3/YOLJxhZWrKAwfRQxu3YoSBEYFZIdAVnkeCAPDFQya8cnOxzAYYdzTNdmZ5jETMk98DHb6UkNuGEV56CUPWJIkZw== 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:(4636009)(46966006)(36840700001)(8676002)(86362001)(21480400003)(336012)(83380400001)(6506007)(356005)(99936003)(235185007)(8936002)(81166007)(316002)(70586007)(52536014)(2906002)(36860700001)(5660300002)(7696005)(186003)(6916009)(70206006)(26005)(82310400003)(508600001)(9686003)(47076005)(33656002)(55016002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 12:17:43.3523 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d3733924-2e4c-46ab-97d4-08d98a55a164 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: HE1PR0801MB1945 X-Spam-Status: No, score=-13.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tejas Belagod via Gcc-patches From: Tejas Belagod Reply-To: Tejas Belagod Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, Add -mbranch-protection option and its associated parsing routines. This option enables the code-generation of pointer signing and authentication instructions in function prologues and epilogues. Tested on arm-none-eabi. OK for trunk? 2021-10-04 Tejas Belagod gcc/ChangeLog: * common/config/arm/arm-common.c (arm_print_hit_for_pacbti_option): New. (arm_progress_next_token): New. (arm_parse_pac_ret_clause): New routine for parsing the pac-ret clause for -mbranch-protection. (arm_parse_pacbti_option): New routine to parse all the options to -mbranch-protection. * config/arm/arm-protos.h (arm_parse_pacbti_option): Export. * config/arm/arm.c (arm_configure)build_target): Handle option to -mbranch-protection. * config/arm/arm.opt (mbranch-protection). New. (arm_enable_pacbti): New. diff --git a/gcc/common/config/arm/arm-common.c b/gcc/common/config/arm/arm-common.c index de898a74165db4d7250aa0097dfab682beb0f99c..188feebb15b52f389d5d0b3ec322be3017efd5a0 100644 --- a/gcc/common/config/arm/arm-common.c +++ b/gcc/common/config/arm/arm-common.c @@ -475,6 +475,156 @@ arm_parse_arch_option_name (const arch_option *list, const char *optname, return NULL; } +static void +arm_print_hint_for_pacbti_option () +{ + const char *s = "pac-ret[+leaf][+b-key][+bti]" + " | bti[+pac-ret[+leaf][+b-key]]"; + inform (input_location, "valid arguments are: %s", s); +} + +/* Progress *E to end of next token delimited by DELIMITER. + Cache old *E in *OE. */ +static void +arm_progress_next_token (const char **oe, const char **e, + size_t *l, const char delimiter) +{ + *oe = *e + 1; + *e = strchr (*oe, delimiter); + *l = *e ? *e - *oe : strlen (*oe); +} + +/* Parse options to -mbranch-protection. */ +static const char* +arm_parse_pac_ret_clause (const char *pacret, const char *optname, + unsigned int *pacbti) +{ + const char *old_end = NULL; + const char *end = strchr (pacret, '+'); + size_t len = end ? end - pacret : strlen (pacret); + if (len == 7 && strncmp (pacret, "pac-ret", len) == 0) + { + *pacbti |= 2; + if (end != NULL) + { + /* pac-ret+... */ + arm_progress_next_token (&old_end, &end, &len, '+'); + if (len == 4 && strncmp (old_end, "leaf", len) == 0) + { + *pacbti |= 8; + if (end != NULL) + { + /* pac-ret+leaf+... */ + arm_progress_next_token (&old_end, &end, &len, '+'); + if (len == 5 && strncmp (old_end, "b-key", len) == 0) + { + /* Clear bit for A-key. */ + *pacbti &= 0xfffffffd; + *pacbti |= 4; + /* A non-NULL end indicates its pointing to a '+'. + Advance it to point to the next option in the string. */ + if (end != NULL) + end++; + } + else + /* This could be 'bti', leave it to caller to parse. */ + end = old_end; + } + } + else if (len == 5 && strncmp (old_end, "b-key", len) == 0) + { + /* Clear bit for A-key. */ + *pacbti &= 0xfffffffd; + *pacbti |= 4; + if (end != NULL) + { + /* pac-ret+b-key+... */ + arm_progress_next_token (&old_end, &end, &len, '+'); + if (len == 4 && strncmp (old_end, "leaf", len) == 0) + { + *pacbti |= 8; + /* A non-NULL end indicates its pointing to a '+'. + Advance it to point to the next option in the string. */ + if (end != NULL) + end++; + } + else + /* This could be 'bti', leave it to caller to parse. */ + end = old_end; + } + } + else + { + /* This could be a 'bti' option, so leave it to the caller to + parse. Fall through to the return. */ + end = old_end; + } + } + } + else + { + error_at (input_location, "unrecognized %s argument: %s", optname, pacret); + arm_print_hint_for_pacbti_option (); + return NULL; + } + + return end; +} + +unsigned int +arm_parse_pacbti_option (const char *pacbti, const char *optname, bool complain) +{ + unsigned int enable_pacbti = 0; + const char *end = strchr (pacbti, '+'); + size_t len = end ? end - pacbti : strlen (pacbti); + + if (strcmp (pacbti, "none") == 0) + return 0; + + if (strcmp (pacbti, "standard") == 0) + return 0x3; + + if (len == 3 && strncmp (pacbti, "bti", len) == 0) + { + /* bti+... */ + enable_pacbti |= 1; + + if (end != NULL + && arm_parse_pac_ret_clause (end + 1, optname, &enable_pacbti) != NULL + && complain == true) + { + /* If the value returned in non-NULL, there's garbage at the end, + so error. */ + error_at (input_location, "unrecognized %s argument: %s", + optname, pacbti); + arm_print_hint_for_pacbti_option (); + } + } + else + { + /* +... */ + end = arm_parse_pac_ret_clause (pacbti, optname, &enable_pacbti); + if (end != NULL) + { + if (strcmp (end, "bti") != 0) + { + if (complain == true) + { + error_at (input_location, "unrecognized %s argument: %s", + optname, pacbti); + arm_print_hint_for_pacbti_option (); + } + } + else + { + enable_pacbti |= 1; + } + } + } + + return enable_pacbti; +} + /* List the permitted architecture option names. If TARGET is a near miss for an entry, print out the suggested alternative. */ static void diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h index 9b1f61394ad7d778a6c0b84bc6c805f14709f598..1f6984199382848e6d105ba7afd571a49d1ee885 100644 --- a/gcc/config/arm/arm-protos.h +++ b/gcc/config/arm/arm-protos.h @@ -584,6 +584,10 @@ const arch_option *arm_parse_arch_option_name (const arch_option *, void arm_parse_option_features (sbitmap, const cpu_arch_option *, const char *); + +unsigned int arm_parse_pacbti_option (const char *pacbti, const char *optname, + bool complain = true); + void arm_initialize_isa (sbitmap, const enum isa_feature *); const char * arm_gen_far_branch (rtx *, int, const char * , const char *); diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 6c6e77fab666f4aeff023b1f949e3ca0a3545658..1f939a6b79a90430abf120e0aa075dfc1fab29a8 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -3217,6 +3217,13 @@ arm_configure_build_target (struct arm_build_target *target, tune_opts = strchr (opts->x_arm_tune_string, '+'); } + if (opts->x_arm_branch_protection_string) + { + arm_enable_pacbti + = arm_parse_pacbti_option (opts->x_arm_branch_protection_string, + "-mbranch-protection"); + } + if (arm_selected_arch) { arm_initialize_isa (target->isa, arm_selected_arch->common.isa_bits); diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt index a7677eeb45c805d6a314f4d1d2d6063d8c0b687c..82dd665d327d514d9ad842905ddd3f9bb61e99a4 100644 --- a/gcc/config/arm/arm.opt +++ b/gcc/config/arm/arm.opt @@ -304,6 +304,13 @@ mbranch-cost= Target RejectNegative Joined UInteger Var(arm_branch_cost) Init(-1) Cost to assume for a branch insn. +mbranch-protection= +Target RejectNegative Joined Var(arm_branch_protection_string) Save +Use branch-protection features. + +TargetVariable +unsigned int arm_enable_pacbti = 0x0 + mgeneral-regs-only Target RejectNegative Mask(GENERAL_REGS_ONLY) Save Generate code which uses the core registers only (r0-r14). From patchwork Fri Oct 8 12:17:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejas Belagod X-Patchwork-Id: 46003 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 21C263857C63 for ; Fri, 8 Oct 2021 12:20:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 21C263857C63 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1633695633; bh=r+HYcj5o0yqgsvtfqtmt5+DOfnnr0P5pW6zjbbasIDY=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=sdGnVsZ813xzMi6G7yzyC7xSpFIAYChuhUn6GGWNNwhM1lQ1vEm5zaH3+3wjzI+r7 Q3/YMo92wqMxUObr/egfxuGnBu06GwDH9kehppk2Z6V3URZghqAEk9Y29lE/d2ByQZ 0Iccanf9nVgKl+g89/7bkfDH/9dGgvWmiiJNzwSU= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2065.outbound.protection.outlook.com [40.107.20.65]) by sourceware.org (Postfix) with ESMTPS id 1DC143857C6F for ; Fri, 8 Oct 2021 12:18:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1DC143857C6F Received: from AM7PR03CA0030.eurprd03.prod.outlook.com (2603:10a6:20b:130::40) by AS8PR08MB7307.eurprd08.prod.outlook.com (2603:10a6:20b:442::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.22; Fri, 8 Oct 2021 12:18:02 +0000 Received: from VE1EUR03FT034.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:130:cafe::f0) by AM7PR03CA0030.outlook.office365.com (2603:10a6:20b:130::40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.21 via Frontend Transport; Fri, 8 Oct 2021 12:18:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT034.mail.protection.outlook.com (10.152.18.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 12:18:01 +0000 Received: ("Tessian outbound 8e26f7114b75:v103"); Fri, 08 Oct 2021 12:18:01 +0000 X-CR-MTA-TID: 64aa7808 Received: from ea1ccd3fa799.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 201904C1-5DDE-44CB-82D9-D11CFBEAF7AB.1; Fri, 08 Oct 2021 12:17:54 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ea1ccd3fa799.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Oct 2021 12:17:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l8Mux5lSXFst4OODgBjtQmDuDITOm+M66R4ENDa7IqmQP+AxUrrwk6AbcmAg+QmpUmaQKqhpKJv9MiJp/xOx1kYKkPe95QgxXq2hSR5g+KK5pIZaRHKMCOlSLNhPR/QQMR9M61tPHz22E5IihLqzUk4Yo2yi59kSejJ8kaofOc6n36qGUlKBEG3M9MYSZMFlQamo23e2bxqezffJE1B7oiOi8FLvyOiTo6rNtb1RYLrz8HUv7wmxVFNAcMAHUILvPvkNIQZmlEV2Oy9WiZFiSBsjeh2lHdEwBoy5AEYIll1c7YnuxHwrDlXKGDpF+70MzFZ2HuDTOSTGIjjvQQzR1A== 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=r+HYcj5o0yqgsvtfqtmt5+DOfnnr0P5pW6zjbbasIDY=; b=SgWcyQE0xfNXixDUc0SC0e++PW/u/myJeVUHRXBy+gLgpYoMq0lfFUuYkRGfAlJeBhOaPuOzrD2SZwuudzcJJtLkH/blPY7cTx+/7smwe9b3bVPQ9yj24LZUgyyKlUGm8chc2V0bP8s7wYPhVQkiVLyxrMlMlc6Grzkn7ZjTkGiBkPR2CuMblzElOIsp6drhVtmT9T7qcePczgCEzSfTzysmuN3DuKWD0Tz3kDdJ1KimZrI8vgumWXfv8oMTPy7i8/kxH11ujcWPCnSEd9wJC5FNYSJ8l1Le98dTCOR+srlSw19hnyKM6bPMwK8uQfNPM/KRZk8RpDcDyE6eM6525A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com (2603:10a6:203:39::22) by AM6PR08MB3864.eurprd08.prod.outlook.com (2603:10a6:20b:8e::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Fri, 8 Oct 2021 12:17:52 +0000 Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec]) by AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec%9]) with mapi id 15.20.4566.022; Fri, 8 Oct 2021 12:17:52 +0000 To: "gcc-patches@gcc.gnu.org" Subject: [Patch 3/7, Arm, GCC] Add testsuite library support for PACBTI target. Thread-Topic: [Patch 3/7, Arm, GCC] Add testsuite library support for PACBTI target. Thread-Index: Ade8O2GGnHgSwnt3QXOqW5qKU0PXhw== Date: Fri, 8 Oct 2021 12:17:52 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: 8A5D0CD37E920D4C8AAA56C9042AA912.0 x-checkrecipientchecked: true Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: b79b9c63-d954-43b2-1dbd-08d98a55ac76 x-ms-traffictypediagnostic: AM6PR08MB3864:|AS8PR08MB7307: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:4714;OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: YwV0PKP9G2+Za7ZGgIMnhnkpmDEbQHtKgd38XnPRxypJ0Yz+a+qAjcgFb0ttJTL7DBKPMoo/CKNuvaBzLB7YDv9MLxCwyvKZ+FksuOwaC/w42UoTicRlylDBByP0ftmiqSqcg9b8isSQQQQUxdCMEDWGsgVPnZXljcW1qb7J1FjDf1p6g3Sv0lvw1Zk2dCz1dmEm+yJwqJX0My+QrkTz6tkN/4sx8yiOyditNSdT8UiTHlO052mhKLMsSEyfuLqwEK3+b5pr+x0CSeBW+wOElirWkk74etw0AIhzPXKB52Z4M1/529huMylgpDN8LAf3TWk9w1j1IYPXBA2cODoGrcxZniGxogGoN4sPXlCs5cWoAbB/1SCHAiHQ0OTHqd4t4hJ1Hn9JJGBgIJv33n87HLKFypikvTPZVUdJrHy1vE1AmilUDHv5gLbUtdvRQ7Dn39W3Xj02xV9Fd8cmtjwZnuBVGaPQmN0xkVjG23yS1o5W061AZAIFUSxEwbD2M2AQ1BDa2P2lePrt6BiWdt8EYh+fbGTAa/KH4gpbcRaeJN/Q7/vGYkmw7rDN7gF12PelZCKXN8IDFaqIaGe17bFEPDBgxheito1v7M8dxtMncrcDK/r7JEFGnnOyBpsMxSQZQp6EvoCHGJloPqDxcbjKCGGvF5DcRPcL1ktPgw96AlRrnw5CLfRK7tZuZZ4z3zSDQOI2W+OYp8j3/U092kJdrw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM5PR0801MB1844.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(76116006)(86362001)(8936002)(6506007)(38100700002)(122000001)(558084003)(71200400001)(38070700005)(66476007)(5660300002)(33656002)(26005)(9686003)(508600001)(316002)(8676002)(66556008)(2906002)(55016002)(52536014)(7696005)(66946007)(6916009)(186003)(99936003)(64756008)(66446008); DIR:OUT; SFP:1101; x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3864 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 1e7f569a-e4ab-4688-12f1-08d98a55a6da X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HfuyVFXuHI5zGsAamUwrNFkyMEtm6XYW5bFlZivmm0dBTmCtlHNRHhUyQ1MHe6kdPdO3smwWREiQub6Dqglc8ZBNf6+VicKr3b0/2Y2t/lupCm0x9Jn+SEUYQf8KMWe4F6iQX7Q8NcHwjH8q9FLGTW7HXctKDRkk8N9zaabAUIULEjL6Rh+K++TtXMh4ucvl1AC1CQxGTUCBF4HJ047QSm+kxx03C7WwO7DDcXYV3XOeVkyWe/1xd3YTnMy3Jmf/1fSdWOrrLm89aMJYPKgdOfob4nUuduv0ZYT8/xhp+udsLT7P8x0bjcTLV0Hsp4y9kvRadhJIQWOw0bmU8E07Rcljz1pdsC5X2Uhv6sAMTC4gxosCzHDt+WockXKf2MGTGCd/tNYLwwixy3teiU1JMVA2iBsjowbOBsW+Ue16kDTzrc6ARkK5UtKs+3IvXzS2ExSXJ7fEB2Bv+6/g0CMwuY6X7t63uMuMWBfytTdxAUmaLM7+3Ad4SjfEURNjKfDKtFqJ7xLZ9JWpbjNmrvHbhCDCcPSKp9MDJYovScYnNO5KqAlOs+PoNFoP/edtrpL9ZY5G7Uy5xphEQ4YE+wyvCZjyYcileLC7g8POQDs1ZSwRzQNsNUKTf00DnqY1Jv2ORTPW4+AQ/z56jPrSt6ZEWkMdY/VFW7zQWpS8oG56/seKuFkzros1pZ57hd3Jii+A4NHw2A/qcNmKtY7fe7mKnQ== 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:(4636009)(36840700001)(46966006)(8936002)(2906002)(564344004)(82310400003)(36860700001)(186003)(26005)(508600001)(8676002)(86362001)(7696005)(55016002)(21480400003)(6506007)(336012)(9686003)(70206006)(52536014)(6916009)(47076005)(99936003)(70586007)(316002)(81166007)(5660300002)(33656002)(356005)(235185007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 12:18:01.8831 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b79b9c63-d954-43b2-1dbd-08d98a55ac76 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: VE1EUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7307 X-Spam-Status: No, score=-13.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tejas Belagod via Gcc-patches From: Tejas Belagod Reply-To: Tejas Belagod Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, Add targeting-checking entities for PACBTI in testsuite framework. Tested on arm-none-eabi. OK for trunk? 2021-10-04 Tejas Belagod gcc/ChangeLog: * testsuite/lib/target-supports.exp (check_effective_target_arm_pacbti_hw): New. diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 9ebca7ac007363d2a35158bb80092118f629b97b..323541c2da527e3da5dce4d85cadcb2068d9bb5c 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -5064,6 +5064,22 @@ proc check_effective_target_arm_cmse_clear_ok {} { } "-mcmse"]; } +# Return 1 if the target supports executing PACBTI instructions, 0 +# otherwise. + +proc check_effective_target_arm_pacbti_hw {} { + return [check_runtime arm_pacbti_hw_available { + __attribute__ ((naked)) int + main (void) + { + asm ("pac r12, lr, sp"); + asm ("mov r0, #0"); + asm ("autg r12, lr, sp"); + asm ("bx lr"); + } + } ""] +} + # Return 1 if this compilation turns on string_ops_prefer_neon on. proc check_effective_target_arm_tune_string_ops_prefer_neon { } { From patchwork Fri Oct 8 12:18:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejas Belagod X-Patchwork-Id: 46004 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1DA2C3857C66 for ; Fri, 8 Oct 2021 12:21:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1DA2C3857C66 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1633695698; bh=4qSfLoAbIA3KHu0dHRXAvPjkrXm5bDQQIApwfRKzNZk=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=sTBmFnRVGwVgRtcAS625dA5mNPR8rMkTGZKMIpdrZCNM4IJ/8xLI2KEONgrqNchHz oCoJTft7+EKSX4nuOhB9M/uww5oAk5pplI+3dq/Bec4GcTJaoDIrpMc8d5HWZKBjvt cOdk3zX6mr8ZDLbQQ5pB6XCZrce6Gla+51pwcZ54= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60043.outbound.protection.outlook.com [40.107.6.43]) by sourceware.org (Postfix) with ESMTPS id 4E2BB3857813 for ; Fri, 8 Oct 2021 12:18:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4E2BB3857813 Received: from DB6PR07CA0024.eurprd07.prod.outlook.com (2603:10a6:6:2d::34) by PAXPR08MB6477.eurprd08.prod.outlook.com (2603:10a6:102:12d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.22; Fri, 8 Oct 2021 12:18:15 +0000 Received: from DB5EUR03FT018.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:2d:cafe::9f) by DB6PR07CA0024.outlook.office365.com (2603:10a6:6:2d::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.4 via Frontend Transport; Fri, 8 Oct 2021 12:18:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT018.mail.protection.outlook.com (10.152.20.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 12:18:15 +0000 Received: ("Tessian outbound d5def7722ff7:v103"); Fri, 08 Oct 2021 12:18:15 +0000 X-CR-MTA-TID: 64aa7808 Received: from 4a39174937d4.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 255CD3D4-E1B4-40CF-8291-DD4D51495ED2.1; Fri, 08 Oct 2021 12:18:09 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4a39174937d4.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Oct 2021 12:18:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XlNIQcmKWX7Qi1LOf+QDGOLmEM3AaTKr/O6G+Vv3xprtrGMq3uAWpUJiOl6bx/mZ9snUpGnh8/e1OmQYgNgEg82QDE2FWzmLtEnRiQT1QRV2ignjrh4cwp/VO1E5SmMHiEvJaPwT5UqX9t/i5VVxLkgULqOoRspbpT75co+G8QcGYdMY+5M3qJMZrTQy+JHlnT6gbTTj8yrlKwXa5RwTEMhoIxGVFtkp58Srn/tR8u3fa/G82srWAZlV0jaG1GSmjYzQinCmN2W24W6EpVFOln+TrHKCrTB87vGEZSJQwBWsVFW1mHFqa0ZkZzTUwfmd456Nxu3xs/rV2qDXV4XTxA== 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=4qSfLoAbIA3KHu0dHRXAvPjkrXm5bDQQIApwfRKzNZk=; b=jK+4NaUFbiGz3iS8nw7DeiG+CqgIXJYpaRAPt4+aB/NUyXfAVi7hhtcPb05zlXA3GMlKHa00jlBNCeFwUqmYKstG3wvcyDgT84T6stag9M7hOa42viQWWBtBpEKewl1FEaZTWOa70QmYXEJlwT0+NTiD+DU2vx4ciM9jmdA3KXIrASKjrGA+cOO87UmhGwM68nSBA4DsFdlSeDBf13hhxPnTj3AzwzevfQ58/RKVUEorE1MhvdOanf0J+ZFlavvD+wsh2QLmzPcbWPuuy2dQvfK+ogkBZp+ztHNW8lYcpXBvCEucHQd8ot4OmJOPuqqH2w8j1z3toevdWgM9AR0r7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com (2603:10a6:203:39::22) by AM6PR08MB3864.eurprd08.prod.outlook.com (2603:10a6:20b:8e::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Fri, 8 Oct 2021 12:18:07 +0000 Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec]) by AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec%9]) with mapi id 15.20.4566.022; Fri, 8 Oct 2021 12:18:07 +0000 To: "gcc-patches@gcc.gnu.org" Subject: [Patch 4/7, Arm. GCC] Implement target feature macros for PACBTI. Thread-Topic: [Patch 4/7, Arm. GCC] Implement target feature macros for PACBTI. Thread-Index: Ade8O6SleWzRNf6nQOO/Tj4mQdorOQ== Date: Fri, 8 Oct 2021 12:18:07 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: 45D103D0DAD93842B38B1CE93DF92919.0 x-checkrecipientchecked: true Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 21a9bd92-adbd-4bdc-6277-08d98a55b498 x-ms-traffictypediagnostic: AM6PR08MB3864:|PAXPR08MB6477: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:4303;OLM:4303; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: J3GL6MWXHiVs3RYyXOLu0ZBUEfCXZ3kGajgB6RZIa92meEaDequqEgns3VWRoeYXigWXCi/MKFtRIaVNiPeNPtAkZ0h6wDSNXtoJ0jAT2sb7rwYi+nWckkcWlPGn1oMUwbcSLygdee4UU8a2OzDjInukQsHjxc9TY/t2Adu5vHIN+1r5dgRQsvPtA8QYD2Nm94tzwCKCCHSJoA+jditlc2dSgeloVIem9WH8lLMgmT5+rUhtputZkVUUEKDRX9R1OspS1jJXcmNfzZPrvq7mABt3tbIZloJtlGt9Ni0XPA4d9hqFt1y4bAyPJ9UM3YOs0TPiIc6kRFdsGMmpBvjw5nu1U0PJTSsFxRV1D2ZyCflZcmeC01G7aYlJBe2BosuQQC00ju+BZPIStsu7Y7ifYnRtw4GgaKZ7Oo0kHy6Nan+4XIaa+ioYF4CmRkKwe6RxH/oXpqYeWdBII1vsEufTJtf+LXKqmsrxftOsg3HYWACWvfG2m/nYpmKw3a6zioSPD40T17ywOlDnTbfNceJAta5A6Irn3+1LO4KJAzJQvC9O8WNgmZ9dz5TWiOpKUWgSDKKf+vdmEmvunMMRGZMPWV4Iw/mV9KO6oiTFk57EVWduE+gu/CGUWM86eGWAYaoBwuHDQRlV8N/gZ/NyCNAnPMrG5X3Z/h3Q/48fIPS/VXv9hcUXFOQ7WNXsmRP9baH7psuwa4dOipCVceSg7rgRZp87cA0sPUi4Ozn0UiXIDGj8BEE10D3BQMNkNL8meUXglXHNVm9wn5E1yRZqMDS+48cDt3drf81chtVlpGNrkLkKSxQxc2R8b9EhGfXaNl7UFStogoK4p8F/9jCKtE+UyQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM5PR0801MB1844.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(76116006)(86362001)(8936002)(6506007)(38100700002)(122000001)(71200400001)(38070700005)(66476007)(5660300002)(33656002)(26005)(9686003)(508600001)(316002)(8676002)(4744005)(66556008)(2906002)(55016002)(52536014)(7696005)(66946007)(6916009)(186003)(99936003)(64756008)(66446008); DIR:OUT; SFP:1101; x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3864 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT018.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: ec408ae8-7b2f-422a-3fd2-08d98a55affa X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /wR39FHguteLd12eAHx+lsII6+B39FE133lGfAyzEpQRrS9lunXTZlFrmzmGFfuCcF9aHwYbkpvMGk9ngol2YCx5pQn66STHJXmagXvg6W0ntqSfnmhBpisTjncUnFrNe0WnKkFrR8ge+fp7TT+fFaIgml2fkO+f8z/PhGOW9dV5BjqkB6Q6ssbOBH4aY3IkughQaKW1JKNI+2sqxkvGx8KU0KIWXP4InayGsuDDodpgo9BlLkPVxfwRJl4TtIbIv77CoOglMyapxdQR2iRnKD5UgP3JT4DknhGWD+/68UaVY2VOz+kJH7Py1owRpvfITmCegGYkASUXPzro+2hWRLSsDdCJmBWaJmJyMwG0+0iYzbx3ui2G6MUTVetZJxdX0fpABUK4kiaEi3ZLEjvQZK2zliuOSkBN2lbFB0RtV/l7LgqQYKx5kT1qCIeFNCj6raVdYainplSkJqoUCqCGM+TD4S/7YEKbdCDAMAVSB1nXEXc9pLAhkaT7zQbc+ssAXSXh27a973lNUx4xQYu1ikwpCzUV3QW9m3FUwqE079gQr7/aGnbi6STO7LJsIz+RsSw1TzZjU6LnDc9j4OXgnxzhHMQKf7chE67lK6qmj3SfGHlWIBGs4mmZrYFQg1s9kK/NxXEwKAbNK/F3Fiz9gdvFdr0AJ6wMePqk13C3SJrH6G0J2zfwe+2xQZ6a6um+RwhUYKf0kBqTjX/7ilG5MV56gt2yBq43pLqy7DX3vszXU9dAwHYypn4yFjE01Ro2CdzoRtnrrXDYk45ASSNvhE01rAtxVbpMbzy7DMf2ef3BkT5rRPgN12eRbrxoDzoBNBv5xzjNF4rhSI+wZ1rnMQ== 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:(4636009)(36840700001)(46966006)(9686003)(5660300002)(316002)(55016002)(235185007)(52536014)(82310400003)(336012)(86362001)(21480400003)(36860700001)(2906002)(508600001)(33656002)(7696005)(47076005)(70586007)(70206006)(26005)(356005)(81166007)(186003)(6916009)(8676002)(8936002)(99936003)(6506007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 12:18:15.6294 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 21a9bd92-adbd-4bdc-6277-08d98a55b498 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: DB5EUR03FT018.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6477 X-Spam-Status: No, score=-13.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tejas Belagod via Gcc-patches From: Tejas Belagod Reply-To: Tejas Belagod Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, This patch implements target feature macros when PACBTI is enabled through the -march option or -mbranch-protection. Tested on arm-none-eabi. OK for trunk? 2021-10-04 Tejas Belagod gcc/ChangeLog: * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_BTI_DEFAULT and __ARM_FEATURE_PAC_DEFAULT. gcc/testsuite/ChangeLog: * gcc.target/arm/acle/pacbti-m-predef-2.c: New test. * gcc.target/arm/acle/pacbti-m-predef-4.c: New test. * gcc.target/arm/acle/pacbti-m-predef-5.c: New test. diff --git a/gcc/config/arm/arm-c.c b/gcc/config/arm/arm-c.c index cc7901bca8dc9c5c27ed6afc5bc26afd42689e6d..00dc1c2f13f2023c2ba8d7b03038a4cdde068ef6 100644 --- a/gcc/config/arm/arm-c.c +++ b/gcc/config/arm/arm-c.c @@ -193,6 +193,17 @@ arm_cpu_builtins (struct cpp_reader* pfile) def_or_undef_macro (pfile, "__ARM_FEATURE_COMPLEX", TARGET_COMPLEX); def_or_undef_macro (pfile, "__ARM_32BIT_STATE", TARGET_32BIT); + cpp_undef (pfile, "__ARM_FEATURE_BTI_DEFAULT"); + cpp_undef (pfile, "__ARM_FEATURE_PAC_DEFAULT"); + if (TARGET_HAVE_PACBTI) + { + builtin_define_with_int_value ("__ARM_FEATURE_BTI_DEFAULT", + arm_enable_pacbti & 0x1); + builtin_define_with_int_value ("__ARM_FEATURE_PAC_DEFAULT", + arm_enable_pacbti >> 1); + } + + cpp_undef (pfile, "__ARM_FEATURE_MVE"); if (TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT) { diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-2.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-2.c new file mode 100644 index 0000000000000000000000000000000000000000..7e8cdb2c5fc74dd22085fcac1f692229300a333a --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-2.c @@ -0,0 +1,16 @@ + +/* { dg-do run } */ +/* { dg-require-effective-target arm_pacbti_hw } */ +/* { dg-additional-options " -mbranch-protection=bti+pac-ret+b-key+leaf" } */ + +int +main() +{ + if (__ARM_FEATURE_BTI_DEFAULT != 1) + __builtin_abort (); + + if (__ARM_FEATURE_PAC_DEFAULT != 6) + __builtin_abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-4.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-4.c new file mode 100644 index 0000000000000000000000000000000000000000..41fdcf91a8ab789d055407ae3f8c151984660ee9 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-4.c @@ -0,0 +1,16 @@ + +/* { dg-do run } */ +/* { dg-require-effective-target arm_pacbti_hw } */ +/* { dg-additional-options " -mbranch-protection=pac-ret+b-key" } */ + +int +main() +{ + if (__ARM_FEATURE_BTI_DEFAULT != 0) + __builtin_abort (); + + if (__ARM_FEATURE_PAC_DEFAULT != 2) + __builtin_abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-5.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-5.c new file mode 100644 index 0000000000000000000000000000000000000000..9527c9620a3a5c973b47a5f364ae290d975358c1 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-5.c @@ -0,0 +1,16 @@ + +/* { dg-do run } */ +/* { dg-require-effective-target arm_pacbti_hw } */ +/* { dg-additional-options " -mbranch-protection=bti+pac-ret+leaf" } */ + +int +main() +{ + if (__ARM_FEATURE_BTI_DEFAULT != 1) + __builtin_abort (); + + if (__ARM_FEATURE_PAC_DEFAULT != 5) + __builtin_abort (); + + return 0; +} From patchwork Fri Oct 8 12:18:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejas Belagod X-Patchwork-Id: 46005 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 01C763857C5D for ; Fri, 8 Oct 2021 12:22:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 01C763857C5D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1633695757; bh=C5QJWqiTFQ1lOPNHLZakOUDXFOoNIHLPnd+5jpAl6pw=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=M+9NGMaZHASGqI2Dno8Ck2TgJLDDyCkAL8dABAq2ZrNRCf2e3CCNADl7MBbwhEm3o OkyKCd6WFrII0q8EJLu58rhVrHP3EYlJlQWkc+/0etW3HFJAdRxMaXeJRw1SwOPNHX Ma8FNMLak3SCh8FxVnc8Gnbo19Sueudc+A+LkNr0= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20078.outbound.protection.outlook.com [40.107.2.78]) by sourceware.org (Postfix) with ESMTPS id 65458385780A for ; Fri, 8 Oct 2021 12:18:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 65458385780A Received: from DB6P191CA0022.EURP191.PROD.OUTLOOK.COM (2603:10a6:6:28::32) by AM6PR08MB3223.eurprd08.prod.outlook.com (2603:10a6:209:4d::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14; Fri, 8 Oct 2021 12:18:38 +0000 Received: from DB5EUR03FT057.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:28:cafe::64) by DB6P191CA0022.outlook.office365.com (2603:10a6:6:28::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.18 via Frontend Transport; Fri, 8 Oct 2021 12:18:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT057.mail.protection.outlook.com (10.152.20.235) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 12:18:38 +0000 Received: ("Tessian outbound e27daf245730:v103"); Fri, 08 Oct 2021 12:18:38 +0000 X-CR-MTA-TID: 64aa7808 Received: from d39f3d13dc8b.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 4E626CC3-0595-4DCF-B047-6F07A72A1F90.1; Fri, 08 Oct 2021 12:18:32 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d39f3d13dc8b.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Oct 2021 12:18:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j7jU7D/+kuybfROORpxDOaZIvKDV1UWUqpBgElSl6TATt4b4QfkBS8vTuLe5YyRAiNPKEH0U7veydkxWfpWd8lr9dyn3xC9CHSdqrqpCjVFhP2ODsSl2HE8uIPGfw0Ps3Ok0e1FQ+qwXkz5/GaFHIAyzGa9QPUnu0Dgyfzno4Ru72R9OId5R8Z2v27I1nBr/c8QN1HO6g4QhSnW2lAYyjIxRg3kUTGlG2qmkDAB2r+pzhvrjhbVW1abHbY8h/gREsQxF7IH8K8qjAegFz/t3BH/lsOQJsODEyNSzXojQVw+xxNoWgWVnryk520kp6x8FkcN6TV4jihbwH1kM8Qsmhg== 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=C5QJWqiTFQ1lOPNHLZakOUDXFOoNIHLPnd+5jpAl6pw=; b=ZnmHdM1E0OpGOQcK+lKPmsi+lIFEo8W3CVjP2/v9OUCgkfNLFJlRREQm11+6xvc+MIx62iKO05X2+m/H1+45NFI79CdkrqAnvRmahZC8YczDIaKRH4otl+3eqA5XO+ef0gtkfuaCxcYyQcX/Rs+wElx1Pis8gdsnfQkSmjLiV1Q+V+Wp0MCCCjXsIOms021skAlNara0cfme+jIDwakEFL8fmSlStkjVwIinsxA1TVYIVlMs7NsgdVXjGPIWNWGyl0h2kstJWJnQiAk7RgdCituXrjFPFmjAF8ciUTqACH+kFu+giku18uzJt2Q2khEjcRzIteYXqud9kI3W47WKeg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com (2603:10a6:203:39::22) by AM6PR08MB3864.eurprd08.prod.outlook.com (2603:10a6:20b:8e::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Fri, 8 Oct 2021 12:18:28 +0000 Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec]) by AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec%9]) with mapi id 15.20.4566.022; Fri, 8 Oct 2021 12:18:28 +0000 To: "gcc-patches@gcc.gnu.org" Subject: [Patch 5/7, Arm. GCC] Add pointer authentication for stack-unwinding runtime. Thread-Topic: [Patch 5/7, Arm. GCC] Add pointer authentication for stack-unwinding runtime. Thread-Index: Ade8O/4YoShuODbFSk6VRITfMftxSA== Date: Fri, 8 Oct 2021 12:18:28 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: 4B828C8F9D3BEB438089A556101BA738.0 x-checkrecipientchecked: true Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 90e57030-a2ba-4cb5-bcf5-08d98a55c1fb x-ms-traffictypediagnostic: AM6PR08MB3864:|AM6PR08MB3223: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:4941;OLM:4941; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: adddnA7OeFoy3TYA2P9OQ8f+yRacLuN655EKwn7E3j6lk3r/FEdLW1tPf0EBF+hqeBCUVBN6x5lk7WI1Y21mDPq8FvRp9j9/qmE8eQaoKq+9N4UfBlC1m8U88+t5XoPl9JvpKQeI4PM7OP5UHgpdkwTRm218roJEnugsnOBd97pMGcq1iiPb6cHK2WkF/e5PI9LlXcqG0EQYygzS3PxiZhsdlVwqq9d39vDyRIwclJp8xlAM304cA/f87IZbFkBXfaas9Iq8Xlzhk96rSbJWhK3ZJq0LBEE2+0C34e16e1+bEIRgPcEokNW01Z69bvW4rZcsILWIMf5XPPtveQiuyE3eT45jkk/txrqiDry3Z88+M6uvdE3Cn7eUcraiUwWhGac+kWaF8sqZkSW07sSsoia2FOGD1H18XpB14g1kOVafJY+l+IsrFW+DRoj8vXry+pE06YBtPPB5xvIFcq9YhKogUEk/5qZvYfvDiAP1H6xlvGG7PB2zauN6npoc5DvPd58G8pZycH2WEhkhhe9hFwdq1sVwjgkEwbdeWRFJpPL/yK6X56iwrbXHMOTAjCQw5Ta2KJeamtV+c0RvrYrapsKHxmzB+TgQ/JlDDJ8ln0bVLNF4Ua2ijgzZyxt5Zw6kJ2d5tTnKm3l6t/wX2xHG5C+Y1Uwp0LQfRPCbBtxLt30WzPvD0DpmEwRJsbqtqp+MiJ/h2WLt443zALTyFT99iw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM5PR0801MB1844.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(76116006)(86362001)(8936002)(6506007)(38100700002)(122000001)(71200400001)(38070700005)(66476007)(5660300002)(33656002)(26005)(9686003)(508600001)(316002)(8676002)(66556008)(2906002)(55016002)(52536014)(7696005)(66946007)(6916009)(83380400001)(186003)(99936003)(64756008)(66446008); DIR:OUT; SFP:1101; x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3864 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: c7caeac2-e338-4b7b-67eb-08d98a55bc16 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ooqp96oHA2rqAKydRzPEvgCTziM7g/TY48YY3q8pq4EcwWWRQ6nV/k+r/mm2Wkp4MCouLnseZxCM4QntP8/Dg2hIbvCTCBzqMe/BzUM8YTrElJTTvBKKiTVS0d1wr6igrP6JigJo4x6U/bKuvKzV3Ibchgv2xdkIVKbxPKTDQmRV5CzE5CgvsSVBM3/tZxmxddxNJf9S8YlmYstdqlEeHuaKtExKpz68uXFLgzS3XIpXzPvbNUZA0U/G6jfVGLO3sAzUVWoyoK4q0AIdPAj4FEhje3yDp+HbMQTcCnSOK0EEltkEhWtmbmYN69IF4tFZopjuBHfwM7hZpew/hRhGuuXG7qVmW0m/RBjhqM+uLdrjSC1zW+s57KHjuiczXmVm+CRRns6JiLloXr4KT5ke9MilSb+N8SpC5UjqxsjRPlidyYtZzRO90Ixjg7rdXii0GTYopgy/aNqgDsEFLezmjZHJ2nuuOOkqL7FS0tFHyVgemgCkgvChza4m+y0cpsL4rPrY42qEXi8CRw3UjTzT5bPwnTAXTw79dXew8WLcJrAlZRSIRBvy9H3VAF+YfTaJoULQjZBuFg9KjcbMiGcy9/Z3TxrqyY/9aLNRqsE2Nvaa7K5cnOhrfDamrKYjb6uhQeY/A3oa4ldpKHp7y/HR3tYvXVRGzFUJRYCS6mzJApOcBhMYO8IylQPV0Q1IYML0tVoMx2mMwHa1EtMAq4L2/g== 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:(4636009)(36840700001)(46966006)(26005)(2906002)(316002)(52536014)(83380400001)(70206006)(186003)(99936003)(81166007)(6506007)(70586007)(8936002)(235185007)(21480400003)(82310400003)(5660300002)(55016002)(47076005)(8676002)(86362001)(36860700001)(7696005)(33656002)(6916009)(9686003)(336012)(356005)(508600001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 12:18:38.0899 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 90e57030-a2ba-4cb5-bcf5-08d98a55c1fb 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: DB5EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3223 X-Spam-Status: No, score=-13.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tejas Belagod via Gcc-patches From: Tejas Belagod Reply-To: Tejas Belagod Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, This patch adds authentication for when the stack is unwound when an exception is taken. All the changes here are done to the runtime code in libgcc's unwinder code for Arm target. All the changes are guarded under defined (__ARM_FEATURE_PAC_DEFAULT) and activates only if the +pacbti feature is switched on for the architecture. This means that switching on the target feature via -march or -mcpu is sufficient and -mbranch-protection need not be enabled. This ensures that the unwinder is authenticated only if the PACBTI instructions are available in the non-NOP space as it uses AUTG. Just generating PAC/AUT instructions using -mbranch-protection will not enable authentication on the unwinder. Tested on arm-none-eabi. OK for trunk? 2021-10-04 Tejas Belagod gcc/ChangeLog: * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce new pseudo register class _UVRSC_PAC. * libgcc/config/arm/pr-support.c (__gnu_unwind_execute): Decode exception opcode (0xb4) for saving RA_AUTH_CODE and authenticate with AUTG if found. * libgcc/config/arm/unwind-arm.c (struct pseudo_regs): New. (phase1_vrs): Introduce new field to store pseudo-reg state. (phase2_vrs): Likewise. (_Unwind_VRS_Get): Load pseudo register state from virtual reg set. (_Unwind_VRS_Set): Store pseudo register state to virtual reg set. (_Unwind_VRS_Pop): Load pseudo register value from stack into VRS. diff --git a/gcc/ginclude/unwind-arm-common.h b/gcc/ginclude/unwind-arm-common.h index 79f107d8abb2dd1e2d4903531db47147da63fee8..903c0d22e4a7bf41d806842e030a4ad532fb835f 100644 --- a/gcc/ginclude/unwind-arm-common.h +++ b/gcc/ginclude/unwind-arm-common.h @@ -127,7 +127,10 @@ extern "C" { _UVRSC_VFP = 1, /* vfp */ _UVRSC_FPA = 2, /* fpa */ _UVRSC_WMMXD = 3, /* Intel WMMX data register */ - _UVRSC_WMMXC = 4 /* Intel WMMX control register */ + _UVRSC_WMMXC = 4, /* Intel WMMX control register */ +#if defined(__ARM_FEATURE_PAC_DEFAULT) + _UVRSC_PAC = 5 /* Armv8.1-M Mainline PAC/AUTH pseudo-register */ +#endif } _Unwind_VRS_RegClass; diff --git a/libgcc/config/arm/pr-support.c b/libgcc/config/arm/pr-support.c index 7525e35b4918d38b4ab3ae73a69b722e31b4b322..ff45f3c6e08a8df64011c0e3a5f5dd1677b3ed11 100644 --- a/libgcc/config/arm/pr-support.c +++ b/libgcc/config/arm/pr-support.c @@ -106,6 +106,9 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws) { _uw op; int set_pc; +#if defined(__ARM_FEATURE_PAC_DEFAULT) + int set_pac = 0; +#endif _uw reg; set_pc = 0; @@ -114,6 +117,22 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws) op = next_unwind_byte (uws); if (op == CODE_FINISH) { +#if defined(__ARM_FEATURE_PAC_DEFAULT) + /* When we reach end, we have to authenticate R12 we just popped earlier. */ + if (set_pac) + { + _uw sp; + _uw lr; + _uw pac; + _Unwind_VRS_Get (context, _UVRSC_CORE, R_SP, _UVRSD_UINT32, &sp); + _Unwind_VRS_Get (context, _UVRSC_CORE, R_LR, _UVRSD_UINT32, &lr); + _Unwind_VRS_Get (context, _UVRSC_PAC, R_IP, + _UVRSD_UINT32, &pac); + __asm__ __volatile__ + ("autg %0, %1, %2" : : "r"(pac), "r"(lr), "r"(sp) :); + } +#endif + /* If we haven't already set pc then copy it from lr. */ if (!set_pc) { @@ -227,6 +246,19 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws) return _URC_FAILURE; continue; } +#if defined(__ARM_FEATURE_PAC_DEFAULT) + /* Pop PAC off the stack into VRS pseudo.pac. */ + if (op == 0xb4) + { + if (_Unwind_VRS_Pop (context, _UVRSC_PAC, 0, _UVRSD_UINT32) + != _UVRSR_OK) + return _URC_FAILURE; + set_pac = 1; + continue; + } + +#endif + if ((op & 0xfc) == 0xb4) /* Obsolete FPA. */ return _URC_FAILURE; diff --git a/libgcc/config/arm/unwind-arm.c b/libgcc/config/arm/unwind-arm.c index d0394019c3649f2f6d6a2882389e55b56c21b8ef..6e6eb808d70dd1f6d68ec3c5bf0cd3978cc1166b 100644 --- a/libgcc/config/arm/unwind-arm.c +++ b/libgcc/config/arm/unwind-arm.c @@ -64,6 +64,14 @@ struct wmmxc_regs _uw wc[4]; }; +#if defined(__ARM_FEATURE_PAC_DEFAULT) +/* Holds value of pseudo registers eg. PAC. */ +struct pseudo_regs +{ + _uw pac; +}; +#endif + /* The ABI specifies that the unwind routines may only use core registers, except when actually manipulating coprocessor state. This allows us to write one implementation that works on all platforms by @@ -78,6 +86,11 @@ typedef struct /* The first fields must be the same as a phase2_vrs. */ _uw demand_save_flags; struct core_regs core; +#if defined(__ARM_FEATURE_PAC_DEFAULT) + /* Armv8.1-M Mainline PAC/AUTH values. This field should be in the same field + order as phase2_vrs. */ + struct pseudo_regs pseudo; +#endif _uw prev_sp; /* Only valid during forced unwinding. */ struct vfp_regs vfp; struct vfpv3_regs vfp_regs_16_to_31; @@ -99,6 +112,9 @@ typedef struct { _uw demand_save_flags; struct core_regs core; +#if defined(__ARM_FEATURE_PAC_DEFAULT) + struct pseudo_regs pac; +#endif } phase2_vrs; /* Coprocessor register state manipulation functions. */ @@ -175,6 +191,12 @@ _Unwind_VRS_Result _Unwind_VRS_Get (_Unwind_Context *context, case _UVRSC_WMMXC: return _UVRSR_NOT_IMPLEMENTED; +#if defined(__ARM_FEATURE_PAC_DEFAULT) + case _UVRSC_PAC: + *(_uw *) valuep = vrs->pseudo.pac; + return _UVRSR_OK; +#endif + default: return _UVRSR_FAILED; } @@ -206,6 +228,12 @@ _Unwind_VRS_Result _Unwind_VRS_Set (_Unwind_Context *context, case _UVRSC_WMMXC: return _UVRSR_NOT_IMPLEMENTED; +#if defined(__ARM_FEATURE_PAC_DEFAULT) + case _UVRSC_PAC: + vrs->pseudo.pac = *(_uw *) valuep; + return _UVRSR_OK; +#endif + default: return _UVRSR_FAILED; } @@ -246,6 +274,16 @@ _Unwind_VRS_Result _Unwind_VRS_Pop (_Unwind_Context *context, } return _UVRSR_OK; +#if defined(__ARM_FEATURE_PAC_DEFAULT) + case _UVRSC_PAC: + { + if (discriminator != 0) + return _UVRSR_FAILED; + vrs->pseudo.pac = *(_uw *) vrs->core.r[R_SP]; + return _UVRSR_OK; + } +#endif + case _UVRSC_VFP: { _uw start = discriminator >> 16; From patchwork Fri Oct 8 12:18:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejas Belagod X-Patchwork-Id: 46006 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id ADE543857C63 for ; Fri, 8 Oct 2021 12:24:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ADE543857C63 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1633695849; bh=UvKqwQJdVYFZlNxIg0BmMjrqX0+VemoYKHtZvtalbu0=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=QbchhLfiXX/bAdx46fkVujpPL/lwA+DJBQGFmq0/VdM/WMRBkN08ok4KGME7/PXx2 4M/WYzp2T8sps9N63nSscWDZCGzdDqFWUkiEubIwSaoJGuhR89KE8anGDMFq9fsokT IUDL0WwIGdFjzBssjd8QmJRy0lk0vWKjuZLW02xI= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80043.outbound.protection.outlook.com [40.107.8.43]) by sourceware.org (Postfix) with ESMTPS id 4069F3857C7A for ; Fri, 8 Oct 2021 12:18:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4069F3857C7A Received: from AM6PR04CA0072.eurprd04.prod.outlook.com (2603:10a6:20b:f0::49) by AM8PR08MB6516.eurprd08.prod.outlook.com (2603:10a6:20b:363::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.19; Fri, 8 Oct 2021 12:18:48 +0000 Received: from AM5EUR03FT015.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:f0:cafe::a0) by AM6PR04CA0072.outlook.office365.com (2603:10a6:20b:f0::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.19 via Frontend Transport; Fri, 8 Oct 2021 12:18:48 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT015.mail.protection.outlook.com (10.152.16.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 12:18:48 +0000 Received: ("Tessian outbound 16951d3c485e:v103"); Fri, 08 Oct 2021 12:18:48 +0000 X-CR-MTA-TID: 64aa7808 Received: from 85e5c0e60edd.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 381A4FB8-33FE-4720-8134-A93E77AC888A.1; Fri, 08 Oct 2021 12:18:42 +0000 Received: from EUR02-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 85e5c0e60edd.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Oct 2021 12:18:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mTznaDh2nHqLGSjzJ/lzGKJHISnpilgM8FYGuL6HvFl8lNeOdZrE+cMhvhme6AbKagd6b/bvLwQPqWl9Z2xUdjQyQ+G8XagXX6oX0EZa47I7+e+WgHgXxDV2iu5eVuXVQalO8ztoAroJ2ilkyMmE3askDm5mbbPcaMz3yA/SsQcGDRApnq2Qw1HKeSU6QPkFyfWGz46gLkHNG/hdyqG30mIK8Pd9q274J+QGGoLnprL8B2eH9Qvv8GyLtOO2vNunbGGAVSbA9nxAzPJx1hjQTN1/9ulbAvblf2NkqtCOXk7gccuNzs97cQokaZEIl01r+cChNa6pTJA3sj4VD0eTfg== 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=UvKqwQJdVYFZlNxIg0BmMjrqX0+VemoYKHtZvtalbu0=; b=hzP11EEOs0FU8o03nh6jwtfW6r4FIaRYk/inXuFEN3YBhL2Se+EwTQdYWmZHykneZSMO45rPcyuGgPNVjCPYkUQVvEQnNd3aw1/ptmqJs0Ri41752ADZBa24YRz+VyO/A9Z4RhGyApknCVvW8EpBM0ZdrFxXDCvshx1kq1cSTDmeoL0gb6Te0BV9F+sez8EdakhCGIXKoEAJgQdNkjMLVDZeVwZCZx24QqSjpHujN9ORIdt/bPJuCc2faCpqgHQ7F9ECNt3saUns2aUyYMwbb+udALydlAQThxTi5Iz5v3giwHoYpJUczWWJtaxnqxvB+7/aK/vY9qnnYIPksC8Yyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com (2603:10a6:203:39::22) by AM6PR08MB3864.eurprd08.prod.outlook.com (2603:10a6:20b:8e::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Fri, 8 Oct 2021 12:18:40 +0000 Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec]) by AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec%9]) with mapi id 15.20.4566.022; Fri, 8 Oct 2021 12:18:40 +0000 To: "gcc-patches@gcc.gnu.org" Subject: [Patch 6/7, Arm, GCC] Emit build attributes for PACBTI target feature. Thread-Topic: [Patch 6/7, Arm, GCC] Emit build attributes for PACBTI target feature. Thread-Index: Ade8PEiv0rcXGdRcTAaXoDGfc7ZSpg== Date: Fri, 8 Oct 2021 12:18:39 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: B5BE6CF68F90BC4D8CE84B1C14934148.0 x-checkrecipientchecked: true Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: db1f04da-fcbc-415c-40bd-08d98a55c82f x-ms-traffictypediagnostic: AM6PR08MB3864:|AM8PR08MB6516: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:4941;OLM:4941; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 1PNgfScL2vU3pa327nSO1+kaSuVEV7v3g/2iEW+0kevpAK2DF2p3Y9o/ENxpSt0/kFflqLZ5I2ZAfX7d0kLYW/Ltf1RPk+Ik01cU0FXp7zp1fagbJOPjJz/TN+5pQ7LYuXXUFnwRoHOsn2h6emv6rsaQiW5WJexOMOmB/uDpNrjbAjp71sP+2jYlgxpKSIfWTnV/txLBaSfFrn4HjVZxA5Fjm40cjb64aoK2wzY/9XfT8yViNVF2q3lY7+ZAkiRkcGRBkBHnklEcs62GNtzqx8QohvfqKriVyJkUjKHN13ChWiXyP4nmZPA2r0fHLR9dkOvCLNJdVkBuElEOVGMTWsQDIJj11IUDXVlo0vl6UGY9r1C4nFz5OHwBzfanzKEhabgwIUu9eLrMAl1Bk+rJIt2jvSc2RQhYCOoOEEaaKkMQ3p71Gre5Vpd470CXTv5z+5qkpRFx8MjG7BQxKvrui2GJwADVe9Q5Z3P2/mZ8HmLSSEi3x2leHAJtDkAhdbA+zDXdeZwIzJObTyfSMHa5dU4POn/2J9gkX7wdCWbRgEf1aIcFdgn598W1ZnVA4nx1OfNiS6eM7xd+WdUIgO1wixRiRC+mbPpUh+jwnwowF/RHdrVvNkar+Fr8K3/fAtAwuXSMdF6J58gnQVxjKh8jKFusNUE1Qq8Z4ZNPhh4r6jJSSI8Wm5hDRIjXSVMknyPqYq64qOgbiJont4wc3shfbnXxquaOEb73A9dvCSuv7AjVFHZcZ/PgCxeMhO4JGoVS5JioL4H+CZMUwIoE4CzKnztwKGR+MfDHPhXvFU+osIDDxtJE0w/740V1twjmZxBqhVeuo7bNisij7yYoZTKS4A== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM5PR0801MB1844.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(76116006)(86362001)(8936002)(6506007)(38100700002)(122000001)(71200400001)(38070700005)(66476007)(5660300002)(33656002)(26005)(9686003)(508600001)(316002)(8676002)(4744005)(66556008)(2906002)(55016002)(52536014)(7696005)(66946007)(6916009)(83380400001)(186003)(99936003)(64756008)(66446008); DIR:OUT; SFP:1101; x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3864 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT015.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 097c7a2c-7c05-42f7-8490-08d98a55c321 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qpLEtnqNTbnjvZCFTJjcMUaZiIxW11cwUj4BGJAyTWvjcM/SsZd0JS0zCYdk2XgpuAX6jJCopRGMfB6gxdnz83CzJ3u8n2Wku8/MlBNrIVr6rW1rVOyt5gtGUffCC56+3Rn3430z3ACdGKLQuhrDkLnaRSWpYJQHp0Mq+pzdK7xmSj65jbxg3peXoUf/JCb/OLstZd+ZBvr1rxu0dcoGToe8kZ0GXBnUIVaj0wIMfuyg16+6AlcVUox6fOCfgIBmJ1TTjiZDy73GE0tlkgj4b/m+WUoTwQpsL0u/EWTKB7KFOfGp8FnDRClYqFOSbKpvLbn+1H+tw8mxJy0Yv45zn+h4udyooYDjEvrALPCLJF82i6+jZ2QXBZDmPtkNlSZB/6TQs0lBNPr75LuG7hzjKHIyfuSy0QDI/218T57HpZ5UZLkb+2IUE3u310E4zS3pJzPhOcLOcwFIvhMgwa+K2Yi8YqUTIbAmDsPqY6AWXd1mXyfxGcF4hNJF/JwDpVAY6Q3hMv0AGVG63Tqawr+W2nlDFU3FiUne08wusBNhurVncXBwI3EXN/r8mBdLq5HrJYT23ztHBQXPCo5R5E9TYkdTFjgN4xPCfdpHcKfLPi0ml5xzh3TXhcKoMcOOu3WYOp5kotwaVkcAMorOUCSEdOsc9X8AaK5xjKZlklwMIXmffTa/PxTQUDruTGV62Qb3CsppPfnLOiT2jIJQCOQy4c8qyNSSY54vnT/nCbggAN/p7wzwxcJsAFC823fg9TSZLf/s7qSi6pgm39fWjAexqmAaJ886mFsVqI7svP0zL1yu8I4gcm3dBPSMBKlktjUSRHTS7++LzXnNcxOXIyKdAg== 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:(4636009)(36840700001)(46966006)(6916009)(55016002)(83380400001)(235185007)(5660300002)(70586007)(86362001)(316002)(36860700001)(8936002)(82310400003)(70206006)(8676002)(52536014)(6506007)(508600001)(7696005)(336012)(33656002)(47076005)(356005)(186003)(21480400003)(81166007)(26005)(99936003)(9686003)(2906002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 12:18:48.4499 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: db1f04da-fcbc-415c-40bd-08d98a55c82f 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: AM5EUR03FT015.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6516 X-Spam-Status: No, score=-13.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tejas Belagod via Gcc-patches From: Tejas Belagod Reply-To: Tejas Belagod Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, This patch emits assembler directives for PACBTI build attributes as defined by the ABI. (https://github.com/ARM-software/abi-aa/releases/download/2021Q1/addenda32.pdf) Tested on arm-none-eabi. 2021-10-04 Tejas Belagod gcc/ChangeLog: * config/arm/arm.c (arm_file_start): Emit EABI attributes for Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use. gcc/testsuite/ChangeLog: * gcc.target/arm/acle/pacbti-m-predef-1.c: New test. * gcc.target/arm/acle/pacbti-m-predef-3: New test. * gcc.target/arm/acle/pacbti-m-predef-6.c: New test. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 1f939a6b79a90430abf120e0aa075dfc1fab29a8..557aae371e2707cb8db569ce033242a139b64e86 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -28305,6 +28305,27 @@ arm_file_start (void) arm_emit_eabi_attribute ("Tag_ABI_FP_16bit_format", 38, (int) arm_fp16_format); + if (TARGET_HAVE_PACBTI) + { + arm_emit_eabi_attribute ("Tag_PAC_extension", 50, 2); + arm_emit_eabi_attribute ("Tag_BTI_extension", 52, 2); + arm_emit_eabi_attribute ("TAG_BTI_use", 74, arm_enable_pacbti & 0x1); + arm_emit_eabi_attribute ("TAG_PACRET_use", 76, + (arm_enable_pacbti >> 1 != 0)); + } + else + { + if (arm_enable_pacbti != 0) + { + arm_emit_eabi_attribute ("Tag_PAC_extension", 50, 1); + arm_emit_eabi_attribute ("Tag_BTI_extension", 52, 1); + arm_emit_eabi_attribute ("TAG_BTI_use", 74, + arm_enable_pacbti & 0x1); + arm_emit_eabi_attribute ("TAG_PACRET_use", 76, + (arm_enable_pacbti >> 1 != 0)); + } + } + if (arm_lang_output_object_attributes_hook) arm_lang_output_object_attributes_hook(); } diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-1.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-1.c new file mode 100644 index 0000000000000000000000000000000000000000..de9102be3f293605d0891c45cd247be9cf8bd00b --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-1.c @@ -0,0 +1,22 @@ + +/* { dg-do run } */ +/* { dg-require-effective-target arm_pacbti_hw } */ +/* { dg-additional-options " -mbranch-protection=pac-ret+bti --save-temps" } */ + +/* { dg-final { scan-assembler "\.arch_extension pacbti" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 50, 2" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 52, 2" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 74, 1" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 76, 1" } } */ + +int +main() +{ + if (__ARM_FEATURE_BTI_DEFAULT != 1) + __builtin_abort (); + + if (__ARM_FEATURE_PAC_DEFAULT != 1) + __builtin_abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-3.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-3.c new file mode 100644 index 0000000000000000000000000000000000000000..6ecdf2f7411e5d44a5304681032d0841d965b49c --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-3.c @@ -0,0 +1,21 @@ + +/* { dg-do run } */ +/* { dg-require-effective-target arm_pacbti_hw } */ +/* { dg-additional-options " -mbranch-protection=pac-ret+b-key+leaf --save-temps" } */ + +/* { dg-final { scan-assembler "\.eabi_attribute 50, 2" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 52, 2" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 74, 0" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 76, 1" } } */ + +int +main() +{ + if (__ARM_FEATURE_BTI_DEFAULT != 0) + __builtin_abort (); + + if (__ARM_FEATURE_PAC_DEFAULT != 6) + __builtin_abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-6.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-6.c new file mode 100644 index 0000000000000000000000000000000000000000..2340bf0f937b7ea68a02500b66f151f0ce3f39b6 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-6.c @@ -0,0 +1,21 @@ + +/* { dg-do run } */ +/* { dg-require-effective-target arm_pacbti_hw } */ +/* { dg-additional-options " -mbranch-protection=bti --save-temps" } */ + +/* { dg-final { scan-assembler "\.eabi_attribute 50, 2" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 52, 2" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 74, 1" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 76, 0" } } */ + +int +main() +{ + if (__ARM_FEATURE_BTI_DEFAULT != 1) + __builtin_abort (); + + if (__ARM_FEATURE_PAC_DEFAULT != 0) + __builtin_abort (); + + return 0; +} From patchwork Fri Oct 8 12:18:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejas Belagod X-Patchwork-Id: 46007 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 75F493857C76 for ; Fri, 8 Oct 2021 12:25:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 75F493857C76 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1633695908; bh=wTFVp+j5Gp3ii9ssbyEW06PQqV1GpVeUGN5zz5hpEhc=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=QlGbRnD+7Ey1FlnkCTBGgT+4wLqCEYpwoyIlQ5mQwqCDoyPdX2ukWK0INENnOffjJ ed9I7tPTunxWHriffOGdb62NnP4bxRYYfe+kPsEY2ImSQudc1edPeIXKmFtHk/IcVy dHB3y3AmSd5yDmgP+jUMvN5gKvuauyT0U8sD8J9w= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00067.outbound.protection.outlook.com [40.107.0.67]) by sourceware.org (Postfix) with ESMTPS id 841883857805 for ; Fri, 8 Oct 2021 12:19:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 841883857805 Received: from AM6PR0202CA0067.eurprd02.prod.outlook.com (2603:10a6:20b:3a::44) by DB9PR08MB6857.eurprd08.prod.outlook.com (2603:10a6:10:2a2::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18; Fri, 8 Oct 2021 12:19:01 +0000 Received: from VE1EUR03FT020.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:3a:cafe::58) by AM6PR0202CA0067.outlook.office365.com (2603:10a6:20b:3a::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Fri, 8 Oct 2021 12:19:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT020.mail.protection.outlook.com (10.152.18.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 12:19:01 +0000 Received: ("Tessian outbound f1898412aff1:v103"); Fri, 08 Oct 2021 12:19:01 +0000 X-CR-MTA-TID: 64aa7808 Received: from fa6aedbe33cb.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id CA581FAE-297A-4E06-8567-DD38826121FF.1; Fri, 08 Oct 2021 12:18:54 +0000 Received: from EUR02-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id fa6aedbe33cb.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Oct 2021 12:18:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lHweGiYiPJpNeeEoTAhcoC+uQ0V4z7l1cQkSr9L1oYLUHUDl499NfH2AETr6hnG6xOVAQPF9l1oxYUNg9K1ypPFPfTGhZDezx8uoDIPP7u917eENV/zmJswANDzjVOxiigA5pj90H41VeNCUkwNikZe+XFRAX6ByQkIpH+qVZTQnrRuNGh6nTYTBqw2FLjMQnbRLJ9213bRpidVOiB9jSMWPuyK/gbOru4VXaGmhmTxaXsfKso7KvcU+dosGXMihMd/1rdu7Q40QFxpQGjXdLCll2bcN+EpTW1Iw/CxYkL8ZGjpu3OSwftI+k7oNqJaKjoy/4vVJR0EV3bfk8Lb0mg== 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=wTFVp+j5Gp3ii9ssbyEW06PQqV1GpVeUGN5zz5hpEhc=; b=Ge5+pfVndMI3yGrFV5HNn/IiDHClG3GKenzoKuRAal80m2K3OSP21cxcRu4nX/UVfpXvFf56an1qj0K9OO3yVFdz+L+IppZtrxwiKRY0ryIo5c5OB3+wJgX5hOEsBL6JUli28SEgcM9VCMyUfssBzrYjN05BtGLXuxL6j7tIRtaxZ4Oh5g3nk9WPGsC844uazgQiqDszCiWhX4aYQjuDyjLc0qtIijMxFfLPQRoPVPpOxVLJWeny/WZNuRUqClBbq2TySi6EImqxkt7W5HtFwthaPcep8ACXhfzIF6B9dSiVZ+m/lekDwqEWkqvQzlFXVxRzGTKzSehjQVjRCk8l9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com (2603:10a6:203:39::22) by AM6PR08MB3864.eurprd08.prod.outlook.com (2603:10a6:20b:8e::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Fri, 8 Oct 2021 12:18:52 +0000 Received: from AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec]) by AM5PR0801MB1844.eurprd08.prod.outlook.com ([fe80::4cab:e095:5105:b6ec%9]) with mapi id 15.20.4566.022; Fri, 8 Oct 2021 12:18:52 +0000 To: "gcc-patches@gcc.gnu.org" Subject: [Patch 7/7, Arm, GCC] Introduce multilibs for PACBTI target feature. Thread-Topic: [Patch 7/7, Arm, GCC] Introduce multilibs for PACBTI target feature. Thread-Index: Ade8PXwHqQg2/fUjRUe21/F3Z0WuQw== Date: Fri, 8 Oct 2021 12:18:52 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: 737ECF9DDCBB2B49B416720A486EE9F1.0 x-checkrecipientchecked: true Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: bcb6393f-4e33-4e00-0d7a-08d98a55cfe1 x-ms-traffictypediagnostic: AM6PR08MB3864:|DB9PR08MB6857: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:2582;OLM:2582; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: IK7DG+H7D4BgeS0CRqUPcd1dmMFrf00NBT26A5bx+E0FX8eJG06cDhQ6hOvWepnrF/z6mrEi4hqrkh1df84ehr6asMYmUsyBofOEOYTvVdI5ZRE8DTy5vWKaC97Y/xMlyDs+SlJDz0e4cqGd5W6BL17PEhlAAsYasYohczYa+XwG25TgJSrc/fMg4AknJWA5F8r2R/1y1SIo4L6KuAQyYzCugWj3NWw7Lc14E51ZZW0Dustta6aEaep6hQy0j2v2D+mlATjJd+Ql58GrUQJ9XeAAsLjA3T3WOZbySs6TnSTb5ZHr6YISaHHBJWU09nKzvd21oEBhVPLe9U9gssY9ssR/X7S3EGQWh3GC4LSiFJ0y9PuwXWzJtDzLw8Kdi7qNFOpyqBg+POH50ej94YeE+jvRMoh0XybxnODjOmdw2FVJdBCN+3ZH8sxGLc9ior5mlBZPHGJ2PcCmxmK9KwB/V45+j2nRU7rmMT//qgUjqBLfPW0G70bpz2JYas7ShI1rw8GFUpgSEA8G3hGfx2ctPfbduJGD2MeN5HUc2tpChK7pVxxoTRkK9vxSCPyvNqqPeuF7HfcdIpwqVkWz0d3KeLPAjGKJjw9Z2TYHUAGfSy2zE3GCHYvJ7m/tcLIhHlKT2cvtKa2j4QefK+v6DC3HRl7BlSW08+yvHmcCOW8MLpxqyRQLwDzNt8vlX8juQnYwrcveOmh3ugR3JfQrhpmCvA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM5PR0801MB1844.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(76116006)(86362001)(8936002)(6506007)(38100700002)(122000001)(558084003)(71200400001)(38070700005)(66476007)(5660300002)(33656002)(26005)(9686003)(508600001)(316002)(8676002)(66556008)(2906002)(55016002)(52536014)(7696005)(66946007)(6916009)(186003)(99936003)(64756008)(66446008); DIR:OUT; SFP:1101; x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3864 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT020.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 20ba070b-4675-4c03-de0a-08d98a55caa7 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QoVUCU3yBXuUF8jaEbM7qshD8cOguUFheL4Gchfl/n5vFXNMfI2yxGkOISXponiJuvDS6DoZrJGu9WUfO15E7PGYT3x3VfWlkTAcAPH9zS7XgPl1YHRXGyp93bAs3d2F4sB1jJiX+ieihT36mntVvR3Bz7YlHEAmkRc0JFuRYcU6qmpMJ2VPcbKDT8eOU8bNrEnndN5sBFkV/HFb56wa8nrqz6NAFy0Xr+BC+qsv42zeBbiSohA2fz5tI4AMrjbUCjJVH2paRRUSjAFYQiST08CUEO6i+H8/ZDUnJylg4o5hBfdt2HTIZjynFjurdhzxdIVjYWBlgIEtzH6WSziBKN5UNFmSqM7v7hzOKTlflGcdRh/qsVCmegWeQIFg65PcSvP7bFpvvDLvpZWenGit4uqXVgR7Gkm/Dwx1V495JMEE58dCtlGPqp3XWv3z0dsTFRBvVE7FbXo/EVPjxyo2Kcv7Vm1jhvZdmbycPlIxDJaGRBP8uGBhyYfM/TmOnBptgox0RmBx3iLtbw27VTxqxaCUiWh5YbKKlcy4uhkxXsJhpK8RGtFGj5jkEsYK48gTLKkpK4c7IP5x7E4103rNPSPJaxXPp9Ob6qF8tZcOj5E8na7kRIJT9P8MKb/onNKgc8s74kpSu43TxAJ6LxU1x9AGkgwaUdPUkye++2VICTG5sB4FmjLTmp2jTaogfmtaX/apCCcAXEW3D4kxEg8Yxw== 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:(4636009)(36840700001)(46966006)(9686003)(86362001)(2906002)(508600001)(47076005)(52536014)(186003)(81166007)(6916009)(55016002)(8936002)(26005)(70586007)(8676002)(33656002)(99936003)(6506007)(36860700001)(336012)(21480400003)(70206006)(7696005)(82310400003)(316002)(356005)(564344004)(5660300002)(235185007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 12:19:01.3068 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bcb6393f-4e33-4e00-0d7a-08d98a55cfe1 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: VE1EUR03FT020.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6857 X-Spam-Status: No, score=-13.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tejas Belagod via Gcc-patches From: Tejas Belagod Reply-To: Tejas Belagod Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, This patch adds a multilib for pacbti target feature. Tested on arm-none-eabi. OK for trunk? 2021-10-04 Tejas Belagod gcc/ChangeLog: * config/arm/t-rmprofile: Add multilib rules for +pacbti. diff --git a/gcc/config/arm/t-rmprofile b/gcc/config/arm/t-rmprofile index a6036bf0a5191a3cac3bfbe2329783204d5c3ef4..241bf1939e30ae7890ae332556d33759f538ced5 100644 --- a/gcc/config/arm/t-rmprofile +++ b/gcc/config/arm/t-rmprofile @@ -27,8 +27,8 @@ # Arch and FPU variants to build libraries with -MULTI_ARCH_OPTS_RM = march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7e-m+fp/march=armv7e-m+fp.dp/march=armv8-m.base/march=armv8-m.main/march=armv8-m.main+fp/march=armv8-m.main+fp.dp/march=armv8.1-m.main+mve -MULTI_ARCH_DIRS_RM = v6-m v7-m v7e-m v7e-m+fp v7e-m+dp v8-m.base v8-m.main v8-m.main+fp v8-m.main+dp v8.1-m.main+mve +MULTI_ARCH_OPTS_RM = march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7e-m+fp/march=armv7e-m+fp.dp/march=armv8-m.base/march=armv8-m.main/march=armv8-m.main+fp/march=armv8-m.main+fp.dp/march=armv8.1-m.main+mve/march=armv8.1-m.main+pacbti +MULTI_ARCH_DIRS_RM = v6-m v7-m v7e-m v7e-m+fp v7e-m+dp v8-m.base v8-m.main v8-m.main+fp v8-m.main+dp v8.1-m.main+mve v8.1-m.main+pacbti # Base M-profile (no fp) MULTILIB_REQUIRED += mthumb/march=armv6s-m/mfloat-abi=soft @@ -36,6 +36,7 @@ MULTILIB_REQUIRED += mthumb/march=armv7-m/mfloat-abi=soft MULTILIB_REQUIRED += mthumb/march=armv7e-m/mfloat-abi=soft MULTILIB_REQUIRED += mthumb/march=armv8-m.base/mfloat-abi=soft MULTILIB_REQUIRED += mthumb/march=armv8-m.main/mfloat-abi=soft +MULTILIB_REQUIRED += mthumb/march=armv8.1-m.main+pacbti/mfloat-abi=soft # ARMv7e-M with FP (single and double precision variants) MULTILIB_REQUIRED += mthumb/march=armv7e-m+fp/mfloat-abi=hard @@ -93,3 +94,4 @@ MULTILIB_MATCHES += march?armv8-m.main=mlibarch?armv8-m.main MULTILIB_MATCHES += march?armv8-m.main+fp=mlibarch?armv8-m.main+fp MULTILIB_MATCHES += march?armv8-m.main+fp.dp=mlibarch?armv8-m.main+fp.dp MULTILIB_MATCHES += march?armv8.1-m.main+mve=mlibarch?armv8.1-m.main+mve +MULTILIB_MATCHES += march?armv8.1-m.main+pacbti=mlibarch?armv8.1-m.main+pacbti