BB1.insertOut(BB2);
  private static void get_time_base (OPT_Instruction s, OPT_IR ir) {    OPT_BasicBlock BB1 = s.getBasicBlock();    OPT_BasicBlock BB2 = BB1.splitNodeAt(s, ir);    OPT_Register defHigh = Nullary.getResult(s).register;    OPT_Register defLow = ir.regpool.getSecondReg(defHigh);    OPT_Register t0 = ir.regpool.getInteger();    OPT_Register cr = ir.regpool.getCondition();    defLow.setSpansBasicBlock();    defHigh.setSpansBasicBlock();    // Try to get the base    OPT_Register TU = ir.regpool.getPhysicalRegisterSet().getTU();    OPT_Register TL = ir.regpool.getPhysicalRegisterSet().getTL();    s.insertBack(MIR_Move.create(PPC_MFTBU, R(defHigh), R(TU)));    s.insertBack(MIR_Move.create(PPC_MFTB, R(defLow), R(TL)));    // Try again to see if it changed    s.insertBack(MIR_Move.create(PPC_MFTBU, R(t0), R(TU)));    s.insertBack(MIR_Binary.create(PPC_CMP, R(cr), R(t0), R(defHigh)));    MIR_CondBranch.mutate(s, PPC_BCOND, R(cr), 			  OPT_PowerPCConditionOperand.NOT_EQUAL(), 			  BB1.makeJumpTarget(),			  new OPT_BranchProfileOperand());    // fix up CFG    BB1.insertOut(BB2);    BB1.insertOut(BB1);    ir.cfg.linkInCodeOrder(BB1, BB2);  }