https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80878

--- Comment #2 from admin_public at liblfds dot org ---
Am I right in understanding your comment to mean 128 bit CAS is no longer
supported for x86_64?

I publish a library of lock-free data structures, liblfds.  It has some users,
include AT&T, Red Hat and Xen.

Contigious double-word compare-and-swap is necessary for a range of such data
structures, and even though this means only aarch64, arm, x86_64 and x86, it is
still of immense value, as these are common platforms.

In particular, all three of those users would find the data structures they are
using no longer compile with 7.1.0.

This is not death-and-end-of-the-world, however.  The library provides an
abstraction layer to mask platform differences, and so I would need then to add
an additional abstraction layer for GCC 7.1.0 and later on x86_64, where I use
inline assembly for 128-bit CAS (such an abstraction already exists in fact for
early versions of GCC which lack -mcx16).

One minor note : the "-mcx16" command is specific to x86_64 and so its removal
means no more double word CAS on that platform.  However, aarch64, arm and x86
will still continue to support double word CAS, as they do so natively and
without the need for a special argument to GCC.

Reply via email to