4363 StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long(); 4364 StubRoutines::_atomic_add_entry = generate_atomic_add(); 4365 StubRoutines::_atomic_add_ptr_entry = generate_atomic_add_ptr(); 4366 StubRoutines::_fence_entry = generate_orderaccess_fence(); 4367 4368 StubRoutines::_handler_for_unsafe_access_entry = 4369 generate_handler_for_unsafe_access(); 4370 4371 // platform dependent 4372 StubRoutines::x86::_get_previous_fp_entry = generate_get_previous_fp(); 4373 StubRoutines::x86::_get_previous_sp_entry = generate_get_previous_sp(); 4374 4375 StubRoutines::x86::_verify_mxcsr_entry = generate_verify_mxcsr(); 4376 4377 // Build this early so it's available for the interpreter. 4378 StubRoutines::_throw_StackOverflowError_entry = 4379 generate_throw_exception("StackOverflowError throw_exception", 4380 CAST_FROM_FN_PTR(address, 4381 SharedRuntime:: 4382 throw_StackOverflowError)); 4383 if (UseCRC32Intrinsics) { 4384 // set table address before stub generation which use it 4385 StubRoutines::_crc_table_adr = (address)StubRoutines::x86::_crc_table; 4386 StubRoutines::_updateBytesCRC32 = generate_updateBytesCRC32(); 4387 } 4388 4389 if (UseCRC32CIntrinsics) { 4390 bool supports_clmul = VM_Version::supports_clmul(); 4391 StubRoutines::x86::generate_CRC32C_table(supports_clmul); 4392 StubRoutines::_crc32c_table_addr = (address)StubRoutines::x86::_crc32c_table; 4393 StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C(supports_clmul); 4394 } 4395 StubRoutines::_dexp = generate_libmExp(); 4396 } 4397 4398 void generate_all() { 4399 // Generates all stubs and initializes the entry points 4400 4401 // These entry points require SharedInfo::stack0 to be set up in 4402 // non-core builds and need to be relocatable, so they each | 4363 StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long(); 4364 StubRoutines::_atomic_add_entry = generate_atomic_add(); 4365 StubRoutines::_atomic_add_ptr_entry = generate_atomic_add_ptr(); 4366 StubRoutines::_fence_entry = generate_orderaccess_fence(); 4367 4368 StubRoutines::_handler_for_unsafe_access_entry = 4369 generate_handler_for_unsafe_access(); 4370 4371 // platform dependent 4372 StubRoutines::x86::_get_previous_fp_entry = generate_get_previous_fp(); 4373 StubRoutines::x86::_get_previous_sp_entry = generate_get_previous_sp(); 4374 4375 StubRoutines::x86::_verify_mxcsr_entry = generate_verify_mxcsr(); 4376 4377 // Build this early so it's available for the interpreter. 4378 StubRoutines::_throw_StackOverflowError_entry = 4379 generate_throw_exception("StackOverflowError throw_exception", 4380 CAST_FROM_FN_PTR(address, 4381 SharedRuntime:: 4382 throw_StackOverflowError)); 4383 StubRoutines::_throw_delayed_StackOverflowError_entry = 4384 generate_throw_exception("delayed StackOverflowError throw_exception", 4385 CAST_FROM_FN_PTR(address, 4386 SharedRuntime:: 4387 throw_delayed_StackOverflowError)); 4388 if (UseCRC32Intrinsics) { 4389 // set table address before stub generation which use it 4390 StubRoutines::_crc_table_adr = (address)StubRoutines::x86::_crc_table; 4391 StubRoutines::_updateBytesCRC32 = generate_updateBytesCRC32(); 4392 } 4393 4394 if (UseCRC32CIntrinsics) { 4395 bool supports_clmul = VM_Version::supports_clmul(); 4396 StubRoutines::x86::generate_CRC32C_table(supports_clmul); 4397 StubRoutines::_crc32c_table_addr = (address)StubRoutines::x86::_crc32c_table; 4398 StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C(supports_clmul); 4399 } 4400 StubRoutines::_dexp = generate_libmExp(); 4401 } 4402 4403 void generate_all() { 4404 // Generates all stubs and initializes the entry points 4405 4406 // These entry points require SharedInfo::stack0 to be set up in 4407 // non-core builds and need to be relocatable, so they each |