< prev index next >

src/share/vm/c1/c1_GraphBuilder.cpp

Print this page
rev 9031 : 8138894: C1: Support IRIW on weak memory platforms
Reviewed-by:

*** 1436,1446 **** call_register_finalizer(); } bool need_mem_bar = false; if (method()->name() == ciSymbol::object_initializer_name() && ! (scope()->wrote_final() || (AlwaysSafeConstructors && scope()->wrote_fields()))) { need_mem_bar = true; } // Check to see whether we are inlining. If so, Return // instructions become Gotos to the continuation point. --- 1436,1448 ---- call_register_finalizer(); } bool need_mem_bar = false; if (method()->name() == ciSymbol::object_initializer_name() && ! (scope()->wrote_final() || (AlwaysSafeConstructors && scope()->wrote_fields()) ! || (support_IRIW_for_not_multiple_copy_atomic_cpu && scope()->wrote_volatile()) ! )){ need_mem_bar = true; } // Check to see whether we are inlining. If so, Return // instructions become Gotos to the continuation point.
*** 1552,1561 **** --- 1554,1566 ---- scope()->set_wrote_final(); } if (code == Bytecodes::_putfield) { scope()->set_wrote_fields(); + if (field->is_volatile()) { + scope()->set_wrote_volatile(); + } } const int offset = !needs_patching ? field->offset() : -1; switch (code) { case Bytecodes::_getstatic: {
< prev index next >