src/cpu/x86/vm/x86_32.ad

Print this page
rev 2892 : 7121140: Allocation paths require explicit memory synchronization operations for RMO systems
Summary: adds store store barrier after initialization of header and body of objects.
Reviewed-by:

@@ -7899,10 +7899,20 @@
   format %{ "MEMBAR-volatile (unnecessary so empty encoding)" %}
   ins_encode( );
   ins_pipe(empty);
 %}
 
+instruct unnecessary_membar_storestore() %{
+  match(MemBarStoreStore);
+  ins_cost(0);
+
+  size(0);
+  format %{ "!MEMBAR-storestore (unnecessary so empty encoding)" %}
+  ins_encode( );
+  ins_pipe(empty);
+%}
+
 //----------Move Instructions--------------------------------------------------
 instruct castX2P(eAXRegP dst, eAXRegI src) %{
   match(Set dst (CastX2P src));
   format %{ "# X2P  $dst, $src" %}
   ins_encode( /*empty encoding*/ );