1818 FLAG_SET_DEFAULT(UseFastStosb, false);
1819 }
1820
1821 // For AMD Processors use XMM/YMM MOVDQU instructions
1822 // for Object Initialization as default
1823 if (is_amd() && cpu_family() >= 0x19) {
1824 if (FLAG_IS_DEFAULT(UseFastStosb)) {
1825 UseFastStosb = false;
1826 }
1827 }
1828
1829 #ifdef COMPILER2
1830 if (is_intel() && MaxVectorSize > 16) {
1831 if (FLAG_IS_DEFAULT(UseFastStosb)) {
1832 UseFastStosb = false;
1833 }
1834 }
1835 #endif
1836
1837 // Use XMM/YMM MOVDQU instruction for Object Initialization
1838 if (!UseFastStosb && UseUnalignedLoadStores) {
1839 if (FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1840 UseXMMForObjInit = true;
1841 }
1842 } else if (UseXMMForObjInit) {
1843 if (!FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1844 warning("UseXMMForObjInit requires SSE2 and unaligned load/stores. Feature is switched off.");
1845 }
1846 FLAG_SET_DEFAULT(UseXMMForObjInit, false);
1847 }
1848
1849 #ifdef COMPILER2
1850 if (FLAG_IS_DEFAULT(AlignVector)) {
1851 // Modern processors allow misaligned memory operations for vectors.
1852 AlignVector = !UseUnalignedLoadStores;
1853 }
1854 #endif // COMPILER2
1855
1856 if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
1857 if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
1858 FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
|
1818 FLAG_SET_DEFAULT(UseFastStosb, false);
1819 }
1820
1821 // For AMD Processors use XMM/YMM MOVDQU instructions
1822 // for Object Initialization as default
1823 if (is_amd() && cpu_family() >= 0x19) {
1824 if (FLAG_IS_DEFAULT(UseFastStosb)) {
1825 UseFastStosb = false;
1826 }
1827 }
1828
1829 #ifdef COMPILER2
1830 if (is_intel() && MaxVectorSize > 16) {
1831 if (FLAG_IS_DEFAULT(UseFastStosb)) {
1832 UseFastStosb = false;
1833 }
1834 }
1835 #endif
1836
1837 // Use XMM/YMM MOVDQU instruction for Object Initialization
1838 if (UseUnalignedLoadStores) {
1839 if (FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1840 UseXMMForObjInit = true;
1841 }
1842 } else if (UseXMMForObjInit) {
1843 if (!FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1844 warning("UseXMMForObjInit requires SSE2 and unaligned load/stores. Feature is switched off.");
1845 }
1846 FLAG_SET_DEFAULT(UseXMMForObjInit, false);
1847 }
1848
1849 #ifdef COMPILER2
1850 if (FLAG_IS_DEFAULT(AlignVector)) {
1851 // Modern processors allow misaligned memory operations for vectors.
1852 AlignVector = !UseUnalignedLoadStores;
1853 }
1854 #endif // COMPILER2
1855
1856 if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
1857 if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
1858 FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
|