Esempio n. 1
0
        public bool Repeat(DILOperationSet operations, int offset)
        {
            int ptrDelta = Delta, totalPtrsCovered = 1;

            for (int j = offset + 1; j < operations.Count; j++)
            {
                var instruction = operations[j] as PtrOp;
                if (instruction == null)
                {
                    break;
                }

                ptrDelta += instruction.Delta;
                totalPtrsCovered++;
            }

            if (totalPtrsCovered > 1)
            {
                operations.RemoveRange(offset, totalPtrsCovered);
                operations.Insert(offset, new PtrOp(ptrDelta));
                return(true);
            }

            return(false);
        }
Esempio n. 2
0
        public bool Repeat(DILOperationSet operations, int offset)
        {
            var totalOperationsCovered = 1;

            for (int j = offset + 1; j < operations.Count; j++)
            {
                var instruction = operations[j] as AssignOp;
                if (instruction == null)
                {
                    break;
                }

                if (instruction.Offset != Offset)
                {
                    break;
                }

                if (instruction.Value != Value)
                {
                    break;
                }

                totalOperationsCovered++;
            }

            if (totalOperationsCovered > 1)
            {
                operations.RemoveRange(offset, totalOperationsCovered);
                operations.Insert(offset, new AssignOp(Offset, Value));

                return(true);
            }

            return(false);
        }
Esempio n. 3
0
        /// <summary>
        /// I think I've never tested this method before
        /// </summary>
        /// <param name="operations"></param>
        /// <param name="offset"></param>
        /// <returns></returns>
        public bool Repeat(DILOperationSet operations, int offset)
        {
            int repeated = Repeated, totalOperationsCovered = 1;

            for (int i = offset + 1; i < operations.Count; i++)
            {
                var instruction = operations[i] as ReadOp;
                if (instruction == null)
                {
                    break;
                }

                if (instruction.Offset != Offset)
                {
                    break;
                }

                repeated += instruction.Repeated;
                totalOperationsCovered++;
            }

            if (totalOperationsCovered > 1)
            {
                operations.RemoveRange(offset, totalOperationsCovered);
                operations.Insert(offset, new ReadOp(Offset, repeated));
                return(true);
            }

            return(false);
        }
Esempio n. 4
0
        public bool Repeat(DILOperationSet operations, int offset)
        {
            int delta = Scalar, totalOperationsCovered = 1;

            for (int j = offset + 1; j < operations.Count; j++) // - i ?
            {
                var instruction = operations[j] as AdditionMemoryOp;
                if (instruction == null)
                {
                    break;
                }

                if (instruction.Offset != Offset)
                {
                    break;
                }

                totalOperationsCovered++;
                delta += instruction.Scalar;
            }

            if (totalOperationsCovered > 1)
            {
                operations.RemoveRange(offset, totalOperationsCovered);
                operations.Insert(offset, new AdditionMemoryOp(Offset, delta));

                return(true);
            }

            return(false);
        }
Esempio n. 5
0
        public bool Repeat(DILOperationSet operations, int offset)
        {
            int ptrDelta = Delta, totalPtrsCovered = 1;

            for (int j = offset + 1; j < operations.Count; j++)
            {
                var instruction = operations[j] as PtrOp;
                if (instruction == null)
                {
                    break;
                }

                ptrDelta += instruction.Delta;
                totalPtrsCovered++;
            }

            if (totalPtrsCovered > 1)
            {
                operations.RemoveRange(offset, totalPtrsCovered);
                operations.Insert(offset, new PtrOp(ptrDelta));
                return true;
            }

            return false;
        }
Esempio n. 6
0
        public bool Repeat(DILOperationSet operations, int offset)
        {
            int repeated = Repeated, totalOperationsCovered = 1;
            for (int i = offset + 1; i < operations.Count; i++)
            {
                var instruction = operations[i] as WriteOp;
                if (instruction == null)
                {
                    break;
                }

                if (instruction.Offset != Offset)
                {
                    break;
                }

                repeated += instruction.Repeated;
                totalOperationsCovered++;
            }

            if (totalOperationsCovered > 1)
            {
                operations.RemoveRange(offset, totalOperationsCovered);
                operations.Insert(offset, new WriteOp(Offset, repeated));
                return true;
            }

            return false;
        }
        public bool Repeat(DILOperationSet operations, int offset)
        {
            int delta = Scalar, totalOperationsCovered = 1;

            for (int j = offset + 1; j < operations.Count; j++) // - i ?
            {
                var instruction = operations[j] as AdditionMemoryOp;
                if (instruction == null)
                {
                    break;
                }

                if (instruction.Offset != Offset)
                {
                    break;
                }

                totalOperationsCovered++;
                delta += instruction.Scalar;
            }

            if (totalOperationsCovered > 1)
            {
                operations.RemoveRange(offset, totalOperationsCovered);
                operations.Insert(offset, new AdditionMemoryOp(Offset, delta));

                return true;

            }

            return false;
        }
Esempio n. 8
0
        public bool Repeat(DILOperationSet operations, int offset)
        {
            var totalOperationsCovered = 1;
            for (int j = offset + 1; j < operations.Count; j++)
            {
                var instruction = operations[j] as AssignOp;
                if (instruction == null)
                {
                    break;
                }

                if (instruction.Offset != Offset)
                {
                    break;
                }

                if (instruction.Value != Value)
                {
                    break;
                }

                totalOperationsCovered++;
            }

            if (totalOperationsCovered > 1)
            {
                operations.RemoveRange(offset, totalOperationsCovered);
                operations.Insert(offset, new AssignOp(Offset, Value));

                return true;

            }

            return false;
        }