--- old/hotspot/src/cpu/sparc/vm/copy_sparc.hpp 2009-08-01 04:07:20.934332089 +0100 +++ new/hotspot/src/cpu/sparc/vm/copy_sparc.hpp 2009-08-01 04:07:20.850161806 +0100 @@ -2,7 +2,7 @@ #pragma ident "@(#)copy_sparc.hpp 1.12 07/05/05 17:04:26 JVM" #endif /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -140,24 +140,20 @@ } static void pd_fill_to_words(HeapWord* tohw, size_t count, juint value) { -#if 0 - if (HeapWordsPerLong == 1 || - (HeapWordsPerLong == 2 && - mask_bits((uintptr_t)tohw, right_n_bits(LogBytesPerLong)) == 0 && - ((count & 1) ? false : count >>= 1))) { - julong* to = (julong*)tohw; - julong v = ((julong)value << 32) | value; - while (count-- > 0) { - *to++ = v; - } - } else { -#endif - juint* to = (juint*)tohw; - count *= HeapWordSize / BytesPerInt; - while (count-- > 0) { - *to++ = value; - } - // } +#ifdef _LP64 + guarantee(mask_bits((uintptr_t)tohw, right_n_bits(LogBytesPerLong)) == 0, + "unaligned fill words"); + julong* to = (julong*)tohw; + julong v = ((julong)value << 32) | value; + while (count-- > 0) { + *to++ = v; + } +#else // _LP64 + juint* to = (juint*)tohw; + while (count-- > 0) { + *to++ = value; + } +#endif // _LP64 } static void pd_fill_to_aligned_words(HeapWord* tohw, size_t count, juint value) {