From 5dd0acb3cddb96845062c0b7cee1e384e69f43cb Mon Sep 17 00:00:00 2001 From: Fei Yang Date: Sat, 22 Mar 2025 02:31:53 +0000 Subject: [PATCH] 8352477: RISC-V: Print warnings when unsupported intrinsics are enabled Reviewed-by: mli, rehn, fjiang --- src/hotspot/cpu/riscv/vm_version_riscv.cpp | 29 ++++++++++++++-------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/hotspot/cpu/riscv/vm_version_riscv.cpp b/src/hotspot/cpu/riscv/vm_version_riscv.cpp index 7b17d30447b..bd84171d5cc 100644 --- a/src/hotspot/cpu/riscv/vm_version_riscv.cpp +++ b/src/hotspot/cpu/riscv/vm_version_riscv.cpp @@ -128,11 +128,11 @@ void VM_Version::common_initialize() { } if (FLAG_IS_DEFAULT(UseCopySignIntrinsic)) { - FLAG_SET_DEFAULT(UseCopySignIntrinsic, true); + FLAG_SET_DEFAULT(UseCopySignIntrinsic, true); } if (FLAG_IS_DEFAULT(UseSignumIntrinsic)) { - FLAG_SET_DEFAULT(UseSignumIntrinsic, true); + FLAG_SET_DEFAULT(UseSignumIntrinsic, true); } if (UseRVC && !ext_C.enabled()) { @@ -150,8 +150,12 @@ void VM_Version::common_initialize() { unaligned_access.value() != MISALIGNED_FAST); } - if (FLAG_IS_DEFAULT(UsePoly1305Intrinsics) && !AvoidUnalignedAccesses) { - FLAG_SET_DEFAULT(UsePoly1305Intrinsics, true); + if (!AvoidUnalignedAccesses) { + if (FLAG_IS_DEFAULT(UsePoly1305Intrinsics)) { + FLAG_SET_DEFAULT(UsePoly1305Intrinsics, true); + } + } else if (UsePoly1305Intrinsics) { + warning("Intrinsics for Poly1305 crypto hash functions not available on this CPU."); } // See JDK-8026049 @@ -315,10 +319,6 @@ void VM_Version::c2_initialize() { FLAG_SET_DEFAULT(UseMontgomerySquareIntrinsic, true); } - if (FLAG_IS_DEFAULT(UseMD5Intrinsics) && !AvoidUnalignedAccesses) { - FLAG_SET_DEFAULT(UseMD5Intrinsics, true); - } - // Adler32 if (UseRVV) { if (FLAG_IS_DEFAULT(UseAdler32Intrinsics)) { @@ -359,14 +359,23 @@ void VM_Version::c2_initialize() { FLAG_SET_DEFAULT(UseZvbc, false); } + if (!AvoidUnalignedAccesses) { + if (FLAG_IS_DEFAULT(UseMD5Intrinsics)) { + FLAG_SET_DEFAULT(UseMD5Intrinsics, true); + } + } else if (UseMD5Intrinsics) { + warning("Intrinsics for MD5 crypto hash functions not available on this CPU."); + FLAG_SET_DEFAULT(UseMD5Intrinsics, false); + } + // SHA's if (FLAG_IS_DEFAULT(UseSHA)) { FLAG_SET_DEFAULT(UseSHA, true); } // SHA-1, no RVV required though. - if (UseSHA) { - if (FLAG_IS_DEFAULT(UseSHA1Intrinsics) && !AvoidUnalignedAccesses) { + if (UseSHA && !AvoidUnalignedAccesses) { + if (FLAG_IS_DEFAULT(UseSHA1Intrinsics)) { FLAG_SET_DEFAULT(UseSHA1Intrinsics, true); } } else if (UseSHA1Intrinsics) {