From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on20600.outbound.protection.outlook.com [IPv6:2a01:111:f403:2600::600]) by sourceware.org (Postfix) with ESMTPS id 74916385DDEB for ; Tue, 11 Jun 2024 12:43:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 74916385DDEB 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 74916385DDEB Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2600::600 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1718109820; cv=pass; b=X5IRpeFfDFe2KuMQepHzewdyCWEjoWNffSOUVlYyS9CROVzQBNT+tNPDYwT0yTQR4Stwb/htddvYKICloQMtgaCip3X9qHVbZazRUs/iTsMB0PW2hTss7qv5jA/puXkB68QmjDCeJcVWxMcnc42VN1iaABtYTDppBGL5hfvDIeQ= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1718109820; c=relaxed/simple; bh=VIxSf8YDHq6BH2KrDmYeXjlYRVifsoVgUTFvyKJdFAE=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=MTpj+7GA4LDCBJbdLngC+ASJoPna6m/2+QQeWjysgvqxXMWW8lL//ZBZfk/6Uvmv60+Y55EzKWI80VbcVocBYP3mqe7FMyHVJXf8+ZzgAz8ayr/l4rwGAFDRz9Ib9wbVMDhAUgnJ2MqDWHyQfBwZ3XJG2oZ0pNSWpXs2gwYPhSM= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=NevHIDZalGqdTGh0MytmIoVnv2mojA4o1cX5Mdbkr4kMz10ILBb+xx35OVDSShjvsbNCUKGvuAGCpCq10FPfrdXEA9OCq+ARFKpay/d0TDwEbIm2LF4cMyi7jLYS/EwI3tw1Bt4KgsYq3138ETwW4dd4eqTqmB7C8Xtaq3BrHw9AUXqagcn1jnfl+eXUg2RHrxnpD6MLQozFDInqarIaZ21mdUS7jX3oTzr9aiZmpIEg7rVcTsDtGWeE/+Zsc2cxaEhl5gyrBpHZzn9wFBNPEyRFohm/iGEzfD2+4jpbRhhH0h4NWDAlNbMj+V1FNbqbXbIltBuiKxBhVffKBUTAkQ== 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=wRqJjcTsGLAhA7OAKraX8uHSXe6PPbWEBs/q2K/0Tn4=; b=JSkkyR0F7a6Spa6zPx8/t+L+tA1g69mHaIBX1VsBaqeScIvo+NM64hlFMv98LofDn8hrQaUQLwq4PFOt26lQ+vmsTtqNabQ6tSDg90CDbrUu95SOEg7b3jNSycyE0ifkDw82GCRVg/h5fgWdPlQSMY2x9smcyuMmOuOs13TlTkzLx4X1mWVNovfFqCFnXnimO9Wvlwm6WgbhLcLnby4tFGXuJBn84KNcOWYWxHKz0HA2vyX1KoSmaUWmK7UCFcXrLMxTW+itZpabg7uG0ary7K162H81s/aC9ufwzjastV/fQs6g6aNK6UjtEnArpaS9ps2bSFLhi7mf186fzIOU5Q== 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=wRqJjcTsGLAhA7OAKraX8uHSXe6PPbWEBs/q2K/0Tn4=; b=rH+qgkU2rNGTfDS80dp6OzL+QKlhmioKpT1kyygrmr5rmpGUOOYyLXDwrdKE3LbgEoovLaEWQLrq5rTBnRlPXTUAnewtFVxwBSkIxKUpibb8H+VOOQlZDfTc0MBuTzzyD+r5jCMieiTS/sN/WR7radcHs7d4Y3iXiSkz/s/7594= Received: from DU2PR04CA0279.eurprd04.prod.outlook.com (2603:10a6:10:28c::14) by AS8PR08MB9119.eurprd08.prod.outlook.com (2603:10a6:20b:5b0::16) 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 DB5PEPF00014B9F.eurprd02.prod.outlook.com (2603:10a6:10:28c:cafe::8) by DU2PR04CA0279.outlook.office365.com (2603:10a6:10:28c::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7656.24 via Frontend Transport; Tue, 11 Jun 2024 12:43:27 +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 DB5PEPF00014B9F.mail.protection.outlook.com (10.167.8.169) 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:30 +0000 Received: ("Tessian outbound 221fbec6f361:v332"); Tue, 11 Jun 2024 12:43:30 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 2aa3627fb210ac33 X-CR-MTA-TID: 64aa7808 Received: from 04b431d52814.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B0F2BF16-675B-48B3-8942-8CD1BB2E233B.1; Tue, 11 Jun 2024 12:43:24 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 04b431d52814.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 11 Jun 2024 12:43:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=csrRBtUCdK8JtFwkeILiuJdTx5h2tE0aMsIf8LsGAc2cOsOTwk1jsOFZQM7C56TUPaq4rSxvGZtiUOx0MIRhcj6ZfBMjgAh9e+x7qlvDzUJmbdmmLvIMGbsRIUMiPBxVT5ity35sC0WP1cfkOb6CQlTTkM41+aXZCaFukgC7Mcv2EJoh9y8K4OnuBMPhco4t5UFWbk3wIj54lrUPRQOx5DAaDT9t1cIcj8SnbU3plbJUJhXqvEEYex1883FXKC+mGfsLBEC/A8Qp40Z5u4XFbMEKgsXYAQRMjUF1zw19mXhMecKlaL25mjitDrl3Ip7D2nh/I5GekoZ5BK854q1PmQ== 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=wRqJjcTsGLAhA7OAKraX8uHSXe6PPbWEBs/q2K/0Tn4=; b=Mnr4h4FqjuDS6JdjastOIKOmJfKj1XGm6uzsQCCXR1EVsAvYjy2EMGweCQIxtnktDEeJ3BtYfxIkeuIjEUx5uemE0XCYgZpd1GHeicRPQ6fJdtRmCr1hGi6Cw6g9k6p8vYg3PJnkeahN2J26lsay7KChP+bWRLOGTdcsXsGs5WfwuQ0feOGn4kS+67yRrPsPdc2FBMbVLALQQBVIhMZm0DubfsX+MleKqDEnqQ/oUbUMRDpOT4ODGtmqWBBBpHEPackM/h9FuaU30GrKVgqUjd775u950gv6ofpxJJna8N1GrTgpkmDbDlPjbVG6CMTxplXQuRm99AAfJ/sLmxKNjA== 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=wRqJjcTsGLAhA7OAKraX8uHSXe6PPbWEBs/q2K/0Tn4=; b=rH+qgkU2rNGTfDS80dp6OzL+QKlhmioKpT1kyygrmr5rmpGUOOYyLXDwrdKE3LbgEoovLaEWQLrq5rTBnRlPXTUAnewtFVxwBSkIxKUpibb8H+VOOQlZDfTc0MBuTzzyD+r5jCMieiTS/sN/WR7radcHs7d4Y3iXiSkz/s/7594= Received: from AS9PR06CA0660.eurprd06.prod.outlook.com (2603:10a6:20b:46f::28) by GV1PR08MB11180.eurprd08.prod.outlook.com (2603:10a6:150:1f4::12) 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:19 +0000 Received: from AMS0EPF0000019D.eurprd05.prod.outlook.com (2603:10a6:20b:46f:cafe::ba) by AS9PR06CA0660.outlook.office365.com (2603:10a6:20b:46f::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.17 via Frontend Transport; Tue, 11 Jun 2024 12:43:14 +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:18 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) 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:12 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) 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:12 +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:43:12 +0000 From: Victor Do Nascimento To: CC: , , "Victor Do Nascimento" Subject: [PATCH v2 4/4] Libatomic: Clean up AArch64 `atomic_16.S' implementation file Date: Tue, 11 Jun 2024 13:42:50 +0100 Message-ID: <20240611124250.1390575-5-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 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AMS0EPF0000019D:EE_|GV1PR08MB11180:EE_|DB5PEPF00014B9F:EE_|AS8PR08MB9119:EE_ X-MS-Office365-Filtering-Correlation-Id: dc2ac28e-6270-4036-dadc-08dc8a141930 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230031|82310400017|1800799015|376005|36860700004; X-Microsoft-Antispam-Message-Info-Original: =?us-ascii?Q?nZ23seqWrzgUeoiusE80CI65M41vVgIVsSmoSfHxBal6TslkiolMOtYqdgqK?= =?us-ascii?Q?AwM0pcI4DcJPxOHKYpxohMqBEKWuH9+EXDp1sryZCAoiauuEWvpOV+9JyF0V?= =?us-ascii?Q?grU7gYeDm/7Mzi6Wc6xSxisnd+AZpVd3kxshZBHRXxoUm7bSqnB8WXJPKRlH?= =?us-ascii?Q?AjVZnXZ46BdF9iLrphJ7JBgfBS7BsdywwwULfFr+Y9X9DITIcxK0xBnfpFDC?= =?us-ascii?Q?NG45k4oSUYPJnMJj7LpicU8W7ChtGJjAX67Zvcv5s2ogCLUtnSBLPEDSMMIo?= =?us-ascii?Q?+v2yOsipQ/I/VISS7CFVkq7NgwwOHJO0Gx0YTTkzGr3QIDTDPYGW8T9myrlE?= =?us-ascii?Q?hSc4S/ZuPDa4NVFYNw+FmIeP+Tu3uYC2Qq/rKT2Ebfu1Et4aU+hexhB3DWvi?= =?us-ascii?Q?Oiyt/7e7eirLognuNj12Kt6Uq3hGoDpYOZPO2pOgcbREaZeyN6b8pj0ZYP8s?= =?us-ascii?Q?Xp1xgsxysiyr9/tW2BEc5o/pBZ9KkEWXCI4UeSgYeoUNwwwBEfoE2OXbu7P2?= =?us-ascii?Q?4xy0de8klgcRDKA2crFJUiO8Yi+RGm29qW9TIcuDWU0ypDR5sGw0hwAL+hUS?= =?us-ascii?Q?j5Bx+zdfc+m6cWMaHa6lqDs7O5twSMVmpNjYX9fSG+FXdQrTBNM4x7OdVsM9?= =?us-ascii?Q?e7Jec1nMQ7cWcZg0Xfio50pY282pVGfY+XQj8ow93eKjjL9gLr/A6+dG2703?= =?us-ascii?Q?C2x+NQplTW5Ya/KzXXAwPdAyFyJCgYR4W37ykWaRwq4X1P9hCxW7BxQ7QRqO?= =?us-ascii?Q?SddOuIelmz5KuOvN1Xc9MK4uK2S3h9WMDc+EH0YbvWFXbW3hKq7ywAvLBI0o?= =?us-ascii?Q?out03PSlJomloEQNVorhJp/JX7+SgcYGpi6Xa5ay895H4rWSq8/uqMTtMyPD?= =?us-ascii?Q?qk4xdEPpj06hgjdFVjqW7a0b9Wx8KTg+8xSeOEnWcsr2VDrvoPSLpbAcgk83?= =?us-ascii?Q?V/XukMxAOP/uLCQJ63Ek388lrxVQLGzhce3Vl1BY22OA6r5Xep8ptjo60p48?= =?us-ascii?Q?ZTMO1V5OAu7SEsIXaqt1AOU9mxBZoOgzHoECzWvS/zS/sNF6KxLSz2qvbOj3?= =?us-ascii?Q?oI9Q3bzRTBFMSe49vCLrcIDFwwomN24DQHzCzDvuM/OC5cHcvK29Q6XJirTS?= =?us-ascii?Q?cQB6la3kxi22N6Ge1yt5wXKQuHNwu2h0RlOKjlJnhFsoma0GYK2/7spCBJjx?= =?us-ascii?Q?HxzO/gFQn7aqhdV0bEG2BqGD/R5S8HIAjGylITPHy8FOdOEb5y96RULPTlOZ?= =?us-ascii?Q?dw4dv6GIoOeKahqvNzCYynWqiDB0CepRcLIEfCrFWt9GCsr7GEAWh/TDCuK6?= =?us-ascii?Q?N7CrIIvACc2GrEBLLWNKwpbbX5uioYjOAhJeEYBjr1gFrxw+9Ja/RfQgVek3?= =?us-ascii?Q?FMWz4aOOqqBXFbfe+PlbwYA9tWdvIDJxL+RISFVBcTXK1MsuIA=3D=3D?= 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)(82310400017)(1800799015)(376005)(36860700004);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB11180 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5PEPF00014B9F.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: bc7b8826-936d-4581-ae41-08dc8a14123b X-Microsoft-Antispam: BCL:0;ARA:13230031|1800799015|35042699013|82310400017|36860700004|376005; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?TIRKWkFOxQQl5jbxJ7IMRCQKpytHqUrnaoVBLsWjYlrMXNz2OJReErfn7YkM?= =?us-ascii?Q?Lhqe5METoAkyp87rFUDhC6JTnJ3xsJILqu9gHURY6zeR+8nHJfCGN1J8w30n?= =?us-ascii?Q?VynWjFJvtkDEl9Z5Whx4Jw/JqrMhYzg6uJmnuwfW3VpnVWI8mVLYX8ZY43hM?= =?us-ascii?Q?HVC/sul1x1T3b2vI3hLsPQrebyqIXSVIUo2IvVxUzflUW5ADwcRyNejVGKDR?= =?us-ascii?Q?auduZVIx0MNY4jsZpGYDyZ9EIs3Dd6zqCSObbKPY7y8H459BkF3M3uIvFkag?= =?us-ascii?Q?j729YPOx3ZHZeof9xfkVJMfgo1Zu69VmTGzGO0n6aFZRWSuQvWi/QUc4s2L8?= =?us-ascii?Q?KPlvLKyNZF2HBAkWq/gemiYcWOLfqhyYcxUycjrzOAW+dkIbxlP9NaI5tFAh?= =?us-ascii?Q?Tat2uaiV52s/ynpBWmCmNX5W9X0TOv4nKdX7zWoYHCQ5sVjQ/pIoe6el0avC?= =?us-ascii?Q?CuDBU1cRouCL/m7TOzM1+sWbynpq/ZYMX93DzWkdlk45/UfWDkzIoT2dpTsf?= =?us-ascii?Q?hxipf21LewPHcS6xuXdCgYyZZ3vzrDaMFf2Y9/ptpQ/plvaoNC1D22cFkr21?= =?us-ascii?Q?Usw4sGxvw9OfeDOuw0slA88qOBkkS2ib6Pzb8dcb9SnQAjOT/+TczNF/DClp?= =?us-ascii?Q?gKd/5Ap7ej1tmVzsqtNrF84IhOuDXvfOKi1S6+MtYMdv6e5Yf/Rf5l921EZr?= =?us-ascii?Q?r9Ua0EjLN1sM4TFVlnghNGWkCiZAVfU7/GJMz/gH9ZqZzSxnbJEgMI+EMYmQ?= =?us-ascii?Q?HgkUydAOgDsX2VR+LHhZPxRRoc84p6DjCjcJj8lvNo7ZJ9qkUsnDBpUqv+4+?= =?us-ascii?Q?uXMKi/17vYsrxy+LNNAd31GmikVgyPz6r50TvA3x0c93WmHb86uurcquwa7D?= =?us-ascii?Q?G+7qB7lSn0cNtPk4Mg33+6SfrDYkLPfg45vVhWPeTTXZ5v47SxStZPYH2g9v?= =?us-ascii?Q?p/BkNdCpxVp5qXKJNRqqgjP1ar9q1rLM1IVgYVaml0EDrHJ2pyN7qxic0Edt?= =?us-ascii?Q?t61DJYBJ58JwKmh9iLpYTtbvWKcadTirzTJv2QUBiCKucQzKQpiHOgQ/0eC+?= =?us-ascii?Q?nFRsFc10STRe1N8ld6mzkgl4xam7oMvslGC1DCgBex36JxKRzFNc2d3QMXyR?= =?us-ascii?Q?5zvET1UNVcwbb6vGpcGWoqPe5L1SVNXeiW0QaMmyKcCOvOxh9/uOj8wu8hFu?= =?us-ascii?Q?AwYnkcTLy0JdmrCsnDGjcjU/Qn61VbNg4G935+6iTzHjJZ29Mm0H0qBKnE7A?= =?us-ascii?Q?XMV6KdTdQuxsbysO+dajdjbUxwJtchSe76wL+z3WaDunJR5wTXk54SkNtWK+?= =?us-ascii?Q?fQSfbHwC6y2FqppZ/8r8ARzKHm7kIYBoqZg8yxgHg4SXlnCNC/FGPRnmCGRu?= =?us-ascii?Q?dXrPv7poF+BdRC4TPjBZHoRCN6WgNHnbJyNVtV5uouWEHqinkQ=3D=3D?= 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)(35042699013)(82310400017)(36860700004)(376005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jun 2024 12:43:30.6066 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dc2ac28e-6270-4036-dadc-08dc8a141930 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: DB5PEPF00014B9F.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9119 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,GIT_PATCH_0,SCC_10_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,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 List-Id: At present, `atomic_16.S' groups different implementations of the same functions together in the file. Therefore, as an example, the LSE2 implementation of `load_16' follows on immediately from its core implementation, as does the `store_16' LSE2 implementation. Such architectural extension-dependent implementations are dependent on ifunc support, such that they are guarded by the relevant preprocessor macro, i.e. `#if HAVE_IFUNC'. Having to apply these guards on a per-function basis adds unnecessary clutter to the file and makes its maintenance more error-prone. We therefore reorganize the layout of the file in such a way that all core implementations needing no `#ifdef's are placed first, followed by all ifunc-dependent implementations, which can all be guarded by a single `#if HAVE_IFUNC', greatly reducing the overall number of required `#ifdef' macros. libatomic/ChangeLog: * config/linux/aarch64/atomic_16.S: Reorganize functions in file. (HAVE_FEAT_LSE2): Delete. --- libatomic/config/linux/aarch64/atomic_16.S | 445 +++++++++++---------- 1 file changed, 223 insertions(+), 222 deletions(-) diff --git a/libatomic/config/linux/aarch64/atomic_16.S b/libatomic/config/linux/aarch64/atomic_16.S index 11a296dacc3..c44c31c6418 100644 --- a/libatomic/config/linux/aarch64/atomic_16.S +++ b/libatomic/config/linux/aarch64/atomic_16.S @@ -40,8 +40,6 @@ #include "auto-config.h" -#define HAVE_FEAT_LSE2 HAVE_IFUNC - .arch armv8-a+lse #define LSE128(NAME) libat_##NAME##_i1 @@ -116,6 +114,9 @@ NAME: \ #define SEQ_CST 5 +/* Core implementations: Not dependent on the presence of further architectural + extensions. */ + ENTRY (load_16) mov x5, x0 cbnz w1, 2f @@ -134,31 +135,6 @@ ENTRY (load_16) END (load_16) -#if HAVE_FEAT_LSE2 -ENTRY_FEAT (load_16, LSE2) - cbnz w1, 1f - - /* RELAXED. */ - ldp res0, res1, [x0] - ret -1: - cmp w1, SEQ_CST - b.eq 2f - - /* ACQUIRE/CONSUME (Load-AcquirePC semantics). */ - ldp res0, res1, [x0] - dmb ishld - ret - - /* SEQ_CST. */ -2: ldar tmp0, [x0] /* Block reordering with Store-Release instr. */ - ldp res0, res1, [x0] - dmb ishld - ret -END_FEAT (load_16, LSE2) -#endif - - ENTRY (store_16) cbnz w4, 2f @@ -176,23 +152,6 @@ ENTRY (store_16) END (store_16) -#if HAVE_FEAT_LSE2 -ENTRY_FEAT (store_16, LSE2) - cbnz w4, 1f - - /* RELAXED. */ - stp in0, in1, [x0] - ret - - /* RELEASE/SEQ_CST. */ -1: ldxp xzr, tmp0, [x0] - stlxp w4, in0, in1, [x0] - cbnz w4, 1b - ret -END_FEAT (store_16, LSE2) -#endif - - ENTRY (exchange_16) mov x5, x0 cbnz w4, 2f @@ -220,32 +179,6 @@ ENTRY (exchange_16) END (exchange_16) -ENTRY_FEAT (exchange_16, LSE128) - mov tmp0, x0 - mov res0, in0 - mov res1, in1 - cbnz w4, 1f - - /* RELAXED. */ - /* swpp res0, res1, [tmp0] */ - .inst 0x192180c0 - ret -1: - cmp w4, ACQUIRE - b.hi 2f - - /* ACQUIRE/CONSUME. */ - /* swppa res0, res1, [tmp0] */ - .inst 0x19a180c0 - ret - - /* RELEASE/ACQ_REL/SEQ_CST. */ -2: /* swppal res0, res1, [tmp0] */ - .inst 0x19e180c0 - ret -END_FEAT (exchange_16, LSE128) - - ENTRY (compare_exchange_16) ldp exp0, exp1, [x1] cbz w4, 3f @@ -293,42 +226,6 @@ ENTRY (compare_exchange_16) END (compare_exchange_16) -#if HAVE_FEAT_LSE2 -ENTRY_FEAT (compare_exchange_16, LSE) - ldp exp0, exp1, [x1] - mov tmp0, exp0 - mov tmp1, exp1 - cbz w4, 2f - cmp w4, RELEASE - b.hs 3f - - /* ACQUIRE/CONSUME. */ - caspa exp0, exp1, in0, in1, [x0] -0: - cmp exp0, tmp0 - ccmp exp1, tmp1, 0, eq - bne 1f - mov x0, 1 - ret -1: - stp exp0, exp1, [x1] - mov x0, 0 - ret - - /* RELAXED. */ -2: casp exp0, exp1, in0, in1, [x0] - b 0b - - /* RELEASE. */ -3: b.hi 4f - caspl exp0, exp1, in0, in1, [x0] - b 0b - - /* ACQ_REL/SEQ_CST. */ -4: caspal exp0, exp1, in0, in1, [x0] - b 0b -END_FEAT (compare_exchange_16, LSE) -#endif ENTRY_ALIASED (fetch_add_16) @@ -441,32 +338,6 @@ ENTRY (fetch_or_16) END (fetch_or_16) -ENTRY_FEAT (fetch_or_16, LSE128) - mov tmp0, x0 - mov res0, in0 - mov res1, in1 - cbnz w4, 1f - - /* RELAXED. */ - /* ldsetp res0, res1, [tmp0] */ - .inst 0x192130c0 - ret -1: - cmp w4, ACQUIRE - b.hi 2f - - /* ACQUIRE/CONSUME. */ - /* ldsetpa res0, res1, [tmp0] */ - .inst 0x19a130c0 - ret - - /* RELEASE/ACQ_REL/SEQ_CST. */ -2: /* ldsetpal res0, res1, [tmp0] */ - .inst 0x19e130c0 - ret -END_FEAT (fetch_or_16, LSE128) - - ENTRY (or_fetch_16) mov x5, x0 cbnz w4, 2f @@ -489,37 +360,6 @@ ENTRY (or_fetch_16) END (or_fetch_16) -ENTRY_FEAT (or_fetch_16, LSE128) - cbnz w4, 1f - mov tmp0, in0 - mov tmp1, in1 - - /* RELAXED. */ - /* ldsetp in0, in1, [x0] */ - .inst 0x19233002 - orr res0, in0, tmp0 - orr res1, in1, tmp1 - ret -1: - cmp w4, ACQUIRE - b.hi 2f - - /* ACQUIRE/CONSUME. */ - /* 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] */ - .inst 0x19e33002 - orr res0, in0, tmp0 - orr res1, in1, tmp1 - ret -END_FEAT (or_fetch_16, LSE128) - - ENTRY (fetch_and_16) mov x5, x0 cbnz w4, 2f @@ -542,33 +382,6 @@ ENTRY (fetch_and_16) END (fetch_and_16) -ENTRY_FEAT (fetch_and_16, LSE128) - mov tmp0, x0 - mvn res0, in0 - mvn res1, in1 - cbnz w4, 1f - - /* RELAXED. */ - /* ldclrp res0, res1, [tmp0] */ - .inst 0x192110c0 - ret - -1: - cmp w4, ACQUIRE - b.hi 2f - - /* ACQUIRE/CONSUME. */ - /* ldclrpa res0, res1, [tmp0] */ - .inst 0x19a110c0 - ret - - /* RELEASE/ACQ_REL/SEQ_CST. */ -2: /* ldclrpal res0, res1, [tmp0] */ - .inst 0x19e110c0 - ret -END_FEAT (fetch_and_16, LSE128) - - ENTRY (and_fetch_16) mov x5, x0 cbnz w4, 2f @@ -591,38 +404,6 @@ ENTRY (and_fetch_16) END (and_fetch_16) -ENTRY_FEAT (and_fetch_16, LSE128) - mvn tmp0, in0 - mvn tmp0, in1 - cbnz w4, 1f - - /* RELAXED. */ - /* ldclrp tmp0, tmp1, [x0] */ - .inst 0x19271006 - and res0, tmp0, in0 - and res1, tmp1, in1 - ret - -1: - cmp w4, ACQUIRE - b.hi 2f - - /* ACQUIRE/CONSUME. */ - /* 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] */ - .inst 0x19e710a6 - and res0, tmp0, in0 - and res1, tmp1, in1 - ret -END_FEAT (and_fetch_16, LSE128) - - ENTRY_ALIASED (fetch_xor_16) mov x5, x0 cbnz w4, 2f @@ -728,6 +509,226 @@ ENTRY_ALIASED (test_and_set_16) END (test_and_set_16) +#if HAVE_IFUNC +/* ifunc implementations: Carries run-time dependence on the presence of further + architectural extensions. */ + +ENTRY_FEAT (exchange_16, LSE128) + mov tmp0, x0 + mov res0, in0 + mov res1, in1 + cbnz w4, 1f + + /* RELAXED. */ + /* swpp res0, res1, [tmp0] */ + .inst 0x192180c0 + ret +1: + cmp w4, ACQUIRE + b.hi 2f + + /* ACQUIRE/CONSUME. */ + /* swppa res0, res1, [tmp0] */ + .inst 0x19a180c0 + ret + + /* RELEASE/ACQ_REL/SEQ_CST. */ +2: /* swppal res0, res1, [tmp0] */ + .inst 0x19e180c0 + ret +END_FEAT (exchange_16, LSE128) + + +ENTRY_FEAT (fetch_or_16, LSE128) + mov tmp0, x0 + mov res0, in0 + mov res1, in1 + cbnz w4, 1f + + /* RELAXED. */ + /* ldsetp res0, res1, [tmp0] */ + .inst 0x192130c0 + ret +1: + cmp w4, ACQUIRE + b.hi 2f + + /* ACQUIRE/CONSUME. */ + /* ldsetpa res0, res1, [tmp0] */ + .inst 0x19a130c0 + ret + + /* RELEASE/ACQ_REL/SEQ_CST. */ +2: /* ldsetpal res0, res1, [tmp0] */ + .inst 0x19e130c0 + ret +END_FEAT (fetch_or_16, LSE128) + + +ENTRY_FEAT (or_fetch_16, LSE128) + cbnz w4, 1f + mov tmp0, in0 + mov tmp1, in1 + + /* RELAXED. */ + /* ldsetp in0, in1, [x0] */ + .inst 0x19233002 + orr res0, in0, tmp0 + orr res1, in1, tmp1 + ret +1: + cmp w4, ACQUIRE + b.hi 2f + + /* ACQUIRE/CONSUME. */ + /* 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] */ + .inst 0x19e33002 + orr res0, in0, tmp0 + orr res1, in1, tmp1 + ret +END_FEAT (or_fetch_16, LSE128) + + +ENTRY_FEAT (fetch_and_16, LSE128) + mov tmp0, x0 + mvn res0, in0 + mvn res1, in1 + cbnz w4, 1f + + /* RELAXED. */ + /* ldclrp res0, res1, [tmp0] */ + .inst 0x192110c0 + ret + +1: + cmp w4, ACQUIRE + b.hi 2f + + /* ACQUIRE/CONSUME. */ + /* ldclrpa res0, res1, [tmp0] */ + .inst 0x19a110c0 + ret + + /* RELEASE/ACQ_REL/SEQ_CST. */ +2: /* ldclrpal res0, res1, [tmp0] */ + .inst 0x19e110c0 + ret +END_FEAT (fetch_and_16, LSE128) + + +ENTRY_FEAT (and_fetch_16, LSE128) + mvn tmp0, in0 + mvn tmp0, in1 + cbnz w4, 1f + + /* RELAXED. */ + /* ldclrp tmp0, tmp1, [x0] */ + .inst 0x19271006 + and res0, tmp0, in0 + and res1, tmp1, in1 + ret + +1: + cmp w4, ACQUIRE + b.hi 2f + + /* ACQUIRE/CONSUME. */ + /* 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] */ + .inst 0x19e710a6 + and res0, tmp0, in0 + and res1, tmp1, in1 + ret +END_FEAT (and_fetch_16, LSE128) + + +ENTRY_FEAT (load_16, LSE2) + cbnz w1, 1f + + /* RELAXED. */ + ldp res0, res1, [x0] + ret +1: + cmp w1, SEQ_CST + b.eq 2f + + /* ACQUIRE/CONSUME (Load-AcquirePC semantics). */ + ldp res0, res1, [x0] + dmb ishld + ret + + /* SEQ_CST. */ +2: ldar tmp0, [x0] /* Block reordering with Store-Release instr. */ + ldp res0, res1, [x0] + dmb ishld + ret +END_FEAT (load_16, LSE2) + + +ENTRY_FEAT (store_16, LSE2) + cbnz w4, 1f + + /* RELAXED. */ + stp in0, in1, [x0] + ret + + /* RELEASE/SEQ_CST. */ +1: ldxp xzr, tmp0, [x0] + stlxp w4, in0, in1, [x0] + cbnz w4, 1b + ret +END_FEAT (store_16, LSE2) + + +ENTRY_FEAT (compare_exchange_16, LSE) + ldp exp0, exp1, [x1] + mov tmp0, exp0 + mov tmp1, exp1 + cbz w4, 2f + cmp w4, RELEASE + b.hs 3f + + /* ACQUIRE/CONSUME. */ + caspa exp0, exp1, in0, in1, [x0] +0: + cmp exp0, tmp0 + ccmp exp1, tmp1, 0, eq + bne 1f + mov x0, 1 + ret +1: + stp exp0, exp1, [x1] + mov x0, 0 + ret + + /* RELAXED. */ +2: casp exp0, exp1, in0, in1, [x0] + b 0b + + /* RELEASE. */ +3: b.hi 4f + caspl exp0, exp1, in0, in1, [x0] + b 0b + + /* ACQ_REL/SEQ_CST. */ +4: caspal exp0, exp1, in0, in1, [x0] + b 0b +END_FEAT (compare_exchange_16, LSE) +#endif + /* GNU_PROPERTY_AARCH64_* macros from elf.h for use in asm code. */ #define FEATURE_1_AND 0xc0000000 #define FEATURE_1_BTI 1 -- 2.34.1