| Message ID | 20250912115505.2831286-1-srinath.parvathaneni@arm.com |
|---|---|
| State | Superseded |
| Headers |
Return-Path: <gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0657E3857C7B for <patchwork@sourceware.org>; Fri, 12 Sep 2025 11:57:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0657E3857C7B Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=f06JPlsG; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=f06JPlsG X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com [IPv6:2a01:111:f403:c20f::7]) by sourceware.org (Postfix) with ESMTPS id 9666E3858D21 for <gcc-patches@gcc.gnu.org>; Fri, 12 Sep 2025 11:55:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9666E3858D21 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9666E3858D21 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c20f::7 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1757678158; cv=pass; b=Nf0qVgJwmTqAyfEFZovoQRAx2KMPZfOg4Ua7f7m3Bd0kK/H5ECysAa9XCKp9Pwa6yaSndDC5NZn1oj6ke9mW5u9YhzLxoWz5NT7lYhxPaiok5liMqmaa6eTk1KIJKebBIww1sQpp8DAcWQRuM6W04/EnP9AsceOGOj6jc5OSa/Q= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1757678158; c=relaxed/simple; bh=1JNVTyQ4cLaPwlrpb519oeWVoLqC4IB4BucnH/oXx8A=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=uEs7gRU0daUrTUWaJnxcApAY4svYzorMDf+2U1kabShM7q6qrRTGIuh+R9mXFB7GyCqj4SOyLTQzxvPx8FYMyef/r0rK6WRter2+07Qv4WKJuxar5QqZQ9Iey7ZQE/arTQikMaGtoCiZr+vmhNoqclNt4WExaFntc1LDE+wmLGA= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9666E3858D21 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=m/0iOyiqLhu0OOwVLX0nhSI39JT5Zr7K5OneLFZNrqMthMOvtj8ZQ6TjhxxOfEBhDLS61WhQyOeW8s0BZwWNUrDBn6lcG2uU5jWeyOc4ZxKV1XT2nE4TY4UuUnCAh9aTHrX6kZw5rJWWEu1/AVWeGTSrt15oh4J9fan/3WCIuS3rGKwgtGEl5V9P8Z5Bfx9EXGnxzEWJLItlhmJhJpPrP8PXtC8e4fa9hiRGnzgMF3pcA/SMg1395VhP6SI2I7ThTgRP+lqlqukxbuW3DOBx0+AwURjxyqk7eMX4raSi8x6kZa3Am+YqTtLovCSC78X8NVBvSP+6iZKK92MriHvecA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=MejW6gyVDrOtNm1IOWdFPO56zWusty0XxtNh5KEuuu4=; b=B+xXZ+2VcBAM/K1KQN3SGr2UN/BV+VEovQljkTsubYJrjaY3p4Iu8GOTQXvBdMnzTVt3M8puN/LSMUQufCARiIiS8n1FOAAyVmjr0Sa0S3SW7gfcocfGYmYqWtxWOg6Jmujq8O+tZ/atieY4T9opG0NK+JYWC7G5aq5PKTc5/6AbGb93foDnyqnaivUVId/i3xunLAKw9w8pRDR69eg3CGL52Vk4Yj/G4dCung36Ph7qqseTgc2dEQzsFIxG3Mu8e7NJB14A3Jzg+seN518mJBIvMiQeIdoXGSBc+VNI/jbugxD0bKc5c96xk4yC/IwlqLgq9e5z9nLQPYwigShocA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) 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=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MejW6gyVDrOtNm1IOWdFPO56zWusty0XxtNh5KEuuu4=; b=f06JPlsGnRKzRebzQ0/F3MQafcFPBuUt7/i73LYcVZ2Fj2UI7kuKUjUCT4DzTxlXEVfVwI5sWeaiYsQFCGW+ESAn16r68FWtYJVTeD3o5//G+OE+EAQy6rAOqXsZLBxPEHJ9gAwCmTYMPVNSzCCJy3fhU8H9bJISI1l/JBs+76E= Received: from AM0PR02CA0004.eurprd02.prod.outlook.com (2603:10a6:208:3e::17) by DBBPR08MB10436.eurprd08.prod.outlook.com (2603:10a6:10:534::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Fri, 12 Sep 2025 11:55:53 +0000 Received: from AM4PEPF00027A65.eurprd04.prod.outlook.com (2603:10a6:208:3e:cafe::45) by AM0PR02CA0004.outlook.office365.com (2603:10a6:208:3e::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.17 via Frontend Transport; Fri, 12 Sep 2025 11:55:53 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AM4PEPF00027A65.mail.protection.outlook.com (10.167.16.86) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Fri, 12 Sep 2025 11:55:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D5QAnxMOtYsoknjyrkyFgnpDpfSr663c7ZNS0b9ppDn9yIL7i9CMan6ir3afu4xL5L+NFKAk3r+Si3wG9D/65IXqcgLQawhlAO1O444QET/CDn0PzDKSt6cZMROyurFLW1ojkX3zG1/rFXgMqFYJNgBX+rBVXicoUjdSqbvYmacczVrycUVls5XSNLLOkBE/NhKcneASDLMW5TNm9FaDrk+hg9AwjiEu+Rn+3ONyI+97wJr6pSNhrVPOyQmPFiFw1to4UeHGTxk2gO1j8NvoxKySHoM+PBmz1EqHKhr2BIVxiDHG9OVAUFGKAhIsLT8l3O8MhZHojueNc31SYR2Q/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=MejW6gyVDrOtNm1IOWdFPO56zWusty0XxtNh5KEuuu4=; b=o5N8drzkOz17PQETvwtC2bfANphIEUlrck8ngH2CVnlLQOUJ4dBU06TsIW/CkqRlqtvPEr2VnbSMWjpyc8FWKwIx959pjO1QSCxCYWnAihgVrA2PcUdWZgS7FCNh9fYRlOZGA+G0voxgDDwIJ/LcXe4YhIAxmlnRuMUwSkAx174WqRYIGXjvgt+CYkaqnLZXsAo32B1GjupZ2XHaGzOQEosXJMHlad6znGmyPM5C6xKvp4uf1kSFPKDk28T9e81deQNA6NgKzgAc820G0H2jZMRq4QMFs0mcXzzWSk0zDzVCGRRj3LqhkMriL7YDqJZSt73Pw7vL9Qek/SEhbCE4CQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) 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 (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MejW6gyVDrOtNm1IOWdFPO56zWusty0XxtNh5KEuuu4=; b=f06JPlsGnRKzRebzQ0/F3MQafcFPBuUt7/i73LYcVZ2Fj2UI7kuKUjUCT4DzTxlXEVfVwI5sWeaiYsQFCGW+ESAn16r68FWtYJVTeD3o5//G+OE+EAQy6rAOqXsZLBxPEHJ9gAwCmTYMPVNSzCCJy3fhU8H9bJISI1l/JBs+76E= Received: from DU2P250CA0016.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:231::21) by AS2PR08MB8974.eurprd08.prod.outlook.com (2603:10a6:20b:5fa::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Fri, 12 Sep 2025 11:55:18 +0000 Received: from DU2PEPF0001E9C6.eurprd03.prod.outlook.com (2603:10a6:10:231:cafe::c2) by DU2P250CA0016.outlook.office365.com (2603:10a6:10:231::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.16 via Frontend Transport; Fri, 12 Sep 2025 11:55:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) 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 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by DU2PEPF0001E9C6.mail.protection.outlook.com (10.167.8.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.9115.13 via Frontend Transport; Fri, 12 Sep 2025 11:55:18 +0000 Received: from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EX06.Arm.com (10.240.25.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 12 Sep 2025 11:55:11 +0000 Received: from AZ-NEU-EX06.Arm.com (10.240.25.134) by AZ-NEU-EX04.Arm.com (10.240.25.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.27; Fri, 12 Sep 2025 11:55:11 +0000 Received: from e120703.cambridge.arm.com (10.2.81.20) by mail.arm.com (10.240.25.134) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Fri, 12 Sep 2025 11:55:10 +0000 From: Srinath Parvathaneni <srinath.parvathaneni@arm.com> To: <gcc-patches@gcc.gnu.org> CC: <Alice.Carlotti@arm.com>, <Alex.Coplan@arm.com>, <ktkachov@nvidia.com>, <Andre.SimoesDiasVieira@arm.com>, Srinath Parvathaneni <srinath.parvathaneni@arm.com> Subject: [PATCH v1][GCC] aarch64: Add support for menable-sysreg-checking flag. Date: Fri, 12 Sep 2025 12:55:05 +0100 Message-ID: <20250912115505.2831286-1-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF0001E9C6:EE_|AS2PR08MB8974:EE_|AM4PEPF00027A65:EE_|DBBPR08MB10436:EE_ X-MS-Office365-Filtering-Correlation-Id: da8cff5b-697b-4156-16d8-08ddf1f352e0 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|82310400026|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info-Original: 1bGSWNrrKlYY1wToanDGp7WkCPIXcoCPo5wAX3SbhCcD9oEcWoiInCnqqzjXEPP2/KwY754qk9mkmlatVGIni+oC3yxzOq8E39e0hE2t6gfE5EdhC8H6djcp+ZQrbcf5PWhzI+SmriEIpRig4StFuPWyarxN9f4BoL7fCrRWIwQoCIXtg6AKA9TxoKu/f3CldeiHj9rK2ZC05RmT70qjlkNvora0yn6pzYFfYwvnSCT8ATAWz5Fe38yIVfFTE4nLuxw4h4gJpXlvzR6LBxsb/X+MR1DNfU438dPnldbZb15ets2KrPmZ+FgNB7NdzgTzJ47QMJPjbyCyJQqol46ZMVOUZFoFHixdtNr/bJ2DEOc3WHCeBj/UnEro8VVt+zo7XC1YlwiDG5+KL8MvPddBjEuZ7DualXZnglJKd2U+jUuDwU9gRIh6CGWTVoxKWBblVs5257WlhDzVRTBi7JQoeHFIGNHWb9iv3ghiKGfR77gPpU70/y3vs4Y2a2WcBDhsMpCbKB7P/7gvvWgpZQXRybtHtu1zuWuDDtzRs4LCKd279ut9hikWC2KnDCZUdZ5NLb/o2qsEE2ruxLAtoGXSfO3gUwmBvpcw/6FulaWV/U2BUNPagquVPQ3VK/+qEl6zCBuEAu39anb/I58lhW5yHDEoYp7sw9Xd7l2gXABUT6jmhSSTB9zgNgoOKVKSq5JFI0lutzzlHnLxi0hmVjPYsDkatuJ1Rje3JzR8AoV4PQpsCQ1DfWJdzknA/uK8Jdwq2HJO8p5m9MumHS+Pfkf7WPs1PcBxNBc891YmbRefO6DeBm1Xcq70+dirt/py9eGor9ijzScH4BOOtoH+hAz70QTYJ0kDYHqLTs3QO6zV0+efLRTbTF3GqlrHHaMUSp21GbbSRHSYYjs2VOa+TZ2Y1AGMGBfO3z1RUsfi8sQ0Hy7dfW1np6xcoUURb7SfEZRhw6dSwo4W9P53LrfaEiu5ISPAelGAMYL4Cr1j5tGeXYO8a5DzXNX2wYx/Ai2xG/C2+WY+S2l3XDRavvecRJImNpd5udA09YiADxWBLhcvZAr+z3molz+NwcSSeSWA/V+0CIIub1UMEcw0rXlS6csn3bzWENgZ/TGhbNbzv0VjqDvrq/Rv0nU0kyqcH1BIP8Ko7Cww8FU5AGuJn75g/1w0G6XPimsSf1EqfhcK/0nfoaJIs3n/CZ0lQxtiyUBvmbRYrzANQb6IZBR+Tf+jfT3cEGcyvXCQKSFOEQtKNEFoKQD1bIdnVOCqkzO/Xnq064SaxV+nTcM0YVCYlhzw6QtP2VKtBzm8ty13bwnJuwzopkBrBQi1RH/i70ohiy+amKYD7avM/SgC0AGr/iVTg9MvaNBLfNWQWsJMiUSTagKyKlboeX6Fy6u19lFETjXeeBAL1Btv45s0lwgjQQbvX0DaX8q1YNskMqu/SHHqb4d7K8Euu0IETc2kcLBCtNnAhyISlm7CnJ60XtNHDPO9tuqn4LtpSst/CI8sTpTLDh7afKo= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8974 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM4PEPF00027A65.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 61ec5ef1-01a8-4acc-cf38-08ddf1f33ea5 X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|14060799003|82310400026|1800799024|376014|36860700013|13003099007; X-Microsoft-Antispam-Message-Info: gR0OBNAQ7gjMn6KtqFiEYPHwiULwQj5Nw06jlgAaRbrFnTsAHtdaUEVWv8V9KA80on9QCJMWrDCTcY6LN8mYJacxb+D9Jc30EaIWHKpyoYdRVqSS1QT8FO0Zx65hNkm/VS5UleIMZxISOo+YJNBcfyCjCNjYRFuP9XgXWG2gYozxWUSsWfyOYRQ/N2RLBnfTOKVits/6vOSV0kp+y+ElpM+53Xp4oE9KYL5NkuEN1X2gwyGRJ8fqyj/YzZt0h9miGMr5OVR/y1yn/PoB8jVZynamqWkYz7wdsXB8B8acf79CmW37Huzm57cPnBJRfJWEvbi6DdWbNK8irPfB6Ki65HIVxe2g+pQ5DhN9Obay54RL69iUWI6tQn6APANiB7xT3BkSBp3YdxYCPA+WcKohSh+QdMFbsy+DaceaTTNTx2+EZ/olsHeINqI/2DAV5X+5kllheQTxOhF10uZwLSNjHJujwp4BSgw2Z8LBhbZsWznx4oG81m0aoBsYQhve2QlGFVJ9yEKt8a/WDcOr1vGcKY2dl9XhZPantocutpeJMiyhTjpeFn7PDide7A2qkF6gqS+6O6E9T6w9H8s4JsdzyiZe5Ed1HHN79TDkMvJhZTiLiNP/BUcVS1zYucMlAie7cs2K5R7SC1qs4RTOzEOFhRLRBgAuvc+n6zD9ncINkHZFLkl1RP5H/3XakGXwOhXFxddqP3osAroUo4RVXFj9uwNnJDZVTLq2NWpS5MCNSwptPt4IBgUhVFQDDyZJ2w3/4MDh2nGAMEkT8pO1h553VpMPV4w5wXKvRO69mY0O6zbtgL9j5kLK+uYcfgAg+aaOh1bApu424etrkK6nH5OgAXjeEar9+h9qyBshGNeJVgel/A2wtK4V3WEfxYtt8QuYqPaFqbioh6Y4e5L552WzlfcysDMJJ6bSLBZe8sU4JpVhyJAHCti9/qkvqYNr3BMPKxz/l13hzHpy69N7A+tyyHWTG2nYYBPrT+hCpxcpWOAsMzTTwT76BisXYKH8oxcN88gcToNIddsCePEpLOmYjynjdpQDSgfPxaN1ZKhw4p+qRfX8Gwr180g1utTnaJXlX9XjTY6c4TnbpI9NnfDWB/qeHKUk6KfQWibmNB1W9/zqNGIVp50SvKFMNfubTTgG6NR7xGdZAsf24J5Afwy39/tP2uDW173Ww9pEsNfbx6paRbX3IXzgsWORVlK1CvlrLLoADKbXSOK5swoJpsJt/QcGP7M7xbBg8g3XmIfqN7DtkGWhpPVWe9dZf7rjmMob9+gusBvqHjHD06cifvqpkmSaOMSJFDaS8u8UdgbZwyJy8zvO84pqxCDd34soBuEzcurCd5KhrkksIFjP9I26Xlq+vK/L3kRngsMv19OEnU1BIVlm+EewuOPtz9e+a85wHcz6rTHJ5cmPJHFssNklwck4ZwpNvpOYX9/r81QdzZdnicWoPyr1kxwyYjLIcPS4gITdb9lGFECyNYpoGX0Z/6rxNxrexHnFJZa7LUk9gFw= X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(35042699022)(14060799003)(82310400026)(1800799024)(376014)(36860700013)(13003099007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2025 11:55:52.5873 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: da8cff5b-697b-4156-16d8-08ddf1f352e0 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A65.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10436 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_SHORT, SPF_HELO_PASS, SPF_NONE, TXREP 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.30 Precedence: list List-Id: Gcc-patches mailing list <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org |
| Series |
[v1] aarch64: Add support for menable-sysreg-checking flag.
|
|
Commit Message
Srinath Parvathaneni
Sept. 12, 2025, 11:55 a.m. UTC
Hi All,
In the current Binutils we have disabled the feature gating for sysreg
by default and we have introduced a new flag "-meanble-sysreg-checking"
to renable some of this checking.
However in GCC, we have disabled the feature gating of sysreg to read/write
intrinsics __arm_[wr]sr* and we have not added any mechanism to check the
feature gating if needed similar to Binutils.
This patch adds the support for the flag "-meanble-sysreg-checking" which
renables some of the feature checking of sysreg to read/write intrinsics
__arm_[wr]sr* similar to Binutils.
Regression tested on aarch64-none-elf and found no regressions.
Ok for trunk?
Regards,
Srinath.
2025-09-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
gcc/ChangeLog:
* config/aarch64/aarch64.cc (aarch64_valid_sysreg_name_p): Add feature
check.
(aarch64_retrieve_sysreg): Likewise.
* config/aarch64/aarch64.opt (menable-sysreg-checking): Define new flag.
* doc/invoke.texi (menable-sysreg-checking): Document new flag.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/acle/rwsr-gated-1.c: New test.
* gcc.target/aarch64/acle/rwsr-gated-2.c: Likewise.
---
gcc/config/aarch64/aarch64.cc | 5 +++++
gcc/config/aarch64/aarch64.opt | 5 +++++
gcc/doc/invoke.texi | 6 ++++++
.../gcc.target/aarch64/acle/rwsr-gated-1.c | 13 +++++++++++++
.../gcc.target/aarch64/acle/rwsr-gated-2.c | 14 ++++++++++++++
5 files changed, 43 insertions(+)
create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c
Comments
On Fri, Sep 12, 2025 at 4:58 AM Srinath Parvathaneni <srinath.parvathaneni@arm.com> wrote: > > Hi All, > > In the current Binutils we have disabled the feature gating for sysreg > by default and we have introduced a new flag "-meanble-sysreg-checking" > to renable some of this checking. > > However in GCC, we have disabled the feature gating of sysreg to read/write > intrinsics __arm_[wr]sr* and we have not added any mechanism to check the > feature gating if needed similar to Binutils. > > This patch adds the support for the flag "-meanble-sysreg-checking" which > renables some of the feature checking of sysreg to read/write intrinsics > __arm_[wr]sr* similar to Binutils. > > Regression tested on aarch64-none-elf and found no regressions. > > Ok for trunk? LGTM. Thanks, Andrew > > Regards, > Srinath. > > 2025-09-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com> > > gcc/ChangeLog: > > * config/aarch64/aarch64.cc (aarch64_valid_sysreg_name_p): Add feature > check. > (aarch64_retrieve_sysreg): Likewise. > * config/aarch64/aarch64.opt (menable-sysreg-checking): Define new flag. > * doc/invoke.texi (menable-sysreg-checking): Document new flag. > > gcc/testsuite/ChangeLog: > > * gcc.target/aarch64/acle/rwsr-gated-1.c: New test. > * gcc.target/aarch64/acle/rwsr-gated-2.c: Likewise. > --- > gcc/config/aarch64/aarch64.cc | 5 +++++ > gcc/config/aarch64/aarch64.opt | 5 +++++ > gcc/doc/invoke.texi | 6 ++++++ > .../gcc.target/aarch64/acle/rwsr-gated-1.c | 13 +++++++++++++ > .../gcc.target/aarch64/acle/rwsr-gated-2.c | 14 ++++++++++++++ > 5 files changed, 43 insertions(+) > create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c > create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c > > diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc > index ef9c16598c0..5eb7e4dc17c 100644 > --- a/gcc/config/aarch64/aarch64.cc > +++ b/gcc/config/aarch64/aarch64.cc > @@ -31702,6 +31702,8 @@ aarch64_valid_sysreg_name_p (const char *regname) > const sysreg_t *sysreg = aarch64_lookup_sysreg_map (regname); > if (sysreg == NULL) > return aarch64_is_implem_def_reg (regname); > + if (aarch64_enable_sysreg_guarding && sysreg->arch_reqs) > + return bool (aarch64_isa_flags & sysreg->arch_reqs); > return true; > } > > @@ -31725,6 +31727,9 @@ aarch64_retrieve_sysreg (const char *regname, bool write_p, bool is128op) > if ((write_p && (sysreg->properties & F_REG_READ)) > || (!write_p && (sysreg->properties & F_REG_WRITE))) > return NULL; > + if (aarch64_enable_sysreg_guarding > + && ((~aarch64_isa_flags & sysreg->arch_reqs) != 0)) > + return NULL; > return sysreg->encoding; > } > > diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt > index 9ca753e6a88..5df5a159459 100644 > --- a/gcc/config/aarch64/aarch64.opt > +++ b/gcc/config/aarch64/aarch64.opt > @@ -82,6 +82,11 @@ mbig-endian > Target RejectNegative Mask(BIG_END) > Assume target CPU is configured as big endian. > > +menable-sysreg-checking > +Target RejectNegative Var(aarch64_enable_sysreg_guarding) Init(0) > +Generates an error message if an attempt is made to access a system register > +which will not execute on the target architecture. > + > mgeneral-regs-only > Target RejectNegative Mask(GENERAL_REGS_ONLY) Save > Generate code which uses only the general registers. > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > index d0c13d4a24e..f2a4929f793 100644 > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -823,6 +823,7 @@ Objective-C and Objective-C++ Dialects}. > > @emph{AArch64 Options} (@ref{AArch64 Options}) > @gccoptlist{-mabi=@var{name} -mbig-endian -mlittle-endian > +-menable-sysreg-checking > -mgeneral-regs-only > -mcmodel=tiny -mcmodel=small -mcmodel=large > -mstrict-align -mno-strict-align > @@ -22091,6 +22092,11 @@ The @samp{ilp32} model is deprecated. > Generate big-endian code. This is the default when GCC is configured for an > @samp{aarch64_be-*-*} target. > > +@opindex menable-sysreg-checking > +@item -menable-sysreg-checking > +Generates an error message if an attempt is made to access a system register > +which will not execute on the target architecture. > + > @opindex mgeneral-regs-only > @item -mgeneral-regs-only > Generate code which uses only the general-purpose registers. This will prevent > diff --git a/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c > new file mode 100644 > index 00000000000..b9fb39cf0c6 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c > @@ -0,0 +1,13 @@ > +/* Ensure that system register are properly gated on the feature flags, when the > + guarding is enabled through "-menable-sysreg-checking" command line flag. */ > +/* { dg-do compile } */ > +/* { dg-options "-menable-sysreg-checking -march=armv8-a+sve2+sme" } */ > + > +#include <arm_acle.h> > + > +uint64_t > +foo (uint64_t a) > +{ > + __arm_wsr64 ("zcr_el1", a); /* { { dg-final { scan-assembler "msr\ts3_0_c1_c2_0, x0" } } */ > + return __arm_rsr64 ("smcr_el1"); /* { { dg-final { scan-assembler "mrs\tx0, s3_0_c1_c2_6" } } */ > +} > diff --git a/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c > new file mode 100644 > index 00000000000..ef143af3ec8 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c > @@ -0,0 +1,14 @@ > +/* { dg-do compile } */ > +/* { dg-options "-menable-sysreg-checking -march=armv8-a" } */ > +/* Ensure the system register are rejected by compiler when guarding is > + enabled through "-menable-sysreg-checking" command line flag and proper > + feature flags are not passed. */ > + > +#include <arm_acle.h> > + > +uint64_t > +foo (uint64_t a) > +{ > + __arm_wsr64 ("zcr_el1", a); /* { dg-error "invalid system register name 'zcr_el1'" } */ > + return __arm_rsr64 ("smcr_el1"); /* { dg-error "invalid system register name 'smcr_el1'" } */ > +} > -- > 2.25.1 >
On Fri, Sep 12, 2025 at 08:30:55AM -0700, Andrew Pinski wrote: > On Fri, Sep 12, 2025 at 4:58 AM Srinath Parvathaneni > <srinath.parvathaneni@arm.com> wrote: > > > > Hi All, > > > > In the current Binutils we have disabled the feature gating for sysreg > > by default and we have introduced a new flag "-meanble-sysreg-checking" > > to renable some of this checking. > > > > However in GCC, we have disabled the feature gating of sysreg to read/write > > intrinsics __arm_[wr]sr* and we have not added any mechanism to check the > > feature gating if needed similar to Binutils. > > > > This patch adds the support for the flag "-meanble-sysreg-checking" which > > renables some of the feature checking of sysreg to read/write intrinsics > > __arm_[wr]sr* similar to Binutils. > > > > Regression tested on aarch64-none-elf and found no regressions. > > > > Ok for trunk? > > LGTM. > > Thanks, > Andrew Some issues noted below. It might be nice if we could pass this flag through to the assembler, to enable checks for inline assembly as well, but I'm not sure how complicated that would be to support. > > > > > Regards, > > Srinath. > > > > 2025-09-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com> > > > > gcc/ChangeLog: > > > > * config/aarch64/aarch64.cc (aarch64_valid_sysreg_name_p): Add feature > > check. > > (aarch64_retrieve_sysreg): Likewise. > > * config/aarch64/aarch64.opt (menable-sysreg-checking): Define new flag. > > * doc/invoke.texi (menable-sysreg-checking): Document new flag. > > > > gcc/testsuite/ChangeLog: > > > > * gcc.target/aarch64/acle/rwsr-gated-1.c: New test. > > * gcc.target/aarch64/acle/rwsr-gated-2.c: Likewise. > > --- > > gcc/config/aarch64/aarch64.cc | 5 +++++ > > gcc/config/aarch64/aarch64.opt | 5 +++++ > > gcc/doc/invoke.texi | 6 ++++++ > > .../gcc.target/aarch64/acle/rwsr-gated-1.c | 13 +++++++++++++ > > .../gcc.target/aarch64/acle/rwsr-gated-2.c | 14 ++++++++++++++ > > 5 files changed, 43 insertions(+) > > create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c > > create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c > > > > diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc > > index ef9c16598c0..5eb7e4dc17c 100644 > > --- a/gcc/config/aarch64/aarch64.cc > > +++ b/gcc/config/aarch64/aarch64.cc > > @@ -31702,6 +31702,8 @@ aarch64_valid_sysreg_name_p (const char *regname) > > const sysreg_t *sysreg = aarch64_lookup_sysreg_map (regname); > > if (sysreg == NULL) > > return aarch64_is_implem_def_reg (regname); > > + if (aarch64_enable_sysreg_guarding && sysreg->arch_reqs) > > + return bool (aarch64_isa_flags & sysreg->arch_reqs); > > return true; > > } This condition is wrong - it should match the condition in the hunk below. (It was wrong before I removed it as well, but I only noted this in the email and not in the commit message). > > > > @@ -31725,6 +31727,9 @@ aarch64_retrieve_sysreg (const char *regname, bool write_p, bool is128op) > > if ((write_p && (sysreg->properties & F_REG_READ)) > > || (!write_p && (sysreg->properties & F_REG_WRITE))) > > return NULL; > > + if (aarch64_enable_sysreg_guarding > > + && ((~aarch64_isa_flags & sysreg->arch_reqs) != 0)) > > + return NULL; > > return sysreg->encoding; > > } > > > > diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt > > index 9ca753e6a88..5df5a159459 100644 > > --- a/gcc/config/aarch64/aarch64.opt > > +++ b/gcc/config/aarch64/aarch64.opt > > @@ -82,6 +82,11 @@ mbig-endian > > Target RejectNegative Mask(BIG_END) > > Assume target CPU is configured as big endian. > > > > +menable-sysreg-checking > > +Target RejectNegative Var(aarch64_enable_sysreg_guarding) Init(0) > > +Generates an error message if an attempt is made to access a system register > > +which will not execute on the target architecture. > > + > > mgeneral-regs-only > > Target RejectNegative Mask(GENERAL_REGS_ONLY) Save > > Generate code which uses only the general registers. > > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > > index d0c13d4a24e..f2a4929f793 100644 > > --- a/gcc/doc/invoke.texi > > +++ b/gcc/doc/invoke.texi > > @@ -823,6 +823,7 @@ Objective-C and Objective-C++ Dialects}. > > > > @emph{AArch64 Options} (@ref{AArch64 Options}) > > @gccoptlist{-mabi=@var{name} -mbig-endian -mlittle-endian > > +-menable-sysreg-checking > > -mgeneral-regs-only > > -mcmodel=tiny -mcmodel=small -mcmodel=large > > -mstrict-align -mno-strict-align > > @@ -22091,6 +22092,11 @@ The @samp{ilp32} model is deprecated. > > Generate big-endian code. This is the default when GCC is configured for an > > @samp{aarch64_be-*-*} target. > > > > +@opindex menable-sysreg-checking > > +@item -menable-sysreg-checking > > +Generates an error message if an attempt is made to access a system register > > +which will not execute on the target architecture. > > + > > @opindex mgeneral-regs-only > > @item -mgeneral-regs-only > > Generate code which uses only the general-purpose registers. This will prevent > > diff --git a/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c > > new file mode 100644 > > index 00000000000..b9fb39cf0c6 > > --- /dev/null > > +++ b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c > > @@ -0,0 +1,13 @@ > > +/* Ensure that system register are properly gated on the feature flags, when the typo: s/register/registers/ > > + guarding is enabled through "-menable-sysreg-checking" command line flag. */ > > +/* { dg-do compile } */ > > +/* { dg-options "-menable-sysreg-checking -march=armv8-a+sve2+sme" } */ > > + > > +#include <arm_acle.h> > > + > > +uint64_t > > +foo (uint64_t a) > > +{ > > + __arm_wsr64 ("zcr_el1", a); /* { { dg-final { scan-assembler "msr\ts3_0_c1_c2_0, x0" } } */ > > + return __arm_rsr64 ("smcr_el1"); /* { { dg-final { scan-assembler "mrs\tx0, s3_0_c1_c2_6" } } */ > > +} > > diff --git a/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c > > new file mode 100644 > > index 00000000000..ef143af3ec8 > > --- /dev/null > > +++ b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c > > @@ -0,0 +1,14 @@ > > +/* { dg-do compile } */ > > +/* { dg-options "-menable-sysreg-checking -march=armv8-a" } */ > > +/* Ensure the system register are rejected by compiler when guarding is Typo: "Ensure that system registers are..." > > + enabled through "-menable-sysreg-checking" command line flag and proper > > + feature flags are not passed. */ > > + > > +#include <arm_acle.h> > > + > > +uint64_t > > +foo (uint64_t a) > > +{ > > + __arm_wsr64 ("zcr_el1", a); /* { dg-error "invalid system register name 'zcr_el1'" } */ > > + return __arm_rsr64 ("smcr_el1"); /* { dg-error "invalid system register name 'smcr_el1'" } */ > > +} > > -- > > 2.25.1 > >
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index ef9c16598c0..5eb7e4dc17c 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -31702,6 +31702,8 @@ aarch64_valid_sysreg_name_p (const char *regname) const sysreg_t *sysreg = aarch64_lookup_sysreg_map (regname); if (sysreg == NULL) return aarch64_is_implem_def_reg (regname); + if (aarch64_enable_sysreg_guarding && sysreg->arch_reqs) + return bool (aarch64_isa_flags & sysreg->arch_reqs); return true; } @@ -31725,6 +31727,9 @@ aarch64_retrieve_sysreg (const char *regname, bool write_p, bool is128op) if ((write_p && (sysreg->properties & F_REG_READ)) || (!write_p && (sysreg->properties & F_REG_WRITE))) return NULL; + if (aarch64_enable_sysreg_guarding + && ((~aarch64_isa_flags & sysreg->arch_reqs) != 0)) + return NULL; return sysreg->encoding; } diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt index 9ca753e6a88..5df5a159459 100644 --- a/gcc/config/aarch64/aarch64.opt +++ b/gcc/config/aarch64/aarch64.opt @@ -82,6 +82,11 @@ mbig-endian Target RejectNegative Mask(BIG_END) Assume target CPU is configured as big endian. +menable-sysreg-checking +Target RejectNegative Var(aarch64_enable_sysreg_guarding) Init(0) +Generates an error message if an attempt is made to access a system register +which will not execute on the target architecture. + mgeneral-regs-only Target RejectNegative Mask(GENERAL_REGS_ONLY) Save Generate code which uses only the general registers. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index d0c13d4a24e..f2a4929f793 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -823,6 +823,7 @@ Objective-C and Objective-C++ Dialects}. @emph{AArch64 Options} (@ref{AArch64 Options}) @gccoptlist{-mabi=@var{name} -mbig-endian -mlittle-endian +-menable-sysreg-checking -mgeneral-regs-only -mcmodel=tiny -mcmodel=small -mcmodel=large -mstrict-align -mno-strict-align @@ -22091,6 +22092,11 @@ The @samp{ilp32} model is deprecated. Generate big-endian code. This is the default when GCC is configured for an @samp{aarch64_be-*-*} target. +@opindex menable-sysreg-checking +@item -menable-sysreg-checking +Generates an error message if an attempt is made to access a system register +which will not execute on the target architecture. + @opindex mgeneral-regs-only @item -mgeneral-regs-only Generate code which uses only the general-purpose registers. This will prevent diff --git a/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c new file mode 100644 index 00000000000..b9fb39cf0c6 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c @@ -0,0 +1,13 @@ +/* Ensure that system register are properly gated on the feature flags, when the + guarding is enabled through "-menable-sysreg-checking" command line flag. */ +/* { dg-do compile } */ +/* { dg-options "-menable-sysreg-checking -march=armv8-a+sve2+sme" } */ + +#include <arm_acle.h> + +uint64_t +foo (uint64_t a) +{ + __arm_wsr64 ("zcr_el1", a); /* { { dg-final { scan-assembler "msr\ts3_0_c1_c2_0, x0" } } */ + return __arm_rsr64 ("smcr_el1"); /* { { dg-final { scan-assembler "mrs\tx0, s3_0_c1_c2_6" } } */ +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c new file mode 100644 index 00000000000..ef143af3ec8 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-options "-menable-sysreg-checking -march=armv8-a" } */ +/* Ensure the system register are rejected by compiler when guarding is + enabled through "-menable-sysreg-checking" command line flag and proper + feature flags are not passed. */ + +#include <arm_acle.h> + +uint64_t +foo (uint64_t a) +{ + __arm_wsr64 ("zcr_el1", a); /* { dg-error "invalid system register name 'zcr_el1'" } */ + return __arm_rsr64 ("smcr_el1"); /* { dg-error "invalid system register name 'smcr_el1'" } */ +}