Mercurial > hg > truffle
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() { |