< prev index next >

src/hotspot/cpu/ppc/vm_version_ppc.cpp

Print this page

325     UseMultiplyToLenIntrinsic = true;
326   }
327   if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
328     UseMontgomeryMultiplyIntrinsic = true;
329   }
330   if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
331     UseMontgomerySquareIntrinsic = true;
332   }
333 #endif
334 
335   if (UseVectorizedMismatchIntrinsic) {
336     warning("UseVectorizedMismatchIntrinsic specified, but not available on this CPU.");
337     FLAG_SET_DEFAULT(UseVectorizedMismatchIntrinsic, false);
338   }
339 
340   // This machine allows unaligned memory accesses
341   if (FLAG_IS_DEFAULT(UseUnalignedAccesses)) {
342     FLAG_SET_DEFAULT(UseUnalignedAccesses, true);
343   }
344 

















345   check_virtualizations();
346 }
347 
348 void VM_Version::check_virtualizations() {
349 #if defined(_AIX)
350   int rc = 0;
351   perfstat_partition_total_t pinfo;
352   rc = perfstat_partition_total(nullptr, &pinfo, sizeof(perfstat_partition_total_t), 1);
353   if (rc == 1) {
354     Abstract_VM_Version::_detected_virtualization = PowerVM;
355   }
356 #else
357   const char* info_file = "/proc/ppc64/lparcfg";
358   // system_type=...qemu indicates PowerKVM
359   // e.g. system_type=IBM pSeries (emulated by qemu)
360   char line[500];
361   FILE* fp = os::fopen(info_file, "r");
362   if (fp == nullptr) {
363     return;
364   }

325     UseMultiplyToLenIntrinsic = true;
326   }
327   if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
328     UseMontgomeryMultiplyIntrinsic = true;
329   }
330   if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
331     UseMontgomerySquareIntrinsic = true;
332   }
333 #endif
334 
335   if (UseVectorizedMismatchIntrinsic) {
336     warning("UseVectorizedMismatchIntrinsic specified, but not available on this CPU.");
337     FLAG_SET_DEFAULT(UseVectorizedMismatchIntrinsic, false);
338   }
339 
340   // This machine allows unaligned memory accesses
341   if (FLAG_IS_DEFAULT(UseUnalignedAccesses)) {
342     FLAG_SET_DEFAULT(UseUnalignedAccesses, true);
343   }
344 
345   if (InlineTypePassFieldsAsArgs) {
346     warning("InlineTypePassFieldsAsArgs is not supported on this CPU");
347     FLAG_SET_DEFAULT(InlineTypePassFieldsAsArgs, false);
348   }
349   if (InlineTypeReturnedAsFields) {
350     warning("InlineTypeReturnedAsFields is not supported on this CPU");
351     FLAG_SET_DEFAULT(InlineTypeReturnedAsFields, false);
352   }
353 
354   // TODO: Valhalla optimizations
355   if (FLAG_IS_DEFAULT(UseArrayFlattening                 )) FLAG_SET_DEFAULT(UseArrayFlattening                 , false);
356   if (FLAG_IS_DEFAULT(UseFieldFlattening                 )) FLAG_SET_DEFAULT(UseFieldFlattening                 , false);
357   if (FLAG_IS_DEFAULT(UseNullFreeNonAtomicValueFlattening)) FLAG_SET_DEFAULT(UseNullFreeNonAtomicValueFlattening, false);
358   if (FLAG_IS_DEFAULT(UseNullableAtomicValueFlattening   )) FLAG_SET_DEFAULT(UseNullableAtomicValueFlattening   , false);
359   if (FLAG_IS_DEFAULT(UseNullFreeAtomicValueFlattening   )) FLAG_SET_DEFAULT(UseNullFreeAtomicValueFlattening   , false);
360   if (FLAG_IS_DEFAULT(UseNullableNonAtomicValueFlattening)) FLAG_SET_DEFAULT(UseNullableNonAtomicValueFlattening, false);
361 
362   check_virtualizations();
363 }
364 
365 void VM_Version::check_virtualizations() {
366 #if defined(_AIX)
367   int rc = 0;
368   perfstat_partition_total_t pinfo;
369   rc = perfstat_partition_total(nullptr, &pinfo, sizeof(perfstat_partition_total_t), 1);
370   if (rc == 1) {
371     Abstract_VM_Version::_detected_virtualization = PowerVM;
372   }
373 #else
374   const char* info_file = "/proc/ppc64/lparcfg";
375   // system_type=...qemu indicates PowerKVM
376   // e.g. system_type=IBM pSeries (emulated by qemu)
377   char line[500];
378   FILE* fp = os::fopen(info_file, "r");
379   if (fp == nullptr) {
380     return;
381   }
< prev index next >