src/hotspot/share/gc/shared/c2/barrierSetC2.cpp
changeset 51485 0c7040d1d1ca
parent 51482 d7029542d67a
child 51806 1ecc914fb707
--- a/src/hotspot/share/gc/shared/c2/barrierSetC2.cpp	Wed Aug 22 13:01:26 2018 +0200
+++ b/src/hotspot/share/gc/shared/c2/barrierSetC2.cpp	Wed Aug 22 13:06:33 2018 +0200
@@ -104,14 +104,18 @@
   bool pinned = (decorators & C2_PINNED_LOAD) != 0;
 
   bool in_native = (decorators & IN_NATIVE) != 0;
-  assert(!in_native, "not supported yet");
 
   MemNode::MemOrd mo = access.mem_node_mo();
   LoadNode::ControlDependency dep = pinned ? LoadNode::Pinned : LoadNode::DependsOnlyOnTest;
   Node* control = control_dependent ? kit->control() : NULL;
 
-  Node* load = kit->make_load(control, adr, val_type, access.type(), adr_type, mo,
-                              dep, requires_atomic_access, unaligned, mismatched);
+  Node* load;
+  if (in_native) {
+    load = kit->make_load(control, adr, val_type, access.type(), mo);
+  } else {
+    load = kit->make_load(control, adr, val_type, access.type(), adr_type, mo,
+                          dep, requires_atomic_access, unaligned, mismatched);
+  }
   access.set_raw_access(load);
 
   return load;