src/hotspot/share/gc/shared/c2/barrierSetC2.cpp
changeset 51485 0c7040d1d1ca
parent 51482 d7029542d67a
child 51806 1ecc914fb707
equal deleted inserted replaced
51484:2730e629e32d 51485:0c7040d1d1ca
   102   bool unaligned = (decorators & C2_UNALIGNED) != 0;
   102   bool unaligned = (decorators & C2_UNALIGNED) != 0;
   103   bool control_dependent = (decorators & C2_CONTROL_DEPENDENT_LOAD) != 0;
   103   bool control_dependent = (decorators & C2_CONTROL_DEPENDENT_LOAD) != 0;
   104   bool pinned = (decorators & C2_PINNED_LOAD) != 0;
   104   bool pinned = (decorators & C2_PINNED_LOAD) != 0;
   105 
   105 
   106   bool in_native = (decorators & IN_NATIVE) != 0;
   106   bool in_native = (decorators & IN_NATIVE) != 0;
   107   assert(!in_native, "not supported yet");
       
   108 
   107 
   109   MemNode::MemOrd mo = access.mem_node_mo();
   108   MemNode::MemOrd mo = access.mem_node_mo();
   110   LoadNode::ControlDependency dep = pinned ? LoadNode::Pinned : LoadNode::DependsOnlyOnTest;
   109   LoadNode::ControlDependency dep = pinned ? LoadNode::Pinned : LoadNode::DependsOnlyOnTest;
   111   Node* control = control_dependent ? kit->control() : NULL;
   110   Node* control = control_dependent ? kit->control() : NULL;
   112 
   111 
   113   Node* load = kit->make_load(control, adr, val_type, access.type(), adr_type, mo,
   112   Node* load;
   114                               dep, requires_atomic_access, unaligned, mismatched);
   113   if (in_native) {
       
   114     load = kit->make_load(control, adr, val_type, access.type(), mo);
       
   115   } else {
       
   116     load = kit->make_load(control, adr, val_type, access.type(), adr_type, mo,
       
   117                           dep, requires_atomic_access, unaligned, mismatched);
       
   118   }
   115   access.set_raw_access(load);
   119   access.set_raw_access(load);
   116 
   120 
   117   return load;
   121   return load;
   118 }
   122 }
   119 
   123