diff -r 2730e629e32d -r 0c7040d1d1ca src/hotspot/share/gc/shared/c2/barrierSetC2.cpp --- 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;