public final void createCodePatchMaps(OPT_IR ir) {
public final void createCodePatchMaps(OPT_IR ir) throws VM_PragmaInterruptible {
  public final void createCodePatchMaps(OPT_IR ir) {    // (1) count the patch points    int patchPoints = 0;    for (OPT_Instruction s = ir.firstInstructionInCodeOrder();	 s != null;	 s = s.nextInstructionInCodeOrder()) {      if (s.operator() == IG_PATCH_POINT) {	patchPoints++;      }    }    // (2) if we have patch points, create the map.    if (patchPoints != 0) {      patchMap = new int[patchPoints*2];      int idx = 0;      for (OPT_Instruction s = ir.firstInstructionInCodeOrder();	   s != null;	   s = s.nextInstructionInCodeOrder()) {	if (s.operator() == IG_PATCH_POINT) {	  int patchPoint = s.getmcOffset();	  int newTarget = InlineGuard.getTarget(s).target.getmcOffset();	  // A patch map is the offset of the last byte of the patch point	  // and the new branch immediate to lay down if the code is ever patched.	  patchMap[idx++] = patchPoint-1;	  patchMap[idx++] = newTarget - patchPoint;	}      }    }  }