779 tty->print("YMM%s:", ymm_name[i]);
780 for (int j = 7; j >=0; j--) {
781 tty->print(" %x", _cpuid_info.ymm_save[i*8 + j]);
782 }
783 tty->cr();
784 }
785 }
786 #endif
787 }
788
789 #ifdef _LP64
790 if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
791 UseMultiplyToLenIntrinsic = true;
792 }
793 if (FLAG_IS_DEFAULT(UseSquareToLenIntrinsic)) {
794 UseSquareToLenIntrinsic = true;
795 }
796 if (FLAG_IS_DEFAULT(UseMulAddIntrinsic)) {
797 UseMulAddIntrinsic = true;
798 }
799 #else
800 if (UseMultiplyToLenIntrinsic) {
801 if (!FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
802 warning("multiplyToLen intrinsic is not available in 32-bit VM");
803 }
804 FLAG_SET_DEFAULT(UseMultiplyToLenIntrinsic, false);
805 }
806 if (UseSquareToLenIntrinsic) {
807 if (!FLAG_IS_DEFAULT(UseSquareToLenIntrinsic)) {
808 warning("squareToLen intrinsic is not available in 32-bit VM");
809 }
810 FLAG_SET_DEFAULT(UseSquareToLenIntrinsic, false);
811 }
812 if (UseMulAddIntrinsic) {
813 if (!FLAG_IS_DEFAULT(UseMulAddIntrinsic)) {
814 warning("mulAdd intrinsic is not available in 32-bit VM");
815 }
816 FLAG_SET_DEFAULT(UseMulAddIntrinsic, false);
817 }
818 #endif
819 #endif // COMPILER2
820
821 // On new cpus instructions which update whole XMM register should be used
822 // to prevent partial register stall due to dependencies on high half.
823 //
824 // UseXmmLoadAndClearUpper == true --> movsd(xmm, mem)
825 // UseXmmLoadAndClearUpper == false --> movlpd(xmm, mem)
|
779 tty->print("YMM%s:", ymm_name[i]);
780 for (int j = 7; j >=0; j--) {
781 tty->print(" %x", _cpuid_info.ymm_save[i*8 + j]);
782 }
783 tty->cr();
784 }
785 }
786 #endif
787 }
788
789 #ifdef _LP64
790 if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
791 UseMultiplyToLenIntrinsic = true;
792 }
793 if (FLAG_IS_DEFAULT(UseSquareToLenIntrinsic)) {
794 UseSquareToLenIntrinsic = true;
795 }
796 if (FLAG_IS_DEFAULT(UseMulAddIntrinsic)) {
797 UseMulAddIntrinsic = true;
798 }
799 if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
800 UseMontgomeryMultiplyIntrinsic = true;
801 }
802 if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
803 UseMontgomerySquareIntrinsic = true;
804 }
805 #else
806 if (UseMultiplyToLenIntrinsic) {
807 if (!FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
808 warning("multiplyToLen intrinsic is not available in 32-bit VM");
809 }
810 FLAG_SET_DEFAULT(UseMultiplyToLenIntrinsic, false);
811 }
812 if (UseMontgomeryMultiplyIntrinsic) {
813 if (!FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
814 warning("montgomeryMultiply intrinsic is not available in 32-bit VM");
815 }
816 FLAG_SET_DEFAULT(UseMontgomeryMultiplyIntrinsic, false);
817 }
818 if (UseMontgomerySquareIntrinsic) {
819 if (!FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
820 warning("montgomerySquare intrinsic is not available in 32-bit VM");
821 }
822 FLAG_SET_DEFAULT(UseMontgomerySquareIntrinsic, false);
823 }
824 if (UseSquareToLenIntrinsic) {
825 if (!FLAG_IS_DEFAULT(UseSquareToLenIntrinsic)) {
826 warning("squareToLen intrinsic is not available in 32-bit VM");
827 }
828 FLAG_SET_DEFAULT(UseSquareToLenIntrinsic, false);
829 }
830 if (UseMulAddIntrinsic) {
831 if (!FLAG_IS_DEFAULT(UseMulAddIntrinsic)) {
832 warning("mulAdd intrinsic is not available in 32-bit VM");
833 }
834 FLAG_SET_DEFAULT(UseMulAddIntrinsic, false);
835 }
836 #endif
837 #endif // COMPILER2
838
839 // On new cpus instructions which update whole XMM register should be used
840 // to prevent partial register stall due to dependencies on high half.
841 //
842 // UseXmmLoadAndClearUpper == true --> movsd(xmm, mem)
843 // UseXmmLoadAndClearUpper == false --> movlpd(xmm, mem)
|