if (VM.VerifyAssertions) VM.assert(VM_Memory.roundUpPage(size) == size);
if (VM.VerifyAssertions) VM._assert(VM_Memory.roundUpPage(size) == size);
  public final void zeroParallel(VM_Address s, VM_Address e) throws VM_PragmaUninterruptible {    if (VM.VerifyAssertions) VM.assert(s.GE(start));    if (VM.VerifyAssertions) VM.assert(e.LE(end));    int np = VM_CollectorThread.numCollectors();    VM_CollectorThread self = VM_Magic.threadAsCollectorThread(VM_Thread.getCurrentThread());    int which = self.gcOrdinal - 1;  // gcOrdinal starts at 1    int chunk = VM_Memory.roundUpPage(e.diff(s) / np);    VM_Address zeroBegin = s.add(which * chunk);    VM_Address zeroEnd = zeroBegin.add(chunk);    if (zeroEnd.GT(end)) zeroEnd = end;    int size = zeroEnd.diff(zeroBegin);  // actual size to zero    if (VM.VerifyAssertions) VM.assert(VM_Memory.roundUpPage(size) == size);    VM_Memory.zeroPages(zeroBegin, size);  }