Assert._assert(mantissa<<(VM_BASE_EXPONENT + exponent) == start.toInt());
Assert._assert(tmp.lsh(VM_BASE_EXPONENT + exponent).EQ(start.toWord()));
  public static int createDescriptor(Address start, Address end) {    int chunks = end.diff(start).toWord().rshl(Space.LOG_BYTES_IN_CHUNK).toInt();    if (Assert.VERIFY_ASSERTIONS)       Assert._assert(!start.isZero() && chunks > 0                      && chunks < (1<<VM_SIZE_BITS));    boolean top = end.EQ(Space.HEAP_END);    Word tmp = start.toWord();    tmp = tmp.rshl(VM_BASE_EXPONENT);    int exponent = 0;    while (!tmp.isZero() && tmp.and(Word.one()).isZero()) {      tmp = tmp.rshl(1);      exponent++;    }    int mantissa = tmp.toInt();    if (Assert.VERIFY_ASSERTIONS)       Assert._assert(mantissa<<(VM_BASE_EXPONENT + exponent) == start.toInt());    return (mantissa<<VM_MANTISSA_SHIFT)      | (exponent<<VM_EXPONENT_SHIFT)       | (chunks<<VM_SIZE_SHIFT)      | ((top) ? VM_TYPE_CONTIGUOUS_HI : VM_TYPE_CONTIGUOUS);  }