On Thu, May 23, 2024 at 04:26:23PM +0200, Hernan Ponce de Leon wrote: > On 5/23/2024 4:05 PM, Alan Stern wrote: > > Overall, it seems better to have herd7 assign the right tag, but change > > the way the .def file works so that it can tell herd7 which tag to use > > in each of the success and failure cases. > > I am not fully sure how herd7 uses the .def file, but I guess something like > adding a second memory tag to __cmpxchg could work > > cmpxchg(X,V,W) __cmpxchg{mb, once}(X,V,W) > cmpxchg_relaxed(X,V,W) __cmpxchg{once, once}(X,V,W) > cmpxchg_acquire(X,V,W) __cmpxchg{acquire, acquire}(X,V,W) > cmpxchg_release(X,V,W) __cmpxchg{release, release}(X,V,W) Right, except that the last two should be: cmpxchg_acquire(X,V,W) __cmpxchg{acquire, once}(X,V,W) cmpxchg_release(X,V,W) __cmpxchg{release, once}(X,V,W) Alan