241 if (UseGHASHIntrinsics) {
242 warning("GHASH intrinsics are not available on this CPU");
243 FLAG_SET_DEFAULT(UseGHASHIntrinsics, false);
244 }
245
246 if (FLAG_IS_DEFAULT(UseFMA)) {
247 FLAG_SET_DEFAULT(UseFMA, true);
248 }
249
250 if (UseSHA) {
251 warning("SHA instructions are not available on this CPU");
252 FLAG_SET_DEFAULT(UseSHA, false);
253 }
254 if (UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics) {
255 warning("SHA intrinsics are not available on this CPU");
256 FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
257 FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
258 FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
259 }
260
261 if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
262 UseMultiplyToLenIntrinsic = true;
263 }
264 if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
265 UseMontgomeryMultiplyIntrinsic = true;
266 }
267 if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
268 UseMontgomerySquareIntrinsic = true;
269 }
270
271 if (UseVectorizedMismatchIntrinsic) {
272 warning("UseVectorizedMismatchIntrinsic specified, but not available on this CPU.");
273 FLAG_SET_DEFAULT(UseVectorizedMismatchIntrinsic, false);
274 }
275
276
277 // Adjust RTM (Restricted Transactional Memory) flags.
278 if (UseRTMLocking) {
279 // If CPU or OS are too old:
280 // Can't continue because UseRTMLocking affects UseBiasedLocking flag
|
241 if (UseGHASHIntrinsics) {
242 warning("GHASH intrinsics are not available on this CPU");
243 FLAG_SET_DEFAULT(UseGHASHIntrinsics, false);
244 }
245
246 if (FLAG_IS_DEFAULT(UseFMA)) {
247 FLAG_SET_DEFAULT(UseFMA, true);
248 }
249
250 if (UseSHA) {
251 warning("SHA instructions are not available on this CPU");
252 FLAG_SET_DEFAULT(UseSHA, false);
253 }
254 if (UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics) {
255 warning("SHA intrinsics are not available on this CPU");
256 FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
257 FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
258 FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
259 }
260
261 if (FLAG_IS_DEFAULT(UseSquareToLenIntrinsic)) {
262 UseSquareToLenIntrinsic = true;
263 }
264 if (FLAG_IS_DEFAULT(UseMulAddIntrinsic)) {
265 UseMulAddIntrinsic = true;
266 }
267 if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
268 UseMultiplyToLenIntrinsic = true;
269 }
270 if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
271 UseMontgomeryMultiplyIntrinsic = true;
272 }
273 if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
274 UseMontgomerySquareIntrinsic = true;
275 }
276
277 if (UseVectorizedMismatchIntrinsic) {
278 warning("UseVectorizedMismatchIntrinsic specified, but not available on this CPU.");
279 FLAG_SET_DEFAULT(UseVectorizedMismatchIntrinsic, false);
280 }
281
282
283 // Adjust RTM (Restricted Transactional Memory) flags.
284 if (UseRTMLocking) {
285 // If CPU or OS are too old:
286 // Can't continue because UseRTMLocking affects UseBiasedLocking flag
|