< prev index next >

src/hotspot/share/runtime/stubRoutines.cpp

Print this page
8248238: Adding Windows support to OpenJDK on AArch64

Summary: Adding Windows support for AArch64

Contributed-by: Ludovic Henry <luhenry@microsoft.com>, Monica Beckwith <monica.beckwith@microsoft.com>
Reviewed-by:


 375   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::conjoint_##type##s_atomic),  sizeof(type)); \
 376   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::arrayof_conjoint_##type##s), (int)MAX2(sizeof(HeapWord), sizeof(type)))
 377 
 378   // Make sure all the copy runtime routines properly handle zero count
 379   TEST_COPYRTN(jbyte);
 380   TEST_COPYRTN(jshort);
 381   TEST_COPYRTN(jint);
 382   TEST_COPYRTN(jlong);
 383 
 384 #undef TEST_COPYRTN
 385 
 386   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::conjoint_words), sizeof(HeapWord));
 387   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::disjoint_words), sizeof(HeapWord));
 388   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::disjoint_words_atomic), sizeof(HeapWord));
 389   // Aligned to BytesPerLong
 390   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::aligned_conjoint_words), sizeof(jlong));
 391   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::aligned_disjoint_words), sizeof(jlong));
 392 
 393   // test safefetch routines
 394   // Not on Windows 32bit until 8074860 is fixed
 395 #if ! (defined(_WIN32) && defined(_M_IX86))
 396   test_safefetch32();
 397   test_safefetchN();
 398 #endif
 399 
 400 #endif
 401 }
 402 
 403 
 404 void stubRoutines_init1() { StubRoutines::initialize1(); }
 405 void stubRoutines_init2() { StubRoutines::initialize2(); }
 406 
 407 //
 408 // Default versions of arraycopy functions
 409 //
 410 
 411 JRT_LEAF(void, StubRoutines::jbyte_copy(jbyte* src, jbyte* dest, size_t count))
 412 #ifndef PRODUCT
 413   SharedRuntime::_jbyte_array_copy_ctr++;      // Slow-path byte array copy
 414 #endif // !PRODUCT
 415   Copy::conjoint_jbytes_atomic(src, dest, count);




 375   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::conjoint_##type##s_atomic),  sizeof(type)); \
 376   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::arrayof_conjoint_##type##s), (int)MAX2(sizeof(HeapWord), sizeof(type)))
 377 
 378   // Make sure all the copy runtime routines properly handle zero count
 379   TEST_COPYRTN(jbyte);
 380   TEST_COPYRTN(jshort);
 381   TEST_COPYRTN(jint);
 382   TEST_COPYRTN(jlong);
 383 
 384 #undef TEST_COPYRTN
 385 
 386   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::conjoint_words), sizeof(HeapWord));
 387   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::disjoint_words), sizeof(HeapWord));
 388   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::disjoint_words_atomic), sizeof(HeapWord));
 389   // Aligned to BytesPerLong
 390   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::aligned_conjoint_words), sizeof(jlong));
 391   test_arraycopy_func(CAST_FROM_FN_PTR(address, Copy::aligned_disjoint_words), sizeof(jlong));
 392 
 393   // test safefetch routines
 394   // Not on Windows 32bit until 8074860 is fixed
 395 #if ! (defined(_WIN32) && defined(_M_IX86)) && !defined(_M_ARM64)
 396   test_safefetch32();
 397   test_safefetchN();
 398 #endif
 399 
 400 #endif
 401 }
 402 
 403 
 404 void stubRoutines_init1() { StubRoutines::initialize1(); }
 405 void stubRoutines_init2() { StubRoutines::initialize2(); }
 406 
 407 //
 408 // Default versions of arraycopy functions
 409 //
 410 
 411 JRT_LEAF(void, StubRoutines::jbyte_copy(jbyte* src, jbyte* dest, size_t count))
 412 #ifndef PRODUCT
 413   SharedRuntime::_jbyte_array_copy_ctr++;      // Slow-path byte array copy
 414 #endif // !PRODUCT
 415   Copy::conjoint_jbytes_atomic(src, dest, count);


< prev index next >