src/cpu/x86/vm/stubGenerator_x86_32.cpp

Print this page




3255     // is referenced by megamorphic call
3256     StubRoutines::_catch_exception_entry        = generate_catch_exception();
3257 
3258     // These are currently used by Solaris/Intel
3259     StubRoutines::_atomic_xchg_entry            = generate_atomic_xchg();
3260 
3261     StubRoutines::_handler_for_unsafe_access_entry =
3262       generate_handler_for_unsafe_access();
3263 
3264     // platform dependent
3265     create_control_words();
3266 
3267     StubRoutines::x86::_verify_mxcsr_entry                 = generate_verify_mxcsr();
3268     StubRoutines::x86::_verify_fpu_cntrl_wrd_entry         = generate_verify_fpu_cntrl_wrd();
3269     StubRoutines::_d2i_wrapper                              = generate_d2i_wrapper(T_INT,
3270                                                                                    CAST_FROM_FN_PTR(address, SharedRuntime::d2i));
3271     StubRoutines::_d2l_wrapper                              = generate_d2i_wrapper(T_LONG,
3272                                                                                    CAST_FROM_FN_PTR(address, SharedRuntime::d2l));
3273 
3274     // Build this early so it's available for the interpreter
3275     StubRoutines::_throw_StackOverflowError_entry          = generate_throw_exception("StackOverflowError throw_exception",           CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError));



3276 
3277     if (UseCRC32Intrinsics) {
3278       // set table address before stub generation which use it
3279       StubRoutines::_crc_table_adr = (address)StubRoutines::x86::_crc_table;
3280       StubRoutines::_updateBytesCRC32 = generate_updateBytesCRC32();
3281     }
3282 
3283     if (UseCRC32CIntrinsics) {
3284       bool supports_clmul = VM_Version::supports_clmul();
3285       StubRoutines::x86::generate_CRC32C_table(supports_clmul);
3286       StubRoutines::_crc32c_table_addr = (address)StubRoutines::x86::_crc32c_table;
3287       StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C(supports_clmul);
3288     }
3289     if (VM_Version::supports_sse2()) {
3290       StubRoutines::_dexp = generate_libmExp();
3291     }
3292   }
3293 
3294 
3295   void generate_all() {




3255     // is referenced by megamorphic call
3256     StubRoutines::_catch_exception_entry        = generate_catch_exception();
3257 
3258     // These are currently used by Solaris/Intel
3259     StubRoutines::_atomic_xchg_entry            = generate_atomic_xchg();
3260 
3261     StubRoutines::_handler_for_unsafe_access_entry =
3262       generate_handler_for_unsafe_access();
3263 
3264     // platform dependent
3265     create_control_words();
3266 
3267     StubRoutines::x86::_verify_mxcsr_entry                 = generate_verify_mxcsr();
3268     StubRoutines::x86::_verify_fpu_cntrl_wrd_entry         = generate_verify_fpu_cntrl_wrd();
3269     StubRoutines::_d2i_wrapper                              = generate_d2i_wrapper(T_INT,
3270                                                                                    CAST_FROM_FN_PTR(address, SharedRuntime::d2i));
3271     StubRoutines::_d2l_wrapper                              = generate_d2i_wrapper(T_LONG,
3272                                                                                    CAST_FROM_FN_PTR(address, SharedRuntime::d2l));
3273 
3274     // Build this early so it's available for the interpreter
3275     StubRoutines::_throw_StackOverflowError_entry          = generate_throw_exception("StackOverflowError throw_exception",
3276                                                                                       CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError));
3277     StubRoutines::_throw_delayed_StackOverflowError_entry  = generate_throw_exception("delayed StackOverflowError throw_exception",
3278                                                                                       CAST_FROM_FN_PTR(address, SharedRuntime::throw_delayed_StackOverflowError));
3279 
3280     if (UseCRC32Intrinsics) {
3281       // set table address before stub generation which use it
3282       StubRoutines::_crc_table_adr = (address)StubRoutines::x86::_crc_table;
3283       StubRoutines::_updateBytesCRC32 = generate_updateBytesCRC32();
3284     }
3285 
3286     if (UseCRC32CIntrinsics) {
3287       bool supports_clmul = VM_Version::supports_clmul();
3288       StubRoutines::x86::generate_CRC32C_table(supports_clmul);
3289       StubRoutines::_crc32c_table_addr = (address)StubRoutines::x86::_crc32c_table;
3290       StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C(supports_clmul);
3291     }
3292     if (VM_Version::supports_sse2()) {
3293       StubRoutines::_dexp = generate_libmExp();
3294     }
3295   }
3296 
3297 
3298   void generate_all() {