--- 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;