VM_Address bitmapWord; VM_Word word; if (VM.VerifyAssertions)
if (VM.VerifyAssertions) { if (false && !((INUSE_BITMAP_BASE + offset) < blockHeaderSize[sizeClass])) { VM.sysWriteln("cell                       = ", cell); VM.sysWriteln("block.add(...)             = ", block.add(blockHeaderSize[sizeClass])); VM.sysWriteln("cellSize[sizeClass]        = ", cellSize[sizeClass]); VM.sysWriteln("index                      = ", index); VM.sysWriteln("offset                     = ", offset); VM.sysWriteln("sizeClass                  = ", sizeClass); VM.sysWriteln("blockHeaderSize[sizeClass] = ", blockHeaderSize[sizeClass]); }
  protected final void postAlloc(VM_Address cell, VM_Address block,				 int sizeClass, EXTENT bytes)     throws VM_PragmaInline {    // establish bitmask & offset for this cell in the block    //    int index = (cell.diff(block).toInt())/cellSize[sizeClass];    int index = (cell.diff(block.add(blockHeaderSize[sizeClass])).toInt())/cellSize[sizeClass];    int bitnumber = index & (WORD_BITS - 1);    VM_Word mask = VM_Word.fromInt(1<<bitnumber);    int offset = (index>>LOG_WORD_BITS)<<(LOG_WORD_SIZE + 1);    VM_Address bitmapWord;    VM_Word word;    if (VM.VerifyAssertions)      VM._assert((INUSE_BITMAP_BASE + offset) < blockHeaderSize[sizeClass]);    // set the inuse bit    bitmapWord = block.add(INUSE_BITMAP_BASE + offset);    word = VM_Magic.getMemoryWord(bitmapWord);    word = word.or(mask);    VM_Magic.setMemoryWord(bitmapWord, word);    if (msSpace.inMSCollection) {      // set the mark bit      bitmapWord = block.add(MARK_BITMAP_BASE + offset);      word = VM_Magic.getMemoryWord(bitmapWord);      word = word.or(mask);      VM_Magic.setMemoryWord(bitmapWord, word);    }  };  