203 warning("Intrinsics for SHA-1 crypto hash functions not available on this CPU.");
204 FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
205 }
206 if (UseSHA && has_Crypto_SHA256()) {
207 if (FLAG_IS_DEFAULT(UseSHA256Intrinsics)) {
208 FLAG_SET_DEFAULT(UseSHA256Intrinsics, true);
209 }
210 } else if (UseSHA256Intrinsics) {
211 warning("Intrinsics for SHA-224 and SHA-256 crypto hash functions not available on this CPU.");
212 FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
213 }
214 if (UseSHA && has_Crypto_SHA512()) {
215 if (FLAG_IS_DEFAULT(UseSHA512Intrinsics)) {
216 FLAG_SET_DEFAULT(UseSHA512Intrinsics, true);
217 }
218 } else if (UseSHA512Intrinsics) {
219 warning("Intrinsics for SHA-384 and SHA-512 crypto hash functions not available on this CPU.");
220 FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
221 }
222
223 if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics)) {
224 FLAG_SET_DEFAULT(UseSHA, false);
225 }
226
227 #ifdef COMPILER2
228 if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
229 FLAG_SET_DEFAULT(UseMultiplyToLenIntrinsic, true);
230 }
231 if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
232 FLAG_SET_DEFAULT(UseMontgomeryMultiplyIntrinsic, true);
233 }
234 if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
235 FLAG_SET_DEFAULT(UseMontgomerySquareIntrinsic, true);
236 }
237 #endif
238 if (FLAG_IS_DEFAULT(UsePopCountInstruction)) {
239 FLAG_SET_DEFAULT(UsePopCountInstruction, true);
240 }
241
242 // z/Architecture supports 8-byte compare-exchange operations
|
203 warning("Intrinsics for SHA-1 crypto hash functions not available on this CPU.");
204 FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
205 }
206 if (UseSHA && has_Crypto_SHA256()) {
207 if (FLAG_IS_DEFAULT(UseSHA256Intrinsics)) {
208 FLAG_SET_DEFAULT(UseSHA256Intrinsics, true);
209 }
210 } else if (UseSHA256Intrinsics) {
211 warning("Intrinsics for SHA-224 and SHA-256 crypto hash functions not available on this CPU.");
212 FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
213 }
214 if (UseSHA && has_Crypto_SHA512()) {
215 if (FLAG_IS_DEFAULT(UseSHA512Intrinsics)) {
216 FLAG_SET_DEFAULT(UseSHA512Intrinsics, true);
217 }
218 } else if (UseSHA512Intrinsics) {
219 warning("Intrinsics for SHA-384 and SHA-512 crypto hash functions not available on this CPU.");
220 FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
221 }
222
223 if (UseSHA3Intrinsics) {
224 warning("Intrinsics for SHA3-224, SHA3-256, SHA3-384 and SHA3-512 crypto hash functions not available on this CPU.");
225 FLAG_SET_DEFAULT(UseSHA3Intrinsics, false);
226 }
227
228 if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics)) {
229 FLAG_SET_DEFAULT(UseSHA, false);
230 }
231
232 #ifdef COMPILER2
233 if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
234 FLAG_SET_DEFAULT(UseMultiplyToLenIntrinsic, true);
235 }
236 if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
237 FLAG_SET_DEFAULT(UseMontgomeryMultiplyIntrinsic, true);
238 }
239 if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
240 FLAG_SET_DEFAULT(UseMontgomerySquareIntrinsic, true);
241 }
242 #endif
243 if (FLAG_IS_DEFAULT(UsePopCountInstruction)) {
244 FLAG_SET_DEFAULT(UsePopCountInstruction, true);
245 }
246
247 // z/Architecture supports 8-byte compare-exchange operations
|