< prev index next >

src/hotspot/cpu/x86/vm_version_x86.hpp

Print this page




 799   static bool supports_sse4_1()   { return (_features & CPU_SSE4_1) != 0; }
 800   static bool supports_sse4_2()   { return (_features & CPU_SSE4_2) != 0; }
 801   static bool supports_popcnt()   { return (_features & CPU_POPCNT) != 0; }
 802   static bool supports_avx()      { return (_features & CPU_AVX) != 0; }
 803   static bool supports_avx2()     { return (_features & CPU_AVX2) != 0; }
 804   static bool supports_tsc()      { return (_features & CPU_TSC)    != 0; }
 805   static bool supports_aes()      { return (_features & CPU_AES) != 0; }
 806   static bool supports_erms()     { return (_features & CPU_ERMS) != 0; }
 807   static bool supports_clmul()    { return (_features & CPU_CLMUL) != 0; }
 808   static bool supports_rtm()      { return (_features & CPU_RTM) != 0; }
 809   static bool supports_bmi1()     { return (_features & CPU_BMI1) != 0; }
 810   static bool supports_bmi2()     { return (_features & CPU_BMI2) != 0; }
 811   static bool supports_adx()      { return (_features & CPU_ADX) != 0; }
 812   static bool supports_evex()     { return (_features & CPU_AVX512F) != 0; }
 813   static bool supports_avx512dq() { return (_features & CPU_AVX512DQ) != 0; }
 814   static bool supports_avx512pf() { return (_features & CPU_AVX512PF) != 0; }
 815   static bool supports_avx512er() { return (_features & CPU_AVX512ER) != 0; }
 816   static bool supports_avx512cd() { return (_features & CPU_AVX512CD) != 0; }
 817   static bool supports_avx512bw() { return (_features & CPU_AVX512BW) != 0; }
 818   static bool supports_avx512vl() { return (_features & CPU_AVX512VL) != 0; }
 819   static bool supports_avx512vlbw() { return (supports_avx512bw() && supports_avx512vl()); }



 820   static bool supports_avx512novl() { return (supports_evex() && !supports_avx512vl()); }
 821   static bool supports_avx512nobw() { return (supports_evex() && !supports_avx512bw()); }
 822   static bool supports_avx256only() { return (supports_avx2() && !supports_evex()); }
 823   static bool supports_avxonly()    { return ((supports_avx2() || supports_avx()) && !supports_evex()); }
 824   static bool supports_sha()        { return (_features & CPU_SHA) != 0; }
 825   static bool supports_fma()        { return (_features & CPU_FMA) != 0 && supports_avx(); }
 826   static bool supports_vzeroupper() { return (_features & CPU_VZEROUPPER) != 0; }
 827   static bool supports_vpopcntdq()  { return (_features & CPU_AVX512_VPOPCNTDQ) != 0; }
 828   static bool supports_vpclmulqdq() { return (_features & CPU_VPCLMULQDQ) != 0; }
 829   static bool supports_vaes()       { return (_features & CPU_VAES) != 0; }
 830 
 831   // Intel features
 832   static bool is_intel_family_core() { return is_intel() &&
 833                                        extended_cpu_family() == CPU_FAMILY_INTEL_CORE; }
 834 
 835   static bool is_intel_tsc_synched_at_init()  {
 836     if (is_intel_family_core()) {
 837       uint32_t ext_model = extended_cpu_model();
 838       if (ext_model == CPU_MODEL_NEHALEM_EP     ||
 839           ext_model == CPU_MODEL_WESTMERE_EP    ||




 799   static bool supports_sse4_1()   { return (_features & CPU_SSE4_1) != 0; }
 800   static bool supports_sse4_2()   { return (_features & CPU_SSE4_2) != 0; }
 801   static bool supports_popcnt()   { return (_features & CPU_POPCNT) != 0; }
 802   static bool supports_avx()      { return (_features & CPU_AVX) != 0; }
 803   static bool supports_avx2()     { return (_features & CPU_AVX2) != 0; }
 804   static bool supports_tsc()      { return (_features & CPU_TSC)    != 0; }
 805   static bool supports_aes()      { return (_features & CPU_AES) != 0; }
 806   static bool supports_erms()     { return (_features & CPU_ERMS) != 0; }
 807   static bool supports_clmul()    { return (_features & CPU_CLMUL) != 0; }
 808   static bool supports_rtm()      { return (_features & CPU_RTM) != 0; }
 809   static bool supports_bmi1()     { return (_features & CPU_BMI1) != 0; }
 810   static bool supports_bmi2()     { return (_features & CPU_BMI2) != 0; }
 811   static bool supports_adx()      { return (_features & CPU_ADX) != 0; }
 812   static bool supports_evex()     { return (_features & CPU_AVX512F) != 0; }
 813   static bool supports_avx512dq() { return (_features & CPU_AVX512DQ) != 0; }
 814   static bool supports_avx512pf() { return (_features & CPU_AVX512PF) != 0; }
 815   static bool supports_avx512er() { return (_features & CPU_AVX512ER) != 0; }
 816   static bool supports_avx512cd() { return (_features & CPU_AVX512CD) != 0; }
 817   static bool supports_avx512bw() { return (_features & CPU_AVX512BW) != 0; }
 818   static bool supports_avx512vl() { return (_features & CPU_AVX512VL) != 0; }
 819   static bool supports_avx512vlbw() { return (supports_evex() && supports_avx512bw() && supports_avx512vl()); }
 820   static bool supports_avx512vldq() { return (supports_evex() && supports_avx512dq() && supports_avx512vl()); }
 821   static bool supports_avx512vlbwdq() { return (supports_evex() && supports_avx512vl() && 
 822                                                 supports_avx512bw() && supports_avx512dq()); }
 823   static bool supports_avx512novl() { return (supports_evex() && !supports_avx512vl()); }
 824   static bool supports_avx512nobw() { return (supports_evex() && !supports_avx512bw()); }
 825   static bool supports_avx256only() { return (supports_avx2() && !supports_evex()); }
 826   static bool supports_avxonly()    { return ((supports_avx2() || supports_avx()) && !supports_evex()); }
 827   static bool supports_sha()        { return (_features & CPU_SHA) != 0; }
 828   static bool supports_fma()        { return (_features & CPU_FMA) != 0 && supports_avx(); }
 829   static bool supports_vzeroupper() { return (_features & CPU_VZEROUPPER) != 0; }
 830   static bool supports_vpopcntdq()  { return (_features & CPU_AVX512_VPOPCNTDQ) != 0; }
 831   static bool supports_vpclmulqdq() { return (_features & CPU_VPCLMULQDQ) != 0; }
 832   static bool supports_vaes()       { return (_features & CPU_VAES) != 0; }
 833 
 834   // Intel features
 835   static bool is_intel_family_core() { return is_intel() &&
 836                                        extended_cpu_family() == CPU_FAMILY_INTEL_CORE; }
 837 
 838   static bool is_intel_tsc_synched_at_init()  {
 839     if (is_intel_family_core()) {
 840       uint32_t ext_model = extended_cpu_model();
 841       if (ext_model == CPU_MODEL_NEHALEM_EP     ||
 842           ext_model == CPU_MODEL_WESTMERE_EP    ||


< prev index next >