< prev index next >

src/hotspot/cpu/x86/vm_version_x86.cpp

Print this page

1726     FLAG_SET_DEFAULT(UseFastStosb, false);
1727   }
1728 
1729   // For AMD Processors use XMM/YMM MOVDQU instructions
1730   // for Object Initialization as default
1731   if (is_amd() && cpu_family() >= 0x19) {
1732     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1733       UseFastStosb = false;
1734     }
1735   }
1736 
1737 #ifdef COMPILER2
1738   if (is_intel() && MaxVectorSize > 16) {
1739     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1740       UseFastStosb = false;
1741     }
1742   }
1743 #endif
1744 
1745   // Use XMM/YMM MOVDQU instruction for Object Initialization
1746   if (!UseFastStosb && UseUnalignedLoadStores) {
1747     if (FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1748       UseXMMForObjInit = true;
1749     }
1750   } else if (UseXMMForObjInit) {
1751     if (!FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1752       warning("UseXMMForObjInit requires SSE2 and unaligned load/stores. Feature is switched off.");
1753     }
1754     FLAG_SET_DEFAULT(UseXMMForObjInit, false);
1755   }
1756 
1757 #ifdef COMPILER2
1758   if (FLAG_IS_DEFAULT(AlignVector)) {
1759     // Modern processors allow misaligned memory operations for vectors.
1760     AlignVector = !UseUnalignedLoadStores;
1761   }
1762 #endif // COMPILER2
1763 
1764   if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
1765     if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
1766       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);

1726     FLAG_SET_DEFAULT(UseFastStosb, false);
1727   }
1728 
1729   // For AMD Processors use XMM/YMM MOVDQU instructions
1730   // for Object Initialization as default
1731   if (is_amd() && cpu_family() >= 0x19) {
1732     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1733       UseFastStosb = false;
1734     }
1735   }
1736 
1737 #ifdef COMPILER2
1738   if (is_intel() && MaxVectorSize > 16) {
1739     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1740       UseFastStosb = false;
1741     }
1742   }
1743 #endif
1744 
1745   // Use XMM/YMM MOVDQU instruction for Object Initialization
1746   if (UseUnalignedLoadStores) {
1747     if (FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1748       UseXMMForObjInit = true;
1749     }
1750   } else if (UseXMMForObjInit) {
1751     if (!FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1752       warning("UseXMMForObjInit requires SSE2 and unaligned load/stores. Feature is switched off.");
1753     }
1754     FLAG_SET_DEFAULT(UseXMMForObjInit, false);
1755   }
1756 
1757 #ifdef COMPILER2
1758   if (FLAG_IS_DEFAULT(AlignVector)) {
1759     // Modern processors allow misaligned memory operations for vectors.
1760     AlignVector = !UseUnalignedLoadStores;
1761   }
1762 #endif // COMPILER2
1763 
1764   if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
1765     if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
1766       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
< prev index next >