[cpp-threads] modes, pass 2

Peter Dimov pdimov at mmltd.net
Mon May 9 11:50:58 BST 2005


Doug Lea wrote:
> Presumably you mean ...
>
>> Now, with respect to PowerPC... The cookbook says that isync
>> is a LoadLoad barrier. I don't think so.

My understanding is that isync is hoist-load barrier in Alexander's terms 
because it cancels any speculative loads. After a branch it's an acquire 
because of the combination with the implied cchsb. I was wondering whether 
it's a #loadload as well; it could be technically possible for an earlier 
load to "sink" below a later load, even with an intervening isync. But the 
Load Hit Load rule seems to prevent that; it was the last remaining piece of 
the puzzle. :-) If isync is indeed a #loadload, the isync+eieio combination 
before RMW is a legitimate way to implement release as well. 





More information about the cpp-threads mailing list