delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2020/03/10/16:37:04

X-Recipient: archive-cygwin AT delorie DOT com
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
X-Authority-Analysis: v=2.3 cv=L7FjvNb8 c=1 sm=1 tr=0
a=kiZT5GMN3KAWqtYcXc+/4Q==:117 a=kiZT5GMN3KAWqtYcXc+/4Q==:17
a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=IkcTkHD0fZMA:10 a=VwLinOA_F0WsYRr5JSwA:9
a=7Zwj6sZBwVKJAoWSPKxL6X1jA+E=:19 a=QEXdDO2ut3YA:10
From: Brian Inglis <Brian DOT Inglis AT SystematicSw DOT ab DOT ca>
Subject: Re: gcc and 128-bit compare/exchange
To: cygwin AT cygwin DOT com
References: <ab69ca04-06a2-eeb9-4771-e37432b59a77 AT cs DOT umass DOT edu>
<f27b324f-049c-7830-68cd-14813aab6eed AT cs DOT umass DOT edu>
Autocrypt: addr=Brian DOT Inglis AT SystematicSw DOT ab DOT ca; prefer-encrypt=mutual;
keydata=
mQENBFg15Q0BCADc1LTYJN/oVKOJoXpIo+5yy+sBv535qYNRh5CFqp3pPZwIy6oILNKprWph
8J+sXMqYd5H0G1jMDlXendiQbn9SiORuqI7xkV8vzguoFEMhNTxnO1pOQjqRnEnG/W7/5Yy+
DkcCv+Y4O3NX3wol8yP+FaEx4EEEifaO5ZhC1U/ilvHvxE0wjNhRG6AqlvqX6J09bxkJC8Xd
00MZWotDHtiq/wnd8YqyDmf0aJceGxSetHnqn/Cs3WiylEEUy2x/FqKbsBxUJHGQeeRTFAW1
ii08djCemxdE+romE/M9J9CVisSZImbXMSilX6Z2Qtz0lYPkY0EqbiKo8o9zlkIPhaqJABEB
AAG0REJyaWFuIEluZ2xpcyAoU3lzdGVtYXRpYyBTb2Z0d2FyZSkgPEJyaWFuLkluZ2xpc0BT
eXN0ZW1hdGljU1cuYWIuY2E+iQFVBBMBAgA/AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIX
gBYhBEy/sJ49FaN/AfIQJjY9ewCxhxqTBQJai9F5BQkNRMzsAAoJEDY9ewCxhxqThnAH/Rau
2+nxwRYdOHDkvMJSyJZUxowkxxzfttQVfxrZIhooF99LGqd3ANltSidybJAbKDLoH+5jRvWF
fobzOs93Uw73/52Rurv0nY40mnCAw2vE3JNYgWm8V09Ff4J64ElylrAAU60XoUxMD8Tbflby
fVu3LO74pR/hCByNGK019TXJhIPfSU51hXQwLgqAKT4FRGw5gYyqCSS5zoRpa/zNENAPKG/g
5H8ar58eJB9QyJA4iNTLa/3rPF/kO9MqfRLlBLvmyveyYOcGs5wOgjt/RT2eA3Zun18l7EIE
2L2J1tbqLmSpswSW3URnW3KsfgILNC9pAVR00xvO09ulrUXiOX65AQ0EWDXlDQEIAM5GX98w
WEzP1jyuWGfNI0s2lUJDTVH1WLpg1N+lQ9sjwCVBeJEdhtZYU7VsgmjPj+H0tkBFYe2olAkk
BAmdP7yrqUTK5zw12kf5BJeF94cikGcFRCvdGVk9/uSfy3HZePvr8NV5LPCxLIE6bJCS8L5A
CgdNkrD3CLM1zePyiQ0dQ3+6Bjq27b3Y1UauiyKlOquCVkfrDk/y3OfFhbiJX8pwM0mICyls
8p9iM7yg+g1PbdoA99OrFc7JKllHRGDLQ0B/HKAPgNnLCenzDuV/d+N1RDbbpa0c/uvmoptR
Aejlq3HszXYQ9wTmu8OwVSITSkzgP1lKzyDPZS9SGvlrQp8AEQEAAYkBPAQYAQIAJgIbDBYh
BEy/sJ49FaN/AfIQJjY9ewCxhxqTBQJai9GnBQkNRM0aAAoJEDY9ewCxhxqTuL8H/ivw0VXX
lQW4c9O8XsMafDcEyV23MH4fdZACss+ZWluda7xIRo78GCLXxARHwJdOE9Jk9+/fDQOTZd4m
KW0trLCfWvJnwNJfOLbqse7eydvgdj2UrTpy4DO/5+mAw/ilgZpEGgwMwyqb/2kFiKK7Q64B
NKl8Y2kRXltaiXfqyvG2U/NiE4GOPA3yZgXs4Mzd1pzV/nkEIzGkneaeE5WGEWj/8dCnn6a3
zIuq0L59QInxKsTdt10OQiUoRKl8Nx0vDCOzMy0wlJc349gJbQBCAZcumtBBBqAzCAmJ3J7T
7ew8hznAEmOwr+LkSOdXFzEjdfTaryhN1AsRLYVUNloEWNA=
Organization: Systematic Software
Message-ID: <66f51c13-4c87-3bd6-3b8e-01901155ef2a@SystematicSw.ab.ca>
Date: Tue, 10 Mar 2020 14:35:42 -0600
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101
Thunderbird/68.5.0
MIME-Version: 1.0
In-Reply-To: <f27b324f-049c-7830-68cd-14813aab6eed@cs.umass.edu>
X-CMAE-Envelope: MS4wfJjdlvH4YcwjD0zWacWVvdSDFOfCpFtUpB1A6uSozejHjVhncqY0RccjMYltE9JWhKL+505UtYFsrWHaerTKogKuyObVyOXZ3FdZaHXESVjngZSitJ32
SznZMcEmyxCb0BJiwcPopK4SzDvrHQddXGYQXgiYOhzrHylQF5/6kfzlJX+0QGyEDy5rS9VGnYToHA==
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_LOW,
SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.2
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: Cygwin mailing list <cygwin.cygwin.com>
List-Unsubscribe: <http://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <http://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <http://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
Reply-To: cygwin AT cygwin DOT com
Errors-To: cygwin-bounces AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces AT cygwin DOT com>
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 02AKajb1006158

