equal
deleted
inserted
replaced
550 if (_cpuid_info.ymm_save[i] != ymm_test_value()) { |
550 if (_cpuid_info.ymm_save[i] != ymm_test_value()) { |
551 retVal = false; |
551 retVal = false; |
552 break; |
552 break; |
553 } |
553 } |
554 } |
554 } |
|
555 // zmm_save will be set on a EVEX enabled machine even if we choose AVX code gen |
|
556 if (retVal == false) { |
|
557 // Verify that OS save/restore all bits of EVEX registers |
|
558 // during signal processing. |
|
559 int nreg = 2 LP64_ONLY(+2); |
|
560 retVal = true; |
|
561 for (int i = 0; i < 16 * nreg; i++) { // 64 bytes per zmm register |
|
562 if (_cpuid_info.zmm_save[i] != ymm_test_value()) { |
|
563 retVal = false; |
|
564 break; |
|
565 } |
|
566 } |
|
567 } |
555 } |
568 } |
556 return retVal; |
569 return retVal; |
557 } |
570 } |
558 |
571 |
559 static void get_processor_features(); |
572 static void get_processor_features(); |
704 static bool supports_avx512cd() { return (_cpuFeatures & CPU_AVX512CD) != 0; } |
717 static bool supports_avx512cd() { return (_cpuFeatures & CPU_AVX512CD) != 0; } |
705 static bool supports_avx512bw() { return (_cpuFeatures & CPU_AVX512BW) != 0; } |
718 static bool supports_avx512bw() { return (_cpuFeatures & CPU_AVX512BW) != 0; } |
706 static bool supports_avx512vl() { return (_cpuFeatures & CPU_AVX512VL) != 0; } |
719 static bool supports_avx512vl() { return (_cpuFeatures & CPU_AVX512VL) != 0; } |
707 static bool supports_avx512vlbw() { return (supports_avx512bw() && supports_avx512vl()); } |
720 static bool supports_avx512vlbw() { return (supports_avx512bw() && supports_avx512vl()); } |
708 static bool supports_avx512novl() { return (supports_evex() && !supports_avx512vl()); } |
721 static bool supports_avx512novl() { return (supports_evex() && !supports_avx512vl()); } |
|
722 static bool supports_avx512nobw() { return (supports_evex() && !supports_avx512bw()); } |
|
723 static bool supports_avx256only() { return (supports_avx2() && !supports_evex()); } |
|
724 static bool supports_avxonly() { return ((supports_avx2() || supports_avx()) && !supports_evex()); } |
709 // Intel features |
725 // Intel features |
710 static bool is_intel_family_core() { return is_intel() && |
726 static bool is_intel_family_core() { return is_intel() && |
711 extended_cpu_family() == CPU_FAMILY_INTEL_CORE; } |
727 extended_cpu_family() == CPU_FAMILY_INTEL_CORE; } |
712 |
728 |
713 static bool is_intel_tsc_synched_at_init() { |
729 static bool is_intel_tsc_synched_at_init() { |