private static byte getObjTib(OPT_Instruction s) {
private static DefUseEffect getObjTib(OPT_Instruction s) {
  private static byte getObjTib(OPT_Instruction s) {    if (CF_TIB) {      OPT_Operand op = GuardedUnary.getVal(s);      if (op.isNullConstant()) {        Trap.mutate(s, TRAP, NullCheck.getClearGuardResult(s),                    OPT_TrapCodeOperand.NullPtr());        return TRAP_REDUCED;      } else if (op.isConstant()) {        try{          // NB as the operand is final it must already have been          // resolved.          VM_Type type = op.getType().resolve();          Move.mutate(s, REF_MOVE, GuardedUnary.getClearResult(s),                      new OPT_TIBConstantOperand(type));          return MOVE_REDUCED;        } catch(NoClassDefFoundError e) {          if (VM.runningVM) {            // this is unexpected            throw e;          } else {            // Class not found during bootstrap due to chasing a class            // only valid in the bootstrap JVM            System.out.println("Failed to resolve: " + op.getType() + ": " + e.getMessage());          }        }      } else {        OPT_RegisterOperand rop = op.asRegister();        VM_TypeReference typeRef = rop.getType();        if (typeRef.isResolved() && rop.isPreciseType()) {          Move.mutate(s, REF_MOVE, GuardedUnary.getClearResult(s),                      new OPT_TIBConstantOperand(typeRef.peekResolvedType()));         }      }    }    return UNCHANGED;  }