From patchwork Tue Jun 11 12:42:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Victor Do Nascimento X-Patchwork-Id: 1946305 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=lxycblfX; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=lxycblfX; 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 4Vz7f02ByNz20Pb for ; Tue, 11 Jun 2024 22:44:08 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 58086385DDE2 for ; Tue, 11 Jun 2024 12:44:06 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on20614.outbound.protection.outlook.com [IPv6:2a01:111:f403:2611::614]) by sourceware.org (Postfix) with ESMTPS id 3533B3857340 for ; Tue, 11 Jun 2024 12:43:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3533B3857340 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 3533B3857340 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2611::614 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1718109814; cv=pass; b=xE9y9ZtPuulilkZLp7Cw8MPaWhFdU1w7wx+k71l+tl5XTHvwh1Xd7JNXmMBCmNyRAe/usR+mVI1VRX5+U2glMcUrB/35wUjQFVAn8wYo8cIfWB4Gp/3h5vElDw41wMWSkw8/NenkO4XXIeX6xyfF8m7Z7VsUE8al5/ZJmIYNo2I= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1718109814; c=relaxed/simple; bh=iuvCtPw2eo8XboSTo96nEEI5WrxvDJ4D/xN8Xey0Fe8=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=j5DL4+8JP4fU0R1BMFsgbd0WoaoPy06TB5SddMNqAnUxlt1yQ27KJVvTjai5gvALIKk5EZEZ+MKT2AuUoSgEhweAbCZ1saPK7Lamci7+IodVNKX8khRfUYDjjDZg6JUTJr7/DLbQtpc5Q+JoNL9r2Amh9dDCxdsghIvFGOA/BE8= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=KEDNO7+lJBhCtZ8SGFdYJgrf2birTGDeAfBRN9Yz1YKCyuCNmAOq0YoYAGdwiAB3pErmPVRjgOpVgskEC9rD7ZCkAyew6w4hnJaps6YNvrZxKbBCCCf2UG8OTa7i+ECyt8Rd/InnzMxPPxVt3BIe8etztKV4iA63QKwBSH3sdmJipFqV+SNTatZqa/1gH4Ep+dLOLs4iP/udUgMf06byJx9eRhIE+4OWwTs8sKYkTsxpQPjQ5DlZB4W12d1hHtcW4hxgmi7zXQEs0QCdVZ7iLHiW3XlHBUr8DIS5JgYgSyQLxHcZaEKD4xlYrkLeRTQMzJO4okjDqLh654YioGxSng== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=u8BCPqzhN3FodL8iLFhYdwsZCp3ud8lJMx1NnxkKTzU=; b=HLHgrYPT77tZMflg5guTRNUFlvVt+de5VxVa1isixeUR6qf7/HyPjaRyPMRLxWwFyEkLXP6DjMEttj+J/qF7ffoJ0EM02bybnkGMaOAAomAwj45KOXnAZJDY/tAhxzdeMst8Pc1UJQdkqTs9opHe3MOfh59yXd00DYCpKwbVDvtUT35mujqmKIu/ZtfNgOnQ3k6dgIRoARLzQgAYiChtGJytkI32+MKP38ve7MjUSVp68c9wFHy+ikbad4SA7S7ONO6ZKS/zVh1qEr2W7pH8Fvazn6+SgD6XLnM4nkSSI9rzPdruRRhuUNITiLVmbA89a5KmvpzqDm7XR5m8J45oMw== 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=u8BCPqzhN3FodL8iLFhYdwsZCp3ud8lJMx1NnxkKTzU=; b=lxycblfXRNzqq7dq3WmZGZ1xaXeRfPGm4xTBlB5Wubpje4rhp+vNdiWev5fCD4NuDe3zshFk9hZcUtoGNPFH1UnK18YV/EugCLZaO2HX9Dsg7acZGkIjuLcr2NRGspJlb4PddaIGvq/x64B5yy1uRbkFZXaidGqCapVrQrK9wv8= Received: from DUZPR01CA0268.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b9::16) by PAWPR08MB9806.eurprd08.prod.outlook.com (2603:10a6:102:2e2::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.36; Tue, 11 Jun 2024 12:43:27 +0000 Received: from DU6PEPF00009526.eurprd02.prod.outlook.com (2603:10a6:10:4b9:cafe::a0) by DUZPR01CA0268.outlook.office365.com (2603:10a6:10:4b9::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7656.25 via Frontend Transport; Tue, 11 Jun 2024 12:43:23 +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 DU6PEPF00009526.mail.protection.outlook.com (10.167.8.7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7677.15 via Frontend Transport; Tue, 11 Jun 2024 12:43:27 +0000 Received: ("Tessian outbound 221fbec6f361:v332"); Tue, 11 Jun 2024 12:43:27 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 3d2f77b33d5c1343 X-CR-MTA-TID: 64aa7808 Received: from c1670552e2e5.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 977552CD-FC9C-4DDE-B06F-E3192E7D7376.1; Tue, 11 Jun 2024 12:43:21 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c1670552e2e5.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 11 Jun 2024 12:43:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Co/5ukyturYJuD0MKZxXBe1iCCeLWV8QQECaNTTtmsBA8tSRJFBKcv2mjlVBOuNYn6cMm5K+eNBtGicRgdl5ilAZnQ9kxwtJXfR5X/kJf3hLQys08gnJPgOzddlZ5j7QLTVS7h7g6B3FzAho4oDg+zwiu9sR2PkMrzqYhHepJe2s0J1b0aTsNo8VY3CCTyTYYVwtUYhkEfDGbWbYEo19VcDOsMN5mNCEw9dhGMNLNXFSSbeZZsUzwGpjRdCyOyWe0swThEcaP/hB/GSGaAVXGLqZdltIrmJm38Zgh0jSPDXSbdPHOfU3ODHrd8ryIeYOvy1gx0cT+Ztc+Ih5PQlVeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=u8BCPqzhN3FodL8iLFhYdwsZCp3ud8lJMx1NnxkKTzU=; b=mEeWjDoMcl027lXlch40rZ4bvVD/6269QG1xDN72nzG6cWp+G0VYhkjkIzerPnpkx8EHpLCuT7jeeQ0Cz38Sphd/UwgrnwsKVe+jJoMUfOtNUZhCZWDnbi2lKjHgWbw0vtNJcDRPXc3GVEwZz/MLmcZUIKTh7fPACTTpZxf0njblEpZIpKwhT7RapKK8SXZgLN+PoH4N9sHfHMjxNyhaG8DrcDukkAg66CnNoHP7QAlxwtXsZJEzIHoJ7Ax9g0BfZ2Oi5h8t1rV/aRUzKA8BvvkJNyvTWzdw3qVLsSqRmp9/DZAmMrDndjBWV9MP8hxOM/JXvKduX7t72Xb+i/umgw== 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=u8BCPqzhN3FodL8iLFhYdwsZCp3ud8lJMx1NnxkKTzU=; b=lxycblfXRNzqq7dq3WmZGZ1xaXeRfPGm4xTBlB5Wubpje4rhp+vNdiWev5fCD4NuDe3zshFk9hZcUtoGNPFH1UnK18YV/EugCLZaO2HX9Dsg7acZGkIjuLcr2NRGspJlb4PddaIGvq/x64B5yy1uRbkFZXaidGqCapVrQrK9wv8= Received: from AS9PR06CA0635.eurprd06.prod.outlook.com (2603:10a6:20b:46f::7) by GVXPR08MB11132.eurprd08.prod.outlook.com (2603:10a6:150:1fd::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.37; Tue, 11 Jun 2024 12:43:11 +0000 Received: from AMS0EPF0000019D.eurprd05.prod.outlook.com (2603:10a6:20b:46f:cafe::d4) by AS9PR06CA0635.outlook.office365.com (2603:10a6:20b:46f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7656.25 via Frontend Transport; Tue, 11 Jun 2024 12:43:11 +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 AMS0EPF0000019D.mail.protection.outlook.com (10.167.16.249) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7677.15 via Frontend Transport; Tue, 11 Jun 2024 12:43:15 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 11 Jun 2024 12:43:11 +0000 Received: from e133397.arm.com (10.57.72.46) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Tue, 11 Jun 2024 12:42:56 +0000 From: Victor Do Nascimento To: CC: , , "Victor Do Nascimento" Subject: [PATCH v2 1/4] Libatomic: AArch64: Convert all lse128 assembly to .insn directives Date: Tue, 11 Jun 2024 13:42:47 +0100 Message-ID: <20240611124250.1390575-2-victor.donascimento@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240611124250.1390575-1-victor.donascimento@arm.com> References: <20240611124250.1390575-1-victor.donascimento@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AMS0EPF0000019D:EE_|GVXPR08MB11132:EE_|DU6PEPF00009526:EE_|PAWPR08MB9806:EE_ X-MS-Office365-Filtering-Correlation-Id: 17c5d546-85d6-41c7-ba73-08dc8a14175f x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230031|376005|1800799015|82310400017|36860700004; X-Microsoft-Antispam-Message-Info-Original: /rpnSF9a1IwiGzEvaVh6e6IzQihfm+JBapWc4LtXoTbOPA4q1MOeYBifNOPj8hjrN5SGMX3xVY26YZXHkq+kSfLdb1L8uoxxgvl4yIbLOH35SI9ej4ysRP0TMZWVFlgGLv2mfrZF3n/kF1+x63m26abcy8Qu16O1Q2/N3CaQharbxh0s/oXn/MtbpNx1WUISU0HMxEOx8JgTDOPn4kk74W0b3JCJ0Sk45A4/2naZPbsBtDbYp9AQ51bbMfqkOU8pC0pxZMpsRBlGq5Tp97hqoXw5nMXeoaTkl/fK+VwZyJzWrAjy1CJAVlBSJE4yqcrQFhplPeA8pUygQ6HbuFdn7SZvaKgT9hSUIWmjcFz9CTWSZsHz4pftApS758lY6qSZu5eXgAzrAvBGw2X6RG4DBs42HNaF7FnDuHSNFVRiHV4NE7dGoCylAUUZNekFA2wTb4td3hasTuE1SAY/a+i8L5S5WTJcKg5qcfaCRqyDLAdNZPQkOak6TVk9FndGiMtp+tC4TPhgS1C6XT1ZlLBgAE6zQT7fGiCnmam68+7ESTw8e80FElKC3YjjUIl/D8vmEUXe6mZv1iUsI0R9GRUDqu6RCtVQy76dddQPhmJDjCP73SQe7R6q8Fco66gZom7+cetBcYg6yafJ9rl+woGbFqqE0ijFmM/Zy8N8VkptB6p82mvpuf/SmvsOcLq3+1eu/x0bQkRb8xVHodkDzWhbdyMqQyepZeWBsFLO/74afeNErWQUEHB22cdDmu57YJbcDSF0JGAFuhoiPJDLx7mLW3/JbltSajdKyyRfFYDqP6TiY3QlblmIClVpP8su8KDuE8iM2LqdHNi/RLE0/aCc3GSSz3q5vr5El4eWTN+NOTGRDO3S5TcQrZzT8eN7HL2lq//iFUoR96W0SZItO5z27N9NQfJloE3sevKZrIquE6PMjhD3V8siwPwVQFwyfDsLEsUo5P+XbgIFOhp8Iims9f2hX+J8zg6dLZmBGLcZu+MeXV0NXQZFyRNHF3Zx9AJZO7lsa3vdGIom0beKyVwPK0mmLLC8MiZcI/ONPk4cSc3w3W2XOxnx6B3spY6i8D5j9+YxvnQ+jrrIjdxvwK7gl3R28t41VwSg3FkA6gqUnf3EBb6fr+fuoI09TFLuxRM0HRd9WzGe2qP6CfcBpy68JE0u/py7xN6fIbOv5sKW9hhH5abtOjIo/mrDJZ530b+BZuhjFzlQSdFP1OpqFlE6M/Ain7eiCcB5UGwzVElSZnOpKExgYvFDMRAiu8I7hT7GlC8ECVTn8MoflTcJ0RLxkE3vaAJDAiO9qCe+YVFoRwY6VK9adbk+58Omek/YAZd+Ck/CUmn64ylR4tI2qGfYarffr364bGnZQuPtPqC9lobJQndIRY1tKfL2JtlknESTjk6btnZV6FDOzQpGq8qdEg== 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:(13230031)(376005)(1800799015)(82310400017)(36860700004); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB11132 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU6PEPF00009526.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 11ef3016-9af6-4b13-7872-08dc8a14101e X-Microsoft-Antispam: BCL:0; ARA:13230031|1800799015|376005|36860700004|82310400017|35042699013; X-Microsoft-Antispam-Message-Info: ifcWyW77HfRlw0AaFhRX95nbzqCg5S7KrZZMVpNBp5FJcpUKcOF2AM6sjEqwhC3GCKwKvZFFbOmJnFpRON1mxMb0qDG0bvuqfY4PDKZzsOBWhvdu9lv1VlKXzeuqW5J+6LhaVbQZLJL/LkMS3zlwqvoR6sCqUNfdTA9OlhaxM807se0ai0wSCKv/CQlnsTRkJDdjXMOVp1prryvc6uEhkRna3EyeD6mdwASlsjS/w1PyNWqYr5tzrOZUTDzXYqclIuplgjDHroIc6RU4GArd9wNVObA35TVFEi2K5nNsbhCJ9VwBqocXBMJ/Rv/5E6/SP1U6Fid9MuoIBrXpfu/J35/O1Kd+n35RjlcZsxqkS7CAPgB9+sj/volXpbFSo1SOXADvhgsPeRrjlYU9VHmDn2UQYBF4F8zJBhLt4zBKZX1Sp2rq6iYSsrZXLtL77LZBSyN6fbVCjpCfyJXcC87i3gI2fam8JnMgAAnaDwdefO5nGjTAUgAWV1kJMxib2e/8QrFcDzruN+9HCnvIQDcABn9pwC3pIAEvytOvVNGuX6WHCmXy5Zz2F7k8jBMmjXuMyE4CWOf52b6+XJ+ER4PKdSg19Lxbgcdu2HJqMyLtcjToGVs6yTLV5ZbgrprpGJC17sG+L0Lzs5UrjIqcvLin58Bj8sQS/gjGmEZtL5UjJWukQl7yJ27DbmyBQdj0MWq84osjyNPj4v+7LjDoGa1F33CsBfxsadY785a8/3DgY98Gxcmk5dbwhNIZG3V41SoJ2wmwuZhJcMHofBoB7JwNzJJwEIKheEUCWsTU0r+pi+tPEjEGU5OFEwnSi3Y0NBX8NJIbWC5/N0nStxwJL/MiT3XP7l8fsm4fvcwZpwAtRiobsqPEQVRZsF0ldVtqWFQg/BMSo1ei05uyllN9a28UbagUGz8JLZ9Gh8ogcxX2C3FSJHsK6aKC9vvViDl1am1DY4OlNUzFkUEA7zjVN0St1PxVC5uQSxL9+0OSDEdHYzPWCj4V7VAyRIG4UqwqIbQQO4SpYkdFRYDySB1V0m0hEjgC2AOGOwGYNtrQx073LlzEtjMasco29cPQYQ/PyVSHkI/6EmC1oSHQji3P6Zlg/ILXZpqDAZWobDTttxw4EnUYaImHeR75rmHf1VoHvFa+USHmzJg3yi40QAhwtow5IhqnQp5fxqztejPDjmcDn4eOBd+k+1dKZDrf/uqllVo5d5RZem6+KY2dvuz2okNuca0VvnXeWqpiN9nNMg4OFAx5PaW1g6/i6M5w2uol42Cmf6RM2CgSfRCr2IWTdHlOFvvoz9fvCIa6crWtpQ2lxDd0IhXYxajH5C1JSdwiNZFwDEOX2S0X3AuCrlGYadVFnDOZBykbrfCn9Hv1IJtF/FkKtd/Gpn+zi6R1vf0A/pUr0LN3kWVUA17qYpHyqU7dFw== 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:(13230031)(1800799015)(376005)(36860700004)(82310400017)(35042699013); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jun 2024 12:43:27.5115 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 17c5d546-85d6-41c7-ba73-08dc8a14175f 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: DU6PEPF00009526.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9806 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 Given the lack of support for the LSE128 instructions in all but the the most up-to-date version of Binutils (2.42), having the build-time test for assembler support for these instructions often leads to the building of Libatomic without support for LSE128-dependent atomic function implementations. This ultimately leads to different people having different versions of Libatomic on their machines, depending on which assembler was available at compilation time. Furthermore, the conditional inclusion of these atomic function implementations predicated on assembler support leads to a series of `#if HAVE_FEAT_LSE128' guards scattered throughout the codebase and the need for a series of aliases when the feature flag evaluates to false. The preprocessor macro guards, together with the conditional aliasing leads to code that is cumbersome to understand and maintain. Both of the issues highlighted above will only get worse with the coming support for LRCPC3 atomics which under the current scheme will also require build-time checks. Consequently, a better option for both consistency across builds and code cleanness is to make recourse to the `.inst' directive. By replacing all novel assembly instructions for their hexadecimal representation within `.inst's, we ensure that the Libatomic code is both considerably cleaner and all machines build the same binary, irrespective of binutils version available at compile time. This patch therefore removes all configure checks for LSE128-support in the assembler and all the guards and aliases that were associated with `HAVE_FEAT_LSE128' libatomic/ChangeLog: * acinclude.m4 (LIBAT_TEST_FEAT_AARCH64_LSE128): Delete. * auto-config.h.in (HAVE_FEAT_LSE128): Likewise * config/linux/aarch64/atomic_16.S: Replace all LSE128 instructions with equivalent `.inst' directives. (HAVE_FEAT_LSE128): Remove all references. * configure: Regenerate. * configure.ac: Remove call to LIBAT_TEST_FEAT_AARCH64_LSE128. --- libatomic/acinclude.m4 | 18 ----- libatomic/auto-config.h.in | 3 - libatomic/config/linux/aarch64/atomic_16.S | 76 +++++++++------------- libatomic/configure | 43 ------------ libatomic/configure.ac | 3 - 5 files changed, 32 insertions(+), 111 deletions(-) diff --git a/libatomic/acinclude.m4 b/libatomic/acinclude.m4 index 6d2e0b1c355..f35ab5b60a5 100644 --- a/libatomic/acinclude.m4 +++ b/libatomic/acinclude.m4 @@ -83,24 +83,6 @@ AC_DEFUN([LIBAT_TEST_ATOMIC_BUILTIN],[ ]) ]) -dnl -dnl Test if the host assembler supports armv9.4-a LSE128 isns. -dnl -AC_DEFUN([LIBAT_TEST_FEAT_AARCH64_LSE128],[ - AC_CACHE_CHECK([for armv9.4-a LSE128 insn support], - [libat_cv_have_feat_lse128],[ - AC_LANG_CONFTEST([AC_LANG_PROGRAM([],[asm(".arch armv9-a+lse128")])]) - if AC_TRY_EVAL(ac_compile); then - eval libat_cv_have_feat_lse128=yes - else - eval libat_cv_have_feat_lse128=no - fi - rm -f conftest* - ]) - LIBAT_DEFINE_YESNO([HAVE_FEAT_LSE128], [$libat_cv_have_feat_lse128], - [Have LSE128 support for 16 byte integers.]) -]) - dnl dnl Test if we have __atomic_load and __atomic_store for mode $1, size $2 dnl diff --git a/libatomic/auto-config.h.in b/libatomic/auto-config.h.in index 7c78933b07d..ab3424a759e 100644 --- a/libatomic/auto-config.h.in +++ b/libatomic/auto-config.h.in @@ -105,9 +105,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Have LSE128 support for 16 byte integers. */ -#undef HAVE_FEAT_LSE128 - /* Define to 1 if you have the header file. */ #undef HAVE_FENV_H diff --git a/libatomic/config/linux/aarch64/atomic_16.S b/libatomic/config/linux/aarch64/atomic_16.S index b63e97ac5a2..d6e71ba6e16 100644 --- a/libatomic/config/linux/aarch64/atomic_16.S +++ b/libatomic/config/linux/aarch64/atomic_16.S @@ -40,18 +40,9 @@ #include "auto-config.h" -#if !HAVE_IFUNC -# undef HAVE_FEAT_LSE128 -# define HAVE_FEAT_LSE128 0 -#endif - #define HAVE_FEAT_LSE2 HAVE_IFUNC -#if HAVE_FEAT_LSE128 - .arch armv9-a+lse128 -#else .arch armv8-a+lse -#endif #define LSE128(NAME) libat_##NAME##_i1 #define LSE2(NAME) libat_##NAME##_i2 @@ -226,7 +217,6 @@ ENTRY (exchange_16) END (exchange_16) -#if HAVE_FEAT_LSE128 ENTRY_FEAT (exchange_16, LSE128) mov tmp0, x0 mov res0, in0 @@ -234,21 +224,23 @@ ENTRY_FEAT (exchange_16, LSE128) cbnz w4, 1f /* RELAXED. */ - swpp res0, res1, [tmp0] + /* swpp res0, res1, [tmp0] */ + .inst 0x192180c0 ret 1: cmp w4, ACQUIRE b.hi 2f /* ACQUIRE/CONSUME. */ - swppa res0, res1, [tmp0] + /* swppa res0, res1, [tmp0] */ + .inst 0x19a180c0 ret /* RELEASE/ACQ_REL/SEQ_CST. */ -2: swppal res0, res1, [tmp0] +2: /* swppal res0, res1, [tmp0] */ + .inst 0x19e180c0 ret END_FEAT (exchange_16, LSE128) -#endif ENTRY (compare_exchange_16) @@ -446,7 +438,6 @@ ENTRY (fetch_or_16) END (fetch_or_16) -#if HAVE_FEAT_LSE128 ENTRY_FEAT (fetch_or_16, LSE128) mov tmp0, x0 mov res0, in0 @@ -454,21 +445,23 @@ ENTRY_FEAT (fetch_or_16, LSE128) cbnz w4, 1f /* RELAXED. */ - ldsetp res0, res1, [tmp0] + /* ldsetp res0, res1, [tmp0] */ + .inst 0x192130c0 ret 1: cmp w4, ACQUIRE b.hi 2f /* ACQUIRE/CONSUME. */ - ldsetpa res0, res1, [tmp0] + /* ldsetpa res0, res1, [tmp0] */ + .inst 0x19a130c0 ret /* RELEASE/ACQ_REL/SEQ_CST. */ -2: ldsetpal res0, res1, [tmp0] +2: /* ldsetpal res0, res1, [tmp0] */ + .inst 0x19e130c0 ret END_FEAT (fetch_or_16, LSE128) -#endif ENTRY (or_fetch_16) @@ -493,14 +486,14 @@ ENTRY (or_fetch_16) END (or_fetch_16) -#if HAVE_FEAT_LSE128 ENTRY_FEAT (or_fetch_16, LSE128) cbnz w4, 1f mov tmp0, in0 mov tmp1, in1 /* RELAXED. */ - ldsetp in0, in1, [x0] + /* ldsetp in0, in1, [x0] */ + .inst 0x19233002 orr res0, in0, tmp0 orr res1, in1, tmp1 ret @@ -509,18 +502,19 @@ ENTRY_FEAT (or_fetch_16, LSE128) b.hi 2f /* ACQUIRE/CONSUME. */ - ldsetpa in0, in1, [x0] + /* ldsetpa in0, in1, [x0] */ + .inst 0x19a33002 orr res0, in0, tmp0 orr res1, in1, tmp1 ret /* RELEASE/ACQ_REL/SEQ_CST. */ -2: ldsetpal in0, in1, [x0] +2: /* ldsetpal in0, in1, [x0] */ + .inst 0x19e33002 orr res0, in0, tmp0 orr res1, in1, tmp1 ret END_FEAT (or_fetch_16, LSE128) -#endif ENTRY (fetch_and_16) @@ -545,7 +539,6 @@ ENTRY (fetch_and_16) END (fetch_and_16) -#if HAVE_FEAT_LSE128 ENTRY_FEAT (fetch_and_16, LSE128) mov tmp0, x0 mvn res0, in0 @@ -553,7 +546,8 @@ ENTRY_FEAT (fetch_and_16, LSE128) cbnz w4, 1f /* RELAXED. */ - ldclrp res0, res1, [tmp0] + /* ldclrp res0, res1, [tmp0] */ + .inst 0x192110c0 ret 1: @@ -561,14 +555,15 @@ ENTRY_FEAT (fetch_and_16, LSE128) b.hi 2f /* ACQUIRE/CONSUME. */ - ldclrpa res0, res1, [tmp0] + /* ldclrpa res0, res1, [tmp0] */ + .inst 0x19a110c0 ret /* RELEASE/ACQ_REL/SEQ_CST. */ -2: ldclrpal res0, res1, [tmp0] +2: /* ldclrpal res0, res1, [tmp0] */ + .inst 0x19e110c0 ret END_FEAT (fetch_and_16, LSE128) -#endif ENTRY (and_fetch_16) @@ -593,14 +588,14 @@ ENTRY (and_fetch_16) END (and_fetch_16) -#if HAVE_FEAT_LSE128 ENTRY_FEAT (and_fetch_16, LSE128) mvn tmp0, in0 mvn tmp0, in1 cbnz w4, 1f /* RELAXED. */ - ldclrp tmp0, tmp1, [x0] + /* ldclrp tmp0, tmp1, [x0] */ + .inst 0x19271006 and res0, tmp0, in0 and res1, tmp1, in1 ret @@ -610,18 +605,19 @@ ENTRY_FEAT (and_fetch_16, LSE128) b.hi 2f /* ACQUIRE/CONSUME. */ - ldclrpa tmp0, tmp1, [x0] + /* ldclrpa tmp0, tmp1, [x0] */ + .inst 0x19a71006 and res0, tmp0, in0 and res1, tmp1, in1 ret /* RELEASE/ACQ_REL/SEQ_CST. */ -2: ldclrpal tmp0, tmp1, [x5] +2: /* ldclrpal tmp0, tmp1, [x5] */ + .inst 0x19e710a6 and res0, tmp0, in0 and res1, tmp1, in1 ret END_FEAT (and_fetch_16, LSE128) -#endif ENTRY (fetch_xor_16) @@ -729,16 +725,9 @@ ENTRY (test_and_set_16) END (test_and_set_16) -/* Alias entry points which are the same in LSE2 and LSE128. */ - #if HAVE_IFUNC -# if !HAVE_FEAT_LSE128 -ALIAS (exchange_16, LSE128, LSE2) -ALIAS (fetch_or_16, LSE128, LSE2) -ALIAS (fetch_and_16, LSE128, LSE2) -ALIAS (or_fetch_16, LSE128, LSE2) -ALIAS (and_fetch_16, LSE128, LSE2) -# endif + +/* Alias entry points which are the same in LSE2 and LSE128. */ ALIAS (load_16, LSE128, LSE2) ALIAS (store_16, LSE128, LSE2) ALIAS (compare_exchange_16, LSE128, LSE2) @@ -753,7 +742,6 @@ ALIAS (nand_fetch_16, LSE128, LSE2) ALIAS (test_and_set_16, LSE128, LSE2) /* Alias entry points which are the same in baseline and LSE2. */ - ALIAS (exchange_16, LSE2, CORE) ALIAS (fetch_add_16, LSE2, CORE) ALIAS (add_fetch_16, LSE2, CORE) diff --git a/libatomic/configure b/libatomic/configure index 32cb3ecac26..d579bab96f8 100755 --- a/libatomic/configure +++ b/libatomic/configure @@ -14697,49 +14697,6 @@ _ACEOF -# Check for target-specific assembly-level support for atomic operations. - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for armv9.4-a LSE128 insn support" >&5 -$as_echo_n "checking for armv9.4-a LSE128 insn support... " >&6; } -if ${libat_cv_have_feat_lse128+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -asm(".arch armv9-a+lse128") - ; - return 0; -} -_ACEOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - eval libat_cv_have_feat_lse128=yes - else - eval libat_cv_have_feat_lse128=no - fi - rm -f conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libat_cv_have_feat_lse128" >&5 -$as_echo "$libat_cv_have_feat_lse128" >&6; } - - yesno=`echo $libat_cv_have_feat_lse128 | tr 'yesno' '1 0 '` - -cat >>confdefs.h <<_ACEOF -#define HAVE_FEAT_LSE128 $yesno -_ACEOF - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : diff --git a/libatomic/configure.ac b/libatomic/configure.ac index 85824fa7614..32a2cdb13ae 100644 --- a/libatomic/configure.ac +++ b/libatomic/configure.ac @@ -206,9 +206,6 @@ LIBAT_FORALL_MODES([LIBAT_HAVE_ATOMIC_CAS]) LIBAT_FORALL_MODES([LIBAT_HAVE_ATOMIC_FETCH_ADD]) LIBAT_FORALL_MODES([LIBAT_HAVE_ATOMIC_FETCH_OP]) -# Check for target-specific assembly-level support for atomic operations. -LIBAT_TEST_FEAT_AARCH64_LSE128() - AC_C_BIGENDIAN # I don't like the default behaviour of WORDS_BIGENDIAN undefined for LE. AH_BOTTOM(