From patchwork Fri Jul 22 10:35:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrea Corallo X-Patchwork-Id: 56254 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 E306538356B1 for ; Fri, 22 Jul 2022 10:36:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E306538356B1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1658486176; bh=gKuFhaVF7DixK7xt+z1MoC5rlg7WnRqxyqb+BdSkTJc=; h=To:Subject:In-Reply-To:References:Date:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=SHV4ckUx1wnURaeoyWthywYAkuZpzZnVSkunfZ2GVZ72xO5OI2F2ZoOMFVwZrqldH ouaX/sau3SHYhCdh+Ins7vVUkFi4OXt3NJR4af/+kFp7iEgXCCtKUEGPE6+TRIiy9R vKriRvr2HmxuuIkKFmEGdMppzDjCPxQIgFipJzzo= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10057.outbound.protection.outlook.com [40.107.1.57]) by sourceware.org (Postfix) with ESMTPS id 86E633857C5D for ; Fri, 22 Jul 2022 10:35:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 86E633857C5D ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=XFvkQ3w166QSfrX75FWNOCTFtpuwvEd4/pqw/iVYD9ZdawOxrOz+VEWbDtKoD2nbkO2oQGbQLXRl858xYv8aT+908OzHFARFS/OZQMdi6di9sKk5GwbhKLJ1UWcio7p8U+P9roTkPN5JL1YxeTrP1toGvCbzCcVZu0R3i/wZE1F23kWwBKIoxgB0a/era+eLMSqvDcOoUzBsKrXXtt2IF5T9t0/5luoKe6W11uUgXMQKPA4THawCbOdB6XpHwHM8vWOTtQeR0PpgZb+uRhZMoh0VL/3V6C3DHxrmdXDRwvBhPtBfRGKKnO8LzdzdjaeUmuon1pKykwt8j6B5L4BMCw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gKuFhaVF7DixK7xt+z1MoC5rlg7WnRqxyqb+BdSkTJc=; b=Ahny34ywKjOpyTJBrWUpKwz5Zf9fQMxsugtADVqgc3N8S1X/wNVToWucRLhL/8Gna3iWkQvAEKErsmsyOZiSPxuwAZGLtyeSKbWVVc3y5DmUBRomlGy0xij405BszTadgAaXQUra2eLXyeQ6q7Kkyojh2udB7D1S8fo/cuzNI9dAcAZ55Cz/IyNUs2pk051yis5YEucAcbRQNaOw+NkMPIMpC7kDSjfqm5tr5D5IAdSrZiS+nPU2m6IK/u4WQJt9EYDMugF847to4ILYe0Usk8Rd/OwQGuoXHeeg5uQjbbDjFcuyS/1gxVWK3lVg66mpZzvEB4SySzZIgjC3LeO1kQ== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from DB3PR06CA0012.eurprd06.prod.outlook.com (2603:10a6:8:1::25) by PAXPR08MB6432.eurprd08.prod.outlook.com (2603:10a6:102:154::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.19; Fri, 22 Jul 2022 10:35:40 +0000 Received: from DBAEUR03FT032.eop-EUR03.prod.protection.outlook.com (2603:10a6:8:1:cafe::88) by DB3PR06CA0012.outlook.office365.com (2603:10a6:8:1::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.19 via Frontend Transport; Fri, 22 Jul 2022 10:35:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT032.mail.protection.outlook.com (100.127.142.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.17 via Frontend Transport; Fri, 22 Jul 2022 10:35:40 +0000 Received: ("Tessian outbound 2af316122c7a:v123"); Fri, 22 Jul 2022 10:35:40 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 5038fbaea36e6045 X-CR-MTA-TID: 64aa7808 Received: from 70c94c63c0de.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A17575CA-D6E7-4253-B823-6E360CCF1253.1; Fri, 22 Jul 2022 10:35:33 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 70c94c63c0de.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 22 Jul 2022 10:35:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EcUu85pSe5uM06+jDuqibnsdxcMZFtf7MLL7djMiBuU3NhYXup9QDDRIF7XZBnPQEOAeGBUBzE++PrWIImJqenY18NGRcSsqmGQw+j4q9rXWkxx4WdWPIfGE+UsJKknGaUcDnENxCJ1Y74imwPBxFh2slnS+d4nHnIOLChpIJvhlFjAQthGl/JWn2C3ogd/lBeVzbm89GeoxWllFVpqQQWuS2nvlA7t4V3gLzjcS4uYhCCtTDgfj5tlhPGZmfqeQhTkbQsWRFFU83cnTTO/pUKZgM0t6TY/bYdmZQ0X0ZR5ORWcX4d2DHoDphOblJf1aHx/juXvvc+NC9j0FI7kTQQ== 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=gKuFhaVF7DixK7xt+z1MoC5rlg7WnRqxyqb+BdSkTJc=; b=CmfmcwV0mW7PBjbFbUmmWk5LcXujkNpwYvi8bMO3UnOeLeLnmz8V7FjF+b7U7GwIDkUYAkP0f+lUixIOxMuzxRHZ2DBiJ3X1j8cOw7t088uu33CIUPceYs6eBJzL/atY08HbxunDKKoARIUgR6g3XNyk5ObAXI/2qUdTgBBwZPD7y/JUIBySepu+mhCqGNzILs38RVkSzEQ+2EhFX040vs17nbrls1oXiwvuN82JfoDG1IvC0XBRD2jCvruL5LdlkL5VSoWSjns2OJ12263QxJJO3Fu/l52vh2cGUG5ypC5eIrdb6TePW/rU3VfsVvD6+zRftFMPBegKTciXSaC57A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none Received: from AS9PR0301CA0013.eurprd03.prod.outlook.com (2603:10a6:20b:468::13) by DB9PR08MB6960.eurprd08.prod.outlook.com (2603:10a6:10:2c0::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.18; Fri, 22 Jul 2022 10:35:29 +0000 Received: from AM5EUR03FT057.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:468:cafe::3f) by AS9PR0301CA0013.outlook.office365.com (2603:10a6:20b:468::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.19 via Frontend Transport; Fri, 22 Jul 2022 10:35:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by AM5EUR03FT057.mail.protection.outlook.com (10.152.17.44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5458.17 via Frontend Transport; Fri, 22 Jul 2022 10:35:29 +0000 Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2507.9; Fri, 22 Jul 2022 10:35:27 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.9; Fri, 22 Jul 2022 10:35:26 +0000 Received: from e124257 (10.34.105.24) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.9 via Frontend Transport; Fri, 22 Jul 2022 10:35:25 +0000 To: Richard Earnshaw Subject: [PATCH 5/12 V3] arm: Implement target feature macros for PACBTI In-Reply-To: (Richard Earnshaw's message of "Thu, 21 Jul 2022 12:01:30 +0100") References: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1.50 (gnu/linux) Date: Fri, 22 Jul 2022 12:35:24 +0200 Message-ID: MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: 420faa8a-a287-49c7-7c66-08da6bcdec32 X-MS-TrafficTypeDiagnostic: DB9PR08MB6960:EE_|DBAEUR03FT032:EE_|PAXPR08MB6432:EE_ x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: BmESeJrAIC535GRMsuZlpFt4UbOauNkb66d+NmC/VU1B70JU7GQFmV04WgIMikg2IT8SplrpEvJiLYwUxu5VDQr6JSkkUXbrL0fkwkS3JSWgwQt5nZeCfjfn9xoxRyMTiag/XJxkS7PF9q4PTZv82D4h6TK4IKjICGhlg0fUvHtO0YjAlj/uc+tRyYZIowiv5vYe54py8QVJzUhmJk4LY2AyyiznUEsd2RiL0Rpxm/WtkAG3L3n+iLUEtlF8VxYrwd6B5KsPdzZtAAeIkSQvvqLkyhXbX7ByUENMZ1m0m0i4B8fHd56zzBdvxBHammahRzSZsNAr+/qkmOe/U3CX3yyUtQvCvZpNW9oo/xPMcrEElI2zKf8Yz6Lcc/bjsRCgHc7RJRXFPIf8faOk7VeDn4inUt3VCz/7U+Sn6z0zXq8TvX7bW61PSRkAxdLbbYYTaCLXeuIE+H85kY9Gr+1Erp43Ey/u/Bf4xqsmk8DOdxBTqeNEE3gIif4DqmYaHy+ttDT3JBMj406OvYjsZw3zzuEBPJX7iSPcAh56o/J3nQWqCyLlyFkD5gZTu608y7ulfTYm0VSCPQEcp9exi0pysODrgBZai5NTbNc6YbMbTTtndD9f8Ag5FRwImV951ao7FRezfBrsBg9TTM84AZz9ITL9YB9lAImcUBFgdEdu7J6cf4esOoWzLVS+o1akhqGleW8TMfdfCoFFowzJVQM5j+AI1rBeUzKy9BsWK4DMzB73vKfqBvJjUyzdFnOW1G52g8FocY00cnGzqOtNCGF4vXfPn+1A88yNcfFRxez380s3W+xzcMi1O7O9EKdLzSv4FZmNqYZnDYcXq4Kbm3AvFw== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230016)(4636009)(39860400002)(346002)(136003)(376002)(396003)(36840700001)(40470700004)(46966006)(83380400001)(40480700001)(186003)(336012)(81166007)(40460700003)(47076005)(426003)(36756003)(54906003)(36860700001)(8676002)(70206006)(70586007)(5660300002)(4326008)(316002)(235185007)(26005)(478600001)(41300700001)(8936002)(2906002)(356005)(2616005)(86362001)(82310400005)(6862004)(82740400003)(33964004)(44832011)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6960 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: bf74230b-3819-4059-f31c-08da6bcde5b7 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 03sfq50OtYcjfhpVPLD1roMU1IXr0FVgvK+1rVtkVV982v2g3a0TkV3n8VDraCkX2CDk0+E60nJxC41OtAfP5k3PVpO9QbDC1IoDOFdpeND7NNP4FTrYfe8Z87slkOnOT1hcwQBK4x8iXhdpMtX+pdT7/7v9amRChxWq5IJqcb6cToMulKz+fA+FDEb0Feg3bqGwZoS6K1Woo7mUGSlJe1xtN0q1XV1F2KVuYUtSwnM3Bxa0A9nOWg6e/a724+ghAeTmt7Stp/DLiECmmvHeXQaKbuGxDmOTT9yL2d/RT+lxVXqn0ojs8S/GjIoJ+CYFxNLfn+E4aC0ZZG38AOanB3NJ/fzw+9/6L7zS29QS4LEUSZ1F4g3Ni93fahcjJ3k7ix0wRfoOZApejeaIjXmjPL033wWyMZBj6IVwBg2Zf7/k/RUcZht1wFj++HbhXI57m8//SrMT7/QcbuVGTdRZczYsGOyYQmvRSppYIxByP+MYzwjgcqBjIifO6ECtCKlOo8TE0Z0EPJM5tnOgtaowxhY9Q7Xm9QDWwWcL8ZCniS26NugzoHjUbmqamuFupMNnRfgIoiSUJnGSqnxNGdsKI59Ti7/gax+NYkzU6yjZisXyH8mfPEvc74VSqpuLzjIDa3VVQgdqMj+p6fJ8aTD1tpnpTtBcK0OoXTG2O5NGIISKtA20Adca8Gl0qkKQCVeBGMe7jWQkGYUHk1/qU2vpybBFckUVGib2y49DWuWwSNGTDTTMqXzCSiVhKiW8soaiHEvlAbPs7taQIPhhrHTXGzCZ3e/3QxypKVYukxpY63f38HaRGRM8RT/9ad2OSO3/3hOtRAebCVNwJFiCb2dJFpBF7HXc/PvXF0HBwb74bEo= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230016)(4636009)(396003)(346002)(376002)(39860400002)(136003)(36840700001)(40470700004)(46966006)(478600001)(8936002)(6862004)(54906003)(235185007)(82740400003)(81166007)(336012)(5660300002)(316002)(8676002)(40460700003)(40480700001)(4326008)(86362001)(70206006)(70586007)(83380400001)(26005)(33964004)(186003)(2616005)(47076005)(36860700001)(44832011)(41300700001)(2906002)(82310400005)(36756003)(426003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2022 10:35:40.1545 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 420faa8a-a287-49c7-7c66-08da6bcdec32 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: DBAEUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6432 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: 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: Andrea Corallo via Gcc-patches From: Andrea Corallo Reply-To: Andrea Corallo Cc: Richard Earnshaw , nd , Andrea Corallo via Gcc-patches Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi Richard, thanks for reviewing. Richard Earnshaw writes: [...] > diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-10.c > b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-10.c > new file mode 100644 > index 00000000000..311cf572dd9 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-10.c > @@ -0,0 +1,10 @@ > +/* { dg-do compile } */ > +/* { dg-additional-options " -mbranch-protection=bti+pac-ret" } */ > > This is not enough. For example, if the testsuite is being run with > "-march=armv6-m" as the testrun options, we'll get an error that will > cause a test failure. You need to run a pre-test rule that validates > that adding -mbranch-protection is safe. Right, please find attached the updated patch, it should fix this and the mentioned spacing issue. BR Andrea From d5e0c5c0c4a3a07eb6a65c7626f474a0dbd4f8db Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Mon, 6 Dec 2021 11:39:59 +0100 Subject: [PATCH] [PATCH 5/12] arm: Implement target feature macros for PACBTI This patch implements target feature macros when PACBTI is enabled through the -march option or -mbranch-protection. The target feature macros __ARM_FEATURE_PAC_DEFAULT and __ARM_FEATURE_BTI_DEFAULT are specified in ARM ACLE __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI are specified in the pull-request . Approved here . gcc/ * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT, __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI. gcc/testsuite/ * lib/target-supports.exp (check_effective_target_mbranch_protection_ok): New function. * gcc.target/arm/acle/pacbti-m-predef-2.c: New test. * gcc.target/arm/acle/pacbti-m-predef-4.c: Likewise. * gcc.target/arm/acle/pacbti-m-predef-5.c: Likewise. * gcc.target/arm/acle/pacbti-m-predef-8.c: Likewise. * gcc.target/arm/acle/pacbti-m-predef-9.c: Likewise. * gcc.target/arm/acle/pacbti-m-predef-10.c: Likewise. * gcc.target/arm/acle/pacbti-m-predef-11.c: Likewise. * gcc.target/arm/acle/pacbti-m-predef-12.c: Likewise. Co-Authored-By: Tejas Belagod --- gcc/config/arm/arm-c.cc | 18 +++++++++++++++ .../gcc.target/arm/acle/pacbti-m-predef-10.c | 11 +++++++++ .../gcc.target/arm/acle/pacbti-m-predef-11.c | 11 +++++++++ .../gcc.target/arm/acle/pacbti-m-predef-12.c | 11 +++++++++ .../gcc.target/arm/acle/pacbti-m-predef-2.c | 23 +++++++++++++++++++ .../gcc.target/arm/acle/pacbti-m-predef-4.c | 20 ++++++++++++++++ .../gcc.target/arm/acle/pacbti-m-predef-5.c | 23 +++++++++++++++++++ .../gcc.target/arm/acle/pacbti-m-predef-8.c | 11 +++++++++ .../gcc.target/arm/acle/pacbti-m-predef-9.c | 10 ++++++++ gcc/testsuite/lib/target-supports.exp | 10 ++++++++ 10 files changed, 148 insertions(+) create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-10.c create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-2.c create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-4.c create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-5.c create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-8.c create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-9.c diff --git a/gcc/config/arm/arm-c.cc b/gcc/config/arm/arm-c.cc index a8697b8c62f..190099b2c37 100644 --- a/gcc/config/arm/arm-c.cc +++ b/gcc/config/arm/arm-c.cc @@ -212,6 +212,24 @@ 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); + def_or_undef_macro (pfile, "__ARM_FEATURE_PAUTH", TARGET_HAVE_PACBTI); + def_or_undef_macro (pfile, "__ARM_FEATURE_BTI", TARGET_HAVE_PACBTI); + def_or_undef_macro (pfile, "__ARM_FEATURE_BTI_DEFAULT", + aarch_enable_bti == 1); + + cpp_undef (pfile, "__ARM_FEATURE_PAC_DEFAULT"); + if (aarch_ra_sign_scope != AARCH_FUNCTION_NONE) + { + unsigned int pac = 1; + + gcc_assert (aarch_ra_sign_key == AARCH_KEY_A); + + if (aarch_ra_sign_scope == AARCH_FUNCTION_ALL) + pac |= 0x4; + + builtin_define_with_int_value ("__ARM_FEATURE_PAC_DEFAULT", pac); + } + 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-10.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-10.c new file mode 100644 index 00000000000..4fcc96f3eb4 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-10.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target mbranch_protection_ok } */ +/* { dg-additional-options " -mbranch-protection=bti+pac-ret" } */ + +#if (__ARM_FEATURE_BTI_DEFAULT != 1) +#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be defined to 1." +#endif + +#if !defined (__ARM_FEATURE_PAC_DEFAULT) +#error "Feature test macro __ARM_FEATURE_PAC_DEFAULT should be defined." +#endif diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c new file mode 100644 index 00000000000..2437140992f --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target mbranch_protection_ok } */ +/* { dg-options "-march=armv8.1-m.main+pacbti" } */ + +#if (__ARM_FEATURE_BTI != 1) +#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be defined to 1." +#endif + +#if (__ARM_FEATURE_PAUTH != 1) +#error "Feature test macro __ARM_FEATURE__PAUTH should be defined to 1." +#endif diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c new file mode 100644 index 00000000000..9e97f99c33d --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target mbranch_protection_ok } */ +/* { dg-options "-march=armv8.1-m.main" } */ + +#if defined (__ARM_FEATURE_BTI) +#error "Feature test macro __ARM_FEATURE_BTI should not be defined." +#endif + +#if defined (__ARM_FEATURE_PAUTH) +#error "Feature test macro __ARM_FEATURE_PAUTH should not be defined." +#endif 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 00000000000..bd29806c326 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-2.c @@ -0,0 +1,23 @@ +/* { dg-do run } */ +/* { dg-require-effective-target arm_pacbti_hw } */ +/* { dg-additional-options " -mbranch-protection=bti+pac-ret+leaf" } */ + +#if !defined (__ARM_FEATURE_BTI_DEFAULT) +#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be defined." +#endif + +#if !defined (__ARM_FEATURE_PAC_DEFAULT) +#error "Feature test macro __ARM_FEATURE_PAC_DEFAULT should be defined." +#endif + +int +main() +{ + if (__ARM_FEATURE_BTI_DEFAULT != 1) + __builtin_abort (); + + if (__ARM_FEATURE_PAC_DEFAULT != 5) + __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 00000000000..88e7957486d --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-4.c @@ -0,0 +1,20 @@ +/* { dg-do run } */ +/* { dg-require-effective-target arm_pacbti_hw } */ +/* { dg-additional-options " -mbranch-protection=pac-ret" } */ + +#if !defined (__ARM_FEATURE_PAC_DEFAULT) +#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be defined." +#endif + +#if defined (__ARM_FEATURE_BTI_DEFAULT) +#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be undefined." +#endif + +int +main() +{ + if (__ARM_FEATURE_PAC_DEFAULT != 1) + __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 00000000000..17e3543ab8f --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-5.c @@ -0,0 +1,23 @@ +/* { dg-do run } */ +/* { dg-require-effective-target arm_pacbti_hw } */ +/* { dg-additional-options " -mbranch-protection=bti+pac-ret" } */ + +#if !defined (__ARM_FEATURE_BTI_DEFAULT) +#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be defined." +#endif + +#if !defined (__ARM_FEATURE_PAC_DEFAULT) +#error "Feature test macro __ARM_FEATURE_PAC_DEFAULT should be defined." +#endif + +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-8.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-8.c new file mode 100644 index 00000000000..d5d069cbc89 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-8.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-additional-options " -mbranch-protection=bti+pac-ret+leaf" } */ + +#if (__ARM_FEATURE_BTI_DEFAULT != 1) +#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be defined to 1." +#endif + +#if (__ARM_FEATURE_PAC_DEFAULT != 5) +#error "Feature test macro __ARM_FEATURE_PAC_DEFAULT should be defined to 5." +#endif + diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-9.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-9.c new file mode 100644 index 00000000000..f301beba0c7 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-9.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options " -mbranch-protection=pac-ret" } */ + +#if (__ARM_FEATURE_PAC_DEFAULT != 1) +#error "Feature test macro __ARM_FEATURE_PAC_DEFAULT should be defined to 1." +#endif + +#if defined (__ARM_FEATURE_BTI_DEFAULT) +#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be undefined." +#endif diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index df8ab037fb3..62e41d1e8d4 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -5090,6 +5090,16 @@ proc check_effective_target_arm_cmse_clear_ok {} { } "-mcmse"]; } +# Return 1 if this is an ARM target supporting +# -mbranch-protection=standard, 0 otherwise. + +proc check_effective_target_mbranch_protection_ok {} { + + return [check_no_compiler_messages mbranch_protection_ok object { + int main (void) { return 0; } + } "-mbranch-protection=standard"] +} + # Return 1 if the target supports executing PACBTI instructions, 0 # otherwise.