allocator = mutator.checkAllocator(size, align, allocator);
allocator = mutator.checkAllocator(VM_Memory.alignUp(size, MIN_ALIGNMENT), align, allocator);
  public static Object allocateArray(int numElements, int logElementSize,                                      int headerSize, Object [] tib,                                     int allocator,                                     int align, int offset, int site)     throws UninterruptiblePragma, InlinePragma {    SelectedMutatorContext mutator = SelectedMutatorContext.get();    int elemBytes = numElements << logElementSize;    if ((elemBytes >>> logElementSize) != numElements) {      // asked to allocate more than Integer.MAX_VALUE bytes      Assert.failWithOutOfMemoryErrorStatic();    }    int size = elemBytes + headerSize;    allocator = mutator.checkAllocator(size, align, allocator);    Address region = allocateSpace(mutator, size, align, offset, allocator, site);    Object result = VM_ObjectModel.initializeArray(region, tib, numElements,                                                   size);    mutator.postAlloc(ObjectReference.fromObject(result),                    ObjectReference.fromObject(tib), size, allocator);    return result;  }