protected override void VisitBranchOnLessThanOrEqualToInstruction(BranchOnLessThanOrEqualToInstruction instruction)
        {
            ControlState.EvaluationStack.Pop(out var stackVal1, out var stackVal2);
            var branch = ComputeBinaryBranchOperation(
                stackVal1,
                stackVal2,
                (a, b) => a.Value <= b.Value,
                (a, b) => a.Value <= b.Value,
                (a, b) => a.Value <= b.Value
                );

            if (branch)
            {
                ControlState.Move(instruction.Offset, instruction.Label);
            }
            else
            {
                ControlState.MoveToNextInstruction();
            }
        }
Ejemplo n.º 2
0
 protected abstract void VisitBranchOnLessThanOrEqualToInstruction(BranchOnLessThanOrEqualToInstruction instruction);