/// <inheritdoc /> protected override DispatchResult Execute(CilExecutionContext context, CilInstruction instruction, OValue left, OValue right) { var result = left.IsEqualTo(right); return(ConvertToI4AndReturnSuccess(context, result)); }
/// <inheritdoc /> protected override Trilean VerifyCondition(ExecutionContext context, CilInstruction instruction, OValue left, OValue right) { var equal = left.IsEqualTo(right); var lessThan = left.IsLessThan(right); if (equal.ToBooleanOrFalse() || lessThan.ToBooleanOrFalse()) { return(true); } if (!equal.IsKnown || !lessThan.IsKnown) { return(null); } return(false); }
/// <inheritdoc /> protected override Trilean VerifyCondition(ExecutionContext context, CilInstruction instruction, OValue left, OValue right) { var equal = left.IsEqualTo(right); var greaterThan = left.IsGreaterThan(right); if (equal.ToBooleanOrFalse() || greaterThan.ToBooleanOrFalse()) { return(Trilean.True); } if (!equal.IsKnown || !greaterThan.IsKnown) { return(Trilean.Unknown); } return(Trilean.False); }