Hello! > > 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. > > It makes sense to combine the two. On x86 C++ atomic acquire/release > means the compiler cannot move references outside. For HLE > we really want the same, otherwise some of the memory references > inside the transaction may not be transactional. > > So I think HLE_ACQUIRE should imply C++ acquire > and HLE_RELEASE imply C++ release.
In this case, can we reverse this sentence and just emit "lock xacquire" for MEMMODEL_ACQUIRE and "lock xrelease" for MEMMODEL_RELEASE ? Do we need separate HLE_* defines or can we somehow recycle existing C++11 memmodel defines? Uros.