On Tue, Apr 10, 2012 at 7:12 AM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote:
>>
>> Yeah.  And you don't need to change the FEs in any way, all that is needed
>> is to change the middle-end/expansion (builtins.c - e.g. get_memmodel)
>> and the backend (plus predefine the macros in the backend).
>>
>>        Jakub
>
> Hi Jakub,
> Attached patch implements HLE support for __atomic_compare_exchange_n.
>
> So, to emit HLE prefix, it is possible to do:
> int
> foo2 (int *p, int oldv, int newv)
> {
>  __atomic_compare_exchange_n (p, &oldv, newv, 0, __ATOMIC_ACQUIRE |
> __ATOMIC_USE_HLE, __ATOMIC_ACQUIRE);
>  return oldv;
> }

This is wrong since HLE ACQUIRE/RELEASE has nothing to do with
C++ atomic acquire/release. You can have HLE RELEASE with C++
atomic acquire.


-- 
H.J.

Reply via email to