src/hotspot/share/opto/macroArrayCopy.cpp
changeset 58217 b1a394e15ae9
parent 52424 e3d79743f57d
child 58273 08a5148e7c4e
equal deleted inserted replaced
58216:f43c809a27bd 58217:b1a394e15ae9
  1091   Node* dest_offset = ac->in(ArrayCopyNode::DestPos);
  1091   Node* dest_offset = ac->in(ArrayCopyNode::DestPos);
  1092   Node* length = ac->in(ArrayCopyNode::Length);
  1092   Node* length = ac->in(ArrayCopyNode::Length);
  1093   MergeMemNode* merge_mem = NULL;
  1093   MergeMemNode* merge_mem = NULL;
  1094 
  1094 
  1095   if (ac->is_clonebasic()) {
  1095   if (ac->is_clonebasic()) {
  1096     assert (src_offset == NULL && dest_offset == NULL, "for clone offsets should be null");
       
  1097     Node* mem = ac->in(TypeFunc::Memory);
       
  1098     const char* copyfunc_name = "arraycopy";
       
  1099     address     copyfunc_addr =
       
  1100       basictype2arraycopy(T_LONG, NULL, NULL,
       
  1101                           true, copyfunc_name, true);
       
  1102 
       
  1103     const TypePtr* raw_adr_type = TypeRawPtr::BOTTOM;
       
  1104     const TypeFunc* call_type = OptoRuntime::fast_arraycopy_Type();
       
  1105 
       
  1106     Node* call = make_leaf_call(ctrl, mem, call_type, copyfunc_addr, copyfunc_name, raw_adr_type, src, dest, length XTOP);
       
  1107     transform_later(call);
       
  1108 
       
  1109     BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
  1096     BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
  1110     bs->clone_barrier_at_expansion(ac, call, _igvn);
  1097     bs->clone_at_expansion(this, ac);
  1111 
       
  1112     return;
  1098     return;
  1113   } else if (ac->is_copyof() || ac->is_copyofrange() || ac->is_cloneoop()) {
  1099   } else if (ac->is_copyof() || ac->is_copyofrange() || ac->is_cloneoop()) {
  1114     Node* mem = ac->in(TypeFunc::Memory);
  1100     Node* mem = ac->in(TypeFunc::Memory);
  1115     merge_mem = MergeMemNode::make(mem);
  1101     merge_mem = MergeMemNode::make(mem);
  1116     transform_later(merge_mem);
  1102     transform_later(merge_mem);