src/cpu/aarch64/vm/vm_version_aarch64.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8130120 Sdiff src/cpu/aarch64/vm

src/cpu/aarch64/vm/vm_version_aarch64.cpp

Print this page




 197 
 198   if (FLAG_IS_DEFAULT(UseCRC32Intrinsics)) {
 199     UseCRC32Intrinsics = true;
 200   }
 201 
 202   if (UseCRC32CIntrinsics) {
 203     if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics))
 204       warning("CRC32C intrinsics are not available on this CPU");
 205     FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
 206   }
 207 
 208   if (auxv & (HWCAP_SHA1 | HWCAP_SHA2)) {
 209     if (FLAG_IS_DEFAULT(UseSHA)) {
 210       FLAG_SET_DEFAULT(UseSHA, true);
 211     }
 212   } else if (UseSHA) {
 213     warning("SHA instructions are not available on this CPU");
 214     FLAG_SET_DEFAULT(UseSHA, false);
 215   }
 216 
 217   if (!UseSHA) {
 218     FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
 219     FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
 220     FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
 221   } else {
 222     if (auxv & HWCAP_SHA1) {
 223       if (FLAG_IS_DEFAULT(UseSHA1Intrinsics)) {
 224         FLAG_SET_DEFAULT(UseSHA1Intrinsics, true);
 225       }
 226     } else if (UseSHA1Intrinsics) {
 227       warning("SHA1 instruction is not available on this CPU.");
 228       FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
 229     }
 230     if (auxv & HWCAP_SHA2) {

 231       if (FLAG_IS_DEFAULT(UseSHA256Intrinsics)) {
 232         FLAG_SET_DEFAULT(UseSHA256Intrinsics, true);
 233       }
 234     } else if (UseSHA256Intrinsics) {
 235       warning("SHA256 instruction (for SHA-224 and SHA-256) is not available on this CPU.");
 236       FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
 237     }

 238     if (UseSHA512Intrinsics) {
 239       warning("SHA512 instruction (for SHA-384 and SHA-512) is not available on this CPU.");
 240       FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
 241     }

 242     if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics)) {
 243       FLAG_SET_DEFAULT(UseSHA, false);
 244     }
 245   }
 246 
 247   // This machine allows unaligned memory accesses
 248   if (FLAG_IS_DEFAULT(UseUnalignedAccesses)) {
 249     FLAG_SET_DEFAULT(UseUnalignedAccesses, true);
 250   }
 251 
 252   if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
 253     UseMultiplyToLenIntrinsic = true;
 254   }
 255 
 256   if (FLAG_IS_DEFAULT(UseBarriersForVolatile)) {
 257     UseBarriersForVolatile = (_cpuFeatures & CPU_DMB_ATOMICS) != 0;
 258   }
 259 
 260   if (FLAG_IS_DEFAULT(UsePopCountInstruction)) {
 261     UsePopCountInstruction = true;
 262   }
 263 
 264 #ifdef COMPILER2




 197 
 198   if (FLAG_IS_DEFAULT(UseCRC32Intrinsics)) {
 199     UseCRC32Intrinsics = true;
 200   }
 201 
 202   if (UseCRC32CIntrinsics) {
 203     if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics))
 204       warning("CRC32C intrinsics are not available on this CPU");
 205     FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
 206   }
 207 
 208   if (auxv & (HWCAP_SHA1 | HWCAP_SHA2)) {
 209     if (FLAG_IS_DEFAULT(UseSHA)) {
 210       FLAG_SET_DEFAULT(UseSHA, true);
 211     }
 212   } else if (UseSHA) {
 213     warning("SHA instructions are not available on this CPU");
 214     FLAG_SET_DEFAULT(UseSHA, false);
 215   }
 216 
 217   if (UseSHA && (auxv & HWCAP_SHA1)) {





 218     if (FLAG_IS_DEFAULT(UseSHA1Intrinsics)) {
 219       FLAG_SET_DEFAULT(UseSHA1Intrinsics, true);
 220     }
 221   } else if (UseSHA1Intrinsics) {
 222     warning("Intrinsics for SHA-1 crypto hash functions not available.");
 223     FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
 224   }
 225 
 226   if (UseSHA && (auxv & HWCAP_SHA2)) {
 227     if (FLAG_IS_DEFAULT(UseSHA256Intrinsics)) {
 228       FLAG_SET_DEFAULT(UseSHA256Intrinsics, true);
 229     }
 230   } else if (UseSHA256Intrinsics) {
 231     warning("Intrinsics for SHA-224 and SHA-256 crypto hash functions not available.");
 232     FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
 233   }
 234 
 235   if (UseSHA512Intrinsics) {
 236     warning("Intrinsics for SHA-384 and SHA-512 crypto hash functions not available.");
 237     FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
 238   }
 239 
 240   if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics)) {
 241     FLAG_SET_DEFAULT(UseSHA, false);

 242   }
 243 
 244   // This machine allows unaligned memory accesses
 245   if (FLAG_IS_DEFAULT(UseUnalignedAccesses)) {
 246     FLAG_SET_DEFAULT(UseUnalignedAccesses, true);
 247   }
 248 
 249   if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
 250     UseMultiplyToLenIntrinsic = true;
 251   }
 252 
 253   if (FLAG_IS_DEFAULT(UseBarriersForVolatile)) {
 254     UseBarriersForVolatile = (_cpuFeatures & CPU_DMB_ATOMICS) != 0;
 255   }
 256 
 257   if (FLAG_IS_DEFAULT(UsePopCountInstruction)) {
 258     UsePopCountInstruction = true;
 259   }
 260 
 261 #ifdef COMPILER2


src/cpu/aarch64/vm/vm_version_aarch64.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File