--- 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;