VM_Interface._assert(rtn.EQ(rtn.toWord().and(mask).add(BLOCK_HEADER_SIZE).toAddress));
VM_Interface._assert(rtn.EQ(rtn.toWord().and(mask).add(VM_Word.fromInt(BLOCK_HEADER_SIZE)).toAddress()));
  public final VM_Address alloc(byte blockSizeClass) {    if (VM_Interface.VerifyAssertions)      VM_Interface._assert((blockSizeClass >= 0) && (blockSizeClass <= MAX_BLOCK_SIZE_CLASS));    VM_Address rtn = VM_Address.zero();    if (PARANOID)      sanity();    // increment page charges    if (blockSizeClass >= PAGE_BLOCK_SIZE_CLASS) {      if (!incPageCharge(1<<(blockSizeClass-PAGE_BLOCK_SIZE_CLASS)))	return VM_Address.zero();  // need to GC & retry...    }    // try to use satisfy from free list    byte freeListID = getFreeListID(blockSizeClass);    if (!freeList.get(freeListID).isZero()) {      rtn = freeList.get(freeListID);      freeList.set(freeListID, getNextFLBlock(rtn));      if (!getNextFLBlock(rtn).isZero())	setPrevFLBlock(getNextFLBlock(rtn), VM_Address.zero());    } else {      rtn = slowAlloc(blockSizeClass);      if (rtn.isZero())	return VM_Address.zero(); // need to GC & retry...    }        if (VM_Interface.VerifyAssertions) {      VM_Word mask = VM_Word.fromIntZeroExtend(blockMask[blockSizeClass]);      VM_Interface._assert(rtn.EQ(rtn.toWord().and(mask).add(BLOCK_HEADER_SIZE).toAddress));    }    if (PARANOID)      sanity();    return rtn;  }