From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2052.outbound.protection.outlook.com [40.107.241.52]) by sourceware.org (Postfix) with ESMTPS id 9FA3E3830B4A for ; Tue, 7 Nov 2023 10:24:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9FA3E3830B4A 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 9FA3E3830B4A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.241.52 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1699352697; cv=pass; b=kV2rcOFxwnzA6FrK5kWGIcmYT35+u8e4JJlq727OGNK7rBH/qBbWjV3dDFEYFMORSGfhPS0P9YnUufI2FnjjmNJu0dc2FzmLdOQppJ4fNhdJg+h0tJzmEOLABXaDXNUGYHUBmM8r+o0aMYb1+EwALV1S2nkU9zISJeMEXy0hj7A= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1699352697; c=relaxed/simple; bh=GpjilDxCgdW4soUppaeh9YmSUTP7NQswYC0wAAKnmTM=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=qQ6zOpl0NvhEV/lK/S10tV8njxs3oQQ58HO6Rm8dbit7mx07r13MZm1ldSBWmnyiZSYb4ZvpC6y+qTmhPF+HHFW44GrunsBZDp7Dkl9rhSiabNJeMv0IGEh1bK2/SsoVsDCCOc5BiX+Ny6FbXy4LN4nlqPCUZWk9Ks1koZ6E94g= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=Cem3XoSLa8cRWSWC/H/uLdpOq0ix4m+9daNe8RRtT9UKGAVo2/rQ6haNs2bXB1DrSEVmZAy3eib4Lg2cKsr78bGSjU0HDQE92xycaM16NV/iFmS8ceE3rC9Y6XHCCKiaVQbBHRZv/QVodBHMyD1h1Kx40heMlWveKpK3IlSsqqWYWtchVjmvFcxNjz5G4wjicRKDhHL1WbFjMVn5/CMJxAnr+2UqmYZjq1EoZP+W0OpnEDKcqCBmHypi4LO/F2+Xvv20hPVq45gGcD75CH23e/9fTNvA4RvZO2ZFGheLVs48o2uRuagUUhGf27wwYJYV7FxGpLaa/REd5liQoGZFYQ== 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=cEfQbF+2SL6stcS0DI/vcB9k2eRrYdXz+avPqQazJcw=; b=B4uzeUkTIOu7tv9rbBwhPN6oGDDGGzK7hdoL1Qrw7YbhAH0UZxbeJYR8+wo4/Wjzrh/2/lq7ryd57uBQnyIEqtwXyKG3NgUcrmfI9zn7nVF2dXxlHrGG55idLn38jrgK7Klv53HqmeM1oWmMxyMxu6oBE0wSoZQyvCbIGQq485u6yvfAnH7Ai+1jMsTkz/gqFfflbYc+t4FHz7vSn9/Lo7FDVxHlK5UEGAaNnPv6WJOfdrgcxk5U2DCARK0nlmbpio6ASakP3DA1sC+T2SALtnQ9WgPBkesbcB0rAMowYXnaOcTuYNqHo0i31pZSWGi1KkuZ7WcX4hgp2oFJ+9N3gA== 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=cEfQbF+2SL6stcS0DI/vcB9k2eRrYdXz+avPqQazJcw=; b=Z4Q5/TZeyqRTqakck2pCK0vSfAiy1cdJkFLVK8jmgOlhd4YcbzOAz+0Df/vRBtaxeiLskCZOH35g10RIUl+5RNu/NzvXF2KMEbI2JXnwtB12rhL/GXArV1+E6OeRANnP6KkZXPRqMxPWUy42I/KVRSjXQHWN08pPbhG205BTo2U= Received: from AM6P192CA0056.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:82::33) by DU0PR08MB9680.eurprd08.prod.outlook.com (2603:10a6:10:444::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.28; Tue, 7 Nov 2023 10:24:51 +0000 Received: from AMS0EPF000001AD.eurprd05.prod.outlook.com (2603:10a6:209:82:cafe::b7) by AM6P192CA0056.outlook.office365.com (2603:10a6:209:82::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.29 via Frontend Transport; Tue, 7 Nov 2023 10:24:51 +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 AMS0EPF000001AD.mail.protection.outlook.com (10.167.16.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.17 via Frontend Transport; Tue, 7 Nov 2023 10:24:50 +0000 Received: ("Tessian outbound e243565b0037:v228"); Tue, 07 Nov 2023 10:24:50 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b218e5daafd4dfe8 X-CR-MTA-TID: 64aa7808 Received: from cbf3fdb0c5d7.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1FD2C731-E6AE-416B-9B1A-470EA84BC5B2.1; Tue, 07 Nov 2023 10:24:44 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id cbf3fdb0c5d7.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 07 Nov 2023 10:24:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lV7T5brfluoSwcLJ0jfSIB9noM3iXKkCW1rgE7bH/394Heg3ZKZWjzwtj69FaAQwrnPysbM6e5bT/GdgGWbLB+MwSuymIBwWVX2zXcrRSsf4uxf3MUVlcf+l2U8+BOeat5F7vI6h96x38qc7KwgQqLZPDeTxlMVgySIKR/Wuzjb0Erg5XSWPmwkniOEmTMBnbTssGFpkckCUPGtLDS9UAa2zPYJ5IJmIWr9GiP2GGffT0Og5E3oKb6+diV4dTZ9Fqg2aGI2RZmI+/t7BsCzFmr12AK/4E865EbAjzmqonAnfAYEoMHAaX/Iv28VviQuLOEAEDzLncXm+Z13Qbvwt0g== 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=cEfQbF+2SL6stcS0DI/vcB9k2eRrYdXz+avPqQazJcw=; b=EEg84fELuVi02GTMtrrpOp6A0OARZx9LeuzhhArAa4aVKSlN7Y5IqxG1m0e0pGy23ehiECm/M/IqTFyeKmH1BxvT6Kj6GiBtbTCo0D2ejtk4zW23bO7MG259pMcIIlXZueHz4yAkWCdMLzeSE6tV8F0ErTVkVGlvPbOlgGNQb3j71tvqBj/NhZDz017YRDeOvgc0fC6FDLJkp1T0d7A42uwRlkxSCEKZTNJeZoL+fECbIySqOG4iKVwp+mfi/Q60kT9l3XmK/oFo2qSC4tw80DZ8srlH58I5c9SdjBDhCEm+e/i75lNEZQlcLVJuIkd8yV2UIPLLf503u9+BiVz8Jw== 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=cEfQbF+2SL6stcS0DI/vcB9k2eRrYdXz+avPqQazJcw=; b=Z4Q5/TZeyqRTqakck2pCK0vSfAiy1cdJkFLVK8jmgOlhd4YcbzOAz+0Df/vRBtaxeiLskCZOH35g10RIUl+5RNu/NzvXF2KMEbI2JXnwtB12rhL/GXArV1+E6OeRANnP6KkZXPRqMxPWUy42I/KVRSjXQHWN08pPbhG205BTo2U= Received: from AS9P194CA0007.EURP194.PROD.OUTLOOK.COM (2603:10a6:20b:46d::21) by DB3PR08MB9035.eurprd08.prod.outlook.com (2603:10a6:10:429::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.29; Tue, 7 Nov 2023 10:24:41 +0000 Received: from AM4PEPF00027A69.eurprd04.prod.outlook.com (2603:10a6:20b:46d:cafe::13) by AS9P194CA0007.outlook.office365.com (2603:10a6:20b:46d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.28 via Frontend Transport; Tue, 7 Nov 2023 10:24:41 +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 AM4PEPF00027A69.mail.protection.outlook.com (10.167.16.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6977.16 via Frontend Transport; Tue, 7 Nov 2023 10:24:41 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) 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; Tue, 7 Nov 2023 10:24:39 +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; Tue, 7 Nov 2023 10:24:39 +0000 From: Victor Do Nascimento To: CC: , , , Victor Do Nascimento Subject: [PATCH 1/2] libatomic: atomic_16.S: Improve ENTRY, END and ALIAS macro interface Date: Tue, 7 Nov 2023 10:23:55 +0000 Message-ID: <20231107102424.2836255-2-victor.donascimento@arm.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231107102424.2836255-1-victor.donascimento@arm.com> References: <20231107102424.2836255-1-victor.donascimento@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM4PEPF00027A69:EE_|DB3PR08MB9035:EE_|AMS0EPF000001AD:EE_|DU0PR08MB9680:EE_ X-MS-Office365-Filtering-Correlation-Id: 0158aef8-6094-4af9-fa89-08dbdf7bc655 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: v/HyMCvbJhBkL/BEvxwMCy9JZIMr1JhiiC7THDZCQlrUYl8iWwWNZoMkMQDcaBxnDzi8t3iy4PXl/sfsBgjVBE45dR/O1TuWZZm7nYiaYD45XpaR8fv/+9njBOs9o5OT2q3eorSf9ik/8Z+XnggQaaZYSClHIe+kuaDPvEXsCKE/P91okqFg4dP8bsMKsNjU+RrzDEueooQx1rPrYOK6HazcpMb3V0/O2OdXnAKnlDeKupCaW/ybFOzhaGP4u7UXPVBFJpEafnSzf/r17yLQI3+qBo7CcPF63yu34B7D07imFqnYaGrrKujmBYtvcIkxN1cd/lfpIep+7Hm1FJrmIyVlkNmoL4KdSSkDr075z2/BKS3yPR+MvKP8ilyC1A3dun8KDGwKS35NwbzMR5y4eX8IZwSndIbPpwggJsUMQf8gnhzSTYe+gYz0rJ4xtheKZPnWSZLQzanl710cwjDVfC4bKzUCu6Sp5YhJ/BVElGEaIoRFo+Bamj94sLQ0feCTRiJPzVdc57TfT2vgZA4C/6hRomIpQ/7hM9ISiWZ2bfL5T43WWQoJtpuWEy0WEZdEkTtKE0e8oz+y7D4MHI88hRwxa3sm5yPpJsDyo/iMFmpMWAs336VZDbwPUrh0M76reYquiZe2F3FuQtYcjBbU6jhKWvE8GL4Uc5LjPgIRoB42pc6Evn1o2vIS6GArtllUQHpXRwjqxKdjcl7+uWHZbGWHmiuXXnZgj9xMX/gv2gc6JErQirXknT4u8/B0sO1K 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)(396003)(136003)(346002)(39850400004)(376002)(230922051799003)(451199024)(82310400011)(1800799009)(64100799003)(186009)(36840700001)(46966006)(2616005)(40480700001)(478600001)(36860700001)(47076005)(86362001)(36756003)(83380400001)(82740400003)(356005)(81166007)(7696005)(426003)(336012)(316002)(70586007)(70206006)(54906003)(6916009)(6666004)(26005)(1076003)(2906002)(5660300002)(41300700001)(8676002)(8936002)(4326008)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB9035 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS0EPF000001AD.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 69f58131-3d8f-475c-8caa-08dbdf7bc0da X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JqMWCAAr2EiLXfU8TsArtNJg5HSP5Rs7oRfWZjpUdZcrAPVp/oFbT9EhuSPpRfruo8KHdZ/7tD6Wd4+YVXJlBdKUl7guM2jjWcKM+Gd0QM63MVFJNy7XflVbr1xfVqrJfie4+Ic9f8954oaXAbppLsY5HIm7prrSn6iir6CumC68GJxI1dkehF+jb1e/dIFqGhFLUHcFc4SpuOVCcClHBiOW95sv5TcZwjH8BpXdQ2Y5ps9eax4qKyMdOQYMkNJnztedKsSP5zaT4QBfi9b+xMDpn01LcyvSoCGV+1z9pPQZZAKDbZd/QaGHpW0varSEQKvFC/UPCkdwfh3hvMeOTS7fgF4tzvnYR4i16AIx0Yyoni9BNz4YvBrFRQU0oA7SVlG92K/cp/iRadmcWzHV3UqH8YxE9Rx5ahIUQjiz250sXgkZXhXR32MSE3TVPtTbbSWq7AHUaNz7oNexETt+96SqYCC+YBsyjFTrbXpprUsyhDXqVPS1bzT0xdlwfrOgNX7kIkK/rl4t3MbBCyJNIMwMDI8fxc9T72DtQ1eP72L8DXNYq1uIhWyxogOujtkpW+q2S6jidaHdhaLw5os6l8sUPsNbwF/7QPdAooSh0kklaX1kNEu4h+auQ/dqmLRm6esFloJsN+q6lP5vscHHOL36cl/C96iRhm+S9bxwcPZpl6iZJSYLpMLtPpcqFPofC5myt23MamaCAPATJuzcLHHrsFDEU0xh0K6vh5tmewAp3cEm/rV0IBBNmg1AQe7E 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)(39860400002)(136003)(376002)(396003)(346002)(230922051799003)(186009)(82310400011)(64100799003)(451199024)(1800799009)(46966006)(36840700001)(40470700004)(47076005)(83380400001)(36860700001)(6916009)(81166007)(336012)(82740400003)(478600001)(6666004)(7696005)(426003)(70206006)(54906003)(26005)(70586007)(2616005)(1076003)(5660300002)(2906002)(86362001)(8676002)(36756003)(4326008)(41300700001)(8936002)(316002)(40460700003)(40480700001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2023 10:24:50.3770 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0158aef8-6094-4af9-fa89-08dbdf7bc655 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: AMS0EPF000001AD.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9680 X-Spam-Status: No, score=-12.5 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 List-Id: 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 LSE2 _i1 and reconstructs function names with the pre-processor's token concatenation feature, such that for `MACRO(name)', we would now have `MACRO(name, feature)' and in the macro definition body we replace `name` with `name##feature`. libatomic/ChangeLog: * config/linux/aarch64/atomic_16.S (CORE): New macro. (LSE2): Likewise. (ENTRY): Modify macro to take in `arch' argument. (END): Likewise. (ALIAS): Likewise. (ENTRY1): New macro. (END1): Likewise. (ALIAS): Likewise. --- libatomic/config/linux/aarch64/atomic_16.S | 147 +++++++++++---------- 1 file changed, 79 insertions(+), 68 deletions(-) diff --git a/libatomic/config/linux/aarch64/atomic_16.S b/libatomic/config/linux/aarch64/atomic_16.S index 0485c284117..3f6225830e6 100644 --- a/libatomic/config/linux/aarch64/atomic_16.S +++ b/libatomic/config/linux/aarch64/atomic_16.S @@ -39,22 +39,34 @@ .arch armv8-a+lse -#define ENTRY(name) \ - .global name; \ - .hidden name; \ - .type name,%function; \ - .p2align 4; \ -name: \ - .cfi_startproc; \ +#define ENTRY(name, feat) \ + ENTRY1(name, feat) + +#define ENTRY1(name, feat) \ + .global name##feat; \ + .hidden name##feat; \ + .type name##feat,%function; \ + .p2align 4; \ +name##feat: \ + .cfi_startproc; \ hint 34 // bti c -#define END(name) \ - .cfi_endproc; \ - .size name, .-name; +#define END(name, feat) \ + END1(name, feat) -#define ALIAS(alias,name) \ - .global alias; \ - .set alias, name; +#define END1(name, feat) \ + .cfi_endproc; \ + .size name##feat, .-name##feat; + +#define ALIAS(alias, from, to) \ + ALIAS1(alias,from,to) + +#define ALIAS1(alias, from, to) \ + .global alias##from; \ + .set alias##from, alias##to; + +#define CORE +#define LSE2 _i1 #define res0 x0 #define res1 x1 @@ -89,7 +101,7 @@ name: \ #define SEQ_CST 5 -ENTRY (libat_load_16) +ENTRY (libat_load_16, CORE) mov x5, x0 cbnz w1, 2f @@ -104,10 +116,10 @@ ENTRY (libat_load_16) stxp w4, res0, res1, [x5] cbnz w4, 2b ret -END (libat_load_16) +END (libat_load_16, CORE) -ENTRY (libat_load_16_i1) +ENTRY (libat_load_16, LSE2) cbnz w1, 1f /* RELAXED. */ @@ -127,10 +139,10 @@ ENTRY (libat_load_16_i1) ldp res0, res1, [x0] dmb ishld ret -END (libat_load_16_i1) +END (libat_load_16, LSE2) -ENTRY (libat_store_16) +ENTRY (libat_store_16, CORE) cbnz w4, 2f /* RELAXED. */ @@ -144,10 +156,10 @@ ENTRY (libat_store_16) stlxp w4, in0, in1, [x0] cbnz w4, 2b ret -END (libat_store_16) +END (libat_store_16, CORE) -ENTRY (libat_store_16_i1) +ENTRY (libat_store_16, LSE2) cbnz w4, 1f /* RELAXED. */ @@ -159,10 +171,10 @@ ENTRY (libat_store_16_i1) stlxp w4, in0, in1, [x0] cbnz w4, 1b ret -END (libat_store_16_i1) +END (libat_store_16, LSE2) -ENTRY (libat_exchange_16) +ENTRY (libat_exchange_16, CORE) mov x5, x0 cbnz w4, 2f @@ -186,10 +198,10 @@ ENTRY (libat_exchange_16) stlxp w4, in0, in1, [x5] cbnz w4, 4b ret -END (libat_exchange_16) +END (libat_exchange_16, CORE) -ENTRY (libat_compare_exchange_16) +ENTRY (libat_compare_exchange_16, CORE) ldp exp0, exp1, [x1] cbz w4, 3f cmp w4, RELEASE @@ -228,10 +240,10 @@ ENTRY (libat_compare_exchange_16) cbnz w4, 4b mov x0, 1 ret -END (libat_compare_exchange_16) +END (libat_compare_exchange_16, CORE) -ENTRY (libat_compare_exchange_16_i1) +ENTRY (libat_compare_exchange_16, LSE2) ldp exp0, exp1, [x1] mov tmp0, exp0 mov tmp1, exp1 @@ -264,10 +276,10 @@ 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 (libat_compare_exchange_16, LSE2) -ENTRY (libat_fetch_add_16) +ENTRY (libat_fetch_add_16, CORE) mov x5, x0 cbnz w4, 2f @@ -286,10 +298,10 @@ ENTRY (libat_fetch_add_16) stlxp w4, tmp0, tmp1, [x5] cbnz w4, 2b ret -END (libat_fetch_add_16) +END (libat_fetch_add_16, CORE) -ENTRY (libat_add_fetch_16) +ENTRY (libat_add_fetch_16, CORE) mov x5, x0 cbnz w4, 2f @@ -308,10 +320,10 @@ ENTRY (libat_add_fetch_16) stlxp w4, res0, res1, [x5] cbnz w4, 2b ret -END (libat_add_fetch_16) +END (libat_add_fetch_16, CORE) -ENTRY (libat_fetch_sub_16) +ENTRY (libat_fetch_sub_16, CORE) mov x5, x0 cbnz w4, 2f @@ -330,10 +342,10 @@ ENTRY (libat_fetch_sub_16) stlxp w4, tmp0, tmp1, [x5] cbnz w4, 2b ret -END (libat_fetch_sub_16) +END (libat_fetch_sub_16, CORE) -ENTRY (libat_sub_fetch_16) +ENTRY (libat_sub_fetch_16, CORE) mov x5, x0 cbnz w4, 2f @@ -352,10 +364,10 @@ ENTRY (libat_sub_fetch_16) stlxp w4, res0, res1, [x5] cbnz w4, 2b ret -END (libat_sub_fetch_16) +END (libat_sub_fetch_16, CORE) -ENTRY (libat_fetch_or_16) +ENTRY (libat_fetch_or_16, CORE) mov x5, x0 cbnz w4, 2f @@ -374,10 +386,10 @@ ENTRY (libat_fetch_or_16) stlxp w4, tmp0, tmp1, [x5] cbnz w4, 2b ret -END (libat_fetch_or_16) +END (libat_fetch_or_16, CORE) -ENTRY (libat_or_fetch_16) +ENTRY (libat_or_fetch_16, CORE) mov x5, x0 cbnz w4, 2f @@ -396,10 +408,10 @@ ENTRY (libat_or_fetch_16) stlxp w4, res0, res1, [x5] cbnz w4, 2b ret -END (libat_or_fetch_16) +END (libat_or_fetch_16, CORE) -ENTRY (libat_fetch_and_16) +ENTRY (libat_fetch_and_16, CORE) mov x5, x0 cbnz w4, 2f @@ -418,10 +430,10 @@ ENTRY (libat_fetch_and_16) stlxp w4, tmp0, tmp1, [x5] cbnz w4, 2b ret -END (libat_fetch_and_16) +END (libat_fetch_and_16, CORE) -ENTRY (libat_and_fetch_16) +ENTRY (libat_and_fetch_16, CORE) mov x5, x0 cbnz w4, 2f @@ -440,10 +452,10 @@ ENTRY (libat_and_fetch_16) stlxp w4, res0, res1, [x5] cbnz w4, 2b ret -END (libat_and_fetch_16) +END (libat_and_fetch_16, CORE) -ENTRY (libat_fetch_xor_16) +ENTRY (libat_fetch_xor_16, CORE) mov x5, x0 cbnz w4, 2f @@ -462,10 +474,10 @@ ENTRY (libat_fetch_xor_16) stlxp w4, tmp0, tmp1, [x5] cbnz w4, 2b ret -END (libat_fetch_xor_16) +END (libat_fetch_xor_16, CORE) -ENTRY (libat_xor_fetch_16) +ENTRY (libat_xor_fetch_16, CORE) mov x5, x0 cbnz w4, 2f @@ -484,10 +496,10 @@ ENTRY (libat_xor_fetch_16) stlxp w4, res0, res1, [x5] cbnz w4, 2b ret -END (libat_xor_fetch_16) +END (libat_xor_fetch_16, CORE) -ENTRY (libat_fetch_nand_16) +ENTRY (libat_fetch_nand_16, CORE) mov x5, x0 mvn in0, in0 mvn in1, in1 @@ -508,10 +520,10 @@ ENTRY (libat_fetch_nand_16) stlxp w4, tmp0, tmp1, [x5] cbnz w4, 2b ret -END (libat_fetch_nand_16) +END (libat_fetch_nand_16, CORE) -ENTRY (libat_nand_fetch_16) +ENTRY (libat_nand_fetch_16, CORE) mov x5, x0 mvn in0, in0 mvn in1, in1 @@ -532,12 +544,12 @@ ENTRY (libat_nand_fetch_16) stlxp w4, res0, res1, [x5] cbnz w4, 2b ret -END (libat_nand_fetch_16) +END (libat_nand_fetch_16, CORE) /* __atomic_test_and_set is always inlined, so this entry is unused and only required for completeness. */ -ENTRY (libat_test_and_set_16) +ENTRY (libat_test_and_set_16, CORE) /* RELAXED/ACQUIRE/CONSUME/RELEASE/ACQ_REL/SEQ_CST. */ mov x5, x0 @@ -545,26 +557,25 @@ ENTRY (libat_test_and_set_16) stlxrb w4, w2, [x5] cbnz w4, 1b ret -END (libat_test_and_set_16) +END (libat_test_and_set_16, CORE) /* 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 -- 2.41.0