< prev index next >

src/hotspot/cpu/x86/vm_version_x86.cpp

Print this page

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