hotspot/src/cpu/x86/vm/vm_version_x86.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8069539 Sdiff hotspot/src/cpu/x86/vm

hotspot/src/cpu/x86/vm/vm_version_x86.cpp

Print this page




 667 #ifdef ASSERT
 668     if (supports_avx() && PrintMiscellaneous && Verbose && TraceNewVectors) {
 669       tty->print_cr("State of YMM registers after signal handle:");
 670       int nreg = 2 LP64_ONLY(+2);
 671       const char* ymm_name[4] = {"0", "7", "8", "15"};
 672       for (int i = 0; i < nreg; i++) {
 673         tty->print("YMM%s:", ymm_name[i]);
 674         for (int j = 7; j >=0; j--) {
 675           tty->print(" %x", _cpuid_info.ymm_save[i*8 + j]);
 676         }
 677         tty->cr();
 678       }
 679     }
 680 #endif
 681   }
 682 
 683 #ifdef _LP64
 684   if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
 685     UseMultiplyToLenIntrinsic = true;
 686   }






 687 #else
 688   if (UseMultiplyToLenIntrinsic) {
 689     if (!FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
 690       warning("multiplyToLen intrinsic is not available in 32-bit VM");
 691     }
 692     FLAG_SET_DEFAULT(UseMultiplyToLenIntrinsic, false);
 693   }












 694 #endif
 695 #endif // COMPILER2
 696 
 697   // On new cpus instructions which update whole XMM register should be used
 698   // to prevent partial register stall due to dependencies on high half.
 699   //
 700   // UseXmmLoadAndClearUpper == true  --> movsd(xmm, mem)
 701   // UseXmmLoadAndClearUpper == false --> movlpd(xmm, mem)
 702   // UseXmmRegToRegMoveAll == true  --> movaps(xmm, xmm), movapd(xmm, xmm).
 703   // UseXmmRegToRegMoveAll == false --> movss(xmm, xmm),  movsd(xmm, xmm).
 704 
 705   if( is_amd() ) { // AMD cpus specific settings
 706     if( supports_sse2() && FLAG_IS_DEFAULT(UseAddressNop) ) {
 707       // Use it on new AMD cpus starting from Opteron.
 708       UseAddressNop = true;
 709     }
 710     if( supports_sse2() && FLAG_IS_DEFAULT(UseNewLongLShift) ) {
 711       // Use it on new AMD cpus starting from Opteron.
 712       UseNewLongLShift = true;
 713     }




 667 #ifdef ASSERT
 668     if (supports_avx() && PrintMiscellaneous && Verbose && TraceNewVectors) {
 669       tty->print_cr("State of YMM registers after signal handle:");
 670       int nreg = 2 LP64_ONLY(+2);
 671       const char* ymm_name[4] = {"0", "7", "8", "15"};
 672       for (int i = 0; i < nreg; i++) {
 673         tty->print("YMM%s:", ymm_name[i]);
 674         for (int j = 7; j >=0; j--) {
 675           tty->print(" %x", _cpuid_info.ymm_save[i*8 + j]);
 676         }
 677         tty->cr();
 678       }
 679     }
 680 #endif
 681   }
 682 
 683 #ifdef _LP64
 684   if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
 685     UseMultiplyToLenIntrinsic = true;
 686   }
 687   if (FLAG_IS_DEFAULT(UseSquareToLenIntrinsic)) {
 688     UseSquareToLenIntrinsic = true;
 689   }
 690   if (FLAG_IS_DEFAULT(UseMulAddIntrinsic)) {
 691     UseMulAddIntrinsic = true;
 692   }
 693 #else
 694   if (UseMultiplyToLenIntrinsic) {
 695     if (!FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
 696       warning("multiplyToLen intrinsic is not available in 32-bit VM");
 697     }
 698     FLAG_SET_DEFAULT(UseMultiplyToLenIntrinsic, false);
 699   }
 700   if (UseSquareToLenIntrinsic) {
 701     if (!FLAG_IS_DEFAULT(UseSquareToLenIntrinsic)) {
 702       warning("squareToLen intrinsic is not available in 32-bit VM");
 703     }
 704     FLAG_SET_DEFAULT(UseSquareToLenIntrinsic, false);
 705   }
 706   if (UseMulAddIntrinsic) {
 707     if (!FLAG_IS_DEFAULT(UseMulAddIntrinsic)) {
 708       warning("mulAdd intrinsic is not available in 32-bit VM");
 709     }
 710     FLAG_SET_DEFAULT(UseMulAddIntrinsic, false);
 711   }
 712 #endif
 713 #endif // COMPILER2
 714 
 715   // On new cpus instructions which update whole XMM register should be used
 716   // to prevent partial register stall due to dependencies on high half.
 717   //
 718   // UseXmmLoadAndClearUpper == true  --> movsd(xmm, mem)
 719   // UseXmmLoadAndClearUpper == false --> movlpd(xmm, mem)
 720   // UseXmmRegToRegMoveAll == true  --> movaps(xmm, xmm), movapd(xmm, xmm).
 721   // UseXmmRegToRegMoveAll == false --> movss(xmm, xmm),  movsd(xmm, xmm).
 722 
 723   if( is_amd() ) { // AMD cpus specific settings
 724     if( supports_sse2() && FLAG_IS_DEFAULT(UseAddressNop) ) {
 725       // Use it on new AMD cpus starting from Opteron.
 726       UseAddressNop = true;
 727     }
 728     if( supports_sse2() && FLAG_IS_DEFAULT(UseNewLongLShift) ) {
 729       // Use it on new AMD cpus starting from Opteron.
 730       UseNewLongLShift = true;
 731     }


hotspot/src/cpu/x86/vm/vm_version_x86.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File