BooleanCmp.mutate(cb, BOOLEAN_CMP_INT, res, val1, val2, cond, new OPT_BranchProfileOperand());
BooleanCmp.mutate(cb, (cb.operator() == REF_IFCMP )? BOOLEAN_CMP_ADDR : BOOLEAN_CMP_INT, res, val1, val2, cond, new OPT_BranchProfileOperand());
  private void booleanCompareHelper(OPT_Instruction cb,                                     OPT_RegisterOperand res,                                     OPT_Operand val1,                                     OPT_Operand val2,                                     OPT_ConditionOperand cond) {    if ((val1 instanceof OPT_RegisterOperand) &&         ((OPT_RegisterOperand)val1).type.isBooleanType() &&         (val2 instanceof OPT_IntConstantOperand)) {      int value = ((OPT_IntConstantOperand)val2).value;      if (VM.VerifyAssertions && (value != 0) && (value != 1))        throw  new OPT_OptimizingCompilerException("Invalid boolean value");      int c = cond.evaluate(value, 0);      if (c == OPT_ConditionOperand.TRUE) {        Unary.mutate(cb, BOOLEAN_NOT, res, val1);        return;      } else if (c == OPT_ConditionOperand.FALSE) {        Move.mutate(cb, INT_MOVE, res, val1);        return;      }    }     BooleanCmp.mutate(cb, BOOLEAN_CMP_INT, res, val1, val2, cond,                      new OPT_BranchProfileOperand());  }