src/cpu/x86/vm/vm_version_x86.cpp

changeset 4410
00af3a3a8df4
parent 4363
2c7f594145dc
child 4435
92d4b5d8dde4
     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.

mercurial