checkspace(index, "traceObject subsequent tile");
  public void traceObject(VM_Address addr) {    int index = subspace.getIndex(addr);    int length = getSuperPageLength(addr);    totalObjects++;    tiles[index].objects++;    if (VM_Interface.VerifyAssertions)      VM_Interface._assert(blockSize <= usedSpaceStream.getMaxValue());          totalUsedSpace += length;    int remainder = subspace.spaceRemaining(addr);    if (VM_Interface.VerifyAssertions)      VM_Interface._assert(remainder <= blockSize);    if (length <= remainder) {  // fits in this tile      tiles[index].usedSpace += length;      checkspace(index, "traceObject fits in first tile");     } else {      tiles[index].usedSpace += remainder;      checkspace(index, "traceObject remainder put in first tile");        length -= remainder;      index ++;      while (length >= blockSize) {        tiles[index].usedSpace += blockSize;        checkspace(index, "traceObject subsequent tile");        length -= blockSize;        index++;      }      tiles[index].usedSpace += remainder;      checkspace(index, "traceObject last tile");     }        if (addr.GT(maxAddr)) maxAddr = addr;  }