--- a/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp Wed Dec 10 16:45:55 2014 +0100
+++ b/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp Tue Dec 09 11:57:46 2014 +0100
@@ -134,13 +134,44 @@
}
assert(AllocatePrefetchLines > 0, "invalid value");
- if (AllocatePrefetchLines < 1) // Set valid value in product VM.
+ if (AllocatePrefetchLines < 1) { // Set valid value in product VM.
AllocatePrefetchLines = 1; // Conservative value.
+ }
- if (AllocatePrefetchStyle == 3 && AllocatePrefetchDistance < cache_line_size)
+ if (AllocatePrefetchStyle == 3 && AllocatePrefetchDistance < cache_line_size) {
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);
+ }
+
+ // The AES intrinsic stubs require AES instruction support.
+ if (UseAES) {
+ warning("AES instructions are not available on this CPU");
+ FLAG_SET_DEFAULT(UseAES, false);
+ }
+ if (UseAESIntrinsics) {
+ if (!FLAG_IS_DEFAULT(UseAESIntrinsics))
+ warning("AES intrinsics are not available on this CPU");
+ FLAG_SET_DEFAULT(UseAESIntrinsics, false);
+ }
+
+ if (UseSHA) {
+ warning("SHA instructions are not available on this CPU");
+ FLAG_SET_DEFAULT(UseSHA, false);
+ }
+ if (UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics) {
+ warning("SHA intrinsics are not available on this CPU");
+ FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
+ FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
+ FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
+ }
+
}
void VM_Version::print_features() {