3840 CAST_FROM_FN_PTR(address, SharedRuntime::d2l));
3841
3842 // Build this early so it's available for the interpreter
3843 StubRoutines::_throw_StackOverflowError_entry = generate_throw_exception("StackOverflowError throw_exception",
3844 CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError));
3845 StubRoutines::_throw_delayed_StackOverflowError_entry = generate_throw_exception("delayed StackOverflowError throw_exception",
3846 CAST_FROM_FN_PTR(address, SharedRuntime::throw_delayed_StackOverflowError));
3847
3848 if (UseCRC32Intrinsics) {
3849 // set table address before stub generation which use it
3850 StubRoutines::_crc_table_adr = (address)StubRoutines::x86::_crc_table;
3851 StubRoutines::_updateBytesCRC32 = generate_updateBytesCRC32();
3852 }
3853
3854 if (UseCRC32CIntrinsics) {
3855 bool supports_clmul = VM_Version::supports_clmul();
3856 StubRoutines::x86::generate_CRC32C_table(supports_clmul);
3857 StubRoutines::_crc32c_table_addr = (address)StubRoutines::x86::_crc32c_table;
3858 StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C(supports_clmul);
3859 }
3860 if (VM_Version::supports_sse2() && UseLibmIntrinsic) {
3861 if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dsin) ||
3862 vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dcos) ||
3863 vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dtan)) {
3864 StubRoutines::x86::_L_2il0floatpacket_0_adr = (address)StubRoutines::x86::_L_2il0floatpacket_0;
3865 StubRoutines::x86::_Pi4Inv_adr = (address)StubRoutines::x86::_Pi4Inv;
3866 StubRoutines::x86::_Pi4x3_adr = (address)StubRoutines::x86::_Pi4x3;
3867 StubRoutines::x86::_Pi4x4_adr = (address)StubRoutines::x86::_Pi4x4;
3868 StubRoutines::x86::_ones_adr = (address)StubRoutines::x86::_ones;
3869 }
3870 if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dexp)) {
3871 StubRoutines::_dexp = generate_libmExp();
3872 }
3873 if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dlog)) {
3874 StubRoutines::_dlog = generate_libmLog();
3875 }
3876 if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dlog10)) {
3877 StubRoutines::_dlog10 = generate_libmLog10();
3878 }
3879 if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dpow)) {
3880 StubRoutines::_dpow = generate_libmPow();
|
3840 CAST_FROM_FN_PTR(address, SharedRuntime::d2l));
3841
3842 // Build this early so it's available for the interpreter
3843 StubRoutines::_throw_StackOverflowError_entry = generate_throw_exception("StackOverflowError throw_exception",
3844 CAST_FROM_FN_PTR(address, SharedRuntime::throw_StackOverflowError));
3845 StubRoutines::_throw_delayed_StackOverflowError_entry = generate_throw_exception("delayed StackOverflowError throw_exception",
3846 CAST_FROM_FN_PTR(address, SharedRuntime::throw_delayed_StackOverflowError));
3847
3848 if (UseCRC32Intrinsics) {
3849 // set table address before stub generation which use it
3850 StubRoutines::_crc_table_adr = (address)StubRoutines::x86::_crc_table;
3851 StubRoutines::_updateBytesCRC32 = generate_updateBytesCRC32();
3852 }
3853
3854 if (UseCRC32CIntrinsics) {
3855 bool supports_clmul = VM_Version::supports_clmul();
3856 StubRoutines::x86::generate_CRC32C_table(supports_clmul);
3857 StubRoutines::_crc32c_table_addr = (address)StubRoutines::x86::_crc32c_table;
3858 StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C(supports_clmul);
3859 }
3860 if (VM_Version::supports_sse2() && UseLibmIntrinsic && InlineIntrinsics) {
3861 if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dsin) ||
3862 vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dcos) ||
3863 vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dtan)) {
3864 StubRoutines::x86::_L_2il0floatpacket_0_adr = (address)StubRoutines::x86::_L_2il0floatpacket_0;
3865 StubRoutines::x86::_Pi4Inv_adr = (address)StubRoutines::x86::_Pi4Inv;
3866 StubRoutines::x86::_Pi4x3_adr = (address)StubRoutines::x86::_Pi4x3;
3867 StubRoutines::x86::_Pi4x4_adr = (address)StubRoutines::x86::_Pi4x4;
3868 StubRoutines::x86::_ones_adr = (address)StubRoutines::x86::_ones;
3869 }
3870 if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dexp)) {
3871 StubRoutines::_dexp = generate_libmExp();
3872 }
3873 if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dlog)) {
3874 StubRoutines::_dlog = generate_libmLog();
3875 }
3876 if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dlog10)) {
3877 StubRoutines::_dlog10 = generate_libmLog10();
3878 }
3879 if (vmIntrinsics::is_intrinsic_available(vmIntrinsics::_dpow)) {
3880 StubRoutines::_dpow = generate_libmPow();
|