src/cpu/sparc/vm/vm_version_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/cpu/sparc/vm/vm_version_sparc.cpp	Wed Apr 20 16:02:57 2016
--- new/src/cpu/sparc/vm/vm_version_sparc.cpp	Wed Apr 20 16:02:57 2016

*** 110,124 **** --- 110,127 ---- if (AllocatePrefetchStyle != 3 && FLAG_IS_DEFAULT(AllocatePrefetchDistance)) { // Use different prefetch distance without BIS FLAG_SET_DEFAULT(AllocatePrefetchDistance, 256); } if (AllocatePrefetchInstr == 1) { ! // Need a space at the end of TLAB for BIS since it ! // will fault when accessing memory outside of heap. ! // Need extra space at the end of TLAB for BIS, otherwise prefetching ! // instructions will fault (due to accessing memory outside of heap). + // The amount of space is the max of the number of lines to + // prefetch for array and for instance allocations. (Extra space must be + // reserved to accomodate both types of allocations.) // +1 for rounding up to next cache line, +1 to be safe ! int lines = MAX2(AllocatePrefetchLines, AllocateInstancePrefetchLines) + 2; int step_size = AllocatePrefetchStepSize; int distance = AllocatePrefetchDistance; _reserve_for_allocation_prefetch = (distance + step_size*lines)/(int)HeapWordSize; } }

src/cpu/sparc/vm/vm_version_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File