< prev index next >
src/cpu/ppc/vm/vm_version_ppc.cpp
Print this page
rev 8691 : 8131048: ppc: implement CRC32 intrinsic
Reviewed-by: kvn, simonis
Contributed-by: lutz.schmidt@sap.com
@@ -157,14 +157,22 @@
AllocatePrefetchStyle = 1; // Fall back if inappropriate.
}
assert(AllocatePrefetchStyle >= 0, "AllocatePrefetchStyle should be positive");
- if (UseCRC32Intrinsics) {
- if (!FLAG_IS_DEFAULT(UseCRC32Intrinsics))
- warning("CRC32 intrinsics are not available on this CPU");
- FLAG_SET_DEFAULT(UseCRC32Intrinsics, false);
+ // Implementation does not use any of the vector instructions
+ // available with Power8. Their exploitation is still pending.
+ if (!UseCRC32Intrinsics) {
+ if (FLAG_IS_DEFAULT(UseCRC32Intrinsics)) {
+ FLAG_SET_DEFAULT(UseCRC32Intrinsics, true);
+ }
+ }
+
+ if (UseCRC32CIntrinsics) {
+ if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics))
+ warning("CRC32C intrinsics are not available on this CPU");
+ FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
}
// The AES intrinsic stubs require AES instruction support.
if (UseAES) {
warning("AES instructions are not available on this CPU");
@@ -190,16 +198,10 @@
FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
}
- if (UseCRC32CIntrinsics) {
- if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics))
- warning("CRC32C intrinsics are not available on this CPU");
- FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
- }
-
if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
UseMultiplyToLenIntrinsic = true;
}
// Adjust RTM (Restricted Transactional Memory) flags.
< prev index next >