BB2.appendInstruction(MIR_Load.create(PPC64_LWA, R(res), R(FP), I(p + 4)));
  private static void double_2int (OPT_Instruction s, OPT_IR ir) {    OPT_Register res = Unary.getResult(s).register;    OPT_Register src = ((OPT_RegisterOperand)Unary.getVal(s)).register;    OPT_Register FP = ir.regpool.getPhysicalRegisterSet().getFP();    int p = ir.stackManager.allocateSpaceForConversion();    OPT_Register temp = ir.regpool.getDouble();    OPT_BasicBlock BB1 = s.getBasicBlock();    OPT_BasicBlock BB3 = BB1.splitNodeAt(s, ir);    OPT_BasicBlock BB2 = BB1.createSubBlock(0, ir);    OPT_RegisterOperand cond = ir.regpool.makeTempCondition();    BB1.appendInstruction(MIR_Binary.create(PPC_FCMPU, cond, D(src), D(src)));    BB1.appendInstruction(MIR_Unary.create(PPC_LDI, R(res), I(0)));    BB1.appendInstruction(MIR_CondBranch.create(PPC_BCOND, cond.copyD2U(),                                                 OPT_PowerPCConditionOperand.UNORDERED(), BB3.makeJumpTarget(),                                                new OPT_BranchProfileOperand()));    BB2.appendInstruction(MIR_Unary.create(PPC_FCTIWZ, D(temp), D(src)));    BB2.appendInstruction(MIR_Store.create(PPC_STFD, D(temp), R(FP), I(p)));    BB2.appendInstruction(MIR_Load.create(PPC_LWZ, R(res), R(FP), I(p + 4)));    // fix up CFG    BB1.insertOut(BB2);    BB1.insertOut(BB3);    BB2.insertOut(BB3);    ir.cfg.linkInCodeOrder(BB1, BB2);    ir.cfg.linkInCodeOrder(BB2, BB3);    s.remove();  }