675 if (!FLAG_IS_DEFAULT(UseAESIntrinsics)) 676 warning("AES intrinsics are not available on this CPU"); 677 FLAG_SET_DEFAULT(UseAESIntrinsics, false); 678 } 679 680 // GHASH/GCM intrinsics 681 if (UseCLMUL && (UseSSE > 2)) { 682 if (FLAG_IS_DEFAULT(UseGHASHIntrinsics)) { 683 UseGHASHIntrinsics = true; 684 } 685 } else if (UseGHASHIntrinsics) { 686 if (!FLAG_IS_DEFAULT(UseGHASHIntrinsics)) 687 warning("GHASH intrinsic requires CLMUL and SSE2 instructions on this CPU"); 688 FLAG_SET_DEFAULT(UseGHASHIntrinsics, false); 689 } 690 691 if (UseSHA) { 692 warning("SHA instructions are not available on this CPU"); 693 FLAG_SET_DEFAULT(UseSHA, false); 694 } 695 if (UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics) { 696 warning("SHA intrinsics are not available on this CPU"); 697 FLAG_SET_DEFAULT(UseSHA1Intrinsics, false); 698 FLAG_SET_DEFAULT(UseSHA256Intrinsics, false); 699 FLAG_SET_DEFAULT(UseSHA512Intrinsics, false); 700 } 701 702 if (UseCRC32CIntrinsics) { 703 if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) 704 warning("CRC32C intrinsics are not available on this CPU"); 705 FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false); 706 } 707 708 // Adjust RTM (Restricted Transactional Memory) flags 709 if (!supports_rtm() && UseRTMLocking) { 710 // Can't continue because UseRTMLocking affects UseBiasedLocking flag 711 // setting during arguments processing. See use_biased_locking(). 712 // VM_Version_init() is executed after UseBiasedLocking is used 713 // in Thread::allocate(). 714 vm_exit_during_initialization("RTM instructions are not available on this CPU"); 715 } 716 717 #if INCLUDE_RTM_OPT 718 if (UseRTMLocking) { | 675 if (!FLAG_IS_DEFAULT(UseAESIntrinsics)) 676 warning("AES intrinsics are not available on this CPU"); 677 FLAG_SET_DEFAULT(UseAESIntrinsics, false); 678 } 679 680 // GHASH/GCM intrinsics 681 if (UseCLMUL && (UseSSE > 2)) { 682 if (FLAG_IS_DEFAULT(UseGHASHIntrinsics)) { 683 UseGHASHIntrinsics = true; 684 } 685 } else if (UseGHASHIntrinsics) { 686 if (!FLAG_IS_DEFAULT(UseGHASHIntrinsics)) 687 warning("GHASH intrinsic requires CLMUL and SSE2 instructions on this CPU"); 688 FLAG_SET_DEFAULT(UseGHASHIntrinsics, false); 689 } 690 691 if (UseSHA) { 692 warning("SHA instructions are not available on this CPU"); 693 FLAG_SET_DEFAULT(UseSHA, false); 694 } 695 696 if (UseSHA1Intrinsics) { 697 warning("Intrinsics for SHA-1 crypto hash functions not available."); 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."); 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."); 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) { |