int chunkSize = ((bytes + CHUNK_SIZE - 1) >>> LOG_CHUNK_SIZE) << LOG_CHUNK_SIZE;
VM_Extent chunkSize = VM_Word.fromIntZeroExtend(bytes).add(CHUNK_MASK).and(CHUNK_MASK.not()).toExtent();
  final protected VM_Address allocSlowOnce(boolean isScalar, int bytes,                                            boolean inGC) {    int chunkSize = ((bytes + CHUNK_SIZE - 1) >>> LOG_CHUNK_SIZE) << LOG_CHUNK_SIZE;    VM_Address start = ((MonotoneVMResource)vmResource).acquire(Conversions.bytesToPages(chunkSize));    if (start.isZero())      return start;    Memory.zero(start, VM_Extent.fromIntZeroExtend(chunkSize));    // check for (dis)contiguity with previous chunk    if (limit.NE(start)) cursor = start;    limit = start.add(chunkSize);    return alloc(isScalar, bytes);  }