< prev index next >

src/hotspot/cpu/x86/vm_version_x86.cpp

Print this page

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

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