4328 Node* obj_length = load_array_length(obj); |
4328 Node* obj_length = load_array_length(obj); |
4329 Node* obj_size = NULL; |
4329 Node* obj_size = NULL; |
4330 Node* alloc_obj = new_array(obj_klass, obj_length, 0, &obj_size); // no arguments to push |
4330 Node* alloc_obj = new_array(obj_klass, obj_length, 0, &obj_size); // no arguments to push |
4331 |
4331 |
4332 BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); |
4332 BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); |
4333 if (bs->array_copy_requires_gc_barriers(T_OBJECT)) { |
4333 if (bs->array_copy_requires_gc_barriers(true, T_OBJECT, true, BarrierSetC2::Parsing)) { |
4334 // If it is an oop array, it requires very special treatment, |
4334 // If it is an oop array, it requires very special treatment, |
4335 // because gc barriers are required when accessing the array. |
4335 // because gc barriers are required when accessing the array. |
4336 Node* is_obja = generate_objArray_guard(obj_klass, (RegionNode*)NULL); |
4336 Node* is_obja = generate_objArray_guard(obj_klass, (RegionNode*)NULL); |
4337 if (is_obja != NULL) { |
4337 if (is_obja != NULL) { |
4338 PreserveJVMState pjvms2(this); |
4338 PreserveJVMState pjvms2(this); |