33 lines
1.4 KiB
Diff
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);
|
||
|
}
|
||
|
|