VM_Finalizer.setup();
  static void boot (VM_BootRecord bootrecord) {     verbose = bootrecord.verboseGC;    smallHeapSize = bootrecord.smallSpaceSize;    int largeSize = bootrecord.largeSpaceSize;    int immortalSize = VM_Memory.roundUpPage((4 * largeSize / VM_Memory.getPagesize()) + 4 * VM_Memory.getPagesize());    int nurserySize = bootrecord.nurserySize;     int oneSpaceSize = VM_Memory.roundUpPage(smallHeapSize / 2);       // set delta for triggering major gc to .25 of nursery size (this is a guess)    if (nurserySize > 20*1024*1024) {      MAJOR_GC_DELTA = nurserySize/4;   // .25 of nursery for large nursery      // for measurement runs with LARGE nursery sizes, limit delta to fixed 10MB      if (MAJOR_GC_DELTA > 10*1024*1024) MAJOR_GC_DELTA = 10*1024*1024;    }    else      MAJOR_GC_DELTA = nurserySize/2;   // .50 of nursery for small nursery        VM_Heap.boot(bootHeap, /* no malloc heap with this collector*/ null, bootrecord);    immortalHeap.attach(immortalSize);    largeHeap.attach(largeSize);    if (variableNursery) {	appelHeap.attach(smallHeapSize, nurseryHeap, fromHeap, toHeap);    }    else {	appelHeap = null;	nurseryHeap.attach(nurserySize);	fromHeap.attach(oneSpaceSize);	toHeap.attach(oneSpaceSize);    }    if (COMPILE_FOR_TIMING_RUN) {	largeHeap.touchPages();	toHeap.touchPages();	fromHeap.touchPages();	nurseryHeap.touchPages();    }        if (VM.ParanoidGCCheck)	toHeap.protect();    // initialize pointers used for allocation in the nursery    VM_Processor st = VM_Processor.getCurrentProcessor();    if (PROCESSOR_LOCAL_ALLOCATE)	VM_Chunk.resetChunk1(st, nurseryHeap, false);    if (PROCESSOR_LOCAL_MATURE_ALLOCATE)	VM_Chunk.resetChunk2(st, fromHeap, false);        // check for inconsistent heap & nursery sizes    if (smallHeapSize < nurserySize) {      VM.sysWrite("\nNursery size is too large for the specified Heap size:\n");      VM.sysWrite("  Small Object Heap Size = ");      VM.sysWrite(smallHeapSize,false); VM.sysWrite("\n");      VM.sysWrite("  Nursery Size = ");      VM.sysWrite(nurserySize,false); VM.sysWrite("\n");      VM.sysWrite("Use -X:h=nnn & -X:nh=nnn to specify a heap size at least twice as big as the nursery\n");      VM.sysWrite("Remember, the nursery is subtracted from the specified heap size\n");      VM.shutdown(-5);    }        VM_GCUtil.boot();    VM_Finalizer.setup();    if (verbose >= 1) showParameter();  }   // boot()