src/cpu/sparc/vm/vm_version_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8130120 Sdiff src/cpu/sparc/vm

src/cpu/sparc/vm/vm_version_sparc.cpp

Print this page




 312     FLAG_SET_DEFAULT(UseGHASHIntrinsics, false);
 313   }
 314 
 315   // SHA1, SHA256, and SHA512 instructions were added to SPARC T-series at different times
 316   if (has_sha1() || has_sha256() || has_sha512()) {
 317     if (UseVIS > 0) { // SHA intrinsics use VIS1 instructions
 318       if (FLAG_IS_DEFAULT(UseSHA)) {
 319         FLAG_SET_DEFAULT(UseSHA, true);
 320       }
 321     } else {
 322       if (UseSHA) {
 323         warning("SPARC SHA intrinsics require VIS1 instruction support. Intrinsics will be disabled.");
 324         FLAG_SET_DEFAULT(UseSHA, false);
 325       }
 326     }
 327   } else if (UseSHA) {
 328     warning("SHA instructions are not available on this CPU");
 329     FLAG_SET_DEFAULT(UseSHA, false);
 330   }
 331 
 332   if (!UseSHA) {
 333     FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
 334     FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
 335     FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
 336   } else {
 337     if (has_sha1()) {
 338       if (FLAG_IS_DEFAULT(UseSHA1Intrinsics)) {
 339         FLAG_SET_DEFAULT(UseSHA1Intrinsics, true);
 340       }
 341     } else if (UseSHA1Intrinsics) {
 342       warning("SHA1 instruction is not available on this CPU.");
 343       FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
 344     }
 345     if (has_sha256()) {

 346       if (FLAG_IS_DEFAULT(UseSHA256Intrinsics)) {
 347         FLAG_SET_DEFAULT(UseSHA256Intrinsics, true);
 348       }
 349     } else if (UseSHA256Intrinsics) {
 350       warning("SHA256 instruction (for SHA-224 and SHA-256) is not available on this CPU.");
 351       FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
 352     }
 353 
 354     if (has_sha512()) {
 355       if (FLAG_IS_DEFAULT(UseSHA512Intrinsics)) {
 356         FLAG_SET_DEFAULT(UseSHA512Intrinsics, true);
 357       }
 358     } else if (UseSHA512Intrinsics) {
 359       warning("SHA512 instruction (for SHA-384 and SHA-512) is not available on this CPU.");
 360       FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
 361     }

 362     if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics)) {
 363       FLAG_SET_DEFAULT(UseSHA, false);
 364     }
 365   }
 366 
 367   // SPARC T4 and above should have support for CRC32C instruction
 368   if (has_crc32c()) {
 369     if (UseVIS > 2) { // CRC32C intrinsics use VIS3 instructions
 370       if (FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) {
 371         FLAG_SET_DEFAULT(UseCRC32CIntrinsics, true);
 372       }
 373     } else {
 374       if (UseCRC32CIntrinsics) {
 375         warning("SPARC CRC32C intrinsics require VIS3 instruction support. Intrinsics will be disabled.");
 376         FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
 377       }
 378     }
 379   } else if (UseCRC32CIntrinsics) {
 380     warning("CRC32C instruction is not available on this CPU");
 381     FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
 382   }
 383 
 384   if (FLAG_IS_DEFAULT(ContendedPaddingWidth) &&




 312     FLAG_SET_DEFAULT(UseGHASHIntrinsics, false);
 313   }
 314 
 315   // SHA1, SHA256, and SHA512 instructions were added to SPARC T-series at different times
 316   if (has_sha1() || has_sha256() || has_sha512()) {
 317     if (UseVIS > 0) { // SHA intrinsics use VIS1 instructions
 318       if (FLAG_IS_DEFAULT(UseSHA)) {
 319         FLAG_SET_DEFAULT(UseSHA, true);
 320       }
 321     } else {
 322       if (UseSHA) {
 323         warning("SPARC SHA intrinsics require VIS1 instruction support. Intrinsics will be disabled.");
 324         FLAG_SET_DEFAULT(UseSHA, false);
 325       }
 326     }
 327   } else if (UseSHA) {
 328     warning("SHA instructions are not available on this CPU");
 329     FLAG_SET_DEFAULT(UseSHA, false);
 330   }
 331 
 332   if (UseSHA && has_sha1()) {





 333     if (FLAG_IS_DEFAULT(UseSHA1Intrinsics)) {
 334       FLAG_SET_DEFAULT(UseSHA1Intrinsics, true);
 335     }
 336   } else if (UseSHA1Intrinsics) {
 337     warning("Intrinsics for SHA-1 crypto hash functions not available.");
 338     FLAG_SET_DEFAULT(UseSHA1Intrinsics, false);
 339   }
 340 
 341   if (UseSHA && has_sha256()) {
 342     if (FLAG_IS_DEFAULT(UseSHA256Intrinsics)) {
 343       FLAG_SET_DEFAULT(UseSHA256Intrinsics, true);
 344     }
 345   } else if (UseSHA256Intrinsics) {
 346     warning("Intrinsics for SHA-224 and SHA-256 crypto hash functions not available.");
 347     FLAG_SET_DEFAULT(UseSHA256Intrinsics, false);
 348   }
 349 
 350   if (UseSHA && has_sha512()) {
 351     if (FLAG_IS_DEFAULT(UseSHA512Intrinsics)) {
 352       FLAG_SET_DEFAULT(UseSHA512Intrinsics, true);
 353     }
 354   } else if (UseSHA512Intrinsics) {
 355     warning("Intrinsics for SHA-384 and SHA-512 crypto hash functions not available.");
 356     FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
 357   }
 358 
 359   if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics)) {
 360     FLAG_SET_DEFAULT(UseSHA, false);

 361   }
 362 
 363   // SPARC T4 and above should have support for CRC32C instruction
 364   if (has_crc32c()) {
 365     if (UseVIS > 2) { // CRC32C intrinsics use VIS3 instructions
 366       if (FLAG_IS_DEFAULT(UseCRC32CIntrinsics)) {
 367         FLAG_SET_DEFAULT(UseCRC32CIntrinsics, true);
 368       }
 369     } else {
 370       if (UseCRC32CIntrinsics) {
 371         warning("SPARC CRC32C intrinsics require VIS3 instruction support. Intrinsics will be disabled.");
 372         FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
 373       }
 374     }
 375   } else if (UseCRC32CIntrinsics) {
 376     warning("CRC32C instruction is not available on this CPU");
 377     FLAG_SET_DEFAULT(UseCRC32CIntrinsics, false);
 378   }
 379 
 380   if (FLAG_IS_DEFAULT(ContendedPaddingWidth) &&


src/cpu/sparc/vm/vm_version_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File