795 UseCRC32CIntrinsics = true;
796 }
797 } else if (UseCRC32CIntrinsics) {
798 if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) {
799 warning("CRC32C intrinsics are not available on this CPU");
800 }
801 FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
802 }
803
804 // GHASH/GCM intrinsics
805 if (UseCLMUL && (UseSSE > 2)) {
806 if (FLAG_IS_DEFAULT(UseGHASHIntrinsics)) {
807 UseGHASHIntrinsics = true;
808 }
809 } else if (UseGHASHIntrinsics) {
810 if (!FLAG_IS_DEFAULT(UseGHASHIntrinsics))
811 warning("GHASH intrinsic requires CLMUL and SSE2 instructions on this CPU");
812 FLAG_SET_DEFAULT(UseGHASHIntrinsics, false);
813 }
814
815 if (supports_fma()) {
816 if (FLAG_IS_DEFAULT(UseFMA)) {
817 UseFMA = true;
818 }
819 } else if (UseFMA) {
820 warning("FMA instructions are not available on this CPU");
821 FLAG_SET_DEFAULT(UseFMA, false);
822 }
823
824 if (supports_sha() LP64_ONLY(|| supports_avx2() && supports_bmi2())) {
825 if (FLAG_IS_DEFAULT(UseSHA)) {
826 UseSHA = true;
827 }
828 } else if (UseSHA) {
829 warning("SHA instructions are not available on this CPU");
830 FLAG_SET_DEFAULT(UseSHA, false);
831 }
832
833 if (supports_sha() && UseSHA) {
834 if (FLAG_IS_DEFAULT(UseSHA1Intrinsics)) {
835 FLAG_SET_DEFAULT(UseSHA1Intrinsics, true);
|
795 UseCRC32CIntrinsics = true;
796 }
797 } else if (UseCRC32CIntrinsics) {
798 if (!FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) {
799 warning("CRC32C intrinsics are not available on this CPU");
800 }
801 FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
802 }
803
804 // GHASH/GCM intrinsics
805 if (UseCLMUL && (UseSSE > 2)) {
806 if (FLAG_IS_DEFAULT(UseGHASHIntrinsics)) {
807 UseGHASHIntrinsics = true;
808 }
809 } else if (UseGHASHIntrinsics) {
810 if (!FLAG_IS_DEFAULT(UseGHASHIntrinsics))
811 warning("GHASH intrinsic requires CLMUL and SSE2 instructions on this CPU");
812 FLAG_SET_DEFAULT(UseGHASHIntrinsics, false);
813 }
814
815 if (supports_fma() && UseSSE >= 2) { // Check UseSSE since FMA code uses SSE instructions
816 if (FLAG_IS_DEFAULT(UseFMA)) {
817 UseFMA = true;
818 }
819 } else if (UseFMA) {
820 warning("FMA instructions are not available on this CPU");
821 FLAG_SET_DEFAULT(UseFMA, false);
822 }
823
824 if (supports_sha() LP64_ONLY(|| supports_avx2() && supports_bmi2())) {
825 if (FLAG_IS_DEFAULT(UseSHA)) {
826 UseSHA = true;
827 }
828 } else if (UseSHA) {
829 warning("SHA instructions are not available on this CPU");
830 FLAG_SET_DEFAULT(UseSHA, false);
831 }
832
833 if (supports_sha() && UseSHA) {
834 if (FLAG_IS_DEFAULT(UseSHA1Intrinsics)) {
835 FLAG_SET_DEFAULT(UseSHA1Intrinsics, true);
|