< prev index next >

src/cpu/x86/vm/vm_version_x86.cpp

Print this page

        

*** 1289,1319 **** // Modern processors allow misaligned memory operations for vectors. AlignVector = !UseUnalignedLoadStores; } #endif // COMPILER2 ! if( AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch() ) AllocatePrefetchInstr=0; ! if( !supports_sse() && supports_3dnow_prefetch() ) AllocatePrefetchInstr = 3; // Allocation prefetch settings intx cache_line_size = prefetch_data_size(); ! if( cache_line_size > AllocatePrefetchStepSize ) ! AllocatePrefetchStepSize = cache_line_size; AllocatePrefetchDistance = allocate_prefetch_distance(); AllocatePrefetchStyle = allocate_prefetch_style(); if (is_intel() && cpu_family() == 6 && supports_sse3()) { ! if (AllocatePrefetchStyle == 2) { // watermark prefetching on Core #ifdef _LP64 ! AllocatePrefetchDistance = 384; #else ! AllocatePrefetchDistance = 320; #endif } if (supports_sse4_2() && supports_ht()) { // Nehalem based cpus ! AllocatePrefetchDistance = 192; if (FLAG_IS_DEFAULT(AllocatePrefetchLines)) { FLAG_SET_DEFAULT(AllocatePrefetchLines, 4); } } #ifdef COMPILER2 --- 1289,1329 ---- // Modern processors allow misaligned memory operations for vectors. AlignVector = !UseUnalignedLoadStores; } #endif // COMPILER2 ! if (FLAG_IS_DEFAULT(AllocatePrefetchInstr)) { ! if (AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch()) { ! FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0); ! } else if (!supports_sse() && supports_3dnow_prefetch()) { ! FLAG_SET_DEFAULT(AllocatePrefetchInstr, 3); ! } ! } // Allocation prefetch settings intx cache_line_size = prefetch_data_size(); ! if (FLAG_IS_DEFAULT(AllocatePrefetchDistance) && ! (cache_line_size > AllocatePrefetchStepSize)) { ! FLAG_SET_DEFAULT(AllocatePrefetchStepSize, cache_line_size); ! } AllocatePrefetchDistance = allocate_prefetch_distance(); AllocatePrefetchStyle = allocate_prefetch_style(); if (is_intel() && cpu_family() == 6 && supports_sse3()) { ! if (FLAG_IS_DEFAULT(AllocatePrefetchDistance) && ! (AllocatePrefetchStyle == 2)) { // watermark prefetching on Core #ifdef _LP64 ! FLAG_SET_DEFAULT(AllocatePrefetchDistance, 384); #else ! FLAG_SET_DEFAULT(AllocatePrefetchDistance, 320); #endif } if (supports_sse4_2() && supports_ht()) { // Nehalem based cpus ! if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) { ! FLAG_SET_DEFAULT(AllocatePrefetchDistance, 192); ! } if (FLAG_IS_DEFAULT(AllocatePrefetchLines)) { FLAG_SET_DEFAULT(AllocatePrefetchLines, 4); } } #ifdef COMPILER2
< prev index next >