On Wed, Apr 11, 2012 at 06:40:03PM +0200, Andi Kleen wrote: > > But such a model isn't possible. The HLE bits are just some high bits > > ored into the memory model enum. So, if you use > > __ATOMIC_HLE_ACQUIRE, it is the same thing as > > __ATOMIC_HLE_ACQUIRE | __ATOMIC_RELAXED and thus it is a relaxed xacquire, > > not xacquire with default memory model. > > __atomic_* builtins were introduced already in GCC 4.7, so we need to do > > a compatible extension... > > That's true. Actually I see the values are defined by the compiler > at compile time, so it would be possible to move all one up?
No, that is IMHO not possible. They need to match the enum values that are part of libstdc++ ABI already, and not everybody is going to use the __ATOMIC_* macros anyway. Jakub