1794 FLAG_SET_DEFAULT(UseFastStosb, false);
1795 }
1796
1797 // For AMD Processors use XMM/YMM MOVDQU instructions
1798 // for Object Initialization as default
1799 if (is_amd() && cpu_family() >= 0x19) {
1800 if (FLAG_IS_DEFAULT(UseFastStosb)) {
1801 UseFastStosb = false;
1802 }
1803 }
1804
1805 #ifdef COMPILER2
1806 if (is_intel() && MaxVectorSize > 16) {
1807 if (FLAG_IS_DEFAULT(UseFastStosb)) {
1808 UseFastStosb = false;
1809 }
1810 }
1811 #endif
1812
1813 // Use XMM/YMM MOVDQU instruction for Object Initialization
1814 if (!UseFastStosb && UseUnalignedLoadStores) {
1815 if (FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1816 UseXMMForObjInit = true;
1817 }
1818 } else if (UseXMMForObjInit) {
1819 if (!FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1820 warning("UseXMMForObjInit requires SSE2 and unaligned load/stores. Feature is switched off.");
1821 }
1822 FLAG_SET_DEFAULT(UseXMMForObjInit, false);
1823 }
1824
1825 #ifdef COMPILER2
1826 if (FLAG_IS_DEFAULT(AlignVector)) {
1827 // Modern processors allow misaligned memory operations for vectors.
1828 AlignVector = !UseUnalignedLoadStores;
1829 }
1830 #endif // COMPILER2
1831
1832 if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
1833 if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
1834 FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
|
1794 FLAG_SET_DEFAULT(UseFastStosb, false);
1795 }
1796
1797 // For AMD Processors use XMM/YMM MOVDQU instructions
1798 // for Object Initialization as default
1799 if (is_amd() && cpu_family() >= 0x19) {
1800 if (FLAG_IS_DEFAULT(UseFastStosb)) {
1801 UseFastStosb = false;
1802 }
1803 }
1804
1805 #ifdef COMPILER2
1806 if (is_intel() && MaxVectorSize > 16) {
1807 if (FLAG_IS_DEFAULT(UseFastStosb)) {
1808 UseFastStosb = false;
1809 }
1810 }
1811 #endif
1812
1813 // Use XMM/YMM MOVDQU instruction for Object Initialization
1814 if (UseUnalignedLoadStores) {
1815 if (FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1816 UseXMMForObjInit = true;
1817 }
1818 } else if (UseXMMForObjInit) {
1819 if (!FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1820 warning("UseXMMForObjInit requires SSE2 and unaligned load/stores. Feature is switched off.");
1821 }
1822 FLAG_SET_DEFAULT(UseXMMForObjInit, false);
1823 }
1824
1825 #ifdef COMPILER2
1826 if (FLAG_IS_DEFAULT(AlignVector)) {
1827 // Modern processors allow misaligned memory operations for vectors.
1828 AlignVector = !UseUnalignedLoadStores;
1829 }
1830 #endif // COMPILER2
1831
1832 if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
1833 if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
1834 FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
|