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: "Li, Pan2 via Gcc-patches" X-Patchwork-Id: 125 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f503:0:0:0:0:0 with SMTP id q3csp171178wro; Fri, 22 Jul 2022 03:36:33 -0700 (PDT) X-Google-Smtp-Source: AGRyM1st2Gmc0bJh3qV83HPevGdxUPGISbNwuxqt7Iw2b33mpKt0p7yXT4o7xz6ZTxPAOA/oRzzz X-Received: by 2002:a17:907:2cee:b0:72b:3b63:200 with SMTP id hz14-20020a1709072cee00b0072b3b630200mr2640773ejc.678.1658486193139; Fri, 22 Jul 2022 03:36:33 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id hd34-20020a17090796a200b006fed9affed0si6752980ejc.528.2022.07.22.03.36.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Jul 2022 03:36:33 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=yHCKwiYx; arc=fail (signature failed); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DA8E538356A8 for ; Fri, 22 Jul 2022 10:36:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DA8E538356A8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1658486191; 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=yHCKwiYxEQu6XLdsxQ9IDdLDQUk8trFf/StBmX/csWaU0lmiY81G18rHUNmddQA34 IqtPvvx8JhJQ0737Z7v0EPFPQvKO7OvYNPVsTNYUFKP6weWT3dy3kEJbIvUrJ71Qvp sdCGxksmTSeQky2+1riR5D0XYkMG7W1dT7+r09wo= 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: "Li, Pan2 via Gcc-patches" Reply-To: Andrea Corallo Cc: Richard Earnshaw , nd , Andrea Corallo via Gcc-patches Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1738959842272782812?= X-GMAIL-MSGID: =?utf-8?q?1739048818108545617?= 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. From patchwork Wed Nov 9 11:17:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrea Corallo X-Patchwork-Id: 17494 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp275363wru; Wed, 9 Nov 2022 03:18:23 -0800 (PST) X-Google-Smtp-Source: AA0mqf7zftyJjdnGAkl3D9hqVrsntJKy0EHnymHJ7/IYUdrXCrKllrwORS5bq10MNuYnmGplTodw X-Received: by 2002:a17:906:4c92:b0:7ae:5a45:a732 with SMTP id q18-20020a1709064c9200b007ae5a45a732mr19126523eju.18.1667992703311; Wed, 09 Nov 2022 03:18:23 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id ey3-20020a0564022a0300b00456964d3369si4751174edb.230.2022.11.09.03.18.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 03:18:23 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b="eOoHpaI/"; arc=fail (signature failed); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2FE48396E460 for ; Wed, 9 Nov 2022 11:18:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2FE48396E460 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667992702; bh=uijU+ySHvoqxMz2Th709+9bIysk7lgAWzfAio7oZmJA=; h=To:CC:Subject:In-Reply-To:References:Date:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=eOoHpaI/yfUJAdFIjkEXQ3wnPJGBF+ncJm4eBG3rzO3vtBGo31pCO6WiWTspeScOj flz5jTFE4G/qpZ1iiXanX4HfN1fIPnC3+Kf5ytVFRaepWZVMi22LhorV+yNqgeScU2 yFcPxwrq8y8YibxOVwdHfQ3QmpCCvXLW8Uan5se4= 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-db8eur05on2072.outbound.protection.outlook.com [40.107.20.72]) by sourceware.org (Postfix) with ESMTPS id 310DF396E418 for ; Wed, 9 Nov 2022 11:17:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 310DF396E418 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=Bu1DK9h6IIY0asF+IWxsvj8RerxTBkN/fu9+MkYCPhqkwhu65qSI6ENVHxpg+DgPu11xuiJWS6ff4eeQAcfOVdjcZd4UWLwjNUhOlT9Nm/sA4PA5nvikWDIsqJE3vf7tWknHJl61NpxXZDUhDQn4OHyD05Lwjf713Pj/2KuIaGzqGcGBGIUkRO99hGEJu5zqNVDM+iktWKTB9LJ/m1ajHkMbPpGgf5ge8gxLJswWkgzKJ8TESoDw34f7K+efSyIoNeQQb1BG4N4w6ZgTci4cCIRgUEGQPu7KfcKG7+BQ5LvYPr+2VA5Z/eUZ91v81l9fenYpj9pventMXbVxx/l+Wg== 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=uijU+ySHvoqxMz2Th709+9bIysk7lgAWzfAio7oZmJA=; b=kg1ihlW4fPh8FrAdqE+A9t+hENY6A4b/iZgVeRdIKw/AEWzrbUqF80vqLMOhzOKOxMy3LU9cQm30mR/tokfvPts0ROy2mSJ8yhZwYhlFTskIk1mfMM6hfXZ5RhGB1MsxJ4GfLeh6pjg7nF2kbpDI9zQzWDCv6osfnjdqmMFkhHFWHlqKH+6kW1ikfEdYWElVlB9BoLeCgQRcpSkZVNRh7xLgOd7taW8mW9uJsZ3lQqAuU26VkhvxHUr5RWgl2M/JvfzLbVQkPhMv3TMYk2pwlOqqc7wbBSvwBywySZIJTrOTVvxLeNNdPfHNEJ8QJdQlNZGukEL+W4jzlOHYj+VmcQ== 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 DU2PR04CA0027.eurprd04.prod.outlook.com (2603:10a6:10:3b::32) by DB4PR08MB9358.eurprd08.prod.outlook.com (2603:10a6:10:3f2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.11; Wed, 9 Nov 2022 11:17:33 +0000 Received: from DBAEUR03FT062.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:3b:cafe::f) by DU2PR04CA0027.outlook.office365.com (2603:10a6:10:3b::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.22 via Frontend Transport; Wed, 9 Nov 2022 11:17:33 +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 DBAEUR03FT062.mail.protection.outlook.com (100.127.142.64) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12 via Frontend Transport; Wed, 9 Nov 2022 11:17:33 +0000 Received: ("Tessian outbound 2ff13c8f2c05:v130"); Wed, 09 Nov 2022 11:17:33 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b32aca4cf34bb42b X-CR-MTA-TID: 64aa7808 Received: from f4a1b3c9f548.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 73018950-D6E3-46C5-A69D-AC342525876D.1; Wed, 09 Nov 2022 11:17:24 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f4a1b3c9f548.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 09 Nov 2022 11:17:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DHiUaSpdEx5tLgmmfCXe5Dr0s4mpVEIDI4/vqGoMrmwwrw+AnVq4zeHye47UAw3svDJJtRCVuUxKkmAgxTr/Mop5uyK3y2VWPTRXCJTYC9/VIT0aDxcLMOq/ABeFgvK/90qFmMCtMmNqLK3OaAXlkMksCSFfFbiFDhCb080uz+f0PJ0MBrJeptYUafQbNo9/1oR8H/fD9Ykcu5F7dMXevgowHEL/JjpyJ6/ltKLXFxJyRtT/q6F+dvT5IxOAOAK3DTFdYtAIrLnyx28HdyULjvlDyzHzj9qhQ4+OOaghuJXZFRTWm1V4rLgYPRrCUYae24AQe2c5okFMMt+PcoOJzg== 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=uijU+ySHvoqxMz2Th709+9bIysk7lgAWzfAio7oZmJA=; b=eeeUXuow8T7NZoZnhh34mxTnEv+qKXaXFZXZVywSfqE34Z/X7m85qizM084cqOEdFaUVpcdxfq7LfRQgXhYI7JF3+zpNlcNDfBPpD8oU1GTO4DLDFSGhgbJ2CjcFS/pqVutgoqAI93Lrz/zHwcqOuEPJsAkvSNVWPOHmQEpKNjlgBb6ibMeqTI1RuAuqWnkcsQ1RNFSG/IyMc6sMZzukZY9Y/flGYRaReC456xNRBmZjIzp39HFiSg2NXZqHRaZE669mWZ25iv4UuteY67dYWSedBg3tjBA5wqI9emdvl9gM7RMyNIG3g7jarg3cDuP8w1G+yDfmbBB3U4nUFB6hBg== 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 AM6P195CA0064.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::41) by DB9PR08MB8698.eurprd08.prod.outlook.com (2603:10a6:10:3d2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.11; Wed, 9 Nov 2022 11:17:23 +0000 Received: from AM7EUR03FT054.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:87:cafe::3) by AM6P195CA0064.outlook.office365.com (2603:10a6:209:87::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.27 via Frontend Transport; Wed, 9 Nov 2022 11:17:23 +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 AM7EUR03FT054.mail.protection.outlook.com (100.127.140.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5813.12 via Frontend Transport; Wed, 9 Nov 2022 11:17:23 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) by AZ-NEU-EX04.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.12; Wed, 9 Nov 2022 11:17:23 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.12; Wed, 9 Nov 2022 11:17:22 +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.12 via Frontend Transport; Wed, 9 Nov 2022 11:17:22 +0000 To: Richard Earnshaw CC: Andrea Corallo via Gcc-patches , "Richard Earnshaw" , nd , Srinath Parvathaneni Subject: [PATCH 6/12 V2] arm: Add pointer authentication for stack-unwinding runtime In-Reply-To: <9beb66cc-7a8d-9f13-0489-c19177853713@foss.arm.com> (Richard Earnshaw's message of "Fri, 1 Jul 2022 15:41:08 +0100") References: <9beb66cc-7a8d-9f13-0489-c19177853713@foss.arm.com> Date: Wed, 9 Nov 2022 12:17:21 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM7EUR03FT054:EE_|DB9PR08MB8698:EE_|DBAEUR03FT062:EE_|DB4PR08MB9358:EE_ X-MS-Office365-Filtering-Correlation-Id: 11f6d601-98f0-40fc-0c20-08dac243ffee 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: vEkSZ1EIvfD81gKj/Vs6815MfD17v4+QVSm2eaG2mKsQbNUZIsJ3iW//VKNxwcLszY7EAES6qYjhd87hIpX4zId0AU1KcSoJZTBbUn30UZ5iPWZ/shxGgVJ1WLSCmw0tYXUVLTLtpAvOu4D8ulnvndVVKq2VZQd2IV5UK54UbGISc7HT+pEP51NQ8UyNkf4Fk4wb+4fT0bJrARHZDAyuviwK+ptHyRlb4M7Dd/YG7OHnGO4eG78gPJKpYaXJtt8JmmtQEky3wLAenOsEvdbJQ9iZhdyvrNzN4b97ycereKWCazlcDiO8IRgB5elNJ2eA7IGQwFzgig7CFHk55Ec8lY6qouJn4mBPAQBye8clTCc2cnlbh0IgF6hdVj30KOYaTk8EnX8Q9WNTdWDFNA6zkrGp9QmFoD+8QQonlge2hhpUdonwJikbWo0fHikJKOa8CBQ8f92Fa3OacJ7V8ss6xcK4eDvez29CYfWtHyU2YXNKzfMMJX1XAM6YThYkh0xGk2XPW+mGXV0BttKa2jw508KHElrelGMXg7wV011PVPtu8isDYWERFU2+/Z4zNa0+XA8IzZizED+wj+Zkt0rb/CCPi+5Rwlv9C+fOmpRnH12oAjPAmFIOyMOAukOXS/hcH0U0CWa4JxsBEuLMOYx2EkjXmraY98TT+A9mxOs0FkyVn293PZRE/YBefIE3CyOO5c2ZV/yshu0A2mI0b3AvfEWStb/khkRZU5Oescr4lmoa9Q56fVhp58UH/c2krU8LO3bq9Tk//6x31ML6J8+Jz5tEHQ8tSRmfCtRw8xYlIJ30H3Op/jXfkcVLGEv3ljfr 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:(13230022)(4636009)(39860400002)(136003)(396003)(376002)(346002)(451199015)(46966006)(36840700001)(40470700004)(36756003)(81166007)(564344004)(86362001)(36860700001)(44832011)(5660300002)(235185007)(2906002)(2616005)(47076005)(33964004)(26005)(426003)(82740400003)(186003)(336012)(70586007)(8676002)(70206006)(6862004)(356005)(4326008)(40460700003)(41300700001)(316002)(8936002)(54906003)(40480700001)(478600001)(82310400005)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8698 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: ec955aa3-0e82-4578-d58a-08dac243f9b3 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tWSzcX4mTbaD7Dq1UmLH8rE43MpRi+x3Wlr4LSgGupV4iLgT/hMptQB/TyMVo+xpO2EPB+EAX5WaUUlOaKPNQEgIPkuYHDk2Vk95KLYv9CrYvS8JgvJhuah+5uFlapWPg7l5riE1ACm+S6m749EONS+eJYtwMMWvIMB9OZI8QBaYFITKMlEpiszNkAm3yvoSPVr7VcaktL/q9TophsaWa3NUCGdN+hq0LtLiA7ZshIlXyyL2CK3EsmCV/vIE+47pnTF5rZartIo8KZepiC0Do9IplKMActaAAoHkrcfutnpy8PeSviGUs0AHczHR4WP26cPemNfk9KKR/WjmNaeODCIpX5yZjRweKgGeWHy/q0VZOiQD5P6I3Mlszmri9hCf0Trsf2ojfjEZEgTYB5FE3Yx+ugXH1z/JMLzBG8zef7rAM+lMP3VfdfFb58S4aZCb9bKzkewiyjIvT41mPr3S+Nm5jHclMWv8v70oZHM+buVjI4ZoWzgnXHKF5c470IynPKmsJd/d3ioGBjvlCeeeXHfPAd68Se0c3sp97mByMACa4WMuzBfb2Br4b84Rv3oGkeIO6f0JOld0s/RqZv4+n+F0oKJX57K2cg1ZPTw/jKSr1Ep4dCTF6WehH1yjUUGomXVStU9bS4PiQ7/cuz6lYw3tKhtrM4zAqWKOgPPSNdPzHzUq+Xx/VE4/HgMJxti5OiMfFLFTHAJMjIn9JFU0ABbehrcsLOS3ezD9HqjUXo1aPrXyZphSiQBCLxOF9zC1aEmw9Kt/8LjyDqaXCXrP0g== 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:(13230022)(4636009)(39860400002)(376002)(346002)(396003)(136003)(451199015)(36840700001)(40470700004)(46966006)(2906002)(336012)(186003)(426003)(478600001)(47076005)(36756003)(2616005)(33964004)(26005)(82740400003)(40460700003)(316002)(54906003)(564344004)(40480700001)(81166007)(70206006)(36860700001)(70586007)(82310400005)(86362001)(8676002)(4326008)(41300700001)(8936002)(6862004)(44832011)(5660300002)(235185007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2022 11:17:33.8578 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 11f6d601-98f0-40fc-0c20-08dac243ffee 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: DBAEUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9358 X-Spam-Status: No, score=-11.9 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 Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749017116822714387?= X-GMAIL-MSGID: =?utf-8?q?1749017116822714387?= Hi all, please find attached the latest version of this patch now updating the stack pointer value after the pop used to read the PAC value. Best Regards Andrea From a78acf8804daa3d493b419b4998f4ac705869ff9 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Mon, 6 Dec 2021 11:42:11 +0100 Subject: [PATCH] [PATCH 6/15] arm: Add pointer authentication for stack-unwinding runtime 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 activated 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. Pre-approved with the requested changes here . 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. Co-Authored-By: Tejas Belagod Co-Authored-By: Srinath Parvathaneni --- gcc/ginclude/unwind-arm-common.h | 3 ++- libgcc/config/arm/pr-support.c | 32 ++++++++++++++++++++++++++++++++ libgcc/config/arm/unwind-arm.c | 28 ++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/gcc/ginclude/unwind-arm-common.h b/gcc/ginclude/unwind-arm-common.h index d3831f6c60a..f26702e8c6c 100644 --- a/gcc/ginclude/unwind-arm-common.h +++ b/gcc/ginclude/unwind-arm-common.h @@ -127,7 +127,8 @@ 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 */ + _UVRSC_PAC = 5 /* Armv8.1-M Mainline PAC/AUTH pseudo-register */ } _Unwind_VRS_RegClass; diff --git a/libgcc/config/arm/pr-support.c b/libgcc/config/arm/pr-support.c index 2de96c2a447..e48854587c6 100644 --- a/libgcc/config/arm/pr-support.c +++ b/libgcc/config/arm/pr-support.c @@ -106,6 +106,7 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws) { _uw op; int set_pc; + int set_pac = 0; _uw reg; set_pc = 0; @@ -114,6 +115,27 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws) op = next_unwind_byte (uws); if (op == CODE_FINISH) { + /* When we reach end, we have to authenticate R12 we just popped + earlier. + + Note: while the check provides additional security against a + corrupted unwind chain, it isn't essential for correct unwinding + of an uncorrupted chain. */ +#if defined(TARGET_HAVE_PACBTI) + 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 +249,16 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws) return _URC_FAILURE; continue; } + /* 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; + } + 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 386406564af..9acb3de6bc3 100644 --- a/libgcc/config/arm/unwind-arm.c +++ b/libgcc/config/arm/unwind-arm.c @@ -64,6 +64,12 @@ struct wmmxc_regs _uw wc[4]; }; +/* Holds value of pseudo registers eg. PAC. */ +struct pseudo_regs +{ + _uw pac; +}; + /* 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 +84,9 @@ typedef struct /* The first fields must be the same as a phase2_vrs. */ _uw demand_save_flags; struct core_regs core; + /* Armv8.1-M Mainline PAC/AUTH values. This field should be in the same field + order as phase2_vrs. */ + struct pseudo_regs pseudo; _uw prev_sp; /* Only valid during forced unwinding. */ struct vfp_regs vfp; struct vfpv3_regs vfp_regs_16_to_31; @@ -99,6 +108,7 @@ typedef struct { _uw demand_save_flags; struct core_regs core; + struct pseudo_regs pac; } phase2_vrs; /* Coprocessor register state manipulation functions. */ @@ -175,6 +185,10 @@ _Unwind_VRS_Result _Unwind_VRS_Get (_Unwind_Context *context, case _UVRSC_WMMXC: return _UVRSR_NOT_IMPLEMENTED; + case _UVRSC_PAC: + *(_uw *) valuep = vrs->pseudo.pac; + return _UVRSR_OK; + default: return _UVRSR_FAILED; } @@ -206,6 +220,10 @@ _Unwind_VRS_Result _Unwind_VRS_Set (_Unwind_Context *context, case _UVRSC_WMMXC: return _UVRSR_NOT_IMPLEMENTED; + case _UVRSC_PAC: + vrs->pseudo.pac = *(_uw *) valuep; + return _UVRSR_OK; + default: return _UVRSR_FAILED; } @@ -246,6 +264,16 @@ _Unwind_VRS_Result _Unwind_VRS_Pop (_Unwind_Context *context, } return _UVRSR_OK; + case _UVRSC_PAC: + { + _uw *ptr = (_uw *) vrs->core.r[R_SP]; + if (discriminator != 0) + return _UVRSR_FAILED; + vrs->pseudo.pac = *(ptr++); + vrs->core.r[R_SP] = (_uw) ptr; + return _UVRSR_OK; + } + case _UVRSC_VFP: { _uw start = discriminator >> 16; From patchwork Fri Jul 22 14:57:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Li, Pan2 via Gcc-patches" X-Patchwork-Id: 133 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f503:0:0:0:0:0 with SMTP id q3csp283526wro; Fri, 22 Jul 2022 07:58:45 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vRZYFAztDyMhMyz/IEw9vS6k7QzTQ3an3yYeUDJEXk/S+HM4eVnE7rALe3c9nVbu/LxgTS X-Received: by 2002:a17:907:2e02:b0:72b:7f58:34a7 with SMTP id ig2-20020a1709072e0200b0072b7f5834a7mr223300ejc.525.1658501925255; Fri, 22 Jul 2022 07:58:45 -0700 (PDT) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id b18-20020a056402351200b0043abb92495fsi7178854edd.562.2022.07.22.07.58.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Jul 2022 07:58:45 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=fecmU5vJ; arc=fail (signature failed); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EA5D43835415 for ; Fri, 22 Jul 2022 14:58:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EA5D43835415 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1658501924; bh=0p1pUZg6Eh61DORISKKUJjMbFZfF8HOLiMDx9uwyh8I=; h=To:Subject:References:Date:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=fecmU5vJufqDAmMqLI+bTXLh1QO+QnlKCOTa7iJHpPnUAiLpIYt/fIbEOq34IfHoP Vlj3MOxZF+30EVZHkuw0UvfN8mnVYeKW4VWMz/PAUPp6JJGet734gpbHdVgkC+3U5b SApcFZfYalJ4wMmODSXCl0aoeQjdCdhL6CWdOX88= 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-am6eur05on2087.outbound.protection.outlook.com [40.107.22.87]) by sourceware.org (Postfix) with ESMTPS id 238B33857C5D for ; Fri, 22 Jul 2022 14:57:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 238B33857C5D ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=iIOIkKjGnIyNRZpOcDJazJE4xNQQiZvMjaG2aH3Ydd/C1h20dwTvg0hf/YEojB9zpeg7j/OssUmNUxAQM5s+fRke2hrLztOanCh9s/WYgJx7QxytKDxFChmusi8C3OWlLlFGw9/6CgNSeAFPJmD+E55zbhJ0WeXSwhlxGOFviN2tr0Ak88aoxM7kz+q5Q889FHs5u+fQhzOTn49yNix4AXjEjKUc8LYk4Sk5hhcl83WWuqkqDkPLOsJE+glb7WFIak9x95/oXvmS0ZQS+KrIkfK9nqF111Q0wwImN4M5PsaFUI86TcakQfKqXUe0kqUn0C2nIAYh9B4X4pj5bG/zIg== 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=0p1pUZg6Eh61DORISKKUJjMbFZfF8HOLiMDx9uwyh8I=; b=VjGueQRXlX0x6VbzhAZNYzZu1mbza4r3i8VQ5s7m0EgRejwmssUbpTbrsYUsZdhSET71bJdP3WrAIRJy37HZ9ENTAt/C83HSuW8nqqFXQZ0K4lAUXpjEnbfublWjuwTRJtTYUbcJVz/3vSzmLAJow72UF6WZyf0nJ1OkMTmRTe5/enmY58Um8IH0zvjqYp/mpLDT4OwkW/ZmwQK2WRpCNRfVxPYf+bzYOVeY7EPT/Lz6Ry26K+VBsyq8KfvnlT66AFvnCHH2XiWtDY4VwOg5d1o99+/MDMsSCaSoF+VqOLEB4gJ4yPfWRSqhYJOaQBsLYoTHPuiU3GJaHolaZRj7Wg== 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 DB6PR07CA0113.eurprd07.prod.outlook.com (2603:10a6:6:2c::27) by PA4PR08MB7523.eurprd08.prod.outlook.com (2603:10a6:102:26c::19) 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 14:57:53 +0000 Received: from DBAEUR03FT017.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:2c:cafe::c0) by DB6PR07CA0113.outlook.office365.com (2603:10a6:6:2c::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.1 via Frontend Transport; Fri, 22 Jul 2022 14:57:53 +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 DBAEUR03FT017.mail.protection.outlook.com (100.127.142.243) 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 14:57:53 +0000 Received: ("Tessian outbound cc6a8ab50b6b:v123"); Fri, 22 Jul 2022 14:57:53 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d42a0ea8173b6bbd X-CR-MTA-TID: 64aa7808 Received: from 1d154d1e30a5.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EADD2DDB-FDB9-4C1A-B917-B4EE34444506.1; Fri, 22 Jul 2022 14:57:45 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 1d154d1e30a5.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 22 Jul 2022 14:57:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jW3H8aI1lyU252Jj1Z6LEibD07aSlB06p15agZGQqB0RnNAchg1uVAFQJmuQY2esG/N1OW6AbFeyR2FQBG0KRuEn0aTzj3mF9n/VCBb/5tggG+4awhPXZSHO0IeKrKoRnCCn77Ayk/OFHIiyVXq7QeG/BKidaN5WFsCqjYKZAHdbytUy/6a4Hp5fYK/QfyBNCzHCwhEUEStWhbgcEpBjHtkUuPZ02D9aBB8PHF96Aq0vPnlbxDWuhWQY1J1b8Dmw5haj/hbE3VIi8IZGWYgbmtgvGR5yYkXID+ZHxNxCVfQrNAYMZKb2o/Z/QFVcOPSkaISv4EcKX4OygiB865GWqA== 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=0p1pUZg6Eh61DORISKKUJjMbFZfF8HOLiMDx9uwyh8I=; b=aX+Tyvt3SY/ezF+O8db1zFBtY3+0+eh+qixUrlglqd2YBFbgxgC4v1ED4QmHy7D2rzgRxTNr8e68Geyccb8m/if680c53T+DYJia3lu7eAmv0sAtvfIIpHBJFgMet+rxfKhQjvGTpCkTkBwhCWR5guGZSxpGfq31vKEXAOTgmeLqSmHVaJ0PGIO8ahvpvIxahxxuwE34/L33OmVKidfY0MjD6gtpSTptDU8ZgQNITQ2bNVaMrbCkBZMd/y8W1p8VvEqjPIdaAn/jS5/fAAqY0siKliel8wNSaJEUvALVUwyLzSgo6U59D8d2kkCD6P0kthezZLPxE4zjohT6eSsNOw== 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 FR3P281CA0055.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4b::18) by AS8PR08MB6424.eurprd08.prod.outlook.com (2603:10a6:20b:33e::13) 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 14:57:35 +0000 Received: from VE1EUR03FT058.eop-EUR03.prod.protection.outlook.com (2603:10a6:d10:4b:cafe::7f) by FR3P281CA0055.outlook.office365.com (2603:10a6:d10:4b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.13 via Frontend Transport; Fri, 22 Jul 2022 14:57:35 +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 VE1EUR03FT058.mail.protection.outlook.com (10.152.19.86) 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 14:57:35 +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 14:57:30 +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 14:57:30 +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 14:57:30 +0000 To: Richard Earnshaw Subject: [PATCH 7/12 V2] arm: Emit build attributes for PACBTI target feature References: <7cbe01d8-96a6-7e33-ebe0-761e8a6b14c7@foss.arm.com> Date: Fri, 22 Jul 2022 16:57:29 +0200 In-Reply-To: <7cbe01d8-96a6-7e33-ebe0-761e8a6b14c7@foss.arm.com> (Richard Earnshaw's message of "Fri, 1 Jul 2022 15:49:15 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1.50 (gnu/linux) MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: f6c37add-1f88-440d-f3d9-08da6bf28e2f X-MS-TrafficTypeDiagnostic: AS8PR08MB6424:EE_|DBAEUR03FT017:EE_|PA4PR08MB7523: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: 9T4Qj6nJtuxekLlZGbCTwHCuSzMKgM4/0Wt/gs4DbDzHk0oQ229YR/5chEZ/vmDGSKyoUUbSGCx1GVwXXC0GH0R+qrY4ImnF+biX7yL6acJVekEWGToOTYGPcdxAGQ9JYRaAT1AgG8hB/lQp6LsF7ANXfPeptP0NJv8JeDmB10YR0VLkGRVy0D1CjLXivihwHjOPK2iNI6ermmXXbj4pdMjb/8bRrxtQ9hWulvs5f4ARJ63XfytnMCsKEQSGMrd8zoUPhf53x2dZ3I9SQUgCF0eQYqF7/IpfpmDQF/N/fDKvzeJAVYDCcEGPoRLeIhPb1hhGp7D6R6hs91dV2gmFH3Zu8K6o1IaZWbFofMiSs+EyuQZdzpIuz7hZnTQnGFKFowMfrNHddqBt6tFYzZDN0spgy1c/sfFOXmBP+Ovu9MCGbpudY9Vh3UyFnO01087MuRdK4VM/Y/hfefrPG50XSgcDqU/8TIHXgej//yf2skWmS2GeXUMYM8UWRHz3is1Kwtry0vp9EmqeMG9wuvoBTLAOKrkox7NcAhfMfu3Fe2GLi2zvkfuKcyoyboF4efZARQ8IwxLRO21w2OSECoLAcj7xHQMy9/SBXTe54WxEJdi9vR/B4Nmn3nRIIG4TGXxeuM8QGgicxV3qSXH8dXRTtYlKj6OqIsOIhoMdAsQrPplbj2QA3pX7KQjKMCD4lluTwhakPz0YOJM+FkzEVzuifcp5rm+3ERvydHPNoQRCGbnrdQI+j47eTK8SEMaGBz9vYWRCLmvPmrt9dAcAQtOctC1rp26QmYVIwWYQK0aYFOjalTa97E1/G3NL0jmA/xRSr08JaV7P8h7PZObkrZxJPVwTYZtIVsohcsfgWHNu28RB/y72jENUMVwI1y1ud4iifDJc/XREN626FCzceRH46unERq4mpTW+MJAJteIlaj0= 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)(136003)(396003)(346002)(376002)(39860400002)(36840700001)(40470700004)(46966006)(36860700001)(186003)(70586007)(2616005)(426003)(47076005)(84970400001)(40460700003)(316002)(5660300002)(36756003)(70206006)(8936002)(83380400001)(44832011)(235185007)(336012)(4326008)(6862004)(82310400005)(54906003)(53546011)(8676002)(26005)(33964004)(478600001)(41300700001)(81166007)(86362001)(356005)(82740400003)(40480700001)(2906002)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6424 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT017.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 79f1f98a-b191-4cf1-fb14-08da6bf28315 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nWpsEG3wQRVkMCYpRuUGTgYDiNlNMFlF8HPobrUQfyxP7ETQshaGjkYk+Azn42eL2vNUpN2UseI74dLk4K9PZRF8C0Pkv8ZIgkvXobqKi5io5dItj9e+WDBABbWyeYsrbe0wQO4Bt8TgrKXROSS3TO4QlSR6HGrPoNGA/nOKuWcyQHUB6xELBi6WsO6vplQaAaypQ6mMxZPVc40utNpvNBfuHEQ6ixaXvzE9u6M2eOtFXOXQkTSK0/4D81htGbwZ+vt5mRvygY3q6tbq2IrGSXyN54RcspLQ/2NnAI2Xux76GBKkP8syN7W6ZP9mJ0z2VxlcjiH83FYtr37nqZKBU7dMsh9grVG5YNe2LSvfV1EPnTE5cU0MPKkz95HP97TzabdZpLL8l2ILoL2byY8mXWUdT4KG4WR6VhahZCzzJNeMB4PFnE5XQY6SS65QuOgU7zjqXgizjD22CJwPWOZnFqWLS1Z1o/dt3BiO1fRSb+twP/UbYLLzdHdOZYcf1uplQfiLExFTDsYB4oL43wqoVxrmhmUq1pgpNrEgpUrq0O6fbYiI594tg4Eoo5n0UElQijyMiEcMavBpN9hbEHNR4tBslOenQcScDc1nMtqiQKDb+Ixu0dIB0Hh9hdThrG9tQGzA5a7MehK/K1WYLwiTE1xBSOBTMwmSiA4KzTVRjFxTP8nhQAz47tKnexFKG7xVaB5h4ycf2nguKHWWPe8k/2mh2zuQIVWevBvl3GY4tU2WmQ/jcXDqW3iixwtIxhdSLKtKv28ZGiEmzFuQanqQEGLdRmGNtZL69QN/sYF1yfEusabb25VGUP1HIGyUSdF1sIsR4uRzr/uVkvs5mQJI15UvNZDVLCaWRBE23FtVzxvBGRUW8hzw+Yv1OSLaZfve X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(39860400002)(136003)(396003)(46966006)(36840700001)(40470700004)(86362001)(41300700001)(40460700003)(26005)(33964004)(53546011)(235185007)(478600001)(82310400005)(5660300002)(44832011)(336012)(2906002)(8936002)(2616005)(186003)(426003)(6862004)(83380400001)(82740400003)(81166007)(36860700001)(40480700001)(36756003)(70206006)(316002)(54906003)(4326008)(70586007)(84970400001)(8676002)(47076005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2022 14:57:53.8111 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f6c37add-1f88-440d-f3d9-08da6bf28e2f 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: DBAEUR03FT017.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB7523 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: "Li, Pan2 via Gcc-patches" Reply-To: Andrea Corallo Cc: Richard Earnshaw , nd , Andrea Corallo via Gcc-patches Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1738959957497440402?= X-GMAIL-MSGID: =?utf-8?q?1739065314769112382?= Richard Earnshaw writes: > On 28/04/2022 10:45, Andrea Corallo via Gcc-patches wrote: >> This patch emits assembler directives for PACBTI build attributes as >> defined by the >> ABI. >> >> 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. > > This bit is OK. > >> gcc/testsuite/ChangeLog: >> * gcc.target/arm/acle/pacbti-m-predef-1.c: New test. >> * gcc.target/arm/acle/pacbti-m-predef-3: Likewise. >> * gcc.target/arm/acle/pacbti-m-predef-6.c: Likewise. >> * gcc.target/arm/acle/pacbti-m-predef-7.c: Likewise. > > These tests contain directives like: > > +/* { dg-additional-options " -mbranch-protection=pac-ret+bti > --save-temps" } */ > > But they don't check that the architecture permits this (it has to be > armv8-m.main or later). Hi Richard, please find attached the respinned version of the patch. BR Andrea From b89ac2dc737593a290345cb96c5d9b048e731bf4 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Mon, 6 Dec 2021 11:42:24 +0100 Subject: [PATCH] [PATCH 7/12] arm: Emit build attributes for PACBTI target feature This patch emits assembler directives for PACBTI build attributes as defined by the ABI. 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: Likewise. * gcc.target/arm/acle/pacbti-m-predef-6.c: Likewise. * gcc.target/arm/acle/pacbti-m-predef-7.c: Likewise. Co-Authored-By: Tejas Belagod --- gcc/config/arm/arm.cc | 18 ++++++++++++++++++ .../gcc.target/arm/acle/pacbti-m-predef-1.c | 17 +++++++++++++++++ .../gcc.target/arm/acle/pacbti-m-predef-3.c | 17 +++++++++++++++++ .../gcc.target/arm/acle/pacbti-m-predef-6.c | 16 ++++++++++++++++ .../gcc.target/arm/acle/pacbti-m-predef-7.c | 17 +++++++++++++++++ 5 files changed, 85 insertions(+) create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-1.c create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-3.c create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-6.c create mode 100644 gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-7.c diff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc index 0068817b0f2..ceec14f84b6 100644 --- a/gcc/config/arm/arm.cc +++ b/gcc/config/arm/arm.cc @@ -28349,6 +28349,8 @@ static void arm_file_start (void) { int val; + bool pac = (aarch_ra_sign_scope != AARCH_FUNCTION_NONE); + bool bti = (aarch_enable_bti == 1); arm_print_asm_arch_directives (asm_out_file, TREE_TARGET_OPTION (target_option_default_node)); @@ -28419,6 +28421,22 @@ 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); + } + else if (pac || bti) + { + arm_emit_eabi_attribute ("Tag_PAC_extension", 50, 1); + arm_emit_eabi_attribute ("Tag_BTI_extension", 52, 1); + } + + if (bti) + arm_emit_eabi_attribute ("TAG_BTI_use", 74, 1); + if (pac) + arm_emit_eabi_attribute ("TAG_PACRET_use", 76, 1); + 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 00000000000..225b44de80a --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-1.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target mbranch_protection_ok } */ +/* { dg-additional-options "-march=armv8.1-m.main -mbranch-protection=pac-ret+bti --save-temps" } */ + +#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 + +/* { dg-final { scan-assembler-not "\.arch_extension pacbti" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 50, 1" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 52, 1" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 74, 1" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 76, 1" } } */ 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 00000000000..1eae39edfe2 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-3.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target mbranch_protection_ok } */ +/* { dg-additional-options "-march=armv8.1-m.main -mbranch-protection=pac-ret+leaf --save-temps" } */ + +#if defined (__ARM_FEATURE_BTI_DEFAULT) +#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be undefined." +#endif + +#if !defined (__ARM_FEATURE_PAC_DEFAULT) +#error "Feature test macro __ARM_FEATURE_PAC_DEFAULT should be defined." +#endif + +/* { dg-final { scan-assembler-not "\.arch_extension pacbti" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 50, 1" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 52, 1" } } */ +/* { dg-final { scan-assembler-not "\.eabi_attribute 74" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 76, 1" } } */ 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 00000000000..b49c6c4cc6f --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-6.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target mbranch_protection_ok } */ +/* { dg-additional-options "-march=armv8.1-m.main -mbranch-protection=bti --save-temps" } */ + +#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 undefined." +#endif +/* { dg-final { scan-assembler-not "\.arch_extension pacbti" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 50, 1" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 52, 1" } } */ +/* { dg-final { scan-assembler "\.eabi_attribute 74, 1" } } */ +/* { dg-final { scan-assembler-not "\.eabi_attribute 76" } } */ diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-7.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-7.c new file mode 100644 index 00000000000..006e66520a2 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-7.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */ +/* { dg-additional-options "-march=armv8.1-m.main+pacbti --save-temps" } */ + +#if defined (__ARM_FEATURE_BTI_DEFAULT) +#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be undefined." +#endif + +#if defined (__ARM_FEATURE_PAC_DEFAULT) +#error "Feature test macro __ARM_FEATURE_PAC_DEFAULT should be undefined." +#endif + +/* { 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-not "\.eabi_attribute 74" } } */ +/* { dg-final { scan-assembler-not "\.eabi_attribute 76" } } */ From patchwork Thu Jul 21 09:04:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Li, Pan2 via Gcc-patches" X-Patchwork-Id: 100 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e252:0:0:0:0:0 with SMTP id bl18csp1343589wrb; Thu, 21 Jul 2022 02:05:19 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vcvRdvIQ70LDA5+X30dMA9sf0xL9Hz5h1oWdPdopWzxjs8Ab8Oe+Sdkvv5vy1F0OvWRJ8a X-Received: by 2002:a05:6402:5516:b0:43a:42f9:24d6 with SMTP id fi22-20020a056402551600b0043a42f924d6mr55180742edb.204.1658394319233; Thu, 21 Jul 2022 02:05:19 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id q4-20020a1709064cc400b0072b49fe5a49si1537015ejt.372.2022.07.21.02.05.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Jul 2022 02:05:19 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=No06zTH7; arc=fail (signature failed); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DCE863857B8D for ; Thu, 21 Jul 2022 09:05:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DCE863857B8D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1658394317; bh=TPxiMPBoNlLiwxj9bBPctzEOfLW1CandEmu4X1ZRBVE=; h=To:Subject:References:Date:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=No06zTH73Dzpe8XMBdiftc7WmD2bifC0OfpwK1K5UX2HDws/5U4KDNOKlCsv5AGKm 4d1Ul0BxF/DbmL+27ZCKcIWA2eoyc2D++IgyGpLKAitab0/tX1BuP20r5A8nFrktXk XqGLiceb+jJbcO62Et478qea1Spx1oFU1LsEVVXg= 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-eopbgr80078.outbound.protection.outlook.com [40.107.8.78]) by sourceware.org (Postfix) with ESMTPS id 25B78385AE40 for ; Thu, 21 Jul 2022 09:04:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 25B78385AE40 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=CxfyNrvZqNeZJ8gWGGxOVWSwrmHDAK+yZk/WSI2oskOSvdyhXObkX/OEsZi3bjI7xZl3BCX+zeW5EQh99LEHwvzHrR84bqjiWXeiYZocsPwxIZGncaY/LroJaJKFOaMCEoDwCzPZChOt5fcYzqFcRyuGRsQ0NiABfolwL3RpGEQV3XVu4eQxwRZIHin5G8pKVNZbDe+VFfefSAxyeVkILxjuURmP12S1D9ptz++DG5dA6zNOJgiePlJDQsl0JjgBWB5NZD+GLVJ//fX9OuGcBpEqft7uT/9ZZnRU8DRqDW3H7HGFyw7AtihpZOUnHE08jGZ5bncod21PhUaaVSUYNg== 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=TPxiMPBoNlLiwxj9bBPctzEOfLW1CandEmu4X1ZRBVE=; b=LdkcN1AHnosCq6okYGEKLHqnP4N4GhnupszJT1vgXOsm9xO0Uuvt6rJeyf5EYWtgGZ4p3pKeOjgqYWnDFPdwC/FmcvvI6jcRA1L71f8MC9yMfuMy7pSZInWrE2kChlBJHbfhyIU2nXcnzqUUzjV4Qx6G8BzMefFXsHIGKJcMKtjBzMTMgcAV3L/10XWL7Ee/p01FjVMhenZ9//4sFPsrZaWF/Zy52J+7Yp6ISe2sgBJPbuiwOmQmRDhl419FdAwL+Z/kBOF7i2ZONCuSEqZ61KGeHuvhYtagep2hkDXQEQktf8kkNwSR/tL7QqvQ1BX8gQNf2W60PBPXXLWPvb+24g== 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 DU2PR04CA0053.eurprd04.prod.outlook.com (2603:10a6:10:234::28) by AM0PR08MB5425.eurprd08.prod.outlook.com (2603:10a6:208:17d::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.14; Thu, 21 Jul 2022 09:04:24 +0000 Received: from DBAEUR03FT023.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:234:cafe::5f) by DU2PR04CA0053.outlook.office365.com (2603:10a6:10:234::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.18 via Frontend Transport; Thu, 21 Jul 2022 09:04:24 +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 DBAEUR03FT023.mail.protection.outlook.com (100.127.142.253) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.12 via Frontend Transport; Thu, 21 Jul 2022 09:04:24 +0000 Received: ("Tessian outbound fa99bf31ee7d:v123"); Thu, 21 Jul 2022 09:04:24 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: fdc4f55e09c70887 X-CR-MTA-TID: 64aa7808 Received: from 1adc075eb472.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1FFA7BFE-8EE7-4386-BB3C-41077A5C6227.1; Thu, 21 Jul 2022 09:04:17 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 1adc075eb472.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 21 Jul 2022 09:04:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PbawtAE/N7yeJoVRLStYuQ0PrsyzUUg8bewZtTNPQZ4LgxF1Syg7B5Ip4xe9/rCcd1nq4/hgELBnKg2wrd4Fv/oX3lKpT/jo7DVUVmU9fCK8O3AKEl3nW/kzF5xGYGgZFYlCTs0i8dAjOulmm/K1FoodkCcQofXrmx62uBCgiSnKexwRHz78d4MQCwKDWPVF7244DAU0TQEzhi0riDopybR5YUtt4U1b1AiatJEuTnoaCJpyPs5hGouwe+ULLijxD69YSfuvGaRGomwIc4haKfbL8ds3u2PLaqvsIFK2vBrAKZLKMSKR9t5pP4CkqySAZ0eTxJjqfKYQZw2RwIqjsQ== 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=TPxiMPBoNlLiwxj9bBPctzEOfLW1CandEmu4X1ZRBVE=; b=Eo+oGgXJmK3Ec1lYG1gC0AzILF9wNmYz9wPLztzkyyaFoY8vjERwGm9BEswLzpEIf0Ddp4gDF8hDEXjWGlNeG6Yamhwh2LPG/IvVxqxTKT07yZbxdx7zvDl2fuBkk/tBsRxPUE4NwW3cRDY3hrY3pXHozApKh2k9jYRVtYQn2DxZwovliALIsD70g6Vt+EIHZli2Sq5BHG4TeLGAl7OfQ9h/T2CLaYHo+m8WKJsfq1REOdzTSMQ/azNhR2yOxZ1DGC+VNcpjRxj24g+A/K4AdmvANM+1QPqcGercVTxMjZMtA9Nkg1R2py1qAf8kL9l3S5lHxy/LSGtNj4iJDoowgg== 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 AS9PR06CA0482.eurprd06.prod.outlook.com (2603:10a6:20b:49b::7) by VI1PR08MB4528.eurprd08.prod.outlook.com (2603:10a6:803:fd::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.20; Thu, 21 Jul 2022 09:04:15 +0000 Received: from VE1EUR03FT017.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:49b:cafe::95) by AS9PR06CA0482.outlook.office365.com (2603:10a6:20b:49b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.17 via Frontend Transport; Thu, 21 Jul 2022 09:04:15 +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 VE1EUR03FT017.mail.protection.outlook.com (10.152.18.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5438.12 via Frontend Transport; Thu, 21 Jul 2022 09:04:15 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.9; Thu, 21 Jul 2022 09:04:06 +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; Thu, 21 Jul 2022 09:04:06 +0000 To: Richard Earnshaw Subject: [PATCH 8/12 V3] arm: Introduce multilibs for PACBTI target feature References: <075cc158-d681-65b9-4d87-22c8800661fd@foss.arm.com> Date: Thu, 21 Jul 2022 11:04:05 +0200 In-Reply-To: (Richard Earnshaw's message of "Fri, 1 Jul 2022 15:57:25 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1.50 (gnu/linux) MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: ed5a1a72-6edb-49bd-4a38-08da6af80235 X-MS-TrafficTypeDiagnostic: VI1PR08MB4528:EE_|DBAEUR03FT023:EE_|AM0PR08MB5425: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: /gvnLTnQXmVrjTMWuqMu5KxbrY1q33JDKaYc+fINRVRGlEcO38OmeQnSPKi+vV76jGVCbmwr5l0QqgvRr2W78wNnaltBL5N3oZyABJkAIscjYH1c2d3adO5N9rPXbjK0Xx4KCZaY5PZH6x8e1DjNatV4bXncr/Sftpx5Py5HXD4AE4LEHSU65G2ML8Raw5ZYBY6T7hQmv74vdGq3EpXZG8SJfGQU68XrvyV9jBfcNkf1aPQ7EUf6YdozkayjOgE/VKUHnZNZqEUEMFUzqd6i8h4jlgwf41pHFeUs1rUqNfBaYCkjtj+hNUNNUw4q1D7KH0TrdunvMyPfkzUUexIHs57gAi/PRxoyQY6k+A/gC+UZvUqc1Ksk6tns2MLyIHTxoK2GOWTsZZG9ViAyTIfQV8yg92ejmS5cdmnAt1IxXEboujMioqIcdJvwLEBeK2ZipLeZdiNxW9wcqr6dVLuJ/5XFZ3yV+RSDEp+G/WotYm1BjatVut4T350hSBMNjXowoxGJvf0mZmLoJqnNAdp5wZnNL7sgD1/hnaEMXRnHu9rI064X2KNUfFUNPbDbJaPhL4UWS9AGo7qr1w6W2BplmTyV6y/Lr5D7xLLw8kkEwht8kO1j7WhuWjBlYniI1khZ87Zz9QmRpRb6sqpRROM0AlaHNb8YTxswjJBSF/OJAje1qxtieOQOnTqBXIJlzufkmrj+TyHOQQZ7b0Enp3yzELIsP3j/OcmNZBc4piIIc0Udt8IotPOLw5XuHo3ryxFH6UpIEWkCfA7dxBoo1kSoNaeCfUc3HdluTQeol2GGutJZBGWvxl/MZBp19KWJxy2NvxuUY63821p9HTS1oIgBfw== 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)(346002)(376002)(136003)(39860400002)(396003)(36840700001)(40470700004)(46966006)(40480700001)(70206006)(6862004)(8936002)(4326008)(8676002)(81166007)(36756003)(47076005)(2906002)(82740400003)(40460700003)(54906003)(356005)(70586007)(426003)(33964004)(41300700001)(26005)(186003)(316002)(478600001)(2616005)(44832011)(36860700001)(336012)(86362001)(235185007)(5660300002)(82310400005)(83380400001)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4528 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT023.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 1c225059-31df-450f-08aa-08da6af7fcb5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T7oy6hAwCoBjmxUPV8h1SWFrIfu/15HUuEHZXNu65okOo15plp7suinEWS4n6vk21BqBmkzaAIcchAp348kLko0pz0gnTrZcBgobOma6WRHmrKhUFut7WpKjreiFZ8282l9mc3HddwoNh+LleoZF4FtsGdVgyNB97204LRjpPZ9Ewqtk/Kl+YSOMLACV5zYngfNdBlApwv8c7BCylLlOzkstWD/8OchuQWhnq8EZuy68lgDX1mRqO3pTzeKKlzrYT2LZO5FwvvKxTp54vmS0wg1r11mZX8n4a13aE0drJRgD1txsmQtFM+MfLzZ/o76qlkObDyS+jL1N0mdVunLSd0oJTPuAMjBKWD903pZG7Q7qrAiLZDytbuCMFvE/Q+NCVXc4iCwX3MyodeUPny4mlxQjOizoHQU+iHRijrgNSYF/91JtWJszpeirRxS+E4C7umxxIxvNIrQ3/guhI7cAjc6womThY9/nTy/POuH6G2JpnxTuOkPx0hGWZg9JPlBb5D2ktj0KS6w5u3MvdsfLPy1kR3NecBAMvSznOI1gt+KaYiBxfXIL8itKJr97nXPaYxqetaCYDX0yXay2Kpl2U0fL1BdHsGB0C/j4DO8rFnHTxLjtugYH2oMHfHyUTYhLsTlZClqkxi/o3lho7y8HI4pXcfMRHAAtEGIS370LPDhIN50t8qR51xtz1LxE6kPmGDILdege5ZtHPzgM7U2ya2KDbO9pjnwhgLU+DpvRPrkM4uZzeZKzA5mgf+YaL3kj1bPjqNuTbKFgDiaIQMAY52QUWnk5nGX24z/sH7aW6WjzP5918n8wEkDd2EB6nmYe 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)(39860400002)(376002)(136003)(46966006)(36840700001)(40470700004)(336012)(2906002)(41300700001)(33964004)(47076005)(2616005)(5660300002)(26005)(316002)(82310400005)(426003)(83380400001)(82740400003)(235185007)(40480700001)(186003)(36860700001)(8936002)(86362001)(8676002)(40460700003)(54906003)(4326008)(6862004)(70586007)(478600001)(81166007)(70206006)(44832011)(36756003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2022 09:04:24.7670 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ed5a1a72-6edb-49bd-4a38-08da6af80235 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: DBAEUR03FT023.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5425 X-Spam-Status: No, score=-12.0 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: "Li, Pan2 via Gcc-patches" Reply-To: Andrea Corallo Cc: Richard Earnshaw , nd , Andrea Corallo via Gcc-patches Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1738952481775141364?= X-GMAIL-MSGID: =?utf-8?q?1738952481775141364?= Richard Earnshaw writes: [...] >> The documentation mentions -mbranch-protection=standard+leaf, so >> you're missing a mapping for that. >> OK with that change. >> R. > > Oh, and please add some tests to gcc/testsuite/gcc.target/arm/multilib.exp > > R. Hi Richard, thanks, here the updated patch. PS I've also added three mlibarch -> march matches that were missing. BR Andrea From bbd0efb375c08981be7632319b24830196429e9b Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Mon, 6 Dec 2021 11:42:59 +0100 Subject: [PATCH] [PATCH 8/12] arm: Introduce multilibs for PACBTI target feature This patch add the following new multilibs. thumb/v8.1-m.main+pacbti/mbranch-protection/nofp thumb/v8.1-m.main+pacbti+dp/mbranch-protection/soft thumb/v8.1-m.main+pacbti+dp/mbranch-protection/hard thumb/v8.1-m.main+pacbti+fp/mbranch-protection/soft thumb/v8.1-m.main+pacbti+fp/mbranch-protection/hard thumb/v8.1-m.main+pacbti+mve/mbranch-protection/hard Triggering the following compiler flags: -mthumb -march=armv8.1-m.main+pacbti -mbranch-protection=standard -mfloat-abi=soft -mthumb -march=armv8.1-m.main+pacbti+fp -mbranch-protection=standard -mfloat-abi=softfp -mthumb -march=armv8.1-m.main+pacbti+fp -mbranch-protection=standard -mfloat-abi=hard -mthumb -march=armv8.1-m.main+pacbti+fp.dp -mbranch-protection=standard -mfloat-abi=softfp -mthumb -march=armv8.1-m.main+pacbti+fp.dp -mbranch-protection=standard -mfloat-abi=hard -mthumb -march=armv8.1-m.main+pacbti+mve -mbranch-protection=standard -mfloat-abi=hard gcc/ * config/arm/t-rmprofile: Add multilib rules for march +pacbti and mbranch-protection. gcc/testsuite/ * gcc.target/arm/multilib.exp: Add pacbti related entries. --- gcc/config/arm/t-rmprofile | 29 +++++++++++++++++++++-- gcc/testsuite/gcc.target/arm/multilib.exp | 6 +++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/gcc/config/arm/t-rmprofile b/gcc/config/arm/t-rmprofile index eb321e832f1..c50bf4b3557 100644 --- a/gcc/config/arm/t-rmprofile +++ b/gcc/config/arm/t-rmprofile @@ -27,8 +27,11 @@ # 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/march=armv8.1-m.main+pacbti+fp/march=armv8.1-m.main+pacbti+fp.dp/march=armv8.1-m.main+pacbti+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 v8.1-m.main+pacbti v8.1-m.main+pacbti+fp v8.1-m.main+pacbti+dp v8.1-m.main+pacbti+mve + +MULTI_ARCH_OPTS_RM += mbranch-protection=standard +MULTI_ARCH_DIRS_RM += mbranch-protection # Base M-profile (no fp) MULTILIB_REQUIRED += mthumb/march=armv6s-m/mfloat-abi=soft @@ -50,6 +53,14 @@ MULTILIB_REQUIRED += mthumb/march=armv8-m.main+fp.dp/mfloat-abi=hard MULTILIB_REQUIRED += mthumb/march=armv8-m.main+fp.dp/mfloat-abi=softfp MULTILIB_REQUIRED += mthumb/march=armv8.1-m.main+mve/mfloat-abi=hard +MULTILIB_REQUIRED += mthumb/march=armv8.1-m.main+pacbti/mbranch-protection=standard/mfloat-abi=soft +MULTILIB_REQUIRED += mthumb/march=armv8.1-m.main+pacbti+fp/mbranch-protection=standard/mfloat-abi=softfp +MULTILIB_REQUIRED += mthumb/march=armv8.1-m.main+pacbti+fp/mbranch-protection=standard/mfloat-abi=hard +MULTILIB_REQUIRED += mthumb/march=armv8.1-m.main+pacbti+fp.dp/mbranch-protection=standard/mfloat-abi=softfp +MULTILIB_REQUIRED += mthumb/march=armv8.1-m.main+pacbti+fp.dp/mbranch-protection=standard/mfloat-abi=hard +MULTILIB_REQUIRED += mthumb/march=armv8.1-m.main+pacbti+mve/mbranch-protection=standard/mfloat-abi=hard + + # Arch Matches MULTILIB_MATCHES += march?armv6s-m=march?armv6-m @@ -87,9 +98,23 @@ MULTILIB_MATCHES += $(foreach FP, $(v8_1m_sp_variants), \ MULTILIB_MATCHES += $(foreach FP, $(v8_1m_dp_variants), \ march?armv8-m.main+fp.dp=mlibarch?armv8.1-m.main$(FP)) +# Map all mbranch-protection values other than 'none' to 'standard'. +MULTILIB_MATCHES += mbranch-protection?standard=mbranch-protection?bti +MULTILIB_MATCHES += mbranch-protection?standard=mbranch-protection?pac-ret +MULTILIB_MATCHES += mbranch-protection?standard=mbranch-protection?pac-ret+leaf +MULTILIB_MATCHES += mbranch-protection?standard=mbranch-protection?pac-ret+bti +MULTILIB_MATCHES += mbranch-protection?standard=mbranch-protection?pac-ret+leaf+bti +MULTILIB_MATCHES += mbranch-protection?standard=mbranch-protection?bti+pac-ret +MULTILIB_MATCHES += mbranch-protection?standard=mbranch-protection?bti+pac-ret+leaf +MULTILIB_MATCHES += mbranch-protection?standard=mbranch-protection?standard+leaf + # For all the MULTILIB_REQUIRED for v8-m and above, add MULTILIB_MATCHES which # maps mlibarch with march for multilib linking. 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 +MULTILIB_MATCHES += march?armv8.1-m.main+pacbti+fp=mlibarch?armv8.1-m.main+pacbti+fp +MULTILIB_MATCHES += march?armv8.1-m.main+pacbti+fp.dp=mlibarch?armv8.1-m.main+pacbti+fp.dp +MULTILIB_MATCHES += march?armv8.1-m.main+pacbti+mve=mlibarch?armv8.1-m.main+pacbti+mve diff --git a/gcc/testsuite/gcc.target/arm/multilib.exp b/gcc/testsuite/gcc.target/arm/multilib.exp index ddbb4439314..52e67446453 100644 --- a/gcc/testsuite/gcc.target/arm/multilib.exp +++ b/gcc/testsuite/gcc.target/arm/multilib.exp @@ -832,6 +832,12 @@ if {[multilib_config "rmprofile"] } { {-march=armv8.1-m.main+mve.fp+fp.dp -mfpu=auto -mfloat-abi=softfp} "thumb/v8-m.main+dp/softfp" {-march=armv8.1-m.main+mve+fp.dp -mfpu=auto -mfloat-abi=hard} "thumb/v8-m.main+dp/hard" {-march=armv8.1-m.main+mve.fp+fp.dp -mfpu=auto -mfloat-abi=hard} "thumb/v8-m.main+dp/hard" + {-march=armv8.1-m.main+pacbti -mbranch-protection=standard -mfloat-abi=soft} "thumb/v8.1-m.main+pacbti/mbranch-protection/nofp" + {-march=armv8.1-m.main+pacbti+fp -mbranch-protection=standard -mfloat-abi=softfp} "thumb/v8.1-m.main+pacbti+fp/mbranch-protection/soft" + {-march=armv8.1-m.main+pacbti+fp -mbranch-protection=standard -mfloat-abi=hard} "thumb/v8.1-m.main+pacbti+fp/mbranch-protection/hard" + {-march=armv8.1-m.main+pacbti+fp.dp -mbranch-protection=standard -mfloat-abi=softfp} "thumb/v8.1-m.main+pacbti+dp/mbranch-protection/soft" + {-march=armv8.1-m.main+pacbti+fp.dp -mbranch-protection=standard -mfloat-abi=hard} "thumb/v8.1-m.main+pacbti+dp/mbranch-protection/hard" + {-march=armv8.1-m.main+pacbti+mve -mbranch-protection=standard -mfloat-abi=hard} "thumb/v8.1-m.main+pacbti+mve/mbranch-protection/hard" {-mcpu=cortex-m55+nomve -mfpu=auto -mfloat-abi=soft} "thumb/v8-m.main/nofp" {-mcpu=cortex-m55+nomve -mfpu=auto -mfloat-abi=softfp} "thumb/v8-m.main+dp/softfp" {-mcpu=cortex-m55+nomve -mfpu=auto -mfloat-abi=hard} "thumb/v8-m.main+dp/hard" From patchwork Thu Jul 21 09:17:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Li, Pan2 via Gcc-patches" X-Patchwork-Id: 103 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e252:0:0:0:0:0 with SMTP id bl18csp1348385wrb; Thu, 21 Jul 2022 02:18:57 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tekHV2UxcKnC69hIaVyaui4cSDycF62N3JapBbqtuLiC20KyYt3O82x+jUXc0WF7IsA7AT X-Received: by 2002:a17:907:b590:b0:72b:91f3:d4ef with SMTP id qx16-20020a170907b59000b0072b91f3d4efmr40342394ejc.29.1658395137081; Thu, 21 Jul 2022 02:18:57 -0700 (PDT) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id q20-20020aa7d454000000b0043a40d536d1si1571818edr.513.2022.07.21.02.18.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Jul 2022 02:18:57 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=jl79Sile; arc=fail (signature failed); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D4365385AE71 for ; Thu, 21 Jul 2022 09:18:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D4365385AE71 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1658395133; bh=YfpXL/kl3lvamZxojDbT/+OQfemcKFsKhNfujqs8peY=; h=To:Subject:References:Date:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=jl79Silecm5eTceRX33JQPvIVqaScMFSwUGl8U0V9EDDX8413P0nNpmYYUNjHOMe3 Vy0o6+RK6MbXXLrIK82OepcJ0RLq59YzFc2tDpbMPDeuLai+lcTCkQx+TUh93iRrmv 3h/rJewEllb12XLc03EERu+TR0GHBb33ry+Mfj9M= 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-am6eur05on2082.outbound.protection.outlook.com [40.107.22.82]) by sourceware.org (Postfix) with ESMTPS id 4E3ED3856DEC for ; Thu, 21 Jul 2022 09:18:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4E3ED3856DEC ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=mRvsj+O1syAjNHOKuQBxVLv9FNSZ4bLLhB/PtQJO90a4LldyoWoh2XyQ5scXk+yOOpibwIM7qKGmFo4i1Q0oQHUWFvFefh7Nz/Fk8/IJr18wi0irVe8Mbepns31jAu8PkyzhR/rzCO6PVd12J9Dp2gS1KT7pN3+kf8MRuEpdQoD0pUwQrmLkBKvd4Aed4mRpfRZiQXm/tqfWcqOYCkHFIRMxuS2Ve/7p0NguUPpo8RFxLJB4ixp0N73gcqmIZ25zdl6qB4l1im76Qy1WWuJrmEJKL5DbIqAKxOyHk6HocNpLkXlhQW2FjtWUrAbh0jI1rqNyPy2t9W0TRmhOUajP+A== 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=YfpXL/kl3lvamZxojDbT/+OQfemcKFsKhNfujqs8peY=; b=CpMrGlOUtyJJmIoFPLeFMEUFi42UTYFKZvycbbx/hJ6SZnSV+VHVfIYYYbVpNjPVBZrnAkS39nCBKjLJXiD/vsDHCg9UrLtaJRUkxHsKbYV+TcFchIszBHzbvoDXb9N4VUnRB1Liud8Deq2wiB5xC2e1aIYvpLQBnJ08VtMS7tN/Ucx3cYxswRq4SwiMObTbFenGHl91S7oRgs2xX209nhsZDQuxpecUuABLt8RBlp/8qzdyOqTeNy8pkk6gE74DIfl6rySlbLmsZ+J9XgGrCIC/ldr5G0AkSZ/Cn1gyNKoz0Uu2vHHk4HlFsxNqOclO3Qk1NkSsTnZvoQW89VFvgQ== 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 AM6P191CA0055.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::32) by VI1PR08MB3840.eurprd08.prod.outlook.com (2603:10a6:803:b5::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.14; Thu, 21 Jul 2022 09:18:03 +0000 Received: from AM5EUR03FT050.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:7f:cafe::2e) by AM6P191CA0055.outlook.office365.com (2603:10a6:209:7f::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.19 via Frontend Transport; Thu, 21 Jul 2022 09:18:03 +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 AM5EUR03FT050.mail.protection.outlook.com (10.152.17.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.17 via Frontend Transport; Thu, 21 Jul 2022 09:18:02 +0000 Received: ("Tessian outbound fa99bf31ee7d:v123"); Thu, 21 Jul 2022 09:18:02 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: f9ced8b74eb7d6ce X-CR-MTA-TID: 64aa7808 Received: from 37445706f141.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1F4D666F-DCDE-484B-8399-ADFDA8111123.1; Thu, 21 Jul 2022 09:17:56 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 37445706f141.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 21 Jul 2022 09:17:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l+zzVSG5ljzd6tSuLMzE4eVSFi/SS06IWa3N0i3476LcM7yRZ3RISSVJmEf4Ca/hjyushfOZwYO2U4OhSibLKRJzt7FWD0W3216spFOwfpUc0K6rlZtNtWf17WQW23RsjDWASSMImRfsyNk4vS4l15KzE5b7kAoyp9lULvpJ1tWJ3lO0E5ob3h8QiUbop/9zBXkSwa0AV0Hm4wewAiFj2amC54Uc996HHmhz6Q64twzFUT3MZlaSt6aoFHFwxSEhRFiRZeJA0DpdH6okhJN2TnRFyRu+QDFsyhz3j/Ehx41rAmFWOFJ+uZYzXwSR6XMkR/sYlNPwlIZsdYXWhe9t7A== 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=YfpXL/kl3lvamZxojDbT/+OQfemcKFsKhNfujqs8peY=; b=gZ/rIb8yPFcZNa8rckVZ6RNOIMYoPvhV4a6aGS7K+WuCS9D3J1V46HF6sdN/fflMOFFkApIQtHBNFGyxB9bvVG6mvKoKzc2sWmJBJE9/TuosEHbVeL7j+qoRskFzwlh0IgweTQbewf3x+gTztpecTIXXq4amPQGy1lb3IxMW2EUUeW59He3Y5L4mFpfruORee4HvVKw2g2NhoBmcx3vFzPT9aVXCKeFGeiumxGlyb9W8UB3drTW4eAPARk5gJ1gWhIN1RgAy+E2yDm6NoEsm05PAtwnpT87/HTuq2xuNB8nQPghKKVRX2TGf/9wdMHdenq6h4t3jRD55kqqs1ZpLVw== 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 AM6P195CA0064.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::41) by AM5PR0802MB2515.eurprd08.prod.outlook.com (2603:10a6:203:9f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.18; Thu, 21 Jul 2022 09:17:54 +0000 Received: from VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:87:cafe::34) by AM6P195CA0064.outlook.office365.com (2603:10a6:209:87::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.19 via Frontend Transport; Thu, 21 Jul 2022 09:17:54 +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 VE1EUR03FT043.mail.protection.outlook.com (10.152.19.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5438.12 via Frontend Transport; Thu, 21 Jul 2022 09:17:53 +0000 Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2507.9; Thu, 21 Jul 2022 09:17:52 +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; Thu, 21 Jul 2022 09:17:51 +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; Thu, 21 Jul 2022 09:17:51 +0000 To: Richard Earnshaw Subject: [PATCH 9/12 V2] arm: Make libgcc bti compatible References: <6c251f00-6b73-110c-d2b3-5e115ed6912b@foss.arm.com> Date: Thu, 21 Jul 2022 11:17:51 +0200 In-Reply-To: <6c251f00-6b73-110c-d2b3-5e115ed6912b@foss.arm.com> (Richard Earnshaw's message of "Fri, 1 Jul 2022 16:03:49 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1.50 (gnu/linux) MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: 05692e83-46f2-48d6-4823-08da6af9e9da X-MS-TrafficTypeDiagnostic: AM5PR0802MB2515:EE_|AM5EUR03FT050:EE_|VI1PR08MB3840: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: PE5RKy5iUPlQsY6BXYE5W6A1AdCO0hpvk/pXsChrKA+h0JR/SJ3jD2q6GN5tHUHV2KUDDykBTYD3kOqANwRfrAU6jnQc9cAXaztLc5cKNcOu/nnj2GS3sF4nyWzAx6knUpla6myNZSK2JgYm7tp8ZcL3yngUZOIPDo+tWqWCmwCAbcuyEN85yPrqk42TkvQGqP/qs9nLeWU66HjsVXKcrNdHVH6R/2h8ruaNgQku8/mPLLEhcAlqIovINZUyEU3RPNdui8nhZBYONr5j7SMUXC4rPtnZfYb/6qH/aRbFI5H7y4CBdJgaHT3q1ghZE3L+imzlQv9O23U5i820u8YnKsbTnzmv0MRH0B+JC2w0lthWJE1nNImpT+n9k9z7qwlSoXnQoqTT5Iv/bMlYo9Aqi0I13Xvg3p7/+GS/nLIg5PYRH69xOYa+NrhXcUWpXlilbFchvK3lhYTJvqO80CQlMDDeVv2owz2M2hrkR1FtI1lgonXlCuwzqxiGhU/+riAE/EqZz81WR1JSfqlQwPwqGFzHczbvUfnl47NXinet8fTfwchmZOo1CCt08L4Zmv0WVdZ+K08A48x79/YX1OBBetVYERWkyqLxB2kf+NIYJVAydfCAnjTW5hNNmJRSvLuVQO0giM277qHm7mBuspRCbiWAuWjzrXQ5TXZdJfzQ2tow4a3Ve9u90d7hpQ5harisbM4sUZPun0Uqu3ifyU3GEryymql5hYySXQ0AxtfDhv+levlJYKyhx5jcNOKrot2AKMJSpb/Mk/+bry8Zrob7efXrpV9uuiyfHVc6JhchXBi75dszgjOAv+Fg0shxZ1CAWbxyRLDIwfQ84pQZPh1JZQ== 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)(346002)(39860400002)(376002)(136003)(396003)(40470700004)(36840700001)(46966006)(2906002)(4326008)(36860700001)(33964004)(336012)(26005)(47076005)(70586007)(40480700001)(53546011)(86362001)(70206006)(426003)(82310400005)(40460700003)(8676002)(5660300002)(8936002)(36756003)(356005)(81166007)(83380400001)(82740400003)(316002)(6862004)(2616005)(44832011)(186003)(235185007)(54906003)(478600001)(41300700001)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2515 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT050.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 80cf3525-81b9-42f6-e83e-08da6af9e491 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ow1bCimVNPRmz/3KIO/5xjDfI2c30IYyKP9zV12rhnY+mFP+4zeFXaPTljX6d1CWQ1LTBtq+shQ6AzAc4JZIDs1x0Xnv8zWVGgCcPCQUnsHR1bega0h9F07cSmcKi7WyJPtigoPIsCcNo6zhyv0weENzHIiDlUMCh4UseBfM1XE8AWL0yDoqHe/WKrTwYNR9Hs4S1yTKR8Gmr2RbGfIqxCIZHgSkyT+wWIa1z7WwC+J8kTqxfnTJza5BtzSA5+ZqTzf2pvybWdrTM1mp/88d4TPUC/wIuRclB4PaQJx/et3rtXj3UBazD8JpxWNPRtRGE9lTehe4gt35sUwSpjilaofCmA3FnyA5KOHMt9unjsjbhK1c3wxd0spwO2EHBdDZoF6vLI0iDakF0FKAMlRM8qeu9FzNx+cd612Srxan/0PdFiTHvgqMLVHiinSAW9azUoLeOpjbOPMJlHqfcj4VTsaZg8aszS5L0KsD8h6WLbxxp6tkZGGYVnG8sydhOaX8kUu9LFiY7tCBRCoCqlsbXQ4qwiGMOYOKgXrigqQxDkiwtw8rOtkSKtcYDWlfE4QA66ncx3tt7tlm7VmFEzx1fA6rBKqw9KaCLU2PUEZHlNkUQVdQ2XKb4v/6fw5+u7s+4Yb2vrw3u7vexZU4bMRM72Xxe7Zba/BWwW26KJGnmohWkhdN84A2jgefArUHM/wylUii5nTUSiLUvrH9gu8ovXXdpruCLT6Tuqml/9ZhBhIWCDvCkwavmciRp7FXUxbmr+NWUWHj+OVrYX759lQHFMKAJZ64ZOn+iSaP2laPwYZGYZBFQIW/yW4XH9NtUUdT 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)(376002)(136003)(396003)(346002)(39860400002)(40470700004)(36840700001)(46966006)(40460700003)(478600001)(41300700001)(186003)(26005)(2906002)(86362001)(83380400001)(53546011)(6862004)(8936002)(36860700001)(426003)(336012)(33964004)(5660300002)(2616005)(235185007)(47076005)(316002)(82740400003)(36756003)(70206006)(81166007)(44832011)(4326008)(8676002)(70586007)(54906003)(82310400005)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2022 09:18:02.8519 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 05692e83-46f2-48d6-4823-08da6af9e9da 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: AM5EUR03FT050.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3840 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, 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: "Li, Pan2 via Gcc-patches" Reply-To: Andrea Corallo Cc: Richard Earnshaw , nd , Andrea Corallo via Gcc-patches Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-LABELS: =?utf-8?b?IlxcSW1wb3J0YW50Ig==?= X-GMAIL-THRID: =?utf-8?q?1738953339396502644?= X-GMAIL-MSGID: =?utf-8?q?1738953339396502644?= Richard Earnshaw writes: > On 28/04/2022 10:48, Andrea Corallo via Gcc-patches wrote: >> This change add bti instructions at the beginning of arm specific >> libgcc hand written assembly routines. >> 2022-03-31 Andrea Corallo >> * libgcc/config/arm/crti.S (FUNC_START): Add bti instruction >> if >> necessary. >> * libgcc/config/arm/lib1funcs.S (THUMB_FUNC_START, FUNC_START): >> Likewise. >> > > +#if defined(__ARM_FEATURE_BTI) > > Wouldn't it be better to use __ARM_FEATURE_BTI_DEFAULT? That way we > only get BTI instructions in multilib variants that have asked for > BTI. > > R. Hi Richard, good point, yes I think so. Please find attached the updated patch. BR Andrea From 6975c9ddbc8a4b790a765589c6fd07fea92173e5 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Tue, 8 Feb 2022 10:58:31 +0100 Subject: [PATCH] [PATCH 9/12] arm: Make libgcc bti compatible This change add bti instructions at the beginning of arm specific libgcc hand written assembly routines. 2022-03-31 Andrea Corallo * libgcc/config/arm/crti.S (FUNC_START): Add bti instruction if necessary. * libgcc/config/arm/lib1funcs.S (THUMB_FUNC_START, FUNC_START): Likewise. --- libgcc/config/arm/crti.S | 4 +++- libgcc/config/arm/lib1funcs.S | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libgcc/config/arm/crti.S b/libgcc/config/arm/crti.S index 0192972a7e6..4098353af1c 100644 --- a/libgcc/config/arm/crti.S +++ b/libgcc/config/arm/crti.S @@ -51,7 +51,9 @@ .macro FUNC_START #ifdef __thumb__ .thumb - +#if defined(__ARM_FEATURE_BTI_DEFAULT) + bti +#endif push {r3, r4, r5, r6, r7, lr} #else .arm diff --git a/libgcc/config/arm/lib1funcs.S b/libgcc/config/arm/lib1funcs.S index 8c39c9f20a2..de98edcc300 100644 --- a/libgcc/config/arm/lib1funcs.S +++ b/libgcc/config/arm/lib1funcs.S @@ -345,6 +345,9 @@ LSYM(Ldiv0): TYPE (\name) .thumb_func SYM (\name): +#if defined(__ARM_FEATURE_BTI_DEFAULT) + bti +#endif .endm /* Function start macros. Variants for ARM and Thumb. */ @@ -372,6 +375,9 @@ SYM (\name): THUMB_FUNC THUMB_SYNTAX SYM (__\name): +#if defined(__ARM_FEATURE_BTI_DEFAULT) + bti +#endif .endm .macro ARM_SYM_START name