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 defined(VM_LITTLE_ENDIAN)
262 if (FLAG_IS_DEFAULT(UseSquareToLenIntrinsic)) {
263 UseSquareToLenIntrinsic = true;
264 }
265 if (FLAG_IS_DEFAULT(UseMulAddIntrinsic)) {
266 UseMulAddIntrinsic = true;
267 }
268 #endif
269 if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
270 UseMultiplyToLenIntrinsic = true;
271 }
272 if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
273 UseMontgomeryMultiplyIntrinsic = true;
274 }
275 if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
276 UseMontgomerySquareIntrinsic = true;
277 }
278
279 if (UseVectorizedMismatchIntrinsic) {
280 warning("UseVectorizedMismatchIntrinsic specified, but not available on this CPU.");
281 FLAG_SET_DEFAULT(UseVectorizedMismatchIntrinsic, false);
282 }
283
284
285 // Adjust RTM (Restricted Transactional Memory) flags.
286 if (UseRTMLocking) {
287 // If CPU or OS are too old:
288 // Can't continue because UseRTMLocking affects UseBiasedLocking flag
|