VM_Finalizer.setup();
  static void boot (VM_BootRecord bootrecord) {    verbose = bootrecord.verboseGC;    // smallHeapSize might not originally have been an even number of pages    smallHeapSize = bootrecord.smallSpaceSize;    int oneHeapSize = VM_Memory.roundUpPage(smallHeapSize / 2);    int largeSize = bootrecord.largeSpaceSize;    int ps = VM_Memory.getPagesize();    int immortalSize = VM_Memory.roundUpPage(1024 * 1024 + (4 * largeSize / ps) + 4 * ps);    if (verbose >= 2) VM.sysWriteln("Attaching heaps");    VM_Heap.boot(bootHeap, /* no malloc heap in this collector */null, bootrecord);    fromHeap.attach(oneHeapSize);    toHeap.attach(oneHeapSize);    immortalHeap.attach(immortalSize);    largeHeap.attach(largeSize);    fromHeap.reset();    VM_GCUtil.boot();    VM_Finalizer.setup();     if (verbose >= 1) showParameter();  }