comparison src/cpu/x86/vm/vm_version_x86.hpp @ 1914:ae065c367d93

6987135: Performance regression on Intel platform with 32-bits edition between 6u13 and 6u14. Summary: Use hardware DIV instruction for long division by constant when it is faster than code with multiply. Reviewed-by: never
author kvn
date Tue, 02 Nov 2010 09:00:37 -0700
parents a83b0246bb77
children f95d63e2154a
comparison
equal deleted inserted replaced
1913:3b2dea75431e 1914:ae065c367d93
444 static bool supports_mmx_ext() { return is_amd() && _cpuid_info.ext_cpuid1_edx.bits.mmx_amd != 0; } 444 static bool supports_mmx_ext() { return is_amd() && _cpuid_info.ext_cpuid1_edx.bits.mmx_amd != 0; }
445 static bool supports_3dnow2() { return is_amd() && _cpuid_info.ext_cpuid1_edx.bits.tdnow2 != 0; } 445 static bool supports_3dnow2() { return is_amd() && _cpuid_info.ext_cpuid1_edx.bits.tdnow2 != 0; }
446 static bool supports_lzcnt() { return (_cpuFeatures & CPU_LZCNT) != 0; } 446 static bool supports_lzcnt() { return (_cpuFeatures & CPU_LZCNT) != 0; }
447 static bool supports_sse4a() { return (_cpuFeatures & CPU_SSE4A) != 0; } 447 static bool supports_sse4a() { return (_cpuFeatures & CPU_SSE4A) != 0; }
448 448
449 // Intel Core and newer cpus have fast IDIV instruction (excluding Atom).
450 static bool has_fast_idiv() { return is_intel() && cpu_family() == 6 &&
451 supports_sse3() && _model != 0x1C; }
452
449 static bool supports_compare_and_exchange() { return true; } 453 static bool supports_compare_and_exchange() { return true; }
450 454
451 static const char* cpu_features() { return _features_str; } 455 static const char* cpu_features() { return _features_str; }
452 456
453 static intx allocate_prefetch_distance() { 457 static intx allocate_prefetch_distance() {