From patchwork Wed Jul 6 15:15:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 55796 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9E8223858285 for ; Wed, 6 Jul 2022 15:16:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9E8223858285 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1657120576; bh=ChkGb6bux0ElpBhIn8Y95eldwrygFxPd+cQy9Hmj53k=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=RfRne3lwg19J0eY9QkXd4MsaRF4k0S5HkINlJa8Nvf1FeGZg73LBLHWIDxyJlEbJ7 vZix+Me1riEaaWPUT1Bv/Qa7c+smf6FazCruFMeicGmesODLsM5i5iSTAipO/WHSmw deD89xgvpI41BdXtu+XS5kuXyEyeJz+PsnfimCvc= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60073.outbound.protection.outlook.com [40.107.6.73]) by sourceware.org (Postfix) with ESMTPS id 28E0D3858C20 for ; Wed, 6 Jul 2022 15:15:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 28E0D3858C20 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=ELIZlnnEVG4BBv7nVE/Lo0hGm+pNWtrksxaju4GMyBt3UYeg4QmQ9M83QYKAyu5EFRsXQoxD0UICrI6plJSOvamL1GYsd6JRN9bAD1C52f3Whihof/IyqOLUJkeROLWPlctEMIAV7y0kZGuMt2Qzkc1g3ra1MIjc5AW+CTIRXefLrQ6SiMtwokzgQrDHJLyzT1CuNkucjbh+LtpD+1HKbmtlKxjuI7hsqeZ+Ds7K3sTRsRaBPbQT5WkgsByRaVarW59hriWDoLbhOW6RbQ2+rSoPL3/4saXQ1zlyyV9Zr3Zcga5a2X9PQmbqFn/HRdcT7BenvvTfbi0HZyaYgVE7nQ== 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=ChkGb6bux0ElpBhIn8Y95eldwrygFxPd+cQy9Hmj53k=; b=TxH3rWOP6jmQP7TFGPMsfhEjdXGU9fmci1MOWW/BjD0DZRZQ65T6tJ3+8RYniylNA7uZKhTanYBCzhUz7VfWtOYV/di7F9akwmNaDfzXuyj+E1AY/iR08hj3w//4dppDlAou+zKrBEWL2IFyT8Xoa5nMZd5Y2Q+87ZvRbBrhwrHt75TneLyn7vBpyhYeeuZCHwv1YY6H6Zunh1aX3iDhTPQ5JkpXZcGqt4Wsry2OBA78BOFaFHrU5CzhcY19CqU2OjGGWAp3K0sehIpvcQ+bS+CkPmPcblugsqhkeLn+P2Pfcpn4VWueFD73i4mavcJhLzmveVrjSPJg0RCCuuwKHg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.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] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from AS9PR01CA0001.eurprd01.prod.exchangelabs.com (2603:10a6:20b:540::6) by AM6PR08MB4168.eurprd08.prod.outlook.com (2603:10a6:20b:aa::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.18; Wed, 6 Jul 2022 15:15:51 +0000 Received: from AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:540:cafe::8b) by AS9PR01CA0001.outlook.office365.com (2603:10a6:20b:540::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.16 via Frontend Transport; Wed, 6 Jul 2022 15:15: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 AM5EUR03FT027.mail.protection.outlook.com (10.152.16.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.15 via Frontend Transport; Wed, 6 Jul 2022 15:15:50 +0000 Received: ("Tessian outbound 13cb25bfb745:v122"); Wed, 06 Jul 2022 15:15:50 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 3cf2df02ed70862f X-CR-MTA-TID: 64aa7808 Received: from 49e770a2d745.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D83AB534-1063-461D-8346-107D06D3DE4F.1; Wed, 06 Jul 2022 15:15:43 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 49e770a2d745.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 06 Jul 2022 15:15:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kbx0auClfuS9luHO5m40lIF+8XQe2QoC812kOvhVvJF+E+wIe7d5IlNlTFEMlTeB6CiNtKSr3DO8wrSo68YSh5E0h/WevRmUgTq0BfY7cMgrfqKZKJ3dgk7a+gM5uFliRJXCTsWmQKemW0LdAE30GUAZ0tm9bMawvNpo2++tzjTY7MDmHnVDddvjFIvYU+WV+Pb1vNjmW8LOHmRKB+ZhMIKpbsY2MyDWWppRP+lvMJReChclJ+8WkdpDE9UvfN3bkBUOt+ncEUutTGxc3ucJmmvP5u18TXG4Kg1jWOQPRjDf9TPL77Bhh/d1bF3hdyDH3yaBLI1XZIVQ8Dth618b9w== 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=ChkGb6bux0ElpBhIn8Y95eldwrygFxPd+cQy9Hmj53k=; b=ODB47C954KJAFhxvtH+C85upI02hvQ9IvEmldZlpj9XXRZkkbZxT3QjAjU2frT8fkCdgOM9ilz/sNkbhDcovTv0bunnEQeF/2UDVkeILnMk+AvAcfstLVTP+JNOXPUlrV2Nt1lYiGhEhhZrPFIv9QHPaaPOGYM89Z0Q+V52pnmmlqOm9cJuwNj0LFL9RYn0E4kF80753rH/BJIWBf6oW0sPWbEPE8XsJ2ROXNFM1ipv8Vs3QNJ5ArZwM4yGKDRUGdlK4UuamjrdSbp4PEXDkoA1hWpLu0m42b3fV0EgBA9yW2XMJobLmBbjZwwoLydEvdyMf3oFBw53VvCjTJnL38A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from AM5PR0801MB1668.eurprd08.prod.outlook.com (2603:10a6:203:3c::14) by AM4PR0802MB2178.eurprd08.prod.outlook.com (2603:10a6:200:5a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.15; Wed, 6 Jul 2022 15:15:41 +0000 Received: from AM5PR0801MB1668.eurprd08.prod.outlook.com ([fe80::845f:5b9c:410a:f581]) by AM5PR0801MB1668.eurprd08.prod.outlook.com ([fe80::845f:5b9c:410a:f581%5]) with mapi id 15.20.5417.015; Wed, 6 Jul 2022 15:15:41 +0000 To: 'GNU C Library' Subject: [PATCH 4/7] Remove atomic_and/or Thread-Topic: [PATCH 4/7] Remove atomic_and/or Thread-Index: AQHYkUse/lXiHmNutk6wTNqxE3QEwA== Date: Wed, 6 Jul 2022 15:15:41 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: 6a2641bc-1cbc-4f20-a16a-08da5f626994 x-ms-traffictypediagnostic: AM4PR0802MB2178:EE_|AM5EUR03FT027:EE_|AM6PR08MB4168:EE_ 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: IGE6OKW0l6bWIn9/LgNuLiqgbhSAsBaatArf139Iafve6lwVtAYJoaD8Efn4DDCAPyJS75stPk6to1Ez6i8XPSTxSFdvCCw+zRDot0SbXRRRE80fNY24gdZrN2kP7WZ3C2tt1QY17KYsB0EgOtwTRz9nJtbcWTtIz0NxzoHoLWsQNaGax4xAepyl5HIL48SoxJCFrQLGwVwYRakS7X9y4I6sXXwzks6zL/HVHgVrh5awcbh4e+TRuJ87f0bIauavojrfOJg1vX/dg1WsDHHrOVw6wVeGrGWMLwiE+dgH2jTandTFKwY3gtx7duTdIjmgYo1kjXcX2XCfq56EPL7w3DIhVOYrkP406xsGq8FavbaUW3k173WKLrWmzyfGv5V65M3i6gCWX7Mpvqx+UausCRmd8OjUsts9xquA1x2L0wclXw5H+p1lrAEeYlwbLPTytBUEeIuoNXpVXr4qVvj0hdaYINbza6ZtQn8a8PfGgY2kMvVFzhnGwI28SSL71GrDaZ9oBHT65NQhLvnsrkUWJAFqmMyM86dHdaVx6UJRTV40KJKeYkiatfiQvlwdLw0P9D2w+oc6qR3Xf5iry+U8VzpcOvgETeu3XFdtnCSXbhAY3lnTdd2akCKk8Xs5swyB0bUE/XqXw6VBkmcHTBBsvYL/HfwYZYjlWpz/y0Ie6uubeZ/tHxDegIthsRkgbncMqxtJPqYsdzT/Nh1e8xiVOMVC2zAG6VrIEWnIwNuTNHB8PTtFPH6lfeUZ64qkCC2TZO0R++E6gS2kOA1B5xE7U4xt4xmwffnC1mKaCVJq6Uwyr3gaqbwbEJ0plzKbOXPW X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM5PR0801MB1668.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(136003)(346002)(396003)(366004)(39860400002)(83380400001)(38070700005)(52536014)(9686003)(122000001)(186003)(6916009)(316002)(8936002)(5660300002)(2906002)(26005)(33656002)(41300700001)(478600001)(91956017)(66946007)(66556008)(55016003)(76116006)(8676002)(6506007)(86362001)(7696005)(38100700002)(66476007)(71200400001)(64756008)(66446008); DIR:OUT; SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0802MB2178 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: aeef6adb-ebf7-4f07-f695-08da5f6263e5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yYWKWbhP43uFaIxHfhLEs6tfKN6TCBkgkrAXzhqK4gT3YjNeJFOfeaUJO0zxWOuh/73qynmHcDnthkjRXJKZUt44i3q+q9xwCBpXSOUTaBnKlmj4YCmMsRZeKyi95BiG6rIMGh7z2AT4TlZTQehmjvBdlYlgP19FXk3G7pEAx9e2m+jQxyDk/IY2nBQ1HhMrhx4t+tLxCzffcesge1js4pzyigEH89fd2JcxGCiGwB5K7a95GtylbMvUJMXEoLsBYZ3Jij4sOK4rhgmwv1hZZp08P5Z8LvpmSzbjdgrUG7hO9L+4sbYenzucFRnQ959qMuV0UBd46rylWWu74fSZ2aRS8gBZuxSGHB3Jqc3gDEMFeEzJS66kBkMycJoXyaH2LUM7arV6H3ZUEUWaH+DW/CR3ctj2NRV6k8MJDqbu0hc6VyQ+qhi3J/hRGl5zpvSwozQbaWPYJV8ZvBgZSztEpZLq07EWOtboNFHGDUxHRxewy7LuoqxXGTOiSahbPPQuWhTJ9HMU5m3f5ZZNGI4KjQy95b+G6WAMjJoW/GHYhFZkkDNjpJ/NR1+VWg0byiURca5GP1gVRQcbiKYHnXdkIh14KJEzFS+lFtTmI+xwoU6Q0ICMD67RMa0sobmFutSWjzPsLbKWsrlQy9TrS5pu3jp0R/LjcqR0/eVMWsH9ZtoGpfDqfMKEG2VUjqdrfXAwOD5ME2Q/bNK+nQcnM45XGmC62qRZrLZW0rYkP+MRUs2An9EZmn0V0MLUIvh90GdPnaJsnenW3PrW31eONB+okGcK487GYZyNkd9QaspHIlJdiTGFE51rLjcOgNP0LMSy 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:(13230016)(4636009)(376002)(396003)(136003)(39860400002)(346002)(36840700001)(46966006)(40470700004)(40480700001)(55016003)(36860700001)(40460700003)(336012)(82310400005)(47076005)(186003)(83380400001)(33656002)(7696005)(8676002)(70206006)(70586007)(86362001)(9686003)(52536014)(5660300002)(8936002)(6506007)(81166007)(356005)(82740400003)(478600001)(6916009)(41300700001)(316002)(26005)(2906002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2022 15:15:50.8399 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6a2641bc-1cbc-4f20-a16a-08da5f626994 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: AM5EUR03FT027.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4168 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_LOTSOFHASH, 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: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Wilco Dijkstra via Libc-alpha From: Wilco Dijkstra Reply-To: Wilco Dijkstra Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Replace the 4 uses of atomic_and and atomic_or with atomic_fetch_and_acquire and atomic_fetch_or_acquire. diff --git a/include/atomic.h b/include/atomic.h index ed1fc38e7569fcbdd0473ab6f69956a44d62354f..fd1a1eb0f87d288251d176d69246cff2d3422af7 100644 --- a/include/atomic.h +++ b/include/atomic.h @@ -255,23 +255,6 @@ #endif -/* Atomically *mem &= mask. */ -#ifndef atomic_and -# define atomic_and(mem, mask) \ - do { \ - __typeof (*(mem)) __atg15_old; \ - __typeof (mem) __atg15_memp = (mem); \ - __typeof (*(mem)) __atg15_mask = (mask); \ - \ - do \ - __atg15_old = (*__atg15_memp); \ - while (__builtin_expect \ - (atomic_compare_and_exchange_bool_acq (__atg15_memp, \ - __atg15_old & __atg15_mask, \ - __atg15_old), 0)); \ - } while (0) -#endif - /* Atomically *mem &= mask and return the old value of *mem. */ #ifndef atomic_and_val # define atomic_and_val(mem, mask) \ @@ -289,23 +272,6 @@ __atg16_old; }) #endif -/* Atomically *mem |= mask and return the old value of *mem. */ -#ifndef atomic_or -# define atomic_or(mem, mask) \ - do { \ - __typeof (*(mem)) __atg17_old; \ - __typeof (mem) __atg17_memp = (mem); \ - __typeof (*(mem)) __atg17_mask = (mask); \ - \ - do \ - __atg17_old = (*__atg17_memp); \ - while (__builtin_expect \ - (atomic_compare_and_exchange_bool_acq (__atg17_memp, \ - __atg17_old | __atg17_mask, \ - __atg17_old), 0)); \ - } while (0) -#endif - /* Atomically *mem |= mask and return the old value of *mem. */ #ifndef atomic_or_val # define atomic_or_val(mem, mask) \ diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c index 4b7f3edc384748f300ca935ad878eb0e3547e163..1e6b385787aab5fa2f452de0cd2eae2b5f0fba83 100644 --- a/nptl/pthread_create.c +++ b/nptl/pthread_create.c @@ -539,7 +539,7 @@ start_thread (void *arg) # endif this->__list.__next = NULL; - atomic_or (&this->__lock, FUTEX_OWNER_DIED); + atomic_fetch_or_acquire (&this->__lock, FUTEX_OWNER_DIED); futex_wake ((unsigned int *) &this->__lock, 1, /* XYZ */ FUTEX_SHARED); } diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c index 6e767a87247063c0ac84242ef13e72af79021104..439b1e6391c50d5922dec6c48e7f2a2a632a89d9 100644 --- a/nptl/pthread_mutex_lock.c +++ b/nptl/pthread_mutex_lock.c @@ -462,7 +462,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex) if (__glibc_unlikely (oldval & FUTEX_OWNER_DIED)) { - atomic_and (&mutex->__data.__lock, ~FUTEX_OWNER_DIED); + atomic_fetch_and_acquire (&mutex->__data.__lock, ~FUTEX_OWNER_DIED); /* We got the mutex. */ mutex->__data.__count = 1; diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c index 0fcaabfb482546fd6f1f9cc4b13edc82f6e6796c..af70a60528cb101c8e52d4165950ee0d11f6f895 100644 --- a/nptl/pthread_mutex_timedlock.c +++ b/nptl/pthread_mutex_timedlock.c @@ -392,7 +392,7 @@ __pthread_mutex_clocklock_common (pthread_mutex_t *mutex, if (__glibc_unlikely (oldval & FUTEX_OWNER_DIED)) { - atomic_and (&mutex->__data.__lock, ~FUTEX_OWNER_DIED); + atomic_fetch_and_acquire (&mutex->__data.__lock, ~FUTEX_OWNER_DIED); /* We got the mutex. */ mutex->__data.__count = 1; diff --git a/nptl/pthread_mutex_trylock.c b/nptl/pthread_mutex_trylock.c index 8a7de8e598803f606899fe1c9b8775bc24dd14ec..50524942a76c753ce4add20c35dfe7f659a1908b 100644 --- a/nptl/pthread_mutex_trylock.c +++ b/nptl/pthread_mutex_trylock.c @@ -308,7 +308,7 @@ ___pthread_mutex_trylock (pthread_mutex_t *mutex) if (__glibc_unlikely (oldval & FUTEX_OWNER_DIED)) { - atomic_and (&mutex->__data.__lock, ~FUTEX_OWNER_DIED); + atomic_fetch_and_acquire (&mutex->__data.__lock, ~FUTEX_OWNER_DIED); /* We got the mutex. */ mutex->__data.__count = 1; diff --git a/sysdeps/s390/atomic-machine.h b/sysdeps/s390/atomic-machine.h index db31e377970c4ab6285ef65fb21419db7c6ca373..d2fc3cf240888ca3569c6d3b1287cc87209cab89 100644 --- a/sysdeps/s390/atomic-machine.h +++ b/sysdeps/s390/atomic-machine.h @@ -80,27 +80,3 @@ # define atomic_exchange_and_add_rel(mem, operand) \ ({ __atomic_check_size((mem)); \ __atomic_fetch_add ((mem), (operand), __ATOMIC_RELEASE); }) - -/* Atomically *mem |= mask and return the old value of *mem. */ -/* The gcc builtin uses load-and-or instruction on z196 zarch and higher cpus - instead of a loop with compare-and-swap instruction. */ -#define atomic_or_val(mem, operand) \ - ({ __atomic_check_size((mem)); \ - __atomic_fetch_or ((mem), (operand), __ATOMIC_ACQUIRE); }) -/* Atomically *mem |= mask. */ -#define atomic_or(mem, mask) \ - do { \ - atomic_or_val (mem, mask); \ - } while (0) - -/* Atomically *mem &= mask and return the old value of *mem. */ -/* The gcc builtin uses load-and-and instruction on z196 zarch and higher cpus - instead of a loop with compare-and-swap instruction. */ -#define atomic_and_val(mem, operand) \ - ({ __atomic_check_size((mem)); \ - __atomic_fetch_and ((mem), (operand), __ATOMIC_ACQUIRE); }) -/* Atomically *mem &= mask. */ -#define atomic_and(mem, mask) \ - do { \ - atomic_and_val (mem, mask); \ - } while (0) diff --git a/sysdeps/x86/atomic-machine.h b/sysdeps/x86/atomic-machine.h index 6adc219bf69f1507624618ed931dad11fea4e150..2abab58628e88bf2f5fc980d2de6b0dd556f6cd4 100644 --- a/sysdeps/x86/atomic-machine.h +++ b/sysdeps/x86/atomic-machine.h @@ -292,54 +292,6 @@ __result; }) -#define __arch_and_body(lock, mem, mask) \ - do { \ - if (sizeof (*mem) == 1) \ - __asm __volatile (lock "andb %b1, %0" \ - : "=m" (*mem) \ - : IBR_CONSTRAINT (mask), "m" (*mem)); \ - else if (sizeof (*mem) == 2) \ - __asm __volatile (lock "andw %w1, %0" \ - : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ - else if (sizeof (*mem) == 4) \ - __asm __volatile (lock "andl %1, %0" \ - : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ - else if (__HAVE_64B_ATOMICS) \ - __asm __volatile (lock "andq %q1, %0" \ - : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ - else \ - __atomic_link_error (); \ - } while (0) - -#define atomic_and(mem, mask) __arch_and_body (LOCK_PREFIX, mem, mask) - -#define __arch_or_body(lock, mem, mask) \ - do { \ - if (sizeof (*mem) == 1) \ - __asm __volatile (lock "orb %b1, %0" \ - : "=m" (*mem) \ - : IBR_CONSTRAINT (mask), "m" (*mem)); \ - else if (sizeof (*mem) == 2) \ - __asm __volatile (lock "orw %w1, %0" \ - : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ - else if (sizeof (*mem) == 4) \ - __asm __volatile (lock "orl %1, %0" \ - : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ - else if (__HAVE_64B_ATOMICS) \ - __asm __volatile (lock "orq %q1, %0" \ - : "=m" (*mem) \ - : "ir" (mask), "m" (*mem)); \ - else \ - __atomic_link_error (); \ - } while (0) - -#define atomic_or(mem, mask) __arch_or_body (LOCK_PREFIX, mem, mask) - /* We don't use mfence because it is supposedly slower due to having to provide stronger guarantees (e.g., regarding self-modifying code). */ #define atomic_full_barrier() \