From patchwork Wed Oct 23 10:36:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthieu Longo X-Patchwork-Id: 99388 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6C5253858435 for ; Wed, 23 Oct 2024 10:37:45 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on20614.outbound.protection.outlook.com [IPv6:2a01:111:f403:2607::614]) by sourceware.org (Postfix) with ESMTPS id 0EC4A3858CDA for ; Wed, 23 Oct 2024 10:37:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0EC4A3858CDA 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 0EC4A3858CDA Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2607::614 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1729679823; cv=pass; b=Vr82cbzCszJvNDKtK2yWiHW/AbK2KPJ1He1eVk9xYX/L1h2JSqpB7nz8wdIXsPdGndISiu1yfeNROkZ/Rodv4lobgiWqCPrtNNXcjMmTN+oXYCWJOX8+hvu9aDx/qfkJy83/YNH2pUoNJvVTXeg+jbSShmU4suwHbYR1LR8+7Mg= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1729679823; c=relaxed/simple; bh=CJxRnbLiPtJ91jhxzgD4H8XNddF8JiADqAoa5n3yhrQ=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=XIlffM3crt7OKAqZU/SAGxeXEfeMX7ckslWt9PFj7MonSfp6sQqCVhSSfG95wJGRLWMhb6+4FdS46K7tB+EUKyWiLDseWPuL9+Azh7vbVB/UeoknHG6uxO5Kh8m+GxI7wVkDeGk74Hs9++idz+g+DjNXS0FQVdAz+ePgyOhZzrQ= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=cVmvIWBkRJ0lEQDPgn/c2a//40S9dloN6tB/69tTgD+bMZVTT+uIv16z1cd3CkIBOkqUc9ToJOwQD34fUhwWe6NX6ZHlPanmFvg12Istf1DFrWgpApdutGs43FOppgOZCslS1xkUivbQC9/NdR0Zl33G2Q6kyyDyPlJ5194lywwzCwk19VV22AglzwGTloM34pgg6s34pVoh9K2gg0PMJdh0+CIqveWRzehlJvn7QgDH6TaTRiocPvXnYe2/dlEUIzYT9UroCfl4AagMMM+0r9pX3/2Zrgb9AEDPfkPl/OO7DYNy6S5bse491fuzTWRPy183TLFuTC16uC2W4Axlww== 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=VfWFSS83435IMOqF/ifxWkilx0cwetOtoKpNMzM1Vyg=; b=ZS9zu8aREdKAbnzIjZWsip5VHJHmeKVZEsVWmmQpMaq1sSmRorWd4It3+fEcV3tov3YmFLD+hx+dPz0rLcoGa4K62447rYP+34x59jDiHeZx17HrqaixacSBfaMeY4yx2a6BH/6Wj4lWj9iclyEesuIGiRmZnljsKMdcMJOUv5n6Zi0Zja+QMjh2Eml+74TM/j4I8X8QmgsNK1ffhHC8I/2BW8sotoe6+MLR+Ze69+ywQFF9Dn0Ur1516YaSezbbBXWTju5aysa6eJMdJF49iOBZNzwCC4gCtByecFH+cFoErh7Mk5i+3d/GnAjPOXUtOMWKNshf9Nr4MEv3tKuAxQ== 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=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=VfWFSS83435IMOqF/ifxWkilx0cwetOtoKpNMzM1Vyg=; b=jgMRj3q6cnAX2Ppcf7gOwxgtbCnpfk+hzRVQozb5x+XqggQLQz+eCrofsAOMm7z+SwwKRPYNLGaEboD50G2vArxE0VmqTl04xAu6WBuzYcwyBTmc052zbk4t264oXMFCjk4QTnMYsMIRRFS4w0uMqro0l/xxwlZlPu6TEquJO7E= Received: from AS8PR07CA0059.eurprd07.prod.outlook.com (2603:10a6:20b:459::28) by AS8PR08MB7918.eurprd08.prod.outlook.com (2603:10a6:20b:539::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.28; Wed, 23 Oct 2024 10:36:52 +0000 Received: from AMS0EPF000001A3.eurprd05.prod.outlook.com (2603:10a6:20b:459:cafe::57) by AS8PR07CA0059.outlook.office365.com (2603:10a6:20b:459::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.5 via Frontend Transport; Wed, 23 Oct 2024 10:36:52 +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=arm.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 AMS0EPF000001A3.mail.protection.outlook.com (10.167.16.228) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8093.14 via Frontend Transport; Wed, 23 Oct 2024 10:36:52 +0000 Received: ("Tessian outbound 60a4253641a2:v473"); Wed, 23 Oct 2024 10:36:51 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 3c89a2ae7a7782e2 X-TessianGatewayMetadata: QOJii6w/0CgR4jRLKz7841OiDbafLIV/dS8K/3vRbzaziEphRZBnw/GdHUwzoZN23okymveupCTQnoCNNsfZVglm5xWm+ijMUNdzJbso8qhec77f0UYL3fSvE/r6jD4IjwWZW8/MFw+jFZD7oka9qkiucwfD8QzxLlZa3iLcaGs= X-CR-MTA-TID: 64aa7808 Received: from L116943a05434.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 223FC5AF-2D94-40B3-9242-AC4541B94DB5.1; Wed, 23 Oct 2024 10:36:45 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L116943a05434.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 23 Oct 2024 10:36:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UvCZr7ZIuaRAotvepGsqmsxoFH18NCANMV7pQxhnzWO6DZjhbXdynxBsccPEHCPxAy4sRHYX3e182gDmfkKUZjJZIV1UVV2nst2lX2jZjWq5Fm9SiRf+ktFhrUeBCPGHZ8j4lQC79eq0nrwmW8NOaVfQnIHQznFQJ2OZ+3Q/5KO3br3hGtWEtFZrT5WcEIcQNGrTLf9B0I7YOJ1cRMVnEfg2Zsp/QaSAFSDForUfBKMGqPm16FaaeSV5PLr26lVH0iAX6VpOgbXtNyIwZX8EAuaNIPlse5Rc6bWlGMSI0nJ/o5S0TfZGWVmm3bf3GzhhaY4jeYjgZwACQBaD40d9aw== 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=VfWFSS83435IMOqF/ifxWkilx0cwetOtoKpNMzM1Vyg=; b=VRaDH9tFgplRSNVD9Y5MJi3n3mfrUte1OLo17QhzNOXvzqnpl6vch00Uz7BAWrpYkPL7QW0PCht6KQnZvh2JJEGqVXhHzlJ2PB43em12XQp0IosrfxWjIzI/7oBLRD2b8EGZQmPTKLOPT+LuWZ9I+NdawFyMSxdn1mknAtx40ZpkIyb20jghsQV6Bs7NLMaREyW3Z97DTwqdtsZTbWxb9o4yF28CR8ZOPB/3/SPwB18SjYArwdBa8hZl/hIXFlPGam0l14ZzPkEKz+tgKwXmch+fw6R12ipGXsDoqUirTtRuBiIrtFQzpPC2w0ZU8Bs20LzqfOJXZwlHCgz4LK6WbA== 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 (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=VfWFSS83435IMOqF/ifxWkilx0cwetOtoKpNMzM1Vyg=; b=jgMRj3q6cnAX2Ppcf7gOwxgtbCnpfk+hzRVQozb5x+XqggQLQz+eCrofsAOMm7z+SwwKRPYNLGaEboD50G2vArxE0VmqTl04xAu6WBuzYcwyBTmc052zbk4t264oXMFCjk4QTnMYsMIRRFS4w0uMqro0l/xxwlZlPu6TEquJO7E= Received: from AS4P190CA0035.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:5d1::11) by PR3PR08MB5867.eurprd08.prod.outlook.com (2603:10a6:102:87::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.17; Wed, 23 Oct 2024 10:36:43 +0000 Received: from AMS1EPF0000004B.eurprd04.prod.outlook.com (2603:10a6:20b:5d1:cafe::3d) by AS4P190CA0035.outlook.office365.com (2603:10a6:20b:5d1::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.17 via Frontend Transport; Wed, 23 Oct 2024 10:36:43 +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 AMS1EPF0000004B.mail.protection.outlook.com (10.167.16.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8093.14 via Frontend Transport; Wed, 23 Oct 2024 10:36:43 +0000 Received: from AZ-NEU-EX06.Arm.com (10.240.25.134) 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.39; Wed, 23 Oct 2024 10:36:43 +0000 Received: from AZ-NEU-EX03.Arm.com (10.251.24.31) 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; Wed, 23 Oct 2024 10:36:42 +0000 Received: from PW070M4K.arm.com (10.57.85.41) by mail.arm.com (10.251.24.31) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 23 Oct 2024 10:36:41 +0000 From: Matthieu Longo To: CC: Richard Earnshaw , Richard Sandiford , Srinath Parvathaneni , Kyrylo Tkachov , "Eric Gallager" , Matthieu Longo Subject: [PATCH v2 4/4] aarch64: encapsulate note.gnu.property emission into a class Date: Wed, 23 Oct 2024 11:36:00 +0100 Message-ID: <20241023103600.500910-5-matthieu.longo@arm.com> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20241023103600.500910-1-matthieu.longo@arm.com> References: <20241023103600.500910-1-matthieu.longo@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AMS1EPF0000004B:EE_|PR3PR08MB5867:EE_|AMS0EPF000001A3:EE_|AS8PR08MB7918:EE_ X-MS-Office365-Filtering-Correlation-Id: 8f4aad2e-cc61-41f5-aea4-08dcf34e9b8d x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|376014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info-Original: k9BOpoPTq4IIJ7OVudPGjkye5PrCnY0b1TX4wIcXsVv0+f8en6vcqOmeEhJXPIVqVEVrSRKBGEOFyXUEfXHaqhSuGe9yeR0IQmwjR5Xen+D5ExkBdSBTqkZxNH9f0nKMR14R/uVK6qnJrRH7BDko5IcyW8rNLn8nPfvV3eGqOUDJEjX/ng2msJjcSt0ckWYUky0s0hpovgdqRArVew5yZ7uWZRfBqbE7KZBFn82sjGp56tlsrVuKPPhBIS+Tje63xebWQ09ycY7SVl/2lZI0Cb+EFgpnZCZgHCHFXl1UpYPAN/3KudQUGjjmszLNvzVQciEZ3zKm+BO6+VKxb7l7V33I1rnHSxQf1swXTHzmlxzWx8s+Kvvg7X2hwCJdz/L96ENIXkFzBBq5knvWMNb2MFQ4xAGkuUhMAMs0sQhl/4PEFFdoZ4k1uXuEaKrymw4L150MZgDhj1t/prekuBVcf7BmxCnDNq3iBpAel5gsEWLMqVBkwBXMG1Ov4nXw5clcL7iVULQFV2qX0miMTAHNt2DWkBXZ5sVApfxKapsj4bS6g3LuBl0gMDGxwsZM0dv4Ov/SiN1+FNz0oxhWraP6YMrwSYMgyVoJMhICceCCZrj9/PupR0dwDiVBs6I7XNM0nxcs/FXGg5pYQaUCC79udHpgjRL5s6aSD/NDeMAKmelNnPs1hscDRt0HLZvgDFCrxvPiqrcPRz1dxMRU27OmMcuorymLTY4XREBviXaGAm7+hfK+pFcSgGF4cad1QBNIki5lre2N7slpfJpoCZWz+ItXVqvxF5etStrUatSlpaEjQHu327Zp/04zT6eMOcLAv8SxdFszFwZm0bPeC1mWaEfk9lCJ0ZNvu4faxfuufoBxgoxDkRg8jRZ2q/sl9vDd6SMKd2u/boZZxa9V50xMuSwJvps0DGNG6vO7jERlYol//cmZ7awpeDPN8A9/n4wpmx9/udnrwVscs6Zk3islHt9bTk0cCVuZzGYaOxdSGUChl5m5kqICBrIhgygVQ2YfomFZ8ZKzEDKFQdkkHoPN5yDNrXdapOEqmwvV+wfjfNuviXAEA7t5+w/0GuIYtUudBO1MF0zVVaB/lkgW5PtL+jtCFZNmSsnzu99LfGZQqgJdRROlBIE4fpqZVlgcZ+IRv5YRH34eZ8jkyxLCKTRagu9qMaT/daehsUU2vMHAE1B8Fl+qd2rqnhqgYiDfoztJx0GOdVninmgecOqCBMuYiNvHs0dZym/rgSMRcNS0TDx3JjSm4z7/HuzaZ/fdY5Z+uZ7wqsP4IQRez7zL6naVAny4WIOoHs3gIPB9n2yFbYkCMIsEucuro71Genim4NhLiRZI+cxsBcG8+cEcPeXFLc5UYDEOi6R7lInf1dyzJevyCEpexHM+Dqhxd/gCOcLUES7VLqRm/7GL2A16crNTQQ== 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:(13230040)(1800799024)(376014)(36860700013)(82310400026); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5867 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:20b:5d1::11]; domain=AS4P190CA0035.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS0EPF000001A3.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c3fd27e0-d0f3-4c5b-1355-08dcf34e966b X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|376014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: lIXq++2hWj4vYuO2yH5Fw11j3vokQ5jO8dU3/P1lk6Uq+5phJLYYVifsZVwO/lmJ/MKUnbprCLMZeju7DcXsmhd/2wma6XwvvrVyJOohG5g+r6GWB7ECidja2A6r78xj/eGwcumvUzAtbIEHZLsDLIop7M36S0HKP6UQkvg/0A3trCO+JVagX3+Yo/YEVVq+jra+O3ncruMn9Ic/j1lxmc0pQ122k755qp4KCT3A5jicMYSBS/1xYBomF8qrip3GWYgGjJpU/FvkmQyXePBoNW9s/qG/B+I2rOeZyXxJNrd+7GaRMYCwRiwGEBYJbzYsN3CO6OB0TixVd7tlCP929JGCJGOxtdwAYRXrLkkFyZMqs56KXRI+tNRu5WzzykeRpSHvtfr1fxIa7KxSv30R5VXCdqgGwR2DRPMsZV5twWLi1NxQDvtBvF0qih2tUTg62uBHIEX/iVLFGNxewsJrGgw1KjTCi2C6hVWfITARurwluNjkVsqTmbHQYiTYE0Bb1nIZrLVv+1QgpKbCkofKpNmQ0+xKF5Tth/3d3Jj3zUxYE1fbrJ0/Y6xDmI4T667YvOU2NmT9tm7neVvhC+jonLAZje12E4SrWuxNzAD2BXsNeXwfxb5SWicqz3B97Rq57IV3kCX0WZ/cLSP4C3OfsFXHbVGmh7L3orAuMsPIddEa1QeT/zAbWw0BeOIQDTROU5PrNiFLKcDYUwbSOP8MA1HanCBZx/g1e+CiO8WxhyPvHIKcHPxxN7G5M/vOT5QOxb9tyzSes6Te5QAYI+UC1ULC4mOsGGsnXK8PTLQhG/cTcYlRWGLo1+s8jEqwnJFHlarOssegoGLrVkFUmzQJYHn+AVdurhzhDOumDYrzOLPtBKFZ1eysyjD7tNYFdWTVOADsPrkwhwQDNt6CdtvtScHb6yTIamlIRNhw6xUtKk0QFuGqM4c0J4JacjrObkqnvAdnnSXMO96xNbkbf35Oc04Jmlgi2dbkR3bjYXiqhDEXdRclALOdtDzDlTT4gYcjATzio5KO5bf9KS7FmJe+2/eMjDoiZ+/OGsTk7IstAdtgstvv27jKKG1M/WzD4GuGkCQo2gkWXGy4M7dBCHlwlH+s6hyCqYMnzxm9j/uz8tUJFPE+xFnFU/xpWY81KdccEr2RVHIEIZA3KmXayHj5fnt/2kok2KV3lRxMNIMX+guhMy/98cF7dBen4OOFkpqzxtmJ8DtT5YQZZkS0XX9zkU9zTSgXGmp4srgH21nQm1EgI0KkswDQdfut5dTA2SXPhh9nmSS3dtZ5ISO2DOrJgO49lfyEE0bKbGk5H3coCrQ/62QXznbgmSe6B3Hb3SVRpbhv5s9rhwPXrMaVGfrL/jNDT76nTGbXRTxqKVoCVOf2BakzNNIIOvvzvAOf0G157ytzW7w60x/KMi6pW+6ApA== 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:(13230040)(35042699022)(376014)(36860700013)(1800799024)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2024 10:36:52.1895 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8f4aad2e-cc61-41f5-aea4-08dcf34e9b8d 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: AMS0EPF000001A3.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7918 X-Spam-Status: No, score=-12.0 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, 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.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org gcc/ChangeLog: * config.gcc: Add aarch64-dwarf-metadata.o to extra_objs. * config/aarch64/aarch64-dwarf-metadata.h (class section_note_gnu_property): Encapsulate GNU properties code into a class. * config/aarch64/aarch64.cc (GNU_PROPERTY_AARCH64_FEATURE_1_AND): Removed. (GNU_PROPERTY_AARCH64_FEATURE_1_BTI): Likewise. (GNU_PROPERTY_AARCH64_FEATURE_1_PAC): Likewise. (GNU_PROPERTY_AARCH64_FEATURE_1_GCS): Likewise. (aarch64_file_end_indicate_exec_stack): Move GNU properties code to aarch64-dwarf-metadata.cc * config/aarch64/t-aarch64: Declare target aarch64-dwarf-metadata.o * config/aarch64/aarch64-dwarf-metadata.cc: New file. --- gcc/config.gcc | 2 +- gcc/config/aarch64/aarch64-dwarf-metadata.cc | 145 +++++++++++++++++++ gcc/config/aarch64/aarch64-dwarf-metadata.h | 19 +++ gcc/config/aarch64/aarch64.cc | 79 +--------- gcc/config/aarch64/t-aarch64 | 10 ++ 5 files changed, 181 insertions(+), 74 deletions(-) create mode 100644 gcc/config/aarch64/aarch64-dwarf-metadata.cc diff --git a/gcc/config.gcc b/gcc/config.gcc index 71ac3badafd..8d26b8776e3 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -351,7 +351,7 @@ aarch64*-*-*) c_target_objs="aarch64-c.o" cxx_target_objs="aarch64-c.o" d_target_objs="aarch64-d.o" - extra_objs="aarch64-builtins.o aarch-common.o aarch64-sve-builtins.o aarch64-sve-builtins-shapes.o aarch64-sve-builtins-base.o aarch64-sve-builtins-sve2.o aarch64-sve-builtins-sme.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o aarch-bti-insert.o aarch64-cc-fusion.o aarch64-early-ra.o aarch64-ldp-fusion.o" + extra_objs="aarch64-builtins.o aarch-common.o aarch64-dwarf-metadata.o aarch64-sve-builtins.o aarch64-sve-builtins-shapes.o aarch64-sve-builtins-base.o aarch64-sve-builtins-sve2.o aarch64-sve-builtins-sme.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o aarch-bti-insert.o aarch64-cc-fusion.o aarch64-early-ra.o aarch64-ldp-fusion.o" target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.h \$(srcdir)/config/aarch64/aarch64-builtins.cc \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc" target_has_targetm_common=yes ;; diff --git a/gcc/config/aarch64/aarch64-dwarf-metadata.cc b/gcc/config/aarch64/aarch64-dwarf-metadata.cc new file mode 100644 index 00000000000..f272d290fed --- /dev/null +++ b/gcc/config/aarch64/aarch64-dwarf-metadata.cc @@ -0,0 +1,145 @@ +/* DWARF metadata for AArch64 architecture. + Copyright (C) 2024 Free Software Foundation, Inc. + Contributed by ARM Ltd. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . */ + +#define INCLUDE_STRING +#define INCLUDE_ALGORITHM +#define INCLUDE_MEMORY +#define INCLUDE_VECTOR +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "backend.h" +#include "target.h" +#include "rtl.h" +#include "output.h" + +#include "aarch64-dwarf-metadata.h" + +/* Defined for convenience. */ +#define POINTER_BYTES (POINTER_SIZE / BITS_PER_UNIT) + +namespace aarch64 { + +constexpr unsigned GNU_PROPERTY_AARCH64_FEATURE_1_AND = 0xc0000000; +constexpr unsigned GNU_PROPERTY_AARCH64_FEATURE_1_BTI = (1U << 0); +constexpr unsigned GNU_PROPERTY_AARCH64_FEATURE_1_PAC = (1U << 1); +constexpr unsigned GNU_PROPERTY_AARCH64_FEATURE_1_GCS = (1U << 2); + +namespace { + +std::string +gnu_property_features_to_string (unsigned feature_1_and) +{ + struct flag_name + { + unsigned int mask; + const char *name; + }; + + static const flag_name flags[] = { + {GNU_PROPERTY_AARCH64_FEATURE_1_BTI, "BTI"}, + {GNU_PROPERTY_AARCH64_FEATURE_1_PAC, "PAC"}, + {GNU_PROPERTY_AARCH64_FEATURE_1_GCS, "GCS"}, + }; + + const char *separator = ""; + std::string s_features; + for (auto &flag : flags) + if (feature_1_and & flag.mask) + { + s_features.append (separator).append (flag.name); + separator = ", "; + } + return s_features; +}; + +} // namespace anonymous + +section_note_gnu_property::section_note_gnu_property () + : m_feature_1_and (0) {} + +void +section_note_gnu_property::bti_enabled () +{ + m_feature_1_and |= GNU_PROPERTY_AARCH64_FEATURE_1_BTI; +} + +void +section_note_gnu_property::pac_enabled () +{ + m_feature_1_and |= GNU_PROPERTY_AARCH64_FEATURE_1_PAC; +} + +void +section_note_gnu_property::gcs_enabled () +{ + m_feature_1_and |= GNU_PROPERTY_AARCH64_FEATURE_1_GCS; +} + +void +section_note_gnu_property::write () const +{ + if (m_feature_1_and) + { + /* Generate .note.gnu.property section. */ + switch_to_section ( + get_section (".note.gnu.property", SECTION_NOTYPE, NULL)); + + /* PT_NOTE header: namesz, descsz, type. + namesz = 4 ("GNU\0") + descsz = 16 (Size of the program property array) + [(12 + padding) * Number of array elements] + type = 5 (NT_GNU_PROPERTY_TYPE_0). */ + assemble_align (POINTER_SIZE); + assemble_integer (GEN_INT (4), 4, 32, 1); + assemble_integer (GEN_INT (ROUND_UP (12, POINTER_BYTES)), 4, 32, 1); + assemble_integer (GEN_INT (5), 4, 32, 1); + + /* PT_NOTE name. */ + assemble_string ("GNU", 4); + + /* PT_NOTE contents for NT_GNU_PROPERTY_TYPE_0: + type = GNU_PROPERTY_AARCH64_FEATURE_1_AND + datasz = 4 + data = feature_1_and. */ + fputs (integer_asm_op (4, true), asm_out_file); + fprint_whex (asm_out_file, GNU_PROPERTY_AARCH64_FEATURE_1_AND); + putc ('\n', asm_out_file); + assemble_integer (GEN_INT (4), 4, 32, 1); + + fputs (integer_asm_op (4, true), asm_out_file); + fprint_whex (asm_out_file, m_feature_1_and); + if (flag_debug_asm) + { + auto const &s_features + = gnu_property_features_to_string (m_feature_1_and); + asm_fprintf (asm_out_file, + "\t%s GNU_PROPERTY_AARCH64_FEATURE_1_AND (%s)\n", + ASM_COMMENT_START, s_features.c_str ()); + } + else + putc ('\n', asm_out_file); + + /* Pad the size of the note to the required alignment. */ + assemble_align (POINTER_SIZE); + } +} + +} // namespace aarch64 \ No newline at end of file diff --git a/gcc/config/aarch64/aarch64-dwarf-metadata.h b/gcc/config/aarch64/aarch64-dwarf-metadata.h index 01f08ad073e..564319981ce 100644 --- a/gcc/config/aarch64/aarch64-dwarf-metadata.h +++ b/gcc/config/aarch64/aarch64-dwarf-metadata.h @@ -221,6 +221,25 @@ class aeabi_subsection auto_vec, N> m_attributes; }; +class section_note_gnu_property +{ + public: + section_note_gnu_property (); + + /* Add BTI flag to GNU properties. */ + void bti_enabled (); + /* Add GCS flag to GNU properties. */ + void gcs_enabled (); + /* Add PAC flag to GNU properties. */ + void pac_enabled (); + + /* Write the data to the assembly file. */ + void write () const; + + private: + unsigned m_feature_1_and; +}; + } // namespace aarch64 #endif /* GCC_AARCH64_DWARF_METADATA_H */ \ No newline at end of file diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index e5a94738f70..3883338db9f 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -29236,91 +29236,24 @@ aarch64_can_tag_addresses () /* Implement TARGET_ASM_FILE_END for AArch64. This adds the AArch64 GNU NOTE section at the end if needed. */ -#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc0000000 -#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0) -#define GNU_PROPERTY_AARCH64_FEATURE_1_PAC (1U << 1) -#define GNU_PROPERTY_AARCH64_FEATURE_1_GCS (1U << 2) void aarch64_file_end_indicate_exec_stack () { file_end_indicate_exec_stack (); - unsigned feature_1_and = 0; + aarch64::section_note_gnu_property gnu_properties; + if (aarch_bti_enabled ()) - feature_1_and |= GNU_PROPERTY_AARCH64_FEATURE_1_BTI; + gnu_properties.bti_enabled (); if (aarch_ra_sign_scope != AARCH_FUNCTION_NONE) - feature_1_and |= GNU_PROPERTY_AARCH64_FEATURE_1_PAC; + gnu_properties.pac_enabled (); if (aarch64_gcs_enabled ()) - feature_1_and |= GNU_PROPERTY_AARCH64_FEATURE_1_GCS; - - if (feature_1_and) - { - /* Generate .note.gnu.property section. */ - switch_to_section (get_section (".note.gnu.property", - SECTION_NOTYPE, NULL)); - - /* PT_NOTE header: namesz, descsz, type. - namesz = 4 ("GNU\0") - descsz = 16 (Size of the program property array) - [(12 + padding) * Number of array elements] - type = 5 (NT_GNU_PROPERTY_TYPE_0). */ - assemble_align (POINTER_SIZE); - assemble_integer (GEN_INT (4), 4, 32, 1); - assemble_integer (GEN_INT (ROUND_UP (12, POINTER_BYTES)), 4, 32, 1); - assemble_integer (GEN_INT (5), 4, 32, 1); - - /* PT_NOTE name. */ - assemble_string ("GNU", 4); - - /* PT_NOTE contents for NT_GNU_PROPERTY_TYPE_0: - type = GNU_PROPERTY_AARCH64_FEATURE_1_AND - datasz = 4 - data = feature_1_and. */ - fputs (integer_asm_op (4, true), asm_out_file); - fprint_whex (asm_out_file, GNU_PROPERTY_AARCH64_FEATURE_1_AND); - putc ('\n', asm_out_file); - assemble_integer (GEN_INT (4), 4, 32, 1); - - fputs (integer_asm_op (4, true), asm_out_file); - fprint_whex (asm_out_file, feature_1_and); - if (flag_debug_asm) - { - struct flag_name - { - unsigned int mask; - const char *name; - }; - static const flag_name flags[] = { - { GNU_PROPERTY_AARCH64_FEATURE_1_BTI, "BTI" }, - { GNU_PROPERTY_AARCH64_FEATURE_1_PAC, "PAC" }, - { GNU_PROPERTY_AARCH64_FEATURE_1_GCS, "GCS" }, - }; - - const char *separator = ""; - std::string s_features; - for (auto &flag : flags) - if (feature_1_and & flag.mask) - { - s_features.append (separator).append (flag.name); - separator = ", "; - } + gnu_properties.gcs_enabled (); - asm_fprintf (asm_out_file, - "\t%s GNU_PROPERTY_AARCH64_FEATURE_1_AND (%s)\n", - ASM_COMMENT_START, s_features.c_str ()); - } - else - putc ('\n', asm_out_file); - /* Pad the size of the note to the required alignment. */ - assemble_align (POINTER_SIZE); - } + gnu_properties.write (); } -#undef GNU_PROPERTY_AARCH64_FEATURE_1_GCS -#undef GNU_PROPERTY_AARCH64_FEATURE_1_PAC -#undef GNU_PROPERTY_AARCH64_FEATURE_1_BTI -#undef GNU_PROPERTY_AARCH64_FEATURE_1_AND /* Helper function for straight line speculation. Return what barrier should be emitted for straight line speculation diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64 index c2a0715e9ab..c6b8ef9ccb8 100644 --- a/gcc/config/aarch64/t-aarch64 +++ b/gcc/config/aarch64/t-aarch64 @@ -139,6 +139,16 @@ aarch-common.o: $(srcdir)/config/arm/aarch-common.cc $(CONFIG_H) $(SYSTEM_H) \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(srcdir)/config/arm/aarch-common.cc +aarch64-dwarf-metadata.o: $(srcdir)/config/aarch64/aarch64-dwarf-metadata.cc \ + $(CONFIG_H) \ + $(RTL_H) \ + $(SYSTEM_H) \ + $(TARGET_H) \ + $(srcdir)/config/aarch64/aarch64-dwarf-metadata.h \ + output.h + $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_SPPFLAGS) $(INCLUDES) \ + $(srcdir)/config/aarch64/aarch64-dwarf-metadata.cc + aarch64-c.o: $(srcdir)/config/aarch64/aarch64-c.cc $(CONFIG_H) $(SYSTEM_H) \ coretypes.h $(TM_H) $(TREE_H) output.h $(C_COMMON_H) $(TARGET_H) $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \