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.