hotspot/src/share/vm/c1/c1_GraphBuilder.cpp
changeset 34160 3240e478a30e
parent 33633 8a83967eb351
child 34174 4db2fb26dc49
--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp	Fri Nov 06 10:06:51 2015 -1000
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp	Wed Oct 21 10:37:50 2015 +0200
@@ -1438,7 +1438,9 @@
 
   bool need_mem_bar = false;
   if (method()->name() == ciSymbol::object_initializer_name() &&
-      (scope()->wrote_final() || (AlwaysSafeConstructors && scope()->wrote_fields()))) {
+      (scope()->wrote_final() || (AlwaysSafeConstructors && scope()->wrote_fields())
+                              || (support_IRIW_for_not_multiple_copy_atomic_cpu && scope()->wrote_volatile())
+     )){
     need_mem_bar = true;
   }
 
@@ -1554,6 +1556,9 @@
 
   if (code == Bytecodes::_putfield) {
     scope()->set_wrote_fields();
+    if (field->is_volatile()) {
+      scope()->set_wrote_volatile();
+    }
   }
 
   const int offset = !needs_patching ? field->offset() : -1;