private IEnumerable <Instruction> EmitCondition(OperandBase operand, Instruction implStart)
        {
            List <Instruction> instr = new List <Instruction>();

            instr.AddRange(_valueCopy.CreateLoad());
            instr.AddRange(operand.CreateLoad());
            instr.Add(CreateEqualityOperator(operand));
            instr.Add(Instruction.Create(OpCodes.Brtrue, implStart));
            return(instr);
        }
        private IEnumerable <Instruction> CreateConditionCode(OperandBase to, int inc)
        {
            List <Instruction> code = new List <Instruction>();
            var iteratorLoad        = Iterator.CreateLoad();

            _increaseInstr = iteratorLoad.First();
            code.AddRange(iteratorLoad);
            code.AddRange(new ValueOperand(inc).CreateLoad());
            code.Add(Instruction.Create(OpCodes.Add));
            code.AddRange(Iterator.CreateStore());

            iteratorLoad    = Iterator.CreateLoad();
            _conditionStart = iteratorLoad.First();
            code.AddRange(iteratorLoad);
            code.AddRange(to.CreateLoad());
            code.Add(Instruction.Create(OpCodes.Clt));
            code.Add(Instruction.Create(OpCodes.Brtrue, _loopStart));
            return(code);
        }