< prev index next >

src/hotspot/share/opto/library_call.cpp

Print this page
rev 49175 : 8198950: AArch64: org.openjdk.jcstress.tests.varhandles.DekkerTest fails
Summary: Fix breakage to AArch64 code generation caused by JDK-8181211
Reviewed-by: duke

@@ -2576,11 +2576,12 @@
     if (p == NULL) {
       // To be valid, unsafe loads may depend on other conditions than
       // the one that guards them: pin the Load node
       LoadNode::ControlDependency dep = LoadNode::Pinned;
       Node* ctrl = control();
-      if (adr_type->isa_instptr()) {
+      // non volatile loads may be able to float
+      if (!need_mem_bar && adr_type->isa_instptr()) {
         assert(adr_type->meet(TypePtr::NULL_PTR) != adr_type->remove_speculative(), "should be not null");
         intptr_t offset = Type::OffsetBot;
         AddPNode::Ideal_base_and_offset(adr, &_gvn, offset);
         if (offset >= 0) {
           int s = Klass::layout_helper_size_in_bytes(adr_type->isa_instptr()->klass()->layout_helper());
< prev index next >