Index: vm/gc_gen/src/thread/gc_thread.h =================================================================== --- vm/gc_gen/src/thread/gc_thread.h (revision 600908) +++ vm/gc_gen/src/thread/gc_thread.h (working copy) @@ -98,6 +98,7 @@ POINTER_SIZE_INT new_ceiling; new_ceiling = new_free + ZEROING_SIZE; + new_ceiling = new_ceiling - (new_ceiling & 63); #ifdef ALLOC_PREFETCH if(PREFETCH_ENABLED) { @@ -169,8 +170,9 @@ }while(pre_addr< pref_dist); } #endif - allocator->ceiling = (void*)((POINTER_SIZE_INT)new_free + ZEROING_SIZE); - memset(new_free, 0, ZEROING_SIZE); + POINTER_SIZE_INT align = ((POINTER_SIZE_INT)new_free + ZEROING_SIZE) & 63; + allocator->ceiling = (void*)((POINTER_SIZE_INT)new_free + ZEROING_SIZE - align); + memset(new_free, 0, ZEROING_SIZE - align); #endif /* #ifndef ALLOC_ZEROING */