<html><body><div style="color:#000; background-color:#fff; font-family:Courier New, courier, monaco, monospace, sans-serif;font-size:12pt"><div style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 12pt;"><span>Summarized in this blog post here:</span></div><div style="background-color: transparent;"><span>http://psy-lob-saw.blogspot.com/2013/08/memory-barriers-are-not-free.html<br></span></div><div style="background-color: transparent; color: rgb(0, 0, 0); font-size: 16px; font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-style: normal;"><span>Please point out any mistakes/omissions/oversight.</span></div><div style="background-color: transparent; color: rgb(0, 0, 0); font-size: 16px; font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-style: normal;"><span>Thanks for the help guys.</span></div><div style="font-family: 'Courier New', courier, monaco, monospace, sans-serif;
 font-size: 12pt;"><br></div>  <div style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 12pt;"> <div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt;"> <div dir="ltr"> <hr size="1">  <font size="2" face="Arial"> <b><span style="font-weight:bold;">From:</span></b> Michael Barker <mikeb01@gmail.com><br> <b><span style="font-weight: bold;">To:</span></b> Nitsan Wakart <nitsanw@yahoo.com> <br><b><span style="font-weight: bold;">Cc:</span></b> Vitaly Davidovich <vitalyd@gmail.com>; "concurrency-interest@cs.oswego.edu" <concurrency-interest@cs.oswego.edu> <br> <b><span style="font-weight: bold;">Sent:</span></b> Saturday, August 3, 2013 12:33 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [concurrency-interest] x86 NOOP memory barriers<br> </font> </div> <div class="y_msg_container"><br>> So because a putOrdered is a write to memory it cannot be
 reordered with<br>> other writes, as per "8.2.3.2 Neither Loads Nor Stores Are Reordered with<br>> Like Operations".<br><br>Yes in combination with the compiler reordering restrictions.  In<br>Hotspot this is implemented within the<br>LibraryCall::inline_unsafe_ordered_store (library_call.cpp) call.<br>Look for:<br><br>insert_mem_bar(Op_MemBarRelease);<br>insert_mem_bar(Op_MemBarCPUOrder);<br><br>Mike.<br><br><br></div> </div> </div>  </div></body></html>