changeset 49754 | ee93c1087584 |
parent 49484 | ee8fa73b90f9 |
child 50162 | f9fe56417050 |
child 56448 | 76d86de267b9 |
49753:46f2dc7c4c39 | 49754:ee93c1087584 |
---|---|
2030 } |
2030 } |
2031 if (aligned) { |
2031 if (aligned) { |
2032 decorators |= ARRAYCOPY_ALIGNED; |
2032 decorators |= ARRAYCOPY_ALIGNED; |
2033 } |
2033 } |
2034 |
2034 |
2035 BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler(); |
2035 BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
2036 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, R3_ARG1, R4_ARG2, R5_ARG3, noreg, noreg); |
2036 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, R3_ARG1, R4_ARG2, R5_ARG3, noreg, noreg); |
2037 |
2037 |
2038 if (UseCompressedOops) { |
2038 if (UseCompressedOops) { |
2039 array_overlap_test(nooverlap_target, 2); |
2039 array_overlap_test(nooverlap_target, 2); |
2040 generate_conjoint_int_copy_core(aligned); |
2040 generate_conjoint_int_copy_core(aligned); |
2069 } |
2069 } |
2070 if (aligned) { |
2070 if (aligned) { |
2071 decorators |= ARRAYCOPY_ALIGNED; |
2071 decorators |= ARRAYCOPY_ALIGNED; |
2072 } |
2072 } |
2073 |
2073 |
2074 BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler(); |
2074 BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
2075 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, R3_ARG1, R4_ARG2, R5_ARG3, noreg, noreg); |
2075 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, R3_ARG1, R4_ARG2, R5_ARG3, noreg, noreg); |
2076 |
2076 |
2077 if (UseCompressedOops) { |
2077 if (UseCompressedOops) { |
2078 generate_disjoint_int_copy_core(aligned); |
2078 generate_disjoint_int_copy_core(aligned); |
2079 } else { |
2079 } else { |
2162 DecoratorSet decorators = ARRAYCOPY_CHECKCAST; |
2162 DecoratorSet decorators = ARRAYCOPY_CHECKCAST; |
2163 if (dest_uninitialized) { |
2163 if (dest_uninitialized) { |
2164 decorators |= AS_DEST_NOT_INITIALIZED; |
2164 decorators |= AS_DEST_NOT_INITIALIZED; |
2165 } |
2165 } |
2166 |
2166 |
2167 BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler(); |
2167 BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
2168 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, R3_from, R4_to, R5_count, /* preserve: */ R6_ckoff, R7_ckval); |
2168 bs->arraycopy_prologue(_masm, decorators, T_OBJECT, R3_from, R4_to, R5_count, /* preserve: */ R6_ckoff, R7_ckval); |
2169 |
2169 |
2170 //inc_counter_np(SharedRuntime::_checkcast_array_copy_ctr, R12_tmp, R3_RET); |
2170 //inc_counter_np(SharedRuntime::_checkcast_array_copy_ctr, R12_tmp, R3_RET); |
2171 |
2171 |
2172 Label load_element, store_element, store_null, success, do_epilogue; |
2172 Label load_element, store_element, store_null, success, do_epilogue; |