> 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:
foo2 (int *p, int oldv, int newv)
  __atomic_compare_exchange_n (p, &oldv, newv, 0, __ATOMIC_ACQUIRE |
  return oldv;
Which will generate:
        lock xacquire cmpxchgl  %esi, (%rcx)


PS: No tests and TARGET_HLE defined yet.

Thanks, K

Attachment: hle-rfc-2.gcc.patch
Description: Binary data

Reply via email to