From: simonmar Date: Tue, 23 Apr 2002 11:21:39 +0000 (+0000) Subject: [project @ 2002-04-23 11:21:39 by simonmar] X-Git-Tag: Approx_11550_changesets_converted~2114 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=0d365572037bf986630c81ee8c64640e1e451501;p=ghc-hetmet.git [project @ 2002-04-23 11:21:39 by simonmar] Always return 8-byte aligned memory from allocatePinned(). --- diff --git a/ghc/rts/Storage.c b/ghc/rts/Storage.c index b8f8322..f492931 100644 --- a/ghc/rts/Storage.c +++ b/ghc/rts/Storage.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: Storage.c,v 1.61 2002/04/19 12:31:07 simonmar Exp $ + * $Id: Storage.c,v 1.62 2002/04/23 11:21:39 simonmar Exp $ * * (c) The GHC Team, 1998-1999 * @@ -576,6 +576,12 @@ allocatePinned( nat n ) return allocate(n); } + // we always return 8-byte aligned memory. bd->free must be + // 8-byte aligned to begin with, so we just round up n to + // the nearest multiple of 8 bytes. + ASSERT(((StgWord)bd->free & 7) == 0); + n = (n+7) & ~8; + // If we don't have a block of pinned objects yet, or the current // one isn't large enough to hold the new object, allocate a new one. if (bd == NULL || (bd->free + n) > (bd->start + BLOCK_SIZE_W)) {