I’ve now given a more accurate semantics to RMW instructions. The instruction RMW(l,v1,v2,mo_success,mo_failure) now becomes either a RMW(l,v1,v2) event with attribute [mo_success], or a Read(l,v1) event with attribute [mo_failure]. I still don’t think this is quite correct, but I’m sure it’s almost right!