< prev index next >

src/hotspot/cpu/x86/vm_version_x86.cpp

Print this page

1751     FLAG_SET_DEFAULT(UseFastStosb, false);
1752   }
1753 
1754   // For AMD Processors use XMM/YMM MOVDQU instructions
1755   // for Object Initialization as default
1756   if (is_amd() && cpu_family() >= 0x19) {
1757     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1758       UseFastStosb = false;
1759     }
1760   }
1761 
1762 #ifdef COMPILER2
1763   if (is_intel() && MaxVectorSize > 16) {
1764     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1765       UseFastStosb = false;
1766     }
1767   }
1768 #endif
1769 
1770   // Use XMM/YMM MOVDQU instruction for Object Initialization
1771   if (!UseFastStosb && UseUnalignedLoadStores) {
1772     if (FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1773       UseXMMForObjInit = true;
1774     }
1775   } else if (UseXMMForObjInit) {
1776     warning("UseXMMForObjInit requires SSE2 and unaligned load/stores. Feature is switched off.");
1777     FLAG_SET_DEFAULT(UseXMMForObjInit, false);
1778   }
1779 
1780 #ifdef COMPILER2
1781   if (FLAG_IS_DEFAULT(AlignVector)) {
1782     // Modern processors allow misaligned memory operations for vectors.
1783     AlignVector = !UseUnalignedLoadStores;
1784   }
1785 #endif // COMPILER2
1786 
1787   if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
1788     if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
1789       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
1790     } else if (!supports_sse() && supports_3dnow_prefetch()) {
1791       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 3);

1751     FLAG_SET_DEFAULT(UseFastStosb, false);
1752   }
1753 
1754   // For AMD Processors use XMM/YMM MOVDQU instructions
1755   // for Object Initialization as default
1756   if (is_amd() && cpu_family() >= 0x19) {
1757     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1758       UseFastStosb = false;
1759     }
1760   }
1761 
1762 #ifdef COMPILER2
1763   if (is_intel() && MaxVectorSize > 16) {
1764     if (FLAG_IS_DEFAULT(UseFastStosb)) {
1765       UseFastStosb = false;
1766     }
1767   }
1768 #endif
1769 
1770   // Use XMM/YMM MOVDQU instruction for Object Initialization
1771   if (UseUnalignedLoadStores) {
1772     if (FLAG_IS_DEFAULT(UseXMMForObjInit)) {
1773       UseXMMForObjInit = true;
1774     }
1775   } else if (UseXMMForObjInit) {
1776     warning("UseXMMForObjInit requires SSE2 and unaligned load/stores. Feature is switched off.");
1777     FLAG_SET_DEFAULT(UseXMMForObjInit, false);
1778   }
1779 
1780 #ifdef COMPILER2
1781   if (FLAG_IS_DEFAULT(AlignVector)) {
1782     // Modern processors allow misaligned memory operations for vectors.
1783     AlignVector = !UseUnalignedLoadStores;
1784   }
1785 #endif // COMPILER2
1786 
1787   if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) {
1788     if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) {
1789       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
1790     } else if (!supports_sse() && supports_3dnow_prefetch()) {
1791       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 3);
< prev index next >