< prev index next >

src/hotspot/cpu/x86/vm_version_x86.cpp

Print this page




 906 
 907   if (UseAdler32Intrinsics) {
 908     warning("Adler32Intrinsics not available on this CPU.");
 909     FLAG_SET_DEFAULT(UseAdler32Intrinsics, false);
 910   }
 911 
 912   if (!supports_rtm() && UseRTMLocking) {
 913     // Can't continue because UseRTMLocking affects UseBiasedLocking flag
 914     // setting during arguments processing. See use_biased_locking().
 915     // VM_Version_init() is executed after UseBiasedLocking is used
 916     // in Thread::allocate().
 917     vm_exit_during_initialization("RTM instructions are not available on this CPU");
 918   }
 919 
 920 #if INCLUDE_RTM_OPT
 921   if (UseRTMLocking) {
 922     if (is_client_compilation_mode_vm()) {
 923       // Only C2 does RTM locking optimization.
 924       // Can't continue because UseRTMLocking affects UseBiasedLocking flag
 925       // setting during arguments processing. See use_biased_locking().
 926       vm_exit_during_initialization("RTM locking optimization is not supported in emulated client VM");
 927     }
 928     if (is_intel_family_core()) {
 929       if ((_model == CPU_MODEL_HASWELL_E3) ||
 930           (_model == CPU_MODEL_HASWELL_E7 && _stepping < 3) ||
 931           (_model == CPU_MODEL_BROADWELL  && _stepping < 4)) {
 932         // currently a collision between SKL and HSW_E3
 933         if (!UnlockExperimentalVMOptions && UseAVX < 3) {
 934           vm_exit_during_initialization("UseRTMLocking is only available as experimental option on this "
 935                                         "platform. It must be enabled via -XX:+UnlockExperimentalVMOptions flag.");
 936         } else {
 937           warning("UseRTMLocking is only available as experimental option on this platform.");
 938         }
 939       }
 940     }
 941     if (!FLAG_IS_CMDLINE(UseRTMLocking)) {
 942       // RTM locking should be used only for applications with
 943       // high lock contention. For now we do not use it by default.
 944       vm_exit_during_initialization("UseRTMLocking flag should be only set on command line");
 945     }
 946   } else { // !UseRTMLocking




 906 
 907   if (UseAdler32Intrinsics) {
 908     warning("Adler32Intrinsics not available on this CPU.");
 909     FLAG_SET_DEFAULT(UseAdler32Intrinsics, false);
 910   }
 911 
 912   if (!supports_rtm() && UseRTMLocking) {
 913     // Can't continue because UseRTMLocking affects UseBiasedLocking flag
 914     // setting during arguments processing. See use_biased_locking().
 915     // VM_Version_init() is executed after UseBiasedLocking is used
 916     // in Thread::allocate().
 917     vm_exit_during_initialization("RTM instructions are not available on this CPU");
 918   }
 919 
 920 #if INCLUDE_RTM_OPT
 921   if (UseRTMLocking) {
 922     if (is_client_compilation_mode_vm()) {
 923       // Only C2 does RTM locking optimization.
 924       // Can't continue because UseRTMLocking affects UseBiasedLocking flag
 925       // setting during arguments processing. See use_biased_locking().
 926       vm_exit_during_initialization("RTM locking optimization is not supported in this VM");
 927     }
 928     if (is_intel_family_core()) {
 929       if ((_model == CPU_MODEL_HASWELL_E3) ||
 930           (_model == CPU_MODEL_HASWELL_E7 && _stepping < 3) ||
 931           (_model == CPU_MODEL_BROADWELL  && _stepping < 4)) {
 932         // currently a collision between SKL and HSW_E3
 933         if (!UnlockExperimentalVMOptions && UseAVX < 3) {
 934           vm_exit_during_initialization("UseRTMLocking is only available as experimental option on this "
 935                                         "platform. It must be enabled via -XX:+UnlockExperimentalVMOptions flag.");
 936         } else {
 937           warning("UseRTMLocking is only available as experimental option on this platform.");
 938         }
 939       }
 940     }
 941     if (!FLAG_IS_CMDLINE(UseRTMLocking)) {
 942       // RTM locking should be used only for applications with
 943       // high lock contention. For now we do not use it by default.
 944       vm_exit_during_initialization("UseRTMLocking flag should be only set on command line");
 945     }
 946   } else { // !UseRTMLocking


< prev index next >