8198950: AArch64: org.openjdk.jcstress.tests.varhandles.DekkerTest fails
Fix breakage to AArch64 code generation caused by JDK-8181211
Reviewed-by: thartmann, roland, kvn, vlivanov, jrose
diff --git a/src/hotspot/share/opto/library_call.cpp b/src/hotspot/share/opto/library_call.cpp
index f7bb934..c94d23c 100644
--- a/src/hotspot/share/opto/library_call.cpp
+++ b/src/hotspot/share/opto/library_call.cpp
@@ -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);