From patchwork Wed Jan 24 17:17:30 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: 1890345 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=armh.onmicrosoft.com header.i=@armh.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-armh-onmicrosoft-com header.b=aCzYDZZW; dkim=pass (1024-bit key) header.d=armh.onmicrosoft.com header.i=@armh.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-armh-onmicrosoft-com header.b=aCzYDZZW; 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 4TKrMr0wWbz23f0 for ; Thu, 25 Jan 2024 04:21:12 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 19F813857C77 for ; Wed, 24 Jan 2024 17:21:10 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2088.outbound.protection.outlook.com [40.107.249.88]) by sourceware.org (Postfix) with ESMTPS id A78BA3858C5E for ; Wed, 24 Jan 2024 17:19:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A78BA3858C5E 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 A78BA3858C5E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.249.88 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1706116766; cv=pass; b=jenNS5tZ9OmZy0ATclbEJFcR9NZj29Iishge/N753WRxqPnt6XsxmrY4c5nz5W8FxltQ2JmdYrjSSY38pGxryQLVJzJoHsX7bmR7kNZtFwJHOdzI7Y1pTHCVTJ9G7jCGsC36/LmxLogdjxsd+5QYtN8ajIKPTv+4F7aXjWiaUXQ= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1706116766; c=relaxed/simple; bh=930Avguv3nZ+CWAFcZRAtRKAEXkZUDlsrLGyBtQwNkc=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=hMPxJkTcU79kZtbTG/5OyyBw1Bg6BM9E0QA8iCoX7x4M/MozPgmRvWNJjQzo6VmeyLSRZOnXTEMt7gRfh7jkOHQ4yJm5Stntr/qtaH7feM8/nHFWB9HS+j+X0YAsZvrbnLO6dfMCkU+9GSgM3tPkXmYbQe0qjEslBXgJwJgB0WQ= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=CZ4X9q86+qN7WYin90a/iTZQZQJ5aRHd1ZlxO/HpqTOPUmbMAVgXd3yNtRqNO0dMLTIYCB0/Z0BkvTTIgDesNWAgZVD1WOdrCayV64Do9Numsr+doN1I4hiOQn5kliaAHNfTgjLIf0X7GOMw2vfDLkv3dW2tXRuZkTM2e0pvuNZbv/7uPWDM398ZtOi1PzYvko7zOQn0vjMQpqYtJ55I8jPlqbkwuvssSVCYWQ3j4Ckl0m0rxuUUSIRCa0Ex8zXO9BBP1rek3OvPDiCJ4OyTFNn0T7a69XKq4/HMPFVn2uDZ0wmDmX4ws2HRr2hrR/ktKvq0Gkub9OsGAFeb4AMEJQ== 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=RhpnBJuq9yL1oOOkXLLSrmThreccHfGIebvjtCKfqsA=; b=f08HyzHwOEO6T2SNhGqLkLCi5cSTRtuBjxXVtJt20FL+u6hMEY5C5KxbSs1R/1UCCR2VciUhzSfoXu+PaGK8oByVP8MNSjRG4C171iyFiMgowg9l6qpqpvo8OgBxhRIgkz6O0zSOZjTET3cGumMoLNWdbF7nEjujbOYhqwqPnrdWHoDo/9f2ePeTOZ7Ck7jjZDbeh34yF8zKNJX76+GVWkx22ZNPYm+K+bymos5jfRHqTx4w4wH+McLYOS+hekC9djJo4Kpchx7x3w+e2gI/MvGPyblbQgWsVEESgeYRxMlGDtqer2+89m9oqF/ihH66RDnC1ts+nvweOlDn8pwd0g== 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=armh.onmicrosoft.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=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RhpnBJuq9yL1oOOkXLLSrmThreccHfGIebvjtCKfqsA=; b=aCzYDZZWDGx/evjiH89u8niIG2Z5AFKuMjYRTHC0Qn87WG4sxrV7jGhkxc0G65ga0Xlj/cO1oRpUYRVgJqsBYL5ZjsyYBWF5sxG+XlYAx5tlOaXOEAEbmf/cMB24wHWP8vSq+vXEhTuIPuOPtd4PvA9+E35zEP1jSZqy8a8mSLc= Received: from DB8P191CA0026.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::36) by AS8PR08MB9622.eurprd08.prod.outlook.com (2603:10a6:20b:619::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.37; Wed, 24 Jan 2024 17:19:09 +0000 Received: from DB5PEPF00014B96.eurprd02.prod.outlook.com (2603:10a6:10:130:cafe::b8) by DB8P191CA0026.outlook.office365.com (2603:10a6:10:130::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.22 via Frontend Transport; Wed, 24 Jan 2024 17:19:09 +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=armh.onmicrosoft.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 DB5PEPF00014B96.mail.protection.outlook.com (10.167.8.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.16 via Frontend Transport; Wed, 24 Jan 2024 17:19:09 +0000 Received: ("Tessian outbound c4f080b252bb:v228"); Wed, 24 Jan 2024 17:19:09 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 9ce07185e5d9eede X-CR-MTA-TID: 64aa7808 Received: from 64103c9f89e0.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B81EC0BC-FA27-4895-B712-FBF66A04556B.1; Wed, 24 Jan 2024 17:19:02 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 64103c9f89e0.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 24 Jan 2024 17:19:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YgpbSpAL/jMiU5szAe5y92SH5MeLkbmuHnBPcH/NF1ZUyFAFe23Fre/+MC638xmyYjZTssGqcszh08S7NJupom/SUD3TT7YkvI7Xur40OCzCJtRHEAiPWIz1w62/E6NUczzo6F0Zp+KICg93l9nl2E5vNAlpIxqDsasU58KlOuZ9ulpvbAfLIDuR9NUFHBiK/7FGi/eoV6sAJfOQRIpbKN9v7esF5gRl8yOCinbb7xODqkguyPmw5hPxja+EbE0dcEOJk6OWfGuuX7AZAWSvgq+DY+4hdxDvEAikRRI2pFlyTfHWfiGCoZe+LscP/PQnoUrMG3jeDfDZIyT9yjz0Ow== 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=RhpnBJuq9yL1oOOkXLLSrmThreccHfGIebvjtCKfqsA=; b=TPNeUIXk0yx2Q6gg8to32AMcXnALs+BdcFB3En4WSLJtk/4iaOTsyBXI62Cx8256/mx7X2AqoE2M5yai/blO39Qwq4EZ+kaqsN/b4uCJ60VNhxbx8qPD6u28HzXewIPZCYCKUlfn5ik6Cw4zAbNaovyLNP0jzFf+OYheDeem+rqWD8cVWGgjzl48YEUvozhPh5Zza5pZzTVKTV96YYgRfRORNp2dVLZ0LG+NcVxXTxCTUTdBRSKIuFMm+J+wVjkaUM7Y4NhH6yVqtNzJHuE0DXZ//rhONfFYD+dtz/AMdnNoj0qn0m3CI6VibBLb5BPgQU9hpI5wn7DsqInbVXm5zg== 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=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RhpnBJuq9yL1oOOkXLLSrmThreccHfGIebvjtCKfqsA=; b=aCzYDZZWDGx/evjiH89u8niIG2Z5AFKuMjYRTHC0Qn87WG4sxrV7jGhkxc0G65ga0Xlj/cO1oRpUYRVgJqsBYL5ZjsyYBWF5sxG+XlYAx5tlOaXOEAEbmf/cMB24wHWP8vSq+vXEhTuIPuOPtd4PvA9+E35zEP1jSZqy8a8mSLc= Received: from AM0PR04CA0047.eurprd04.prod.outlook.com (2603:10a6:208:1::24) by DBBPR08MB10604.eurprd08.prod.outlook.com (2603:10a6:10:536::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.22; Wed, 24 Jan 2024 17:18:58 +0000 Received: from AM3PEPF00009B9B.eurprd04.prod.outlook.com (2603:10a6:208:1:cafe::9e) by AM0PR04CA0047.outlook.office365.com (2603:10a6:208:1::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.22 via Frontend Transport; Wed, 24 Jan 2024 17:18:58 +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 AM3PEPF00009B9B.mail.protection.outlook.com (10.167.16.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7202.16 via Frontend Transport; Wed, 24 Jan 2024 17:18:58 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Wed, 24 Jan 2024 17:18:57 +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.32; Wed, 24 Jan 2024 17:18:56 +0000 Received: from e125768.cambridge.arm.com (10.2.78.50) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.32 via Frontend Transport; Wed, 24 Jan 2024 17:18:56 +0000 From: Victor Do Nascimento To: CC: , , , Victor Do Nascimento Subject: [PATCH v4 1/4] libatomic: atomic_16.S: Improve ENTRY, END and ALIAS macro interface Date: Wed, 24 Jan 2024 17:17:30 +0000 Message-ID: <20240124171853.3112540-2-victor.donascimento@arm.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240124171853.3112540-1-victor.donascimento@arm.com> References: <20240124171853.3112540-1-victor.donascimento@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM3PEPF00009B9B:EE_|DBBPR08MB10604:EE_|DB5PEPF00014B96:EE_|AS8PR08MB9622:EE_ X-MS-Office365-Filtering-Correlation-Id: ea612646-3554-42c6-69bc-08dc1d0093be x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: DXwYmXYXgtAzruJtH3WFcThphRKwD1UdDKegMLQ18+gzj74R+eYYHy23b+C2xCe6ajn/hsWnCHSs93Ic16RpKC7tfy1XHNrLYxI+Ob4wwsiMzNQ6xYrdWNBng7s2gwnH0mQ/9LKJbDOXtWVIqkA75pBULc31C3lDfy/1nN5TbaI0IgsQ3E9tmzUBt2Gb/rnOSlXl5MDi4YP6pDdfpFv/HjnHa6otZPUAEPcOWoYDujQTCm1CNdgRk123HMoLUhy0MhgMNjyvuyADiuuSqz+8TxmSCgGoyVz9hlA+ZJJtre0R5zufSaWkqyaUymGJjgkpID+r4SurX/f0ufQJjT2RUd1e2X5aMfZi0ngHp7Ap4d4/+u6IAR8CZqidQ5HxQyNBllGm8Qqbvx12ppfGu4QTG28h+6C6DPdNSmutWKHOjlFJMXWhK0BtgDIuLkIhLkooruG9djmGYF17Fw6Xg7nq/gp5PJbodyEsDG7GEVv0vhHceHaVzavGEdJOU1nOBf8v4UrAmASsAfz1TKzNZKlpUVBpGvqpuCfufEeR5r3+prorMFoOFQ6OfOyXhPWIdQOKlbKJBLhbAJxWzehRNz8rTqSXvJW4s7vnU3phuuPOMIMNTVoAocWoMdcYbwDbIYkEpETflG/IhmjjVyH81+t6HoFRdjY1Rc2C7M85zTW4ne2wFQJDiB4hzAn2tv7EKTQWawrrOKjlsUuyJIW4OH6MpyWQeVKltzZEr5luNEN/DouZdVZiDZYiCHRDBekuXz1cmJEg8p7iA0Ek214elBoEAg== 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)(4636009)(346002)(396003)(39860400002)(136003)(376002)(230922051799003)(64100799003)(451199024)(1800799012)(82310400011)(186009)(46966006)(36840700001)(40470700004)(5660300002)(26005)(86362001)(70586007)(70206006)(36860700001)(6916009)(54906003)(316002)(426003)(336012)(8936002)(8676002)(4326008)(1076003)(41300700001)(478600001)(6666004)(81166007)(83380400001)(82740400003)(2906002)(40480700001)(40460700003)(356005)(47076005)(36756003)(7696005)(2616005)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10604 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5PEPF00014B96.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2cdfa557-5a1f-4832-e12b-08dc1d008d30 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fqBKalirxQMMkHp6A381x9HSVxY/ecHeDrL6s/UC756ssXvdiqlG64MOArYL1TXNeZWZx+ESRy2m+2EogfQ4/hC3HWtwfhO5oOYJZO8tiMzucuphFwfPok/ReH+/Yy32LvBNbzrBKDcwKOaltifvip9Khbyzga/yIFmS6Y9XjyA41rlyU3RD20yGD0XqkC84/MzHnFhiV7j2dwt40YsuxOCWh3gJmbkB/376hlGXLTwG53vqqfotN+L3jsqnISHcj4RBmSuy9fNkoFqXmpluc0iKwJXcp9M0DIsRV+cFn/APWHTO5uMDDvGQZ7ciARQOEGRD6DiQjme/qpK+8RAt/2yutmzKjpfqmnxuQtBX0xUkwJX6boj1V+G/9vKXa3GgoDRB+i5TBDaVHhcOAX/xaN5eTWnBlLJd9symyOHf9zXkeMKP2XYwnjRN8ib1Mm9H2gNR4bsxsJMSwPT/rn5MOo9ySi6aLy4SOoPjoBcYvgJjEhqFOvMpP2BOUPU7JW7rmSvQKmIFiiQaj8YqW3me1cgQrnN9ShfSOpAhXkMCISbIj4YqEsjZZnPb8x0n8Az7vdw9ae01g8EuSpfFAtCMfvbMKqE3Vvund0YZMgxZCDDGxybpxHwrBaKXSdxfTxRBdmZAHPhB+wqZne6rlJF73iiZ990Us1/9nzVzgpO3x3Gfg/Mg1Wdm2L4bwCGWKX2IJs2xh28u8hIRlVGXya+K/VWwqCGyU6dBSSPOLTSdiZOm4RXBPIL2SgKTL2tqLKe7 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)(4636009)(346002)(136003)(39860400002)(396003)(376002)(230922051799003)(82310400011)(451199024)(1800799012)(186009)(64100799003)(36840700001)(46966006)(40470700004)(40480700001)(40460700003)(336012)(478600001)(26005)(2616005)(54906003)(426003)(4326008)(5660300002)(316002)(6666004)(7696005)(70206006)(8936002)(70586007)(83380400001)(1076003)(8676002)(6916009)(36860700001)(82740400003)(81166007)(47076005)(36756003)(86362001)(2906002)(41300700001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jan 2024 17:19:09.5546 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ea612646-3554-42c6-69bc-08dc1d0093be 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: DB5PEPF00014B96.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9622 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 introduction of further architectural-feature dependent ifuncs for AArch64 makes hard-coding ifunc `_i' suffixes to functions cumbersome to work with. It is awkward to remember which ifunc maps onto which arch feature and makes the code harder to maintain when new ifuncs are added and their suffixes possibly altered. This patch uses pre-processor `#define' statements to map each suffix to a descriptive feature name macro, for example: #define LSE(NAME) NAME##_i1 Where we wish to generate ifunc names with the pre-processor's token concatenation feature, we add a level of indirection to previous macro calls. If before we would have had`MACRO(_i)', we now have `MACRO_FEAT(name, feature)'. Where we wish to refer to base functionality (i.e., functions where ifunc suffixes are absent), the original `MACRO()' may be used to bypass suffixing. Consequently, for base functionality, where the ifunc suffix is absent, the macro interface remains the same. For example, the entry and endpoints of `libat_store_16' remain defined by: ENTRY (libat_store_16) and END (libat_store_16) For the LSE2 implementation of the same 16-byte atomic store, we now have: ENTRY_FEAT (libat_store_16, LSE2) and END_FEAT (libat_store_16, LSE2) For the aliasing of function names, we define the following new implementation of the ALIAS macro: ALIAS (FN_BASE_NAME, FROM_SUFFIX, TO_SUFFIX) Defining the `CORE(NAME)' macro to be the identity operator, it returns the base function name unaltered and allows us to alias target-specific ifuncs to the corresponding base implementation. For example, we'd alias the LSE2 `libat_exchange_16' to it base implementation with: ALIAS (libat_exchange_16, LSE2, CORE) libatomic/ChangeLog: * config/linux/aarch64/atomic_16.S (CORE): New macro. (LSE2): Likewise. (ENTRY_FEAT): Likewise. (ENTRY_FEAT1): Likewise. (END_FEAT): Likewise. (END_FEAT1): Likewise. (ALIAS): Modify macro to take in `arch' arguments. (ALIAS1): New. --- libatomic/config/linux/aarch64/atomic_16.S | 79 +++++++++++++--------- 1 file changed, 47 insertions(+), 32 deletions(-) diff --git a/libatomic/config/linux/aarch64/atomic_16.S b/libatomic/config/linux/aarch64/atomic_16.S index ad14f8f2e6e..16a42925903 100644 --- a/libatomic/config/linux/aarch64/atomic_16.S +++ b/libatomic/config/linux/aarch64/atomic_16.S @@ -40,22 +40,38 @@ .arch armv8-a+lse -#define ENTRY(name) \ - .global name; \ - .hidden name; \ - .type name,%function; \ +#define LSE2(NAME) NAME##_i1 +#define CORE(NAME) NAME + +#define ENTRY(NAME) ENTRY_FEAT1 (NAME) + +#define ENTRY_FEAT(NAME, FEAT) \ + ENTRY_FEAT1 (FEAT (NAME)) + +#define ENTRY_FEAT1(NAME) \ + .global NAME; \ + .hidden NAME; \ + .type NAME,%function; \ .p2align 4; \ -name: \ - .cfi_startproc; \ +NAME: \ + .cfi_startproc; \ hint 34 // bti c -#define END(name) \ +#define END(NAME) END_FEAT1 (NAME) + +#define END_FEAT(NAME, FEAT) \ + END_FEAT1 (FEAT (NAME)) + +#define END_FEAT1(NAME) \ .cfi_endproc; \ - .size name, .-name; + .size NAME, .-NAME; + +#define ALIAS(NAME, FROM, TO) \ + ALIAS1 (FROM (NAME),TO (NAME)) -#define ALIAS(alias,name) \ - .global alias; \ - .set alias, name; +#define ALIAS1(ALIAS, NAME) \ + .global ALIAS; \ + .set ALIAS, NAME; #define res0 x0 #define res1 x1 @@ -108,7 +124,7 @@ ENTRY (libat_load_16) END (libat_load_16) -ENTRY (libat_load_16_i1) +ENTRY_FEAT (libat_load_16, LSE2) cbnz w1, 1f /* RELAXED. */ @@ -128,7 +144,7 @@ ENTRY (libat_load_16_i1) ldp res0, res1, [x0] dmb ishld ret -END (libat_load_16_i1) +END_FEAT (libat_load_16, LSE2) ENTRY (libat_store_16) @@ -148,7 +164,7 @@ ENTRY (libat_store_16) END (libat_store_16) -ENTRY (libat_store_16_i1) +ENTRY_FEAT (libat_store_16, LSE2) cbnz w4, 1f /* RELAXED. */ @@ -160,7 +176,7 @@ ENTRY (libat_store_16_i1) stlxp w4, in0, in1, [x0] cbnz w4, 1b ret -END (libat_store_16_i1) +END_FEAT (libat_store_16, LSE2) ENTRY (libat_exchange_16) @@ -237,7 +253,7 @@ ENTRY (libat_compare_exchange_16) END (libat_compare_exchange_16) -ENTRY (libat_compare_exchange_16_i1) +ENTRY_FEAT (libat_compare_exchange_16, LSE2) ldp exp0, exp1, [x1] mov tmp0, exp0 mov tmp1, exp1 @@ -270,7 +286,7 @@ ENTRY (libat_compare_exchange_16_i1) /* ACQ_REL/SEQ_CST. */ 4: caspal exp0, exp1, in0, in1, [x0] b 0b -END (libat_compare_exchange_16_i1) +END_FEAT (libat_compare_exchange_16, LSE2) ENTRY (libat_fetch_add_16) @@ -556,21 +572,20 @@ END (libat_test_and_set_16) /* Alias entry points which are the same in baseline and LSE2. */ -ALIAS (libat_exchange_16_i1, libat_exchange_16) -ALIAS (libat_fetch_add_16_i1, libat_fetch_add_16) -ALIAS (libat_add_fetch_16_i1, libat_add_fetch_16) -ALIAS (libat_fetch_sub_16_i1, libat_fetch_sub_16) -ALIAS (libat_sub_fetch_16_i1, libat_sub_fetch_16) -ALIAS (libat_fetch_or_16_i1, libat_fetch_or_16) -ALIAS (libat_or_fetch_16_i1, libat_or_fetch_16) -ALIAS (libat_fetch_and_16_i1, libat_fetch_and_16) -ALIAS (libat_and_fetch_16_i1, libat_and_fetch_16) -ALIAS (libat_fetch_xor_16_i1, libat_fetch_xor_16) -ALIAS (libat_xor_fetch_16_i1, libat_xor_fetch_16) -ALIAS (libat_fetch_nand_16_i1, libat_fetch_nand_16) -ALIAS (libat_nand_fetch_16_i1, libat_nand_fetch_16) -ALIAS (libat_test_and_set_16_i1, libat_test_and_set_16) - +ALIAS (libat_exchange_16, LSE2, CORE) +ALIAS (libat_fetch_add_16, LSE2, CORE) +ALIAS (libat_add_fetch_16, LSE2, CORE) +ALIAS (libat_fetch_sub_16, LSE2, CORE) +ALIAS (libat_sub_fetch_16, LSE2, CORE) +ALIAS (libat_fetch_or_16, LSE2, CORE) +ALIAS (libat_or_fetch_16, LSE2, CORE) +ALIAS (libat_fetch_and_16, LSE2, CORE) +ALIAS (libat_and_fetch_16, LSE2, CORE) +ALIAS (libat_fetch_xor_16, LSE2, CORE) +ALIAS (libat_xor_fetch_16, LSE2, CORE) +ALIAS (libat_fetch_nand_16, LSE2, CORE) +ALIAS (libat_nand_fetch_16, LSE2, CORE) +ALIAS (libat_test_and_set_16, LSE2, CORE) /* GNU_PROPERTY_AARCH64_* macros from elf.h for use in asm code. */ #define FEATURE_1_AND 0xc0000000