2275 } |
2275 } |
2276 if (aligned) { |
2276 if (aligned) { |
2277 decorators |= ARRAYCOPY_ALIGNED; |
2277 decorators |= ARRAYCOPY_ALIGNED; |
2278 } |
2278 } |
2279 |
2279 |
2280 BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler(); |
2280 BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
2281 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, from, to, count); |
2281 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, from, to, count); |
2282 |
2282 |
2283 assert_clean_int(count, O3); // Make sure 'count' is clean int. |
2283 assert_clean_int(count, O3); // Make sure 'count' is clean int. |
2284 if (UseCompressedOops) { |
2284 if (UseCompressedOops) { |
2285 generate_disjoint_int_copy_core(aligned); |
2285 generate_disjoint_int_copy_core(aligned); |
2332 } |
2332 } |
2333 if (aligned) { |
2333 if (aligned) { |
2334 decorators |= ARRAYCOPY_ALIGNED; |
2334 decorators |= ARRAYCOPY_ALIGNED; |
2335 } |
2335 } |
2336 |
2336 |
2337 BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler(); |
2337 BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
2338 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, from, to, count); |
2338 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, from, to, count); |
2339 |
2339 |
2340 if (UseCompressedOops) { |
2340 if (UseCompressedOops) { |
2341 generate_conjoint_int_copy_core(aligned); |
2341 generate_conjoint_int_copy_core(aligned); |
2342 } else { |
2342 } else { |
2449 DecoratorSet decorators = ARRAYCOPY_CHECKCAST; |
2449 DecoratorSet decorators = ARRAYCOPY_CHECKCAST; |
2450 if (dest_uninitialized) { |
2450 if (dest_uninitialized) { |
2451 decorators |= AS_DEST_NOT_INITIALIZED; |
2451 decorators |= AS_DEST_NOT_INITIALIZED; |
2452 } |
2452 } |
2453 |
2453 |
2454 BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler(); |
2454 BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
2455 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, O0_from, O1_to, O2_count); |
2455 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, O0_from, O1_to, O2_count); |
2456 |
2456 |
2457 Label load_element, store_element, do_epilogue, fail, done; |
2457 Label load_element, store_element, do_epilogue, fail, done; |
2458 __ addcc(O2_count, 0, G1_remain); // initialize loop index, and test it |
2458 __ addcc(O2_count, 0, G1_remain); // initialize loop index, and test it |
2459 __ brx(Assembler::notZero, false, Assembler::pt, load_element); |
2459 __ brx(Assembler::notZero, false, Assembler::pt, load_element); |