408 JRT_LEAF(void, StubRoutines::oop_copy(oop* src, oop* dest, size_t count)) |
408 JRT_LEAF(void, StubRoutines::oop_copy(oop* src, oop* dest, size_t count)) |
409 #ifndef PRODUCT |
409 #ifndef PRODUCT |
410 SharedRuntime::_oop_array_copy_ctr++; // Slow-path oop array copy |
410 SharedRuntime::_oop_array_copy_ctr++; // Slow-path oop array copy |
411 #endif // !PRODUCT |
411 #endif // !PRODUCT |
412 assert(count != 0, "count should be non-zero"); |
412 assert(count != 0, "count should be non-zero"); |
413 HeapAccess<>::oop_arraycopy(NULL, NULL, (HeapWord*)src, (HeapWord*)dest, count); |
413 ArrayAccess<>::oop_arraycopy_raw((HeapWord*)src, (HeapWord*)dest, count); |
414 JRT_END |
414 JRT_END |
415 |
415 |
416 JRT_LEAF(void, StubRoutines::oop_copy_uninit(oop* src, oop* dest, size_t count)) |
416 JRT_LEAF(void, StubRoutines::oop_copy_uninit(oop* src, oop* dest, size_t count)) |
417 #ifndef PRODUCT |
417 #ifndef PRODUCT |
418 SharedRuntime::_oop_array_copy_ctr++; // Slow-path oop array copy |
418 SharedRuntime::_oop_array_copy_ctr++; // Slow-path oop array copy |
419 #endif // !PRODUCT |
419 #endif // !PRODUCT |
420 assert(count != 0, "count should be non-zero"); |
420 assert(count != 0, "count should be non-zero"); |
421 HeapAccess<AS_DEST_NOT_INITIALIZED>::oop_arraycopy(NULL, NULL, (HeapWord*)src, (HeapWord*)dest, count); |
421 ArrayAccess<AS_DEST_NOT_INITIALIZED>::oop_arraycopy_raw((HeapWord*)src, (HeapWord*)dest, count); |
422 JRT_END |
422 JRT_END |
423 |
423 |
424 JRT_LEAF(void, StubRoutines::arrayof_jbyte_copy(HeapWord* src, HeapWord* dest, size_t count)) |
424 JRT_LEAF(void, StubRoutines::arrayof_jbyte_copy(HeapWord* src, HeapWord* dest, size_t count)) |
425 #ifndef PRODUCT |
425 #ifndef PRODUCT |
426 SharedRuntime::_jbyte_array_copy_ctr++; // Slow-path byte array copy |
426 SharedRuntime::_jbyte_array_copy_ctr++; // Slow-path byte array copy |
452 JRT_LEAF(void, StubRoutines::arrayof_oop_copy(HeapWord* src, HeapWord* dest, size_t count)) |
452 JRT_LEAF(void, StubRoutines::arrayof_oop_copy(HeapWord* src, HeapWord* dest, size_t count)) |
453 #ifndef PRODUCT |
453 #ifndef PRODUCT |
454 SharedRuntime::_oop_array_copy_ctr++; // Slow-path oop array copy |
454 SharedRuntime::_oop_array_copy_ctr++; // Slow-path oop array copy |
455 #endif // !PRODUCT |
455 #endif // !PRODUCT |
456 assert(count != 0, "count should be non-zero"); |
456 assert(count != 0, "count should be non-zero"); |
457 HeapAccess<ARRAYCOPY_ARRAYOF>::oop_arraycopy(NULL, NULL, src, dest, count); |
457 ArrayAccess<ARRAYCOPY_ARRAYOF>::oop_arraycopy_raw(src, dest, count); |
458 JRT_END |
458 JRT_END |
459 |
459 |
460 JRT_LEAF(void, StubRoutines::arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count)) |
460 JRT_LEAF(void, StubRoutines::arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count)) |
461 #ifndef PRODUCT |
461 #ifndef PRODUCT |
462 SharedRuntime::_oop_array_copy_ctr++; // Slow-path oop array copy |
462 SharedRuntime::_oop_array_copy_ctr++; // Slow-path oop array copy |
463 #endif // !PRODUCT |
463 #endif // !PRODUCT |
464 assert(count != 0, "count should be non-zero"); |
464 assert(count != 0, "count should be non-zero"); |
465 HeapAccess<ARRAYCOPY_ARRAYOF | AS_DEST_NOT_INITIALIZED>::oop_arraycopy(NULL, NULL, src, dest, count); |
465 ArrayAccess<ARRAYCOPY_ARRAYOF | AS_DEST_NOT_INITIALIZED>::oop_arraycopy_raw(src, dest, count); |
466 JRT_END |
466 JRT_END |
467 |
467 |
468 address StubRoutines::select_fill_function(BasicType t, bool aligned, const char* &name) { |
468 address StubRoutines::select_fill_function(BasicType t, bool aligned, const char* &name) { |
469 #define RETURN_STUB(xxx_fill) { \ |
469 #define RETURN_STUB(xxx_fill) { \ |
470 name = #xxx_fill; \ |
470 name = #xxx_fill; \ |