1.1 --- a/src/cpu/sparc/vm/copy_sparc.hpp Fri Apr 11 09:56:35 2008 -0400 1.2 +++ b/src/cpu/sparc/vm/copy_sparc.hpp Sun Apr 13 17:43:42 2008 -0400 1.3 @@ -137,24 +137,20 @@ 1.4 } 1.5 1.6 static void pd_fill_to_words(HeapWord* tohw, size_t count, juint value) { 1.7 -#if 0 1.8 - if (HeapWordsPerLong == 1 || 1.9 - (HeapWordsPerLong == 2 && 1.10 - mask_bits((uintptr_t)tohw, right_n_bits(LogBytesPerLong)) == 0 && 1.11 - ((count & 1) ? false : count >>= 1))) { 1.12 - julong* to = (julong*)tohw; 1.13 - julong v = ((julong)value << 32) | value; 1.14 - while (count-- > 0) { 1.15 - *to++ = v; 1.16 - } 1.17 - } else { 1.18 -#endif 1.19 - juint* to = (juint*)tohw; 1.20 - count *= HeapWordSize / BytesPerInt; 1.21 - while (count-- > 0) { 1.22 - *to++ = value; 1.23 - } 1.24 - // } 1.25 +#ifdef _LP64 1.26 + guarantee(mask_bits((uintptr_t)tohw, right_n_bits(LogBytesPerLong)) == 0, 1.27 + "unaligned fill words"); 1.28 + julong* to = (julong*)tohw; 1.29 + julong v = ((julong)value << 32) | value; 1.30 + while (count-- > 0) { 1.31 + *to++ = v; 1.32 + } 1.33 +#else // _LP64 1.34 + juint* to = (juint*)tohw; 1.35 + while (count-- > 0) { 1.36 + *to++ = value; 1.37 + } 1.38 +#endif // _LP64 1.39 } 1.40 1.41 static void pd_fill_to_aligned_words(HeapWord* tohw, size_t count, juint value) {