hotspot/src/cpu/x86/vm/vm_version_x86.cpp
changeset 37430 fd743dadef12
parent 36561 b18243f4d955
child 38135 e06e2d071465
equal deleted inserted replaced
37428:6e724f3d488b 37430:fd743dadef12
    23  */
    23  */
    24 
    24 
    25 #include "precompiled.hpp"
    25 #include "precompiled.hpp"
    26 #include "asm/macroAssembler.hpp"
    26 #include "asm/macroAssembler.hpp"
    27 #include "asm/macroAssembler.inline.hpp"
    27 #include "asm/macroAssembler.inline.hpp"
       
    28 #include "logging/log.hpp"
    28 #include "memory/resourceArea.hpp"
    29 #include "memory/resourceArea.hpp"
    29 #include "runtime/java.hpp"
    30 #include "runtime/java.hpp"
    30 #include "runtime/os.hpp"
    31 #include "runtime/os.hpp"
    31 #include "runtime/stubCodeGenerator.hpp"
    32 #include "runtime/stubCodeGenerator.hpp"
    32 #include "vm_version_x86.hpp"
    33 #include "vm_version_x86.hpp"
  1221   if (FLAG_IS_DEFAULT(UseUnalignedAccesses)) {
  1222   if (FLAG_IS_DEFAULT(UseUnalignedAccesses)) {
  1222     FLAG_SET_DEFAULT(UseUnalignedAccesses, true);
  1223     FLAG_SET_DEFAULT(UseUnalignedAccesses, true);
  1223   }
  1224   }
  1224 
  1225 
  1225 #ifndef PRODUCT
  1226 #ifndef PRODUCT
  1226   if (PrintMiscellaneous && Verbose) {
  1227   if (log_is_enabled(Info, os, cpu)) {
  1227     tty->print_cr("Logical CPUs per core: %u",
  1228     outputStream* log = Log(os, cpu)::info_stream();
       
  1229     log->print_cr("Logical CPUs per core: %u",
  1228                   logical_processors_per_package());
  1230                   logical_processors_per_package());
  1229     tty->print_cr("L1 data cache line size: %u", L1_data_cache_line_size());
  1231     log->print_cr("L1 data cache line size: %u", L1_data_cache_line_size());
  1230     tty->print("UseSSE=%d", (int) UseSSE);
  1232     log->print("UseSSE=%d", (int) UseSSE);
  1231     if (UseAVX > 0) {
  1233     if (UseAVX > 0) {
  1232       tty->print("  UseAVX=%d", (int) UseAVX);
  1234       log->print("  UseAVX=%d", (int) UseAVX);
  1233     }
  1235     }
  1234     if (UseAES) {
  1236     if (UseAES) {
  1235       tty->print("  UseAES=1");
  1237       log->print("  UseAES=1");
  1236     }
  1238     }
  1237 #ifdef COMPILER2
  1239 #ifdef COMPILER2
  1238     if (MaxVectorSize > 0) {
  1240     if (MaxVectorSize > 0) {
  1239       tty->print("  MaxVectorSize=%d", (int) MaxVectorSize);
  1241       log->print("  MaxVectorSize=%d", (int) MaxVectorSize);
  1240     }
  1242     }
  1241 #endif
  1243 #endif
  1242     tty->cr();
  1244     log->cr();
  1243     tty->print("Allocation");
  1245     log->print("Allocation");
  1244     if (AllocatePrefetchStyle <= 0 || UseSSE == 0 && !supports_3dnow_prefetch()) {
  1246     if (AllocatePrefetchStyle <= 0 || UseSSE == 0 && !supports_3dnow_prefetch()) {
  1245       tty->print_cr(": no prefetching");
  1247       log->print_cr(": no prefetching");
  1246     } else {
  1248     } else {
  1247       tty->print(" prefetching: ");
  1249       log->print(" prefetching: ");
  1248       if (UseSSE == 0 && supports_3dnow_prefetch()) {
  1250       if (UseSSE == 0 && supports_3dnow_prefetch()) {
  1249         tty->print("PREFETCHW");
  1251         log->print("PREFETCHW");
  1250       } else if (UseSSE >= 1) {
  1252       } else if (UseSSE >= 1) {
  1251         if (AllocatePrefetchInstr == 0) {
  1253         if (AllocatePrefetchInstr == 0) {
  1252           tty->print("PREFETCHNTA");
  1254           log->print("PREFETCHNTA");
  1253         } else if (AllocatePrefetchInstr == 1) {
  1255         } else if (AllocatePrefetchInstr == 1) {
  1254           tty->print("PREFETCHT0");
  1256           log->print("PREFETCHT0");
  1255         } else if (AllocatePrefetchInstr == 2) {
  1257         } else if (AllocatePrefetchInstr == 2) {
  1256           tty->print("PREFETCHT2");
  1258           log->print("PREFETCHT2");
  1257         } else if (AllocatePrefetchInstr == 3) {
  1259         } else if (AllocatePrefetchInstr == 3) {
  1258           tty->print("PREFETCHW");
  1260           log->print("PREFETCHW");
  1259         }
  1261         }
  1260       }
  1262       }
  1261       if (AllocatePrefetchLines > 1) {
  1263       if (AllocatePrefetchLines > 1) {
  1262         tty->print_cr(" at distance %d, %d lines of %d bytes", (int) AllocatePrefetchDistance, (int) AllocatePrefetchLines, (int) AllocatePrefetchStepSize);
  1264         log->print_cr(" at distance %d, %d lines of %d bytes", (int) AllocatePrefetchDistance, (int) AllocatePrefetchLines, (int) AllocatePrefetchStepSize);
  1263       } else {
  1265       } else {
  1264         tty->print_cr(" at distance %d, one line of %d bytes", (int) AllocatePrefetchDistance, (int) AllocatePrefetchStepSize);
  1266         log->print_cr(" at distance %d, one line of %d bytes", (int) AllocatePrefetchDistance, (int) AllocatePrefetchStepSize);
  1265       }
  1267       }
  1266     }
  1268     }
  1267 
  1269 
  1268     if (PrefetchCopyIntervalInBytes > 0) {
  1270     if (PrefetchCopyIntervalInBytes > 0) {
  1269       tty->print_cr("PrefetchCopyIntervalInBytes %d", (int) PrefetchCopyIntervalInBytes);
  1271       log->print_cr("PrefetchCopyIntervalInBytes %d", (int) PrefetchCopyIntervalInBytes);
  1270     }
  1272     }
  1271     if (PrefetchScanIntervalInBytes > 0) {
  1273     if (PrefetchScanIntervalInBytes > 0) {
  1272       tty->print_cr("PrefetchScanIntervalInBytes %d", (int) PrefetchScanIntervalInBytes);
  1274       log->print_cr("PrefetchScanIntervalInBytes %d", (int) PrefetchScanIntervalInBytes);
  1273     }
  1275     }
  1274     if (PrefetchFieldsAhead > 0) {
  1276     if (PrefetchFieldsAhead > 0) {
  1275       tty->print_cr("PrefetchFieldsAhead %d", (int) PrefetchFieldsAhead);
  1277       log->print_cr("PrefetchFieldsAhead %d", (int) PrefetchFieldsAhead);
  1276     }
  1278     }
  1277     if (ContendedPaddingWidth > 0) {
  1279     if (ContendedPaddingWidth > 0) {
  1278       tty->print_cr("ContendedPaddingWidth %d", (int) ContendedPaddingWidth);
  1280       log->print_cr("ContendedPaddingWidth %d", (int) ContendedPaddingWidth);
  1279     }
  1281     }
  1280   }
  1282   }
  1281 #endif // !PRODUCT
  1283 #endif // !PRODUCT
  1282 }
  1284 }
  1283 
  1285