}      if (VM.writingBootImage && !VM.VerifyAssertions) { phys = null;
  private ScratchRegister getScratchRegisterUsingIntervals(OPT_Register r,                                                           OPT_Instruction s){    HashSet reservedScratch = getReservedScratchRegisters(s);    OPT_Register phys = null;    if (r.isFloatingPoint()) {      phys = getFirstDeadFPRNotUsedIn(r,s,reservedScratch);    } else {      phys = getFirstDeadGPRNotUsedIn(r,s,reservedScratch);    }    // The following is a horrendous hack.  For unknown reasons, applying this    // optimization to a boot image with assertions turned off causes the    // resultant image to crash.  TODO: come back and address this problem    // when jdp works and problems with building FastBase images are    // fixed.    if (VM.writingBootImage && !VM.VerifyAssertions) {      phys = null;    }    // if the version above failed, default to the dumber heuristics    if (phys == null) {      if (r.isFloatingPoint()) {        phys = getFirstFPRNotUsedIn(r,s,reservedScratch);      } else {        phys = getFirstGPRNotUsedIn(r,s,reservedScratch);      }    }    return createScratchBefore(s,phys,r);  }