From patchwork Thu Aug 8 14:30:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Carlotti X-Patchwork-Id: 1970583 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=psdauEvp; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=psdauEvp; 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 4WfqHf4QHlz1ybS for ; Fri, 9 Aug 2024 00:31:58 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 284D5385F01D for ; Thu, 8 Aug 2024 14:31:56 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on20601.outbound.protection.outlook.com [IPv6:2a01:111:f403:260e::601]) by sourceware.org (Postfix) with ESMTPS id D160E385EC57 for ; Thu, 8 Aug 2024 14:30:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D160E385EC57 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 D160E385EC57 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:260e::601 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723127437; cv=pass; b=KqBSVp1y2CA550qiPRtxZvpffIxYUZJJn5PFbGKnIyYvsJuZRHSHUuPXP8geZZMWy8V6Q1NPuelhGm83C0ovjtDPRwaItyLYXzUdFoL+XhngoFcAW34Iau7SfWRhONNycyCk5MeY12iBdBqw1vjL/eKPJCCs0fNMHNXHHwDbi1A= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723127437; c=relaxed/simple; bh=cm1ORpK5aypcGjbj7Yvd0BkwznJ0qme+5CBp9I3M80Q=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=QnY1EL9Wp1frFYU25e7UVum+CcEEOyh/QBqNN2LLyewz0ZBBXtqBt0kOOCMWwFjTuFrklqjR8EVwi+O/sDNjupjksjW+b4z9Ouen1r2O4dzVJlvvCgWKVsHyg1NOyRa145GFb0TiOxNC7Kf9oH+cZCGOrcS2qPmjXCh7rrHWfVY= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=kJrFI1QLNmKGiqmQRVJ7qR6LWTCvY1Qd4UKSVGW4WynLVEbvpCskTwAN5agR5VAcIY0YA40bQvLGNQ8/WxAr6OP2oy2EEXzOh5oowhLAHxLMGIOK9GtbZN59UMIbNsRy6WXrMqvK+pZoDTN//jlV8h0r8D7Q9J+O++nO1ps1ZHtqteEsRVHui0bb0yV3xFafGAwAcdva7PNw/P8iLB9HNPsIzJGrAsiS7tmaCpBodH19+9TAheYFYRGx/xL9iAsaDYvXKw0XurnSVNu7XvLHFLVTMMdm8p9JfjzdbPbrc3HoR+vlbyS4StT5DAetlhbLKwKSZ+FVZUtzOpBHRuaXKw== 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=etK7ryj8bITmf7i2y+9VcNgTQ5ocpYIPIiKMxP3xa+E=; b=sNZAPeFKUmbSgOcDF7gUhpbOnlWa/flWvWEgHD2MXzNE8DavjiXbo9hV2vkwrjPRbEELnegdAFDgiGD0qama3+Wv7W5EkjxQzYcwshuNkTIs3DHWtq/ZP8w3OSaCHYyjC76j31RchAnNxsMJZyqap/BP5hOAe/A72GMVVWkdAipZStacKEdANQzPaUdj9MLoQH+Qie7UDs/GVtXGpotDAjvXcYvuT10AxFWGQEixWCNvW6j3iMob8vHdt1qpYv8dsOjTSrEWxw6tntE+Sj9JAmSVl06GSp0/jbRhVCoDsKh0xzcQqDmHd/wZPTdI4JwY3xrdPrXn7VqEEpiHQmdwcA== 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=etK7ryj8bITmf7i2y+9VcNgTQ5ocpYIPIiKMxP3xa+E=; b=psdauEvpTXL0us7ot4YXsYTefY2sMioj2jXNd9H6st8cipJMuFYBqxhnvWHD68iXP1xMzwn2t6LihIKp7z2eUVU09MJth58UzS/wmSECgnMQlfG1TF6ivpd6QWze24JIFuvYZm5ZV73Y0nNcr+k/LhR9tN/XP31lWKGd0dK49c4= Received: from DB8PR03CA0001.eurprd03.prod.outlook.com (2603:10a6:10:be::14) by PA4PR08MB7388.eurprd08.prod.outlook.com (2603:10a6:102:2a3::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.25; Thu, 8 Aug 2024 14:30:32 +0000 Received: from DB5PEPF00014B89.eurprd02.prod.outlook.com (2603:10a6:10:be:cafe::48) by DB8PR03CA0001.outlook.office365.com (2603:10a6:10:be::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.14 via Frontend Transport; Thu, 8 Aug 2024 14:30:32 +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 DB5PEPF00014B89.mail.protection.outlook.com (10.167.8.197) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7849.8 via Frontend Transport; Thu, 8 Aug 2024 14:30:32 +0000 Received: ("Tessian outbound 47d122d4c34e:v365"); Thu, 08 Aug 2024 14:30:31 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 08224151d05d2923 X-CR-MTA-TID: 64aa7808 Received: from L425b4a89511e.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B4DBCD8D-3172-4E73-A8AF-DE4129410F25.1; Thu, 08 Aug 2024 14:30:21 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L425b4a89511e.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 08 Aug 2024 14:30:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MPrmo1QTMsQfRxiLq5l+DZB96yVZ8y1+vTvaBKT0fy/pEGvU3recZK7py56vPreBTicQ1IIvQjPGpExD45EogTvxm6k8H1/KJBtHVYwCwA0GVO15da4lsnjURX+38G/AxkqEk8aZ5RGmUJ9yCxCqSoRGDSUDyFo5wgeGNTBzWLEZZPKDzlqXCU1o6j5EP1NPyMOx7oASdZYe1qw/DqF0DoXDPlJBo8M7DfeHFLUKabne6UhxW0xFJC4yUA94tgZ4KiK43n20txjnWqOQO3cmhoo1tHzsmF4u796ujmckUBJ3DbLt+r8AEKa/i/wByx4UWnZYb0/GG+QUf+NhC5sR6A== 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=etK7ryj8bITmf7i2y+9VcNgTQ5ocpYIPIiKMxP3xa+E=; b=BgnOZeCoESZsMyprbmeCYIjZCzLlASKQcUapMMbScnkwJFmz1FRyUtRakUU71CfZH7mIPQlX1t4NhHDmV21E6il7jz837fkl2FzsRsw2a3h/0W/9WHb+1nio9vaPsi8U4yUHkW6sczVaDwbooFxEuOd8YPBFp+Y3g9ydpkFFdLEf4Zxfl8ZpF/0qI0OPAAWl7Aeh/9PYwoULXEeXip2XkJb7mtrPhrGHnnTP//hMTqWjWDcEUVE532oMqcRmtkqluajSoJBX3cHR4jIxIT72crecyN+XDU35/CxGT/7xfW2RNz1gai6eIHSRCglc7QeNfn3HiOLUI7oY2UyG+yM3GQ== 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=etK7ryj8bITmf7i2y+9VcNgTQ5ocpYIPIiKMxP3xa+E=; b=psdauEvpTXL0us7ot4YXsYTefY2sMioj2jXNd9H6st8cipJMuFYBqxhnvWHD68iXP1xMzwn2t6LihIKp7z2eUVU09MJth58UzS/wmSECgnMQlfG1TF6ivpd6QWze24JIFuvYZm5ZV73Y0nNcr+k/LhR9tN/XP31lWKGd0dK49c4= 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 DB9PR08MB8697.eurprd08.prod.outlook.com (2603:10a6:10:3d3::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.27; Thu, 8 Aug 2024 14:30:17 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29%3]) with mapi id 15.20.7875.007; Thu, 8 Aug 2024 14:30:17 +0000 Date: Thu, 8 Aug 2024 15:30:16 +0100 From: Andrew Carlotti To: gcc-patches@gcc.gnu.org Cc: Richard Sandiford , Richard Earnshaw Subject: [PATCH v2 2/4] aarch64: Fix tme intrinsic availability Message-ID: References: <62e1b44d-03f8-0139-0dda-b7c09fb36ca8@e124511.cambridge.arm.com> Content-Disposition: inline In-Reply-To: <62e1b44d-03f8-0139-0dda-b7c09fb36ca8@e124511.cambridge.arm.com> X-ClientProxiedBy: LO6P265CA0023.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ff::9) To AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB6678:EE_|DB9PR08MB8697:EE_|DB5PEPF00014B89:EE_|PA4PR08MB7388:EE_ X-MS-Office365-Filtering-Correlation-Id: 852dcb80-955e-4436-e9c1-08dcb7b6a894 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info-Original: vkBe7fYGNhroK1wrdMKu0Rr1hRfhvYFChA3p+b0ULaT8+9x3Dp8yEI3vtCHQP7gFOhiI/dJyWyKy9njAGlBBmsr5d0mJ/R0WEph8eB6RoEgaWORJqjjittJOzl6C9QXiOYWMAR+exU5Q/WcliSbDWlGK7WxfgDXBE7Lr6iRKrZWIBei76DUb7Z2F8H6KxXyCvDgrqd/0Nxf7RY1Iv4C7V1hgRo46EC26VwjbpULA61X53hihdCMVtfUFjdLdDGpPRwkhoIekEGw7ayZWuOachEkHzZp5vJVVS512ZeAOKKKFc6YkifAbruzJsDgfjSk+uVjSII9CDBcm3CPnEOCNsQwkN2O3xDaOw1wQ5HOb3Pf0WYSeGyJcSMFQ1lYRSylG7r/PDHzTvczg22jkTrz9PWCfkdksq/eHyNu493R0kIJQ7R4pLQ3CJ1tB+uQ7lBMMgIbCbEFimwJRYjLGSFN7E2wUF/UYmwVBD86xdJagjFKTm1VcvtIu0O31cDk45WLQHEZtnrD9MYwe/gC1dSvYPVXvo556567x1g7aqkbhei/Pnx853MKgN22VQo+X2TnfuOMR/uR3Lks/XZAnzJMTZMzQisYYSWRYsFyCEnnM/yRyYszrK3x3k8z4MmlHTzouxe0mHqjqJPInKzHmR3hvBVCLl2gs5ri4H4erDk9fOkHzaXhVVMuCmNdHU4poGcxIbYu4LJKWtv6SUiLmJj5hx0m80zgazRMi2EU72ZvbZwCvCjfrohy4zMMXbz/PbL/xKJ7iwCxAgSL5FPbLD1ObjKiFjAhpcBdROA+zpjAM+/XXFnhp8u0T+PBbnkdXTfm8HUpjoR59bUIX2uB+/K9oKDrKamb/t65MZ0iZlIE26thaUB2ZoTvWvRwqsb4h6NyxxEmxSlT5p04jppR47sn65g50VCaXXJ6+cU/TtUVlQYHdx6QImtLegkkkIm9VMefJeQu/50CA5u2pO9ZYatSD2p8IAoQSrL25r0cXKHLFl0DdD7pVePyOzBLMT/UMkXfM8Fo/5GAK7GsGooQ8I6PDERwjzJ0IcPT4gz5LwQ2Q+YkFazwQCSFZONwq1Hw3O/aQNboAkpl1uqfxeZ1BhycR2s+yFfFHleMec3m4TJz4yAbYs+xenejvsSicUqXZbvfJ2wGJ7AP6vUXv6K5xj9Zmm+MSj/FgvSqzMSsjRp1wRCYZ3AAr2Nusoxn+lcjmx9U9WQy/HWs0OYLB2/+yMKOpLVr+bxkdLtKCKjIyo6zrJUrLHjg3Y9tULgR7+fLLpoTbo3sah1cfkPzHlMX9J4Shf2d0ksPYoTym0ssEQ2vYzhvaYggg/qodYYatPzwTs0IK 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)(366016)(376014)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8697 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: DB5PEPF00014B89.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 175004e8-ca8c-495c-933c-08dcb7b69fbb X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|82310400026|36860700013|35042699022|1800799024; X-Microsoft-Antispam-Message-Info: q1S9381kYaYMBXPXL6sd+qyZMKEZDyoyS4cqTAG8Tqo+wDh0KvNX17q2lDNBywS+BG6NEJHKGe/6A88z2ai1jKzErGc6F9SeIZ5+az6OISpT9j0Zjd8CnKUvi3Se/MkU76XBwNPA99saJrxA0pLAzatUMWeEojn1cudJ5onp3UX3c+09ILF8sRQGyzWNKBuDC4LDzxLYjsh2tiapUtb9GorSMjWYBQKnmUDmisQc0QheQprKkZ8cGEtgfOZPLTQ3GoXKrxgeK7o0tp6GRhRiaLii3n/OevmGTqmFafzbgBu9+M0GvBxdwyImNWPhl3b5DRd+si0ysPD3AePipdVo0ZXPS+8bCR2MIZHFj9iANvANzESYe0bc7DscGrUgWQq0R19kigyltqdRxWdw8cLY9BIXOEWg21GXgAZ+xqe0GCbIRqg8KeV27C7DJ00iP+4DMYz/uoXLvd1bcwud6qcGVZkWJyieFVl3qLqzrIjjd6ALYHraeYb66kfyatUmxkGCfd/uPucwNbKyEVGqCacD/lLBvG0eqmzlDEpxB4hT/+SD/LtLxCCMoL2cVIH6v53vdcjo+Lk9HA0vJ7hhftXi2v9dm9LtnuvANfRAEXRMndsRqG/dlMBZjDEXbAY1vZqUbuVfZcepmPx7nOFPvTDif2CGBUyOeSr+21b1jIMCDkIvfpoSw4/YueQOgRWXC2MnBMEyu1Z1pnp70B2CATdZl6Qh5aFVW5zdjTzLNKyYhs4cie0rIUHl9h13SHC1t+Tc2DO9rYW2BwIZictOzaMn1UllXYSsbw1Zlbk0LHT6dfxpt2fRTKJK+UNjZRV5IHAyltHvOKCQ3WjAn+g5kmKwcWrLo20MLmtVJ+Z7nXN/0w1k9UQEFZ2aiB4mv+rnVT+0SY1AgxLlOVo3FCo1lz7dUqV3KHG24A7PtcJpI2XAKQnS1QkHMC0/o09AsxkG/2a5Po3I7+OA4+qL08xZnksrGexO/9iGOzlibACYT2RXvz4faZ6V3+yqXBNMrLltkOwDAhxC0e5sfKikCyuIZtQ//aFoMBCiDvuglo3Wplyhu3YRrDpsctybGixMFxP94pKm9/3leq77vLxskQ6XxU0f5bEgH9VHFQXyaYeKM7mGu1m7Z3Eg1584fat6WcVwjny8qdzUU4Ri38S7dMOAGozXfiXq5IM/m92/+dqfvPsjihDl/cGDbE7evLXvGdT9ksDw5Fl3zVErf+xeoNtOZiKcDydEw73p+KgLKVat/Tqb9tbWqD0SnZ5xOwM+X8mD9MjxRFPeM+1t5d868lJTPABUNF2gYYgDKmiBP0u6BOqP2Aia69oMipUCu2jhjECJDP+OOyTD7Kz67ILRdPK51LEgZyr8yXKuCLmrOAd8OBJ03ypGcZ0Q5uc6ILaXRGMayFv8sbmUjqy13pleM2ArmaG8zg== 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)(376014)(82310400026)(36860700013)(35042699022)(1800799024); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2024 14:30:32.0030 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 852dcb80-955e-4436-e9c1-08dcb7b6a894 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: DB5PEPF00014B89.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB7388 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, 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~incoming=patchwork.ozlabs.org@gcc.gnu.org The availability of tme intrinsics was previously gated at both initialisation time (using global target options) and usage time (accounting for function-specific target options). This patch removes the check at initialisation time, and also moves the intrinsics out of the header file to allow for better error messages (matching the existing error messages for SVE intrinsics). gcc/ChangeLog: PR target/112108 * config/aarch64/aarch64-builtins.cc (aarch64_init_tme_builtins): (aarch64_general_init_builtins): Move tme initialisation... (handle_arm_acle_h): ...to here, and remove feature check. (aarch64_general_check_builtin_call): Check tme intrinsics. (aarch64_expand_builtin_tme): Check feature availability. * config/aarch64/arm_acle.h (__tstart, __tcommit, __tcancel) (__ttest): Remove. (_TMFAILURE_*): Define unconditionally. gcc/testsuite/ChangeLog: PR target/112108 * gcc.target/aarch64/acle/tme_guard-1.c: New test. * gcc.target/aarch64/acle/tme_guard-2.c: New test. * gcc.target/aarch64/acle/tme_guard-3.c: New test. * gcc.target/aarch64/acle/tme_guard-4.c: New test. diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index d0fb8bc1d1fedb382cba1a1f09a9c3ce6757ee22..f7d31d8c4308b4a883f8ce7df5c3ee319abbbb9c 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -1791,19 +1791,19 @@ aarch64_init_tme_builtins (void) = build_function_type_list (void_type_node, uint64_type_node, NULL); aarch64_builtin_decls[AARCH64_TME_BUILTIN_TSTART] - = aarch64_general_add_builtin ("__builtin_aarch64_tstart", + = aarch64_general_simulate_builtin ("__tstart", ftype_uint64_void, AARCH64_TME_BUILTIN_TSTART); aarch64_builtin_decls[AARCH64_TME_BUILTIN_TTEST] - = aarch64_general_add_builtin ("__builtin_aarch64_ttest", + = aarch64_general_simulate_builtin ("__ttest", ftype_uint64_void, AARCH64_TME_BUILTIN_TTEST); aarch64_builtin_decls[AARCH64_TME_BUILTIN_TCOMMIT] - = aarch64_general_add_builtin ("__builtin_aarch64_tcommit", + = aarch64_general_simulate_builtin ("__tcommit", ftype_void_void, AARCH64_TME_BUILTIN_TCOMMIT); aarch64_builtin_decls[AARCH64_TME_BUILTIN_TCANCEL] - = aarch64_general_add_builtin ("__builtin_aarch64_tcancel", + = aarch64_general_simulate_builtin ("__tcancel", ftype_void_uint64, AARCH64_TME_BUILTIN_TCANCEL); } @@ -2068,6 +2068,7 @@ handle_arm_acle_h (void) { if (TARGET_LS64) aarch64_init_ls64_builtins (); + aarch64_init_tme_builtins (); } /* Initialize fpsr fpcr getters and setters. */ @@ -2160,9 +2161,6 @@ aarch64_general_init_builtins (void) if (!TARGET_ILP32) aarch64_init_pauth_hint_builtins (); - if (TARGET_TME) - aarch64_init_tme_builtins (); - if (TARGET_MEMTAG) aarch64_init_memtag_builtins (); @@ -2289,6 +2287,7 @@ aarch64_general_check_builtin_call (location_t location, vec, unsigned int code, tree fndecl, unsigned int nargs ATTRIBUTE_UNUSED, tree *args) { + tree decl = aarch64_builtin_decls[code]; switch (code) { case AARCH64_RSR: @@ -2301,15 +2300,28 @@ aarch64_general_check_builtin_call (location_t location, vec, case AARCH64_WSR64: case AARCH64_WSRF: case AARCH64_WSRF64: - tree addr = STRIP_NOPS (args[0]); - if (TREE_CODE (TREE_TYPE (addr)) != POINTER_TYPE - || TREE_CODE (addr) != ADDR_EXPR - || TREE_CODE (TREE_OPERAND (addr, 0)) != STRING_CST) - { - error_at (location, "first argument to %qD must be a string literal", - fndecl); - return false; - } + { + tree addr = STRIP_NOPS (args[0]); + if (TREE_CODE (TREE_TYPE (addr)) != POINTER_TYPE + || TREE_CODE (addr) != ADDR_EXPR + || TREE_CODE (TREE_OPERAND (addr, 0)) != STRING_CST) + { + error_at (location, "first argument to %qD must be a string literal", + fndecl); + return false; + } + break; + } + + case AARCH64_TME_BUILTIN_TSTART: + case AARCH64_TME_BUILTIN_TCOMMIT: + case AARCH64_TME_BUILTIN_TTEST: + case AARCH64_TME_BUILTIN_TCANCEL: + return aarch64_check_required_extensions (location, decl, + AARCH64_FL_TME, false); + + default: + break; } /* Default behavior. */ return true; @@ -2734,6 +2746,11 @@ aarch64_expand_fcmla_builtin (tree exp, rtx target, int fcode) static rtx aarch64_expand_builtin_tme (int fcode, tree exp, rtx target) { + tree fndecl = aarch64_builtin_decls[fcode]; + if (!aarch64_check_required_extensions (EXPR_LOCATION (exp), fndecl, + AARCH64_FL_TME, false)) + return target; + switch (fcode) { case AARCH64_TME_BUILTIN_TSTART: diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h index 2aa681090fa205449cf1ac63151565f960716189..2d84ab1bd3f3241196727d7a632a155014708081 100644 --- a/gcc/config/aarch64/arm_acle.h +++ b/gcc/config/aarch64/arm_acle.h @@ -252,10 +252,7 @@ __crc32d (uint32_t __a, uint64_t __b) #pragma GCC pop_options -#ifdef __ARM_FEATURE_TME -#pragma GCC push_options -#pragma GCC target ("+nothing+tme") - +/* Constants for TME failure reason. */ #define _TMFAILURE_REASON 0x00007fffu #define _TMFAILURE_RTRY 0x00008000u #define _TMFAILURE_CNCL 0x00010000u @@ -268,37 +265,6 @@ __crc32d (uint32_t __a, uint64_t __b) #define _TMFAILURE_INT 0x00800000u #define _TMFAILURE_TRIVIAL 0x01000000u -__extension__ extern __inline uint64_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__tstart (void) -{ - return __builtin_aarch64_tstart (); -} - -__extension__ extern __inline void -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__tcommit (void) -{ - __builtin_aarch64_tcommit (); -} - -__extension__ extern __inline void -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__tcancel (const uint64_t __reason) -{ - __builtin_aarch64_tcancel (__reason); -} - -__extension__ extern __inline uint64_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__ttest (void) -{ - return __builtin_aarch64_ttest (); -} - -#pragma GCC pop_options -#endif - #ifdef __ARM_FEATURE_LS64 typedef __arm_data512_t data512_t; #endif diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c new file mode 100644 index 0000000000000000000000000000000000000000..9894d3341f6bc352c22ad95d4d1e000207ca8d00 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8-a" } */ + +#include + +void foo (void) +{ + __tcommit (); /* { dg-error {ACLE function '__tcommit' requires ISA extension 'tme'} } */ +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c new file mode 100644 index 0000000000000000000000000000000000000000..4e3d69712b14a8123f45a2ead02b5048883614d9 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8-a" } */ + +#include + +#pragma GCC target("arch=armv8-a+tme") +void foo (void) +{ + __tcommit (); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c new file mode 100644 index 0000000000000000000000000000000000000000..5f480ebb8209fdaeb4baa77dbdf5467d16936644 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8-a+tme -mgeneral-regs-only" } */ + +#include + +void foo (void) +{ + __tcommit (); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c new file mode 100644 index 0000000000000000000000000000000000000000..bf4d368370c614ffe33035d9ec4f86988f3f1c30 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8-a+tme" } */ + +#include + +#pragma GCC target("arch=armv8-a") +void foo (void) +{ + __tcommit (); /* { dg-error {ACLE function '__tcommit' requires ISA extension 'tme'} } */ +}