src/cpu/x86/vm/stubGenerator_x86_64.cpp

Print this page




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