VM_Memory.zero(region, regionEnd);
  VM_Address allocate (int size) {      spaceLock.lock();      VM_Address region = VM_Address.fromInt(VM.sysCall1(bootrecord.sysMallocIP, size));      VM_Address regionEnd = region.add(size);      if (region.isZero()) {	  spaceLock.release();	  VM.sysWriteln("VM_MallocHeap failed to malloc ", size, " bytes");	  VM.assert(false);      }      if (start.isZero() || region.LT(start)) start = region;      if (regionEnd.GT(end)) end = regionEnd;      VM_Processor pr = VM_Processor.getCurrentProcessor();      pr.disableThreadSwitching();      setAuxiliary();      pr.enableThreadSwitching();      spaceLock.release();      /*	VM.sysWrite("malloc.allocate:  region = "); VM.sysWrite(region);	VM.sysWrite("    "); show();	VM_Scheduler.dumpStack();      */      return region;  }  void free(VM_Address addr) {      VM.sysCall1(bootrecord.sysFreeIP, addr.toInt());      // Cannot correctly change start/end here  }