< prev index next >

src/cpu/x86/vm/vm_version_x86.cpp

Print this page




 648   if (supports_clmul()) {
 649     if (FLAG_IS_DEFAULT(UseCLMUL)) {
 650       UseCLMUL = true;
 651     }
 652   } else if (UseCLMUL) {
 653     if (!FLAG_IS_DEFAULT(UseCLMUL))
 654       warning("CLMUL instructions not available on this CPU (AVX may also be required)");
 655     FLAG_SET_DEFAULT(UseCLMUL, false);
 656   }
 657 
 658   if (UseCLMUL && (UseSSE > 2)) {
 659     if (FLAG_IS_DEFAULT(UseCRC32Intrinsics)) {
 660       UseCRC32Intrinsics = true;
 661     }
 662   } else if (UseCRC32Intrinsics) {
 663     if (!FLAG_IS_DEFAULT(UseCRC32Intrinsics))
 664       warning("CRC32 Intrinsics requires CLMUL instructions (not available on this CPU)");
 665     FLAG_SET_DEFAULT(UseCRC32Intrinsics, false);
 666   }
 667 












 668   // The AES intrinsic stubs require AES instruction support (of course)
 669   // but also require sse3 mode for instructions it use.
 670   if (UseAES && (UseSSE > 2)) {
 671     if (FLAG_IS_DEFAULT(UseAESIntrinsics)) {
 672       UseAESIntrinsics = true;
 673     }
 674   } else if (UseAESIntrinsics) {
 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");


 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 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) ||




 648   if (supports_clmul()) {
 649     if (FLAG_IS_DEFAULT(UseCLMUL)) {
 650       UseCLMUL = true;
 651     }
 652   } else if (UseCLMUL) {
 653     if (!FLAG_IS_DEFAULT(UseCLMUL))
 654       warning("CLMUL instructions not available on this CPU (AVX may also be required)");
 655     FLAG_SET_DEFAULT(UseCLMUL, false);
 656   }
 657 
 658   if (UseCLMUL && (UseSSE > 2)) {
 659     if (FLAG_IS_DEFAULT(UseCRC32Intrinsics)) {
 660       UseCRC32Intrinsics = true;
 661     }
 662   } else if (UseCRC32Intrinsics) {
 663     if (!FLAG_IS_DEFAULT(UseCRC32Intrinsics))
 664       warning("CRC32 Intrinsics requires CLMUL instructions (not available on this CPU)");
 665     FLAG_SET_DEFAULT(UseCRC32Intrinsics, false);
 666   }
 667 
 668   if (supports_sse4_2()) {
 669     if (FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) {
 670       UseCRC32CIntrinsics = true;
 671     }
 672   }
 673   else if (UseCRC32CIntrinsics) {
 674     if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) {
 675       warning("CRC32C intrinsics are not available on this CPU");
 676     }
 677     FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
 678   }
 679 
 680   // The AES intrinsic stubs require AES instruction support (of course)
 681   // but also require sse3 mode for instructions it use.
 682   if (UseAES && (UseSSE > 2)) {
 683     if (FLAG_IS_DEFAULT(UseAESIntrinsics)) {
 684       UseAESIntrinsics = true;
 685     }
 686   } else if (UseAESIntrinsics) {
 687     if (!FLAG_IS_DEFAULT(UseAESIntrinsics))
 688       warning("AES intrinsics are not available on this CPU");
 689     FLAG_SET_DEFAULT(UseAESIntrinsics, false);
 690   }
 691 
 692   // GHASH/GCM intrinsics
 693   if (UseCLMUL && (UseSSE > 2)) {
 694     if (FLAG_IS_DEFAULT(UseGHASHIntrinsics)) {
 695       UseGHASHIntrinsics = true;
 696     }
 697   } else if (UseGHASHIntrinsics) {
 698     if (!FLAG_IS_DEFAULT(UseGHASHIntrinsics))
 699       warning("GHASH intrinsic requires CLMUL and SSE2 instructions on this CPU");


 701   }
 702 
 703   if (UseSHA) {
 704     warning("SHA instructions are not available on this CPU");
 705     FLAG_SET_DEFAULT(UseSHA, false);
 706   }
 707 
 708   if (UseSHA1Intrinsics) {
 709     warning("Intrinsics for SHA-1 crypto hash functions not available on this CPU.");
 710     FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
 711   }
 712 
 713   if (UseSHA256Intrinsics) {
 714     warning("Intrinsics for SHA-224 and SHA-256 crypto hash functions not available on this CPU.");
 715     FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
 716   }
 717 
 718   if (UseSHA512Intrinsics) {
 719     warning("Intrinsics for SHA-384 and SHA-512 crypto hash functions not available on this CPU.");
 720     FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);






 721   }
 722 
 723   if (UseAdler32Intrinsics) {
 724     warning("Adler32Intrinsics not available on this CPU.");
 725     FLAG_SET_DEFAULT(UseAdler32Intrinsics, false);
 726   }
 727 
 728   // Adjust RTM (Restricted Transactional Memory) flags
 729   if (!supports_rtm() && UseRTMLocking) {
 730     // Can't continue because UseRTMLocking affects UseBiasedLocking flag
 731     // setting during arguments processing. See use_biased_locking().
 732     // VM_Version_init() is executed after UseBiasedLocking is used
 733     // in Thread::allocate().
 734     vm_exit_during_initialization("RTM instructions are not available on this CPU");
 735   }
 736 
 737 #if INCLUDE_RTM_OPT
 738   if (UseRTMLocking) {
 739     if (is_intel_family_core()) {
 740       if ((_model == CPU_MODEL_HASWELL_E3) ||


< prev index next >