ghc/rts-GCCompact.h-x86_64.patch

33 lines
1.4 KiB
Diff

--- fptools/ghc/rts/GCCompact.h 2004/09/12 11:27:14 1.4
+++ fptools/ghc/rts/GCCompact.h 2005/04/29 16:18:58 1.5
@@ -12,7 +12,7 @@ mark(StgPtr p, bdescr *bd)
nat offset_within_block = p - bd->start; // in words
StgPtr bitmap_word = (StgPtr)bd->u.bitmap +
(offset_within_block / (sizeof(W_)*BITS_PER_BYTE));
- nat bit_mask = 1 << (offset_within_block & (sizeof(W_)*BITS_PER_BYTE - 1));
+ StgWord bit_mask = (StgWord)1 << (offset_within_block & (sizeof(W_)*BITS_PER_BYTE - 1));
*bitmap_word |= bit_mask;
}
@@ -22,17 +22,17 @@ unmark(StgPtr p, bdescr *bd)
nat offset_within_block = p - bd->start; // in words
StgPtr bitmap_word = (StgPtr)bd->u.bitmap +
(offset_within_block / (sizeof(W_)*BITS_PER_BYTE));
- nat bit_mask = 1 << (offset_within_block & (sizeof(W_)*BITS_PER_BYTE - 1));
+ StgWord bit_mask = (StgWord)1 << (offset_within_block & (sizeof(W_)*BITS_PER_BYTE - 1));
*bitmap_word &= ~bit_mask;
}
-INLINE_HEADER int
+INLINE_HEADER StgWord
is_marked(StgPtr p, bdescr *bd)
{
nat offset_within_block = p - bd->start; // in words
StgPtr bitmap_word = (StgPtr)bd->u.bitmap +
(offset_within_block / (sizeof(W_)*BITS_PER_BYTE));
- nat bit_mask = 1 << (offset_within_block & (sizeof(W_)*BITS_PER_BYTE - 1));
+ StgWord bit_mask = (StgWord)1 << (offset_within_block & (sizeof(W_)*BITS_PER_BYTE - 1));
return (*bitmap_word & bit_mask);
}