On 2020-03-08 20:59, Eliot Moss wrote:
> On 3/8/2020 10:29 PM, Eliot Moss wrote:
>> This is probably to the gcc maintainer ...
>>
>> I am running on a processor that has compare/exchange 128-bit (cx16 capability),
>> and I compiler with -mcx16 and -latomic.  I'm on the latest release cygwin gcc
>> (9.2.0-3, I believe) and the corresponding libatomic.  I have a program with
>> this in it:
>>
>> __atomic_compare_exchange((__int128 *)&s1, (__int128 *)&z, (__int128 *)&s2, 0,
>> __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
>>
>> This compiles to a call (nice if it would inline, but ...) to
>> __atomic_compare_exchange_16, which uses mutex's, not the CMPXCHG16B
>> instruction I was hoping for.  Note I am doing dynamic linking,
>> which on at least one other platform results in dynamic selection
>> of a lib_at implementation of the compare/exchange, which does use
>> the desired instruction.
>>
>> Is this a limitation of cygwin gcc, or should I be doing something
>> different to achieve the desired effect?
>>
>> Obviously it would be best not to going an asm inline if I can avoid it,
>> but I suppose I can dig into the libatomic source to get the right
>> incantation for it if need be ...
> 
> A quick followup: I was able to get __sync_val_compare_and_swap_16 to work
> (and its bool form).  That will do for now, though of course it's deprecated.

You just needed to go to the next info page:

	$ info gcc __atomic

and use:

	#include <stdatomic.h>
	extern bool __atomic_compare_exchange ( TYPE *ptr,
						TYPE *expected,
						TYPE *desired,
						bool weak,
						int success_memorder,
						int failure_memorder);

or higher level macro:

	atomic_compare_exchange_strong(PTR, VAL, DES)

defined in /lib/gcc/x86_64-pc-cygwin/*/include/stdatomic.h

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019