< prev index next >

src/hotspot/cpu/sparc/c1_LIRAssembler_sparc.cpp

remove c1 runtime1 medium slowpath

*** 1876,1908 **** __ mov(src_pos, O1); __ mov(dst, O2); __ mov(dst_pos, O3); __ mov(length, O4); address copyfunc_addr = StubRoutines::generic_arraycopy(); - if (copyfunc_addr == NULL) { // Use C version if stub was not generated - __ call_VM_leaf(tmp, CAST_FROM_FN_PTR(address, Runtime1::arraycopy)); - } else { #ifndef PRODUCT ! if (PrintC1Statistics) { ! address counter = (address)&Runtime1::_generic_arraycopystub_cnt; ! __ inc_counter(counter, G1, G3); ! } ! #endif ! __ call_VM_leaf(tmp, copyfunc_addr); } ! if (copyfunc_addr != NULL) { ! __ xor3(O0, -1, tmp); ! __ sub(length, tmp, length); ! __ add(src_pos, tmp, src_pos); ! __ cmp_zero_and_br(Assembler::less, O0, *stub->entry()); ! __ delayed()->add(dst_pos, tmp, dst_pos); ! } else { ! __ cmp_zero_and_br(Assembler::less, O0, *stub->entry()); ! __ delayed()->nop(); ! } __ bind(*stub->continuation()); return; } assert(default_type != NULL && default_type->is_array_klass(), "must be true at this point"); --- 1876,1900 ---- __ mov(src_pos, O1); __ mov(dst, O2); __ mov(dst_pos, O3); __ mov(length, O4); address copyfunc_addr = StubRoutines::generic_arraycopy(); + assert(copyfunc_addr != NULL, "generic arraycopy stub required"); #ifndef PRODUCT ! if (PrintC1Statistics) { ! address counter = (address)&Runtime1::_generic_arraycopystub_cnt; ! __ inc_counter(counter, G1, G3); } + #endif + __ call_VM_leaf(tmp, copyfunc_addr); ! __ xor3(O0, -1, tmp); ! __ sub(length, tmp, length); ! __ add(src_pos, tmp, src_pos); ! __ cmp_zero_and_br(Assembler::less, O0, *stub->entry()); ! __ delayed()->add(dst_pos, tmp, dst_pos); __ bind(*stub->continuation()); return; } assert(default_type != NULL && default_type->is_array_klass(), "must be true at this point");
< prev index next >