697 warning("Intrinsics for SHA-1 crypto hash functions not available on this CPU."); 698 FLAG_SET_DEFAULT(UseSHA1Intrinsics, false); 699 } 700 701 if (UseSHA256Intrinsics) { 702 warning("Intrinsics for SHA-224 and SHA-256 crypto hash functions not available on this CPU."); 703 FLAG_SET_DEFAULT(UseSHA256Intrinsics, false); 704 } 705 706 if (UseSHA512Intrinsics) { 707 warning("Intrinsics for SHA-384 and SHA-512 crypto hash functions not available on this CPU."); 708 FLAG_SET_DEFAULT(UseSHA512Intrinsics, false); 709 } 710 711 if (UseCRC32CIntrinsics) { 712 if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) 713 warning("CRC32C intrinsics are not available on this CPU"); 714 FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false); 715 } 716 717 // Adjust RTM (Restricted Transactional Memory) flags 718 if (!supports_rtm() && UseRTMLocking) { 719 // Can't continue because UseRTMLocking affects UseBiasedLocking flag 720 // setting during arguments processing. See use_biased_locking(). 721 // VM_Version_init() is executed after UseBiasedLocking is used 722 // in Thread::allocate(). 723 vm_exit_during_initialization("RTM instructions are not available on this CPU"); 724 } 725 726 #if INCLUDE_RTM_OPT 727 if (UseRTMLocking) { 728 if (is_intel_family_core()) { 729 if ((_model == CPU_MODEL_HASWELL_E3) || 730 (_model == CPU_MODEL_HASWELL_E7 && _stepping < 3) || 731 (_model == CPU_MODEL_BROADWELL && _stepping < 4)) { 732 // currently a collision between SKL and HSW_E3 733 if (!UnlockExperimentalVMOptions && UseAVX < 3) { 734 vm_exit_during_initialization("UseRTMLocking is only available as experimental option on this platform. It must be enabled via -XX:+UnlockExperimentalVMOptions flag."); 735 } else { 736 warning("UseRTMLocking is only available as experimental option on this platform."); | 697 warning("Intrinsics for SHA-1 crypto hash functions not available on this CPU."); 698 FLAG_SET_DEFAULT(UseSHA1Intrinsics, false); 699 } 700 701 if (UseSHA256Intrinsics) { 702 warning("Intrinsics for SHA-224 and SHA-256 crypto hash functions not available on this CPU."); 703 FLAG_SET_DEFAULT(UseSHA256Intrinsics, false); 704 } 705 706 if (UseSHA512Intrinsics) { 707 warning("Intrinsics for SHA-384 and SHA-512 crypto hash functions not available on this CPU."); 708 FLAG_SET_DEFAULT(UseSHA512Intrinsics, false); 709 } 710 711 if (UseCRC32CIntrinsics) { 712 if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) 713 warning("CRC32C intrinsics are not available on this CPU"); 714 FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false); 715 } 716 717 if (UseAdler32Intrinsics) { 718 warning("Adler32Intrinsics not available on this CPU."); 719 FLAG_SET_DEFAULT(UseAdler32Intrinsics, false); 720 } 721 722 // Adjust RTM (Restricted Transactional Memory) flags 723 if (!supports_rtm() && UseRTMLocking) { 724 // Can't continue because UseRTMLocking affects UseBiasedLocking flag 725 // setting during arguments processing. See use_biased_locking(). 726 // VM_Version_init() is executed after UseBiasedLocking is used 727 // in Thread::allocate(). 728 vm_exit_during_initialization("RTM instructions are not available on this CPU"); 729 } 730 731 #if INCLUDE_RTM_OPT 732 if (UseRTMLocking) { 733 if (is_intel_family_core()) { 734 if ((_model == CPU_MODEL_HASWELL_E3) || 735 (_model == CPU_MODEL_HASWELL_E7 && _stepping < 3) || 736 (_model == CPU_MODEL_BROADWELL && _stepping < 4)) { 737 // currently a collision between SKL and HSW_E3 738 if (!UnlockExperimentalVMOptions && UseAVX < 3) { 739 vm_exit_during_initialization("UseRTMLocking is only available as experimental option on this platform. It must be enabled via -XX:+UnlockExperimentalVMOptions flag."); 740 } else { 741 warning("UseRTMLocking is only available as experimental option on this platform."); |