8198950: AArch64: org.openjdk.jcstress.tests.varhandles.DekkerTest fails jdk-10+46
authoradinn
Mon, 05 Mar 2018 13:18:55 +0000
changeset 49796 6fa770f9f8ab
parent 49074 a487515924b7
child 49797 b09e56145e11
8198950: AArch64: org.openjdk.jcstress.tests.varhandles.DekkerTest fails Summary: Fix breakage to AArch64 code generation caused by JDK-8181211 Reviewed-by: thartmann, roland, kvn, vlivanov, jrose
src/hotspot/share/opto/library_call.cpp
--- a/src/hotspot/share/opto/library_call.cpp	Tue Feb 27 20:48:06 2018 +0000
+++ b/src/hotspot/share/opto/library_call.cpp	Mon Mar 05 13:18:55 2018 +0000
@@ -2578,7 +2578,8 @@
       // 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);