< prev index next >

src/hotspot/cpu/x86/vm_version_x86.cpp

Print this page

1704     FLAG_SET_DEFAULT(UseFastStosb, false);
1705   }
1706 
1707   // For AMD Processors use XMM/YMM MOVDQU instructions
1708   // for Object Initialization as default
1709   if (is_amd() && cpu_family() >= 0x19) {
1710     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1711       UseFastStosb = false;
1712     }
1713   }
1714 
1715 #ifdef COMPILER2
1716   if (is_intel() && MaxVectorSize > 16) {
1717     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1718       UseFastStosb = false;
1719     }
1720   }
1721 #endif
1722 
1723   // Use XMM/YMM MOVDQU instruction for Object Initialization
1724   if (!UseFastStosb && UseUnalignedLoadStores) {
1725     if (FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1726       UseXMMForObjInit = true;
1727     }
1728   } else if (UseXMMForObjInit) {
1729     if (!FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1730       warning("UseXMMForObjInit requires SSE2 and unaligned load/stores. Feature is switched off.");
1731     }
1732     FLAG_SET_DEFAULT(UseXMMForObjInit, false);
1733   }
1734 
1735 #ifdef COMPILER2
1736   if (FLAG_IS_DEFAULT(AlignVector)) {
1737     // Modern processors allow misaligned memory operations for vectors.
1738     AlignVector = !UseUnalignedLoadStores;
1739   }
1740 #endif // COMPILER2
1741 
1742   if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
1743     if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
1744       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);

1704     FLAG_SET_DEFAULT(UseFastStosb, false);
1705   }
1706 
1707   // For AMD Processors use XMM/YMM MOVDQU instructions
1708   // for Object Initialization as default
1709   if (is_amd() && cpu_family() >= 0x19) {
1710     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1711       UseFastStosb = false;
1712     }
1713   }
1714 
1715 #ifdef COMPILER2
1716   if (is_intel() && MaxVectorSize > 16) {
1717     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1718       UseFastStosb = false;
1719     }
1720   }
1721 #endif
1722 
1723   // Use XMM/YMM MOVDQU instruction for Object Initialization
1724   if (UseUnalignedLoadStores) {
1725     if (FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1726       UseXMMForObjInit = true;
1727     }
1728   } else if (UseXMMForObjInit) {
1729     if (!FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1730       warning("UseXMMForObjInit requires SSE2 and unaligned load/stores. Feature is switched off.");
1731     }
1732     FLAG_SET_DEFAULT(UseXMMForObjInit, false);
1733   }
1734 
1735 #ifdef COMPILER2
1736   if (FLAG_IS_DEFAULT(AlignVector)) {
1737     // Modern processors allow misaligned memory operations for vectors.
1738     AlignVector = !UseUnalignedLoadStores;
1739   }
1740 #endif // COMPILER2
1741 
1742   if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
1743     if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
1744       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
< prev index next >