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; +}