< prev index next >

src/hotspot/cpu/x86/vm_version_x86.cpp

Print this page

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);
< prev index next >