From patchwork Thu Aug 15 15:38:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Carlotti X-Patchwork-Id: 1972843 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=pFJsOjyv; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=pFJsOjyv; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Wl8SM5mPZz1yXZ for ; Fri, 16 Aug 2024 01:39:31 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 991F9385AC29 for ; Thu, 15 Aug 2024 15:39:29 +0000 (GMT) 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-db8eur05on2062d.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::62d]) by sourceware.org (Postfix) with ESMTPS id 5A12E3858D34 for ; Thu, 15 Aug 2024 15:39:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5A12E3858D34 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 5A12E3858D34 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f400:7e1a::62d ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736348; cv=pass; b=h1f1JCdLsEzCPcZx4Ne0csUBGF5qG6AuUbvO7EO30S9/fkrybwG7GhC2NRxs0jmOu70tXtW2o7Ui7W8XrgQKGpXUX2udIW3OkBzNQws+KWRCiuq15tanaugep+g8BzUfzV5mWRC70HJQVSmUfDsmfUEkQCa0sOOyt7iICxomwis= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736348; c=relaxed/simple; bh=9KJnZ8OOVx5/2EKIJ4LxqXghgjwZWaBM1Fd9LIXJtNs=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=o3GxwV2eQKJs6C6BpDJdOI0XdGrM71UBt9nvo4GjpkCgY0c19GQQ96xmIFLAShS8QMcJFllyMElDQL/cEkgyNbAsfW51rys5epDSbu37iQrt7YJD6X2JYaRPX5Rqk1hjlZeKyDWONK4fsWRksPvrWvMDEz3pJhfZZ4d2N5TYw7I= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=MeHbG8QrXDDWHtvJQl+YBYrDtgkD8YIREUf4613QUPadzZ5zkhybicfTvHpjEotNuhg+Iq1O0HS3IrlV7oPQzFGJjuxeUJyxpYLluYjIGxJpDZZPZaV1wP6fdzoeXqrwnW55pwm9Pva7qbC7Y/7QU3vb9OpReAhz+vhPQW2TS+Q3adnfyUImkTe6D8leyaa1ipJWAY+drnTvPEnH8Cj0x8/cnG9lsr2E5gOp5cmehHQeXNwen2gisYk9dZMTPXDTj01SNvW0Da9Ler/pc22uA9gV2bGvEc8NpYcUKhabsSbqjBW0Vt2+tqztqDRB9D3Jrk/OwvN8VJswKOX0B7vuHw== 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=RxLwGpfRzGLRZvdnaWrFWPLf5Z+QDp6nEs53FXAZZPQ=; b=s/MX8o9fpyIeHYZsUGf8AQrXkoGHfwtRkESnmz5ybKwmHkj38ZdXrTZtJDMW3S8dEP8JrwTNys4prgVWFvSUQkT2GqEXas68OnAKYr5s7Q/2gSP7KUNa5IytwTf7GM1y9urdDUi65vkOOo3k04dWQ7vJ7/eM5WlWI4M+a5X9ZmFCEjzBRs32+d/hssw1li3WuE15t/AayVsyYAdPQliFHAji32vDZTrSOkIEVkKAwsmbXC8gbG1Uw3R6Yjq2aVk8UtkNR63bjQQJyE6JbutRfYKRv6Mev7MPnIb93WlgKV7n82S7rBzMf+eJqqYK4KfWpOc+LEFxUk8R5GLVIolapA== 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] dkim=[1,1,header.d=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=RxLwGpfRzGLRZvdnaWrFWPLf5Z+QDp6nEs53FXAZZPQ=; b=pFJsOjyv5/kQxP51ZCexXoHO8d94FgcQLTxXijF8o+78eHhxaHQZv8q564bIpOLTfWxQx+sgmbZgSKEm1e19te8EwB62Fowov/+cRz/ycrSoGLQG91XgHoI8T/LPgAU+YUvhWILQJEJEnXSuo/ttnp84vQuNfJdWwRftsVp/s7A= Received: from AM0PR03CA0106.eurprd03.prod.outlook.com (2603:10a6:208:69::47) by PAVPR08MB9082.eurprd08.prod.outlook.com (2603:10a6:102:32f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7897.9; Thu, 15 Aug 2024 15:39:01 +0000 Received: from AM4PEPF00027A68.eurprd04.prod.outlook.com (2603:10a6:208:69:cafe::71) by AM0PR03CA0106.outlook.office365.com (2603:10a6:208:69::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.19 via Frontend Transport; Thu, 15 Aug 2024 15:39:01 +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 AM4PEPF00027A68.mail.protection.outlook.com (10.167.16.85) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7849.8 via Frontend Transport; Thu, 15 Aug 2024 15:39:00 +0000 Received: ("Tessian outbound a00430d51899:v403"); Thu, 15 Aug 2024 15:39:00 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 66507535412a77e1 X-CR-MTA-TID: 64aa7808 Received: from L6423e1b30b2f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EB68804E-4D84-4591-BDCB-EA02454AE06D.1; Thu, 15 Aug 2024 15:38:53 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L6423e1b30b2f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 15 Aug 2024 15:38:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eaVTQUE/qCQGLZX4GBYSzvgs3/1gVMewpHFuS56kXK4MlUBoQ7sCOVwpjZF/1yuvn/ixzlSQO6ctxFQH8DOx1kdxj/+VyAT3cHm2VjqcS1CXB3ymIr46fEZgw4XpIrl0cslekhsEPSIWPgevAtMPrTT66IsUZhCBuEhMIE9RSWADu+NrIFvjQsVpyubDBmIM8ZE063lCTNqO85g3wAWAwzuBCs/BwvHLXpaIhMTt88cdPkqzzHt4znPf0IfoaG3oAkGJ9azYEtWHEDyfZ05AbJZovIkWHA1ZNYfOyQzXV03JYcJ6y19h7MPc9wboGSAUJ0ACGXUl89y7mszGHJ51GQ== 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=RxLwGpfRzGLRZvdnaWrFWPLf5Z+QDp6nEs53FXAZZPQ=; b=gJDsZPwJULMnA6kd108dDypPqTjiUN5Mx7k1JVpAT/0NTFL3YYBb9VyrFT/suy3tv5Ab3m5ULcksI58SI6/QxDAgEdvfGFRMTXTcjo7WlMtUSRkfsgsdIg2/w7GR7V84ZkNKSySrXT0RQlDo/O64+eBnTc+I3/HH0eyDXxaELuH2rzz9C2CKlwwLO769KJiR1m7FgYXsE3oeMUYVhM0cz1Va5jHXSm8/Rgxq2aURxn4EiMmK2Ukf8jvtydknk5kr4H+YSSGdmjS7HqlXZi76qAgkDAHbFhAmues6moW8ReTMVxfx1Jo/r7e4Js28lX0nrCp2bRGItSC3yjrdqaHYpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none 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=RxLwGpfRzGLRZvdnaWrFWPLf5Z+QDp6nEs53FXAZZPQ=; b=pFJsOjyv5/kQxP51ZCexXoHO8d94FgcQLTxXijF8o+78eHhxaHQZv8q564bIpOLTfWxQx+sgmbZgSKEm1e19te8EwB62Fowov/+cRz/ycrSoGLQG91XgHoI8T/LPgAU+YUvhWILQJEJEnXSuo/ttnp84vQuNfJdWwRftsVp/s7A= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) by DB9PR08MB9466.eurprd08.prod.outlook.com (2603:10a6:10:458::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.16; Thu, 15 Aug 2024 15:38:51 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29%5]) with mapi id 15.20.7897.007; Thu, 15 Aug 2024 15:38:51 +0000 Date: Thu, 15 Aug 2024 16:38:48 +0100 From: Andrew Carlotti To: gcc-patches@gcc.gnu.org, Richard Sandiford , Richard Earnshaw Subject: [PATCH v3 4/5] aarch64: Fix memtag intrinsic availability Message-ID: <1e834fec-37b7-b732-4775-d6db54d7dd83@e124511.cambridge.arm.com> References: Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO2P265CA0510.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:13b::17) To AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB6678:EE_|DB9PR08MB9466:EE_|AM4PEPF00027A68:EE_|PAVPR08MB9082:EE_ X-MS-Office365-Filtering-Correlation-Id: 7bd20a66-1bb8-4ca0-fa5c-08dcbd4062a0 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|366016|376014; X-Microsoft-Antispam-Message-Info-Original: cOnbkyH4ZChLhs60rFqFF3P31X3S+ua58IKbXFYCC+r3wKd/BRqVxM7P2OYUK6x/V4jxQLbZ14BNT8LBbPCTTP3oWMybCJPCr7FlLCWPfJFFWhhiX2hTw75VzjeH2pgckypDQCq56MdBKDF2h1gSvufA3MsbeaX30J2E/r0QPkO24Ow6BRiVpTHKtAh7gIXqvURcj/GqKTeI1AnnkB6lH4DSo7cUEzPHz8QYeKAUMN3DxNCB1jCYjT9jOw0ydZHl5O01d7tpF7EmT253NU16YBLDI+yi7DfYEfujpDKqkAeEkUTv+eo3S6Ztld8T5hfnsDmswn3APOCI4+3eiLwid84wviYvB8dxG1hQ21nlr07BootXem+MNljYzWqjgpvZedtOfBoQBWp8GYVSGpM2faQku4wv+EipWnkM41AVYp7a26QHemxxqNUbs/jR+3IBwAFPWC+HIEbPssnIvM8z8Tf+/W9ANDEgwyGuKE0Q66rte1ONB9TKEk6VmKaD/D9T4uZdPAU85CO4B7W8YVx9yO6ZK2bqH6vjN6LP4gsG0jIeWxe5rde+6ExxuQZxnLLk+gh3HOZeQAYWMXUz5KDsIvIrNx5DLzb8Dg0GkklycmqtMuKAWnWWeFJGEMlArqGyJ54cnelPlHz7KaI4OqmoxKOymWgKzsT9s3evG3XjnJ5fbRxkjSvocfWqzQ0yi8JScTwxVNUL1Oa8zYspRK7Z2YnuqYGQOZQ3o9uBZI9Jb6AzS/X1DCxDxBSf+FOfXfI4FEATTJ4XORs5eXPXi9kvYG2/6uapDyQpeH9FOZrpEJA3JqeNfejAHwgEzIEoou5Cx99Q6NXiPeRIgX/EaR0YAKxCvJosZr47zVeNEe3q3B9YWkGUJfqtckYnf4drEQN+dGRWx1lXBxFmIYEhuA3g3ooLXzqX+TSV44BjHIaVOk/txq7HQzD5D98L/VKLgA0/QbSnJlLWdF+scvwD5CC8ql8sqUAd3qYBlwmBYp5NHfo4qTRM7zjDwSmNE77TivZWSefHQdCgW4q7JXG9Fr6VwGatLalf9cMFjnbqat3hkTzDTI/qspdCAIh2HdvjcMUWDlV4d1dyiW36JxIXc17OXNsCo98Vg/OwCihbeJqEZj1886i2AT8W/sWxgfHVivOINcvwALwEDeQod0F4JHus60xoXIArrI4yjqpQI3vfUIcrm+MMWejhpB3wJXRp8WomF2HtK9IAuryqfTbUKrcPO22xMBkKq0HzO3x5QyQi28+c6GKTMcnJlrUoxoPJqCXbKqkAQ2lK0seriSVivOmU98wimBquct/CMA4TVXSAoEF0U6+vwFNlPl/ezgvT2wyv X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB6678.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9466 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:20b:398::8]; domain=AS8PR08MB6678.eurprd08.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM4PEPF00027A68.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2c0e0b95-5bb5-40af-9adf-08dcbd405c78 X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|36860700013|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info: NnrKfdvtrXmM/DSY8aF/yzElrAolM7Pqo5JA03efT0cnvmuRLOzSCcKD4TJ+dV5rUSPxrevev5X0JKXIjqQuUV5TqVdYd1x+Wv8SHxTyCJhWtu2q2l1Z5XQ8Eh+iP8kntwkfbvPQVXAGS74MuPCdB2al1ZeejsikiPZg9ReltoC8DVAxH8eiVKK/STYZ/iq+eQKhIPCXsAe5pmMc3NOEQAao5XDMWKjx/NP2bSlPzlr+R5ByGdOAAPEV8iwolmhnQAJ/bBY978zMU8WkZ2hi+siqBBJhY2IV7ktxo0/tAumNCZIOlvlECYC3Zn3PC5fkkHAxfC2CFR+9Q0XCNyGB4cVzXXZ+JM05CU4z06fkZgYXKw2lDSQlg0zckebdfya/73U6x3Nchut4vE2yfacBDtZwPOsfR0UJkdJzyctZx65Vu5cqhL+brrO37FEd7ekpzxesJJTD4E8twWNUjw9QjeYtUIL92OzgC70GlHAktlpH6RDdstcpC/M3jLuevRKbp6B9xX47rB/ZY1zJmueMsH0tkCUfL/wG+kBzaunoGX++JUp99Pbvign9nBbaMzuC+zbMCZ7R+6G6bbLxiR6iKTxO3ITRSPKyaBRF58qIW5Fd+fL3EG5k4/wzAiQ6A8iAMe8EPg4TCM1XKfr0m//bXq45bfI/TYGv6SJVGDJAggssus0uPtISHtKCatalkBg6N8rU31y3xpO2sCOAh1BxAyUxswS7Ef8NtmfkFg6YMH3hKCvo5DgxItAXSEtAjuRxjOzW2Bqm5K5Om+DsTJm0yRxMqdtakxzR8FvAAAOPU9h/bV5Rhdf3wGJUJGB/MQyaqF/1cn83oh4sTGn/WzMXhgfCObO4yB23sF7DNdh3x3BPs68CuZW8jyPzN/VOljMIe1vGQbmfwHH34OrmEKCPLcl4Q6Sx9lle7X6rHEJ/HulhtyUqxp1zD5UiucOXqfZCfohu2exU87J49NiQ5nlTP6qMHjkVOr+j6mHV8GmzumW3zwcRLsNY3Wq3inGYjCMN7ybkYf3rue9m7KvtkFfwriL1pb7w9LOII3PdamSY0aNUleMeCbR7A0gPrKdudA1hgPA4dygCjR390VPsf3/L8jjS0ia4sc0mYLRfCudQusiKcO1C0C53yKbEEZXF0+c9QiHp040sbi8vBvm1v+71L4D1lReXu449+cYXd5ESaOvkEmNIgJJ7GsGVS9BKUo6g6BxrwrSKkfk2MGcZgnPSTNW77rry8ju/hq72i3GrPhr206Lk9+oc5Fkby+/9fccNcamIGpXjC3uWQUaO8xfgx9cRtBswDfAvBUjy4yNztyCUACp+U76aduVJ2wJ1ZzyawPBjTbVuw38ukwtIXmUXSFvdW8CKWH8dEUZf+vCUUQdMUS1uNG7GXz1h2v5GL6o9HLedpbcdFuDXSR2LpjfSkg== 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)(36860700013)(82310400026)(1800799024)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2024 15:39:00.9416 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7bd20a66-1bb8-4ca0-fa5c-08dcbd4062a0 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: AM4PEPF00027A68.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9082 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, 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~incoming=patchwork.ozlabs.org@gcc.gnu.org The availability of memtag intrinsics and data types were determined solely by the globally specified architecture features, which did not reflect any changes specified in target pragmas or attributes. This patch removes the initialisation-time guards for the intrinsics, and replaces them with checks at use time. It also removes the macro indirection from the header file - this simplifies the header, and allows the missing extension error reporting to find the user-facing intrinsic names. gcc/ChangeLog: PR target/112108 * config/aarch64/aarch64-builtins.cc (aarch64_init_memtag_builtins): Replace internal builtin names with intrinsic names. (aarch64_general_init_builtins): Move memtag intialisation... (handle_arm_acle_h): ...to here, and remove feature check. (aarch64_general_check_builtin_call): Check memtag intrinsics. * config/aarch64/arm_acle.h (__arm_mte_create_random_tag) (__arm_mte_exclude_tag, __arm_mte_ptrdiff) (__arm_mte_increment_tag, __arm_mte_set_tag, __arm_mte_get_tag): Remove. gcc/testsuite/ChangeLog: PR target/112108 * gcc.target/aarch64/acle/memtag_guard-1.c: New test. * gcc.target/aarch64/acle/memtag_guard-2.c: New test. * gcc.target/aarch64/acle/memtag_guard-3.c: New test. * gcc.target/aarch64/acle/memtag_guard-4.c: New test. diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index 60e4c217921bc1144bfa436a168a4a1dc194f44e..9c6d9ec7537e7c473dc42a27a7737d80aab9cddb 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -1932,27 +1932,27 @@ aarch64_init_memtag_builtins (void) #define AARCH64_INIT_MEMTAG_BUILTINS_DECL(F, N, I, T) \ aarch64_builtin_decls[AARCH64_MEMTAG_BUILTIN_##F] \ - = aarch64_general_add_builtin ("__builtin_aarch64_memtag_"#N, \ - T, AARCH64_MEMTAG_BUILTIN_##F); \ + = aarch64_general_simulate_builtin ("__arm_mte_"#N, T, \ + AARCH64_MEMTAG_BUILTIN_##F); \ aarch64_memtag_builtin_data[AARCH64_MEMTAG_BUILTIN_##F - \ AARCH64_MEMTAG_BUILTIN_START - 1] = \ {T, CODE_FOR_##I}; fntype = build_function_type_list (ptr_type_node, ptr_type_node, uint64_type_node, NULL); - AARCH64_INIT_MEMTAG_BUILTINS_DECL (IRG, irg, irg, fntype); + AARCH64_INIT_MEMTAG_BUILTINS_DECL (IRG, create_random_tag, irg, fntype); fntype = build_function_type_list (uint64_type_node, ptr_type_node, uint64_type_node, NULL); - AARCH64_INIT_MEMTAG_BUILTINS_DECL (GMI, gmi, gmi, fntype); + AARCH64_INIT_MEMTAG_BUILTINS_DECL (GMI, exclude_tag, gmi, fntype); fntype = build_function_type_list (ptrdiff_type_node, ptr_type_node, ptr_type_node, NULL); - AARCH64_INIT_MEMTAG_BUILTINS_DECL (SUBP, subp, subp, fntype); + AARCH64_INIT_MEMTAG_BUILTINS_DECL (SUBP, ptrdiff, subp, fntype); fntype = build_function_type_list (ptr_type_node, ptr_type_node, unsigned_type_node, NULL); - AARCH64_INIT_MEMTAG_BUILTINS_DECL (INC_TAG, inc_tag, addg, fntype); + AARCH64_INIT_MEMTAG_BUILTINS_DECL (INC_TAG, increment_tag, addg, fntype); fntype = build_function_type_list (void_type_node, ptr_type_node, NULL); AARCH64_INIT_MEMTAG_BUILTINS_DECL (SET_TAG, set_tag, stg, fntype); @@ -2065,6 +2065,7 @@ handle_arm_acle_h (void) if (TARGET_LS64) aarch64_init_ls64_builtins (); aarch64_init_tme_builtins (); + aarch64_init_memtag_builtins (); } /* Initialize fpsr fpcr getters and setters. */ @@ -2157,9 +2158,6 @@ aarch64_general_init_builtins (void) if (!TARGET_ILP32) aarch64_init_pauth_hint_builtins (); - if (TARGET_MEMTAG) - aarch64_init_memtag_builtins (); - if (in_lto_p) handle_arm_acle_h (); } @@ -2316,7 +2314,12 @@ aarch64_general_check_builtin_call (location_t location, vec, default: break; } - /* Default behavior. */ + + if (code >= AARCH64_MEMTAG_BUILTIN_START + && code <= AARCH64_MEMTAG_BUILTIN_END) + return aarch64_check_required_extensions (location, decl, + AARCH64_FL_MEMTAG); + return true; } diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h index 2d84ab1bd3f3241196727d7a632a155014708081..ab04326791309796125860ce64e63fe858a4a733 100644 --- a/gcc/config/aarch64/arm_acle.h +++ b/gcc/config/aarch64/arm_acle.h @@ -287,29 +287,6 @@ __rndrrs (uint64_t *__res) #pragma GCC pop_options -#pragma GCC push_options -#pragma GCC target ("+nothing+memtag") - -#define __arm_mte_create_random_tag(__ptr, __u64_mask) \ - __builtin_aarch64_memtag_irg(__ptr, __u64_mask) - -#define __arm_mte_exclude_tag(__ptr, __u64_excluded) \ - __builtin_aarch64_memtag_gmi(__ptr, __u64_excluded) - -#define __arm_mte_ptrdiff(__ptr_a, __ptr_b) \ - __builtin_aarch64_memtag_subp(__ptr_a, __ptr_b) - -#define __arm_mte_increment_tag(__ptr, __u_offset) \ - __builtin_aarch64_memtag_inc_tag(__ptr, __u_offset) - -#define __arm_mte_set_tag(__tagged_address) \ - __builtin_aarch64_memtag_set_tag(__tagged_address) - -#define __arm_mte_get_tag(__address) \ - __builtin_aarch64_memtag_get_tag(__address) - -#pragma GCC pop_options - #define __arm_rsr(__regname) \ __builtin_aarch64_rsr (__regname) diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-1.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-1.c new file mode 100644 index 0000000000000000000000000000000000000000..4a34c37f44fae590d2a3f947dd1bf404fe8261fa --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.5-a" } */ + +#include + +void foo (int * p) +{ + __arm_mte_set_tag (p); /* { dg-error {ACLE function '__arm_mte_set_tag' requires ISA extension 'memtag'} } */ +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-2.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-2.c new file mode 100644 index 0000000000000000000000000000000000000000..bf06b284dadd2082496cfc0a345f7cf5a783bd3b --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-2.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.5-a" } */ + +#include + +#pragma GCC target("arch=armv8.5-a+memtag") +void foo (int * p) +{ + __arm_mte_set_tag (p); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-3.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-3.c new file mode 100644 index 0000000000000000000000000000000000000000..1f4ffa454a763e6b35bd84af6ef6c7d6474a518b --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-3.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.5-a+memtag -mgeneral-regs-only" } */ + +#include + +void foo (int * p) +{ + __arm_mte_set_tag (p); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-4.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-4.c new file mode 100644 index 0000000000000000000000000000000000000000..a1cd45ec79d242dcf710abdc375c29063866eb5a --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-4.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.5-a+memtag" } */ + +#include + +#pragma GCC target("arch=armv8.5-a") +void foo (int * p) +{ + __arm_mte_set_tag (p); /* { dg-error {ACLE function '__arm_mte_set_tag' requires ISA extension 'memtag'} } */ +}