< prev index next >

src/hotspot/cpu/aarch64/vm_version_aarch64.cpp

Print this page
rev 60737 : 8252204: AArch64: Implement SHA3 accelerator/intrinsic
Reviewed-by: duke
Contributed-by: dongbo4@huawei.com

*** 65,74 **** --- 65,78 ---- #ifndef HWCAP_SHA512 #define HWCAP_SHA512 (1 << 21) #endif + #ifndef HWCAP_SHA3 + #define HWCAP_SHA3 (1 << 17) + #endif + int VM_Version::_cpu; int VM_Version::_model; int VM_Version::_model2; int VM_Version::_variant; int VM_Version::_revision;
*** 289,298 **** --- 293,303 ---- if (auxv & HWCAP_CRC32) strcat(buf, ", crc"); if (auxv & HWCAP_AES) strcat(buf, ", aes"); if (auxv & HWCAP_SHA1) strcat(buf, ", sha1"); if (auxv & HWCAP_SHA2) strcat(buf, ", sha256"); if (auxv & HWCAP_SHA512) strcat(buf, ", sha512"); + if (auxv & HWCAP_SHA3) strcat(buf, ", sha3"); if (auxv & HWCAP_ATOMICS) strcat(buf, ", lse"); _features_string = os::strdup(buf); if (FLAG_IS_DEFAULT(UseCRC32)) {
*** 367,377 **** if (UseMD5Intrinsics) { warning("MD5 intrinsics are not available on this CPU"); FLAG_SET_DEFAULT(UseMD5Intrinsics, false); } ! if (auxv & (HWCAP_SHA1 | HWCAP_SHA2)) { if (FLAG_IS_DEFAULT(UseSHA)) { FLAG_SET_DEFAULT(UseSHA, true); } } else if (UseSHA) { warning("SHA instructions are not available on this CPU"); --- 372,382 ---- if (UseMD5Intrinsics) { warning("MD5 intrinsics are not available on this CPU"); FLAG_SET_DEFAULT(UseMD5Intrinsics, false); } ! if (auxv & (HWCAP_SHA1 | HWCAP_SHA2 | HWCAP_SHA512 | HWCAP_SHA3)) { if (FLAG_IS_DEFAULT(UseSHA)) { FLAG_SET_DEFAULT(UseSHA, true); } } else if (UseSHA) { warning("SHA instructions are not available on this CPU");
*** 404,414 **** } else if (UseSHA512Intrinsics) { warning("Intrinsics for SHA-384 and SHA-512 crypto hash functions not available on this CPU."); FLAG_SET_DEFAULT(UseSHA512Intrinsics, false); } ! if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics)) { FLAG_SET_DEFAULT(UseSHA, false); } if (auxv & HWCAP_PMULL) { if (FLAG_IS_DEFAULT(UseGHASHIntrinsics)) { --- 409,429 ---- } else if (UseSHA512Intrinsics) { warning("Intrinsics for SHA-384 and SHA-512 crypto hash functions not available on this CPU."); FLAG_SET_DEFAULT(UseSHA512Intrinsics, false); } ! if (UseSHA && (auxv & HWCAP_SHA3)) { ! // Do not auto-enable UseSHA3Intrinsics until it has been fully tested on hardware ! // if (FLAG_IS_DEFAULT(UseSHA3Intrinsics)) { ! // FLAG_SET_DEFAULT(UseSHA3Intrinsics, true); ! // } ! } else if (UseSHA3Intrinsics) { ! warning("Intrinsics for SHA3-224, SHA3-256, SHA3-384 and SHA3-512 crypto hash functions not available on this CPU."); ! FLAG_SET_DEFAULT(UseSHA3Intrinsics, false); ! } ! ! if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics || UseSHA3Intrinsics)) { FLAG_SET_DEFAULT(UseSHA, false); } if (auxv & HWCAP_PMULL) { if (FLAG_IS_DEFAULT(UseGHASHIntrinsics)) {
< prev index next >