1.1 --- a/src/cpu/x86/vm/vm_version_x86.cpp Sun Dec 23 17:08:22 2012 +0100 1.2 +++ b/src/cpu/x86/vm/vm_version_x86.cpp Thu Jan 03 15:09:55 2013 -0800 1.3 @@ -429,7 +429,7 @@ 1.4 } 1.5 1.6 char buf[256]; 1.7 - jio_snprintf(buf, sizeof(buf), "(%u cores per cpu, %u threads per core) family %d model %d stepping %d%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", 1.8 + jio_snprintf(buf, sizeof(buf), "(%u cores per cpu, %u threads per core) family %d model %d stepping %d%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", 1.9 cores_per_cpu(), threads_per_core(), 1.10 cpu_family(), _model, _stepping, 1.11 (supports_cmov() ? ", cmov" : ""), 1.12 @@ -446,6 +446,7 @@ 1.13 (supports_avx() ? ", avx" : ""), 1.14 (supports_avx2() ? ", avx2" : ""), 1.15 (supports_aes() ? ", aes" : ""), 1.16 + (supports_erms() ? ", erms" : ""), 1.17 (supports_mmx_ext() ? ", mmxext" : ""), 1.18 (supports_3dnow_prefetch() ? ", 3dnowpref" : ""), 1.19 (supports_lzcnt() ? ", lzcnt": ""), 1.20 @@ -671,6 +672,16 @@ 1.21 FLAG_SET_DEFAULT(UsePopCountInstruction, false); 1.22 } 1.23 1.24 + // Use fast-string operations if available. 1.25 + if (supports_erms()) { 1.26 + if (FLAG_IS_DEFAULT(UseFastStosb)) { 1.27 + UseFastStosb = true; 1.28 + } 1.29 + } else if (UseFastStosb) { 1.30 + warning("fast-string operations are not available on this CPU"); 1.31 + FLAG_SET_DEFAULT(UseFastStosb, false); 1.32 + } 1.33 + 1.34 #ifdef COMPILER2 1.35 if (FLAG_IS_DEFAULT(AlignVector)) { 1.36 // Modern processors allow misaligned memory operations for vectors.