src/share/vm/c1/c1_Runtime1.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File c1-coops Sdiff src/share/vm/c1

src/share/vm/c1/c1_Runtime1.cpp

Print this page




1160   _primitive_arraycopy_cnt++;
1161 #endif
1162 
1163   if (length == 0) return;
1164   // Not guaranteed to be word atomic, but that doesn't matter
1165   // for anything but an oop array, which is covered by oop_arraycopy.
1166   Copy::conjoint_jbytes(src, dst, length);
1167 JRT_END
1168 
1169 JRT_LEAF(void, Runtime1::oop_arraycopy(HeapWord* src, HeapWord* dst, int num))
1170 #ifndef PRODUCT
1171   _oop_arraycopy_cnt++;
1172 #endif
1173 
1174   if (num == 0) return;
1175   BarrierSet* bs = Universe::heap()->barrier_set();
1176   assert(bs->has_write_ref_array_opt(), "Barrier set must have ref array opt");
1177   assert(bs->has_write_ref_array_pre_opt(), "For pre-barrier as well.");
1178   if (UseCompressedOops) {
1179     bs->write_ref_array_pre((narrowOop*)dst, num);

1180   } else {
1181     bs->write_ref_array_pre((oop*)dst, num);
1182   }
1183   Copy::conjoint_oops_atomic((oop*) src, (oop*) dst, num);

1184   bs->write_ref_array(dst, num);
1185 JRT_END
1186 
1187 
1188 #ifndef PRODUCT
1189 void Runtime1::print_statistics() {
1190   tty->print_cr("C1 Runtime statistics:");
1191   tty->print_cr(" _resolve_invoke_virtual_cnt:     %d", SharedRuntime::_resolve_virtual_ctr);
1192   tty->print_cr(" _resolve_invoke_opt_virtual_cnt: %d", SharedRuntime::_resolve_opt_virtual_ctr);
1193   tty->print_cr(" _resolve_invoke_static_cnt:      %d", SharedRuntime::_resolve_static_ctr);
1194   tty->print_cr(" _handle_wrong_method_cnt:        %d", SharedRuntime::_wrong_method_ctr);
1195   tty->print_cr(" _ic_miss_cnt:                    %d", SharedRuntime::_ic_miss_ctr);
1196   tty->print_cr(" _generic_arraycopy_cnt:          %d", _generic_arraycopy_cnt);
1197   tty->print_cr(" _primitive_arraycopy_cnt:        %d", _primitive_arraycopy_cnt);
1198   tty->print_cr(" _oop_arraycopy_cnt:              %d", _oop_arraycopy_cnt);
1199   tty->print_cr(" _arraycopy_slowcase_cnt:         %d", _arraycopy_slowcase_cnt);
1200 
1201   tty->print_cr(" _new_type_array_slowcase_cnt:    %d", _new_type_array_slowcase_cnt);
1202   tty->print_cr(" _new_object_array_slowcase_cnt:  %d", _new_object_array_slowcase_cnt);
1203   tty->print_cr(" _new_instance_slowcase_cnt:      %d", _new_instance_slowcase_cnt);


1160   _primitive_arraycopy_cnt++;
1161 #endif
1162 
1163   if (length == 0) return;
1164   // Not guaranteed to be word atomic, but that doesn't matter
1165   // for anything but an oop array, which is covered by oop_arraycopy.
1166   Copy::conjoint_jbytes(src, dst, length);
1167 JRT_END
1168 
1169 JRT_LEAF(void, Runtime1::oop_arraycopy(HeapWord* src, HeapWord* dst, int num))
1170 #ifndef PRODUCT
1171   _oop_arraycopy_cnt++;
1172 #endif
1173 
1174   if (num == 0) return;
1175   BarrierSet* bs = Universe::heap()->barrier_set();
1176   assert(bs->has_write_ref_array_opt(), "Barrier set must have ref array opt");
1177   assert(bs->has_write_ref_array_pre_opt(), "For pre-barrier as well.");
1178   if (UseCompressedOops) {
1179     bs->write_ref_array_pre((narrowOop*)dst, num);
1180     Copy::conjoint_oops_atomic((narrowOop*) src, (narrowOop*) dst, num);
1181   } else {
1182     bs->write_ref_array_pre((oop*)dst, num);

1183     Copy::conjoint_oops_atomic((oop*) src, (oop*) dst, num);
1184   }
1185   bs->write_ref_array(dst, num);
1186 JRT_END
1187 
1188 
1189 #ifndef PRODUCT
1190 void Runtime1::print_statistics() {
1191   tty->print_cr("C1 Runtime statistics:");
1192   tty->print_cr(" _resolve_invoke_virtual_cnt:     %d", SharedRuntime::_resolve_virtual_ctr);
1193   tty->print_cr(" _resolve_invoke_opt_virtual_cnt: %d", SharedRuntime::_resolve_opt_virtual_ctr);
1194   tty->print_cr(" _resolve_invoke_static_cnt:      %d", SharedRuntime::_resolve_static_ctr);
1195   tty->print_cr(" _handle_wrong_method_cnt:        %d", SharedRuntime::_wrong_method_ctr);
1196   tty->print_cr(" _ic_miss_cnt:                    %d", SharedRuntime::_ic_miss_ctr);
1197   tty->print_cr(" _generic_arraycopy_cnt:          %d", _generic_arraycopy_cnt);
1198   tty->print_cr(" _primitive_arraycopy_cnt:        %d", _primitive_arraycopy_cnt);
1199   tty->print_cr(" _oop_arraycopy_cnt:              %d", _oop_arraycopy_cnt);
1200   tty->print_cr(" _arraycopy_slowcase_cnt:         %d", _arraycopy_slowcase_cnt);
1201 
1202   tty->print_cr(" _new_type_array_slowcase_cnt:    %d", _new_type_array_slowcase_cnt);
1203   tty->print_cr(" _new_object_array_slowcase_cnt:  %d", _new_object_array_slowcase_cnt);
1204   tty->print_cr(" _new_instance_slowcase_cnt:      %d", _new_instance_slowcase_cnt);
src/share/vm/c1/c1_Runtime1.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File