Ejemplo n.º 1
0
        public void MOD_AB_AiAi(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueB;
            int reg_IR_ValueCpyA = ValuesA[ip];
            int reg_IR_ValueCpyB = ValuesB[ip];
            int reg_AdrA;
            int reg_AdrB;
            int reg_AA_Value;
            int reg_direct;
            bool reg_die = false;
            reg_direct = mod(reg_IR_ValueCpyA + ip);
            reg_AdrA = mod(reg_direct + ValuesA[reg_direct]);
            reg_AA_Value = ValuesA[reg_AdrA];
            reg_direct = mod(reg_IR_ValueCpyB + ip);
            reg_AdrB = mod(reg_direct + ValuesA[reg_direct]);
            reg_IR_ValueB = ValuesB[reg_AdrB];
            if (reg_AA_Value == 0) reg_die = true;
            else ValuesB[reg_AdrB] = reg_IR_ValueB % reg_AA_Value;
            ip++;

                if (!reg_die)
                {
                    warrior.Tasks.Enqueue(mod(ip));
                }
                else
                {
                    warrior.DeadTasksCount++;
                    Died(ip);
                }
        }
Ejemplo n.º 2
0
 public void NOP_AB_AmAi(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueCpyA = ValuesA[ip];
     int reg_direct;
     reg_direct = mod(reg_IR_ValueCpyA + ip);
     dec(ref ValuesA[reg_direct]);
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 3
0
 public void JMP_AB_AiAi(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueCpyA = ValuesA[ip];
     int reg_AdrA;
     int reg_direct;
     reg_direct = mod(reg_IR_ValueCpyA + ip);
     reg_AdrA = mod(reg_direct + ValuesA[reg_direct]);
     ip = reg_AdrA;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 4
0
        public void DAT_AB_AiAi(int ip, EngineWarrior warrior)
        {
            bool reg_die;
            reg_die = true;

                if (!reg_die)
                {
                    warrior.Tasks.Enqueue(mod(ip));
                }
                else
                {
                    warrior.DeadTasksCount++;
                    Died(ip);
                }
        }
Ejemplo n.º 5
0
 public void MOV_AB_AiAi(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueCpyA = ValuesA[ip];
     int reg_IR_ValueCpyB = ValuesB[ip];
     int reg_AdrA;
     int reg_AdrB;
     int reg_AA_Value;
     int reg_direct;
     reg_direct = mod(reg_IR_ValueCpyA + ip);
     reg_AdrA = mod(reg_direct + ValuesA[reg_direct]);
     reg_AA_Value = ValuesA[reg_AdrA];
     reg_direct = mod(reg_IR_ValueCpyB + ip);
     reg_AdrB = mod(reg_direct + ValuesA[reg_direct]);
     ValuesB[reg_AdrB] = reg_AA_Value;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 6
0
 public void SUB_AB_AiAm(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueB;
     int reg_IR_ValueCpyA = ValuesA[ip];
     int reg_IR_ValueCpyB = ValuesB[ip];
     int reg_AdrA;
     int reg_AdrB;
     int reg_AA_Value;
     int reg_direct;
     reg_direct = mod(reg_IR_ValueCpyA + ip);
     reg_AdrA = mod(reg_direct + ValuesA[reg_direct]);
     reg_AA_Value = ValuesA[reg_AdrA];
     reg_direct = mod(reg_IR_ValueCpyB + ip);
     reg_AdrB = mod(reg_direct + dec(ref ValuesA[reg_direct]));
     reg_IR_ValueB = ValuesB[reg_AdrB];
     ValuesB[reg_AdrB] = reg_IR_ValueB - reg_AA_Value;
     if (ValuesB[reg_AdrB] < 0) ValuesB[reg_AdrB] += coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 7
0
        public void SPL_AB_AiAi(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueCpyA = ValuesA[ip];
            int reg_AdrA;
            int reg_direct;
            reg_direct = mod(reg_IR_ValueCpyA + ip);
            reg_AdrA = mod(reg_direct + ValuesA[reg_direct]);

                    if (warrior.LiveTasks + 1 < rules.MaxProcesses)
                    {
                        warrior.Tasks.Enqueue(mod(ip + 1));
                        ip = reg_AdrA;
                        Split(reg_AdrA);
                    }
                    else
                    {
                        ip++;
                    }
            warrior.Tasks.Enqueue(mod(ip));
        }
Ejemplo n.º 8
0
 public void ADD_AB_AiBi(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueB;
     int reg_IR_ValueCpyA = ValuesA[ip];
     int reg_IR_ValueCpyB = ValuesB[ip];
     int reg_AdrA;
     int reg_AdrB;
     int reg_AA_Value;
     int reg_direct;
     reg_direct = mod(reg_IR_ValueCpyA + ip);
     reg_AdrA = mod(reg_direct + ValuesA[reg_direct]);
     reg_AA_Value = ValuesA[reg_AdrA];
     reg_direct = mod(reg_IR_ValueCpyB + ip);
     reg_AdrB = mod(reg_direct + ValuesB[reg_direct]);
     reg_IR_ValueB = ValuesB[reg_AdrB];
     ValuesB[reg_AdrB] = reg_IR_ValueB + reg_AA_Value;
     if (ValuesB[reg_AdrB] >= coreSize) ValuesB[reg_AdrB] -= coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 9
0
        public void LDP_AB_AiAi(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueCpyA = ValuesA[ip];
            int reg_IR_ValueCpyB = ValuesB[ip];
            int reg_AdrA;
            int reg_AdrB;
            int reg_AA_Value;
            int reg_direct;
            int reg_psAddress;
            reg_direct = mod(reg_IR_ValueCpyA + ip);
            reg_AdrA = mod(reg_direct + ValuesA[reg_direct]);
            reg_AA_Value = ValuesA[reg_AdrA];
            reg_direct = mod(reg_IR_ValueCpyB + ip);
            reg_AdrB = mod(reg_direct + ValuesA[reg_direct]);

                            reg_psAddress = Instruction.Mod(reg_AA_Value, rules.PSpaceSize);
                            ValuesB[reg_AdrB] = warrior.GetPSpaceValue(reg_psAddress);
            ip++;
            warrior.Tasks.Enqueue(mod(ip));
        }
Ejemplo n.º 10
0
        public void DAT_AB_AiBm(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueCpyA = ValuesA[ip];
            int reg_IR_ValueCpyB = ValuesB[ip];
            int reg_direct;
            bool reg_die;
            reg_direct = mod(reg_IR_ValueCpyA + ip);
            reg_direct = mod(reg_IR_ValueCpyB + ip);
            dec(ref ValuesB[reg_direct]);
            reg_die = true;

                if (!reg_die)
                {
                    warrior.Tasks.Enqueue(mod(ip));
                }
                else
                {
                    warrior.DeadTasksCount++;
                    Died(ip);
                }
        }
Ejemplo n.º 11
0
        public void JMZ_AB_AiAi(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueB;
            int reg_IR_ValueCpyA = ValuesA[ip];
            int reg_IR_ValueCpyB = ValuesB[ip];
            int reg_AdrA;
            int reg_AdrB;
            int reg_direct;
            bool reg_jump;
            reg_direct = mod(reg_IR_ValueCpyA + ip);
            reg_AdrA = mod(reg_direct + ValuesA[reg_direct]);
            reg_direct = mod(reg_IR_ValueCpyB + ip);
            reg_AdrB = mod(reg_direct + ValuesA[reg_direct]);
            reg_IR_ValueB = ValuesB[reg_AdrB];
            reg_jump = (reg_IR_ValueB == 0);

                    if (reg_jump)
                        ip = reg_AdrA;
                    else
                        ip++;
            warrior.Tasks.Enqueue(mod(ip));
        }
Ejemplo n.º 12
0
 public void SNE_AB_AiAm(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueB;
     int reg_IR_ValueCpyA = ValuesA[ip];
     int reg_IR_ValueCpyB = ValuesB[ip];
     int reg_AdrA;
     int reg_AdrB;
     int reg_AA_Value;
     int reg_direct;
     bool reg_jump;
     reg_direct = mod(reg_IR_ValueCpyA + ip);
     reg_AdrA = mod(reg_direct + ValuesA[reg_direct]);
     reg_AA_Value = ValuesA[reg_AdrA];
     reg_direct = mod(reg_IR_ValueCpyB + ip);
     reg_AdrB = mod(reg_direct + dec(ref ValuesA[reg_direct]));
     reg_IR_ValueB = ValuesB[reg_AdrB];
     reg_jump = (reg_IR_ValueB != reg_AA_Value);
     if (reg_jump)
                 ip += 2;
             else
                 ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 13
0
        public void MOD_B_ImIm(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueA;
            int reg_IR_ValueB = ValuesB[ip];
            int reg_AdrB;
            bool reg_die = false;
            reg_IR_ValueA = reg_IR_ValueB;
            reg_AdrB = ip;
            if (reg_IR_ValueA == 0) reg_die = true;
            else ValuesB[reg_AdrB] = reg_IR_ValueB % reg_IR_ValueA;
            ip++;

                if (!reg_die)
                {
                    warrior.Tasks.Enqueue(mod(ip));
                }
                else
                {
                    warrior.DeadTasksCount++;
                    Died(ip);
                }
        }
Ejemplo n.º 14
0
        public void MOD_B_ImBp(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueA;
            int reg_IR_ValueB = ValuesB[ip];
            int reg_IR_ValueCpyB = ValuesB[ip];
            int reg_AdrB;
            int reg_direct;
            bool reg_die = false;
            reg_IR_ValueA = reg_IR_ValueB;
            reg_direct = mod(reg_IR_ValueCpyB + ip);
            reg_AdrB = mod(reg_direct + ValuesB[reg_direct]);
            reg_IR_ValueB = ValuesB[reg_AdrB];
            inc(ref ValuesB[reg_direct]);
            if (reg_IR_ValueA == 0) reg_die = true;
            else ValuesB[reg_AdrB] = reg_IR_ValueB % reg_IR_ValueA;
            ip++;

                if (!reg_die)
                {
                    warrior.Tasks.Enqueue(mod(ip));
                }
                else
                {
                    warrior.DeadTasksCount++;
                    Died(ip);
                }
        }
Ejemplo n.º 15
0
        public void MOD_BA_DiIm(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueA;
            int reg_IR_ValueCpyA = ValuesA[ip];
            int reg_AdrB;
            int reg_AB_Value = ValuesA[ip];
            int reg_direct;
            bool reg_die = false;
            reg_direct = mod(reg_IR_ValueCpyA + ip);
            reg_IR_ValueA = ValuesB[reg_direct];
            reg_AdrB = ip;
            if (reg_IR_ValueA == 0) reg_die = true;
            else ValuesA[reg_AdrB] = reg_AB_Value % reg_IR_ValueA;
            ip++;

                if (!reg_die)
                {
                    warrior.Tasks.Enqueue(mod(ip));
                }
                else
                {
                    warrior.DeadTasksCount++;
                    Died(ip);
                }
        }
Ejemplo n.º 16
0
        public void MOD_A_ImIm(int ip, EngineWarrior warrior)
        {
            int reg_AdrB;
            int reg_AA_Value = ValuesA[ip];
            int reg_AB_Value = ValuesA[ip];
            bool reg_die = false;
            reg_AdrB = ip;
            if (reg_AA_Value == 0) reg_die = true;
            else ValuesA[reg_AdrB] = reg_AB_Value % reg_AA_Value;
            ip++;

                if (!reg_die)
                {
                    warrior.Tasks.Enqueue(mod(ip));
                }
                else
                {
                    warrior.DeadTasksCount++;
                    Died(ip);
                }
        }
Ejemplo n.º 17
0
 public EngineEvent(EngineInstruction executedInstruction, int cycles, int cyclesLeft, int ip, EngineWarrior warrior, StepResult prevStepResult)
 {
     ExecutedInstruction = executedInstruction;
     Cycles = cycles;
     CyclesLeft = cyclesLeft;
     Ip = ip;
     Warrior = warrior;
     PrevStepResult = prevStepResult;
     instructionsChanged = new Stack<EngineInstruction>();
 }
Ejemplo n.º 18
0
 public void SUB_I_ImDi(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueA;
     int reg_IR_ValueB = ValuesB[ip];
     int reg_IR_ValueCpyB = ValuesB[ip];
     int reg_AdrB;
     int reg_AA_Value = ValuesA[ip];
     int reg_AB_Value;
     int reg_direct;
     reg_IR_ValueA = reg_IR_ValueB;
     reg_direct = mod(reg_IR_ValueCpyB + ip);
     reg_AdrB = reg_direct;
     reg_AB_Value = ValuesA[reg_direct];
     reg_IR_ValueB = ValuesB[reg_direct];
     ValuesA[reg_AdrB] = reg_AB_Value - reg_AA_Value;
     if (ValuesA[reg_AdrB] < 0) ValuesA[reg_AdrB] += coreSize;
     ValuesB[reg_AdrB] = reg_IR_ValueB - reg_IR_ValueA;
     if (ValuesB[reg_AdrB] < 0) ValuesB[reg_AdrB] += coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 19
0
        public void LDP_X_ImBp(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueA;
            int reg_IR_ValueB = ValuesB[ip];
            int reg_IR_ValueCpyB = ValuesB[ip];
            int reg_AdrB;
            int reg_direct;
            int reg_psAddress;
            reg_IR_ValueA = reg_IR_ValueB;
            reg_direct = mod(reg_IR_ValueCpyB + ip);
            reg_AdrB = mod(reg_direct + ValuesB[reg_direct]);
            inc(ref ValuesB[reg_direct]);

                            reg_psAddress = Instruction.Mod(reg_IR_ValueA, rules.PSpaceSize);
                            ValuesB[reg_AdrB] = warrior.GetPSpaceValue(reg_psAddress);
            ip++;
            warrior.Tasks.Enqueue(mod(ip));
        }
Ejemplo n.º 20
0
 public void ADD_X_BmIm(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueA;
     int reg_IR_ValueB = ValuesB[ip];
     int reg_IR_ValueCpyA = ValuesA[ip];
     int reg_AdrA;
     int reg_AdrB;
     int reg_AA_Value;
     int reg_AB_Value = ValuesA[ip];
     int reg_direct;
     reg_direct = mod(reg_IR_ValueCpyA + ip);
     reg_AdrA = mod(reg_direct + dec(ref ValuesB[reg_direct]));
     reg_AA_Value = ValuesA[reg_AdrA];
     reg_IR_ValueA = ValuesB[reg_AdrA];
     reg_AdrB = ip;
     ValuesB[reg_AdrB] = reg_IR_ValueB + reg_AA_Value;
     if (ValuesB[reg_AdrB] >= coreSize) ValuesB[reg_AdrB] -= coreSize;
     ValuesA[reg_AdrB] = reg_AB_Value + reg_IR_ValueA;
     if (ValuesA[reg_AdrB] >= coreSize) ValuesA[reg_AdrB] -= coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 21
0
 public void ADD_I_ImIm(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueA;
     int reg_IR_ValueB = ValuesB[ip];
     int reg_AdrB;
     int reg_AA_Value = ValuesA[ip];
     int reg_AB_Value = ValuesA[ip];
     reg_IR_ValueA = reg_IR_ValueB;
     reg_AdrB = ip;
     ValuesA[reg_AdrB] = reg_AB_Value + reg_AA_Value;
     if (ValuesA[reg_AdrB] >= coreSize) ValuesA[reg_AdrB] -= coreSize;
     ValuesB[reg_AdrB] = reg_IR_ValueB + reg_IR_ValueA;
     if (ValuesB[reg_AdrB] >= coreSize) ValuesB[reg_AdrB] -= coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 22
0
 public void SUB_BA_BpIm(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueA;
     int reg_IR_ValueCpyA = ValuesA[ip];
     int reg_AdrA;
     int reg_AdrB;
     int reg_AB_Value = ValuesA[ip];
     int reg_direct;
     reg_direct = mod(reg_IR_ValueCpyA + ip);
     reg_AdrA = mod(reg_direct + ValuesB[reg_direct]);
     reg_IR_ValueA = ValuesB[reg_AdrA];
     inc(ref ValuesB[reg_direct]);
     reg_AdrB = ip;
     ValuesA[reg_AdrB] = reg_AB_Value - reg_IR_ValueA;
     if (ValuesA[reg_AdrB] < 0) ValuesA[reg_AdrB] += coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 23
0
 public void ADD_B_ImDi(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueA;
     int reg_IR_ValueB = ValuesB[ip];
     int reg_IR_ValueCpyB = ValuesB[ip];
     int reg_AdrB;
     int reg_direct;
     reg_IR_ValueA = reg_IR_ValueB;
     reg_direct = mod(reg_IR_ValueCpyB + ip);
     reg_AdrB = reg_direct;
     reg_IR_ValueB = ValuesB[reg_direct];
     ValuesB[reg_AdrB] = reg_IR_ValueB + reg_IR_ValueA;
     if (ValuesB[reg_AdrB] >= coreSize) ValuesB[reg_AdrB] -= coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 24
0
 public void ADD_BA_ImBp(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueA;
     int reg_IR_ValueB = ValuesB[ip];
     int reg_IR_ValueCpyB = ValuesB[ip];
     int reg_AdrB;
     int reg_AB_Value;
     int reg_direct;
     reg_IR_ValueA = reg_IR_ValueB;
     reg_direct = mod(reg_IR_ValueCpyB + ip);
     reg_AdrB = mod(reg_direct + ValuesB[reg_direct]);
     reg_AB_Value = ValuesA[reg_AdrB];
     inc(ref ValuesB[reg_direct]);
     ValuesA[reg_AdrB] = reg_AB_Value + reg_IR_ValueA;
     if (ValuesA[reg_AdrB] >= coreSize) ValuesA[reg_AdrB] -= coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 25
0
 public void ADD_A_DiIm(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueCpyA = ValuesA[ip];
     int reg_AdrB;
     int reg_AA_Value;
     int reg_AB_Value = ValuesA[ip];
     int reg_direct;
     reg_direct = mod(reg_IR_ValueCpyA + ip);
     reg_AA_Value = ValuesA[reg_direct];
     reg_AdrB = ip;
     ValuesA[reg_AdrB] = reg_AB_Value + reg_AA_Value;
     if (ValuesA[reg_AdrB] >= coreSize) ValuesA[reg_AdrB] -= coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 26
0
        public void LDP_X_BmIm(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueA;
            int reg_IR_ValueCpyA = ValuesA[ip];
            int reg_AdrA;
            int reg_AdrB;
            int reg_direct;
            int reg_psAddress;
            reg_direct = mod(reg_IR_ValueCpyA + ip);
            reg_AdrA = mod(reg_direct + dec(ref ValuesB[reg_direct]));
            reg_IR_ValueA = ValuesB[reg_AdrA];
            reg_AdrB = ip;

                            reg_psAddress = Instruction.Mod(reg_IR_ValueA, rules.PSpaceSize);
                            ValuesB[reg_AdrB] = warrior.GetPSpaceValue(reg_psAddress);
            ip++;
            warrior.Tasks.Enqueue(mod(ip));
        }
Ejemplo n.º 27
0
 public void SUB_B_ImBp(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueA;
     int reg_IR_ValueB = ValuesB[ip];
     int reg_IR_ValueCpyB = ValuesB[ip];
     int reg_AdrB;
     int reg_direct;
     reg_IR_ValueA = reg_IR_ValueB;
     reg_direct = mod(reg_IR_ValueCpyB + ip);
     reg_AdrB = mod(reg_direct + ValuesB[reg_direct]);
     reg_IR_ValueB = ValuesB[reg_AdrB];
     inc(ref ValuesB[reg_direct]);
     ValuesB[reg_AdrB] = reg_IR_ValueB - reg_IR_ValueA;
     if (ValuesB[reg_AdrB] < 0) ValuesB[reg_AdrB] += coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 28
0
 public void SUB_F_ImIm(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueA;
     int reg_IR_ValueB = ValuesB[ip];
     int reg_AdrB;
     int reg_AA_Value = ValuesA[ip];
     int reg_AB_Value = ValuesA[ip];
     reg_IR_ValueA = reg_IR_ValueB;
     reg_AdrB = ip;
     ValuesA[reg_AdrB] = reg_AB_Value - reg_AA_Value;
     if (ValuesA[reg_AdrB] < 0) ValuesA[reg_AdrB] += coreSize;
     ValuesB[reg_AdrB] = reg_IR_ValueB - reg_IR_ValueA;
     if (ValuesB[reg_AdrB] < 0) ValuesB[reg_AdrB] += coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }
Ejemplo n.º 29
0
        public void LDP_X_ImIm(int ip, EngineWarrior warrior)
        {
            int reg_IR_ValueA;
            int reg_IR_ValueB = ValuesB[ip];
            int reg_AdrB;
            int reg_psAddress;
            reg_IR_ValueA = reg_IR_ValueB;
            reg_AdrB = ip;

                            reg_psAddress = Instruction.Mod(reg_IR_ValueA, rules.PSpaceSize);
                            ValuesB[reg_AdrB] = warrior.GetPSpaceValue(reg_psAddress);
            ip++;
            warrior.Tasks.Enqueue(mod(ip));
        }
Ejemplo n.º 30
0
 public void SUB_B_DiIm(int ip, EngineWarrior warrior)
 {
     int reg_IR_ValueA;
     int reg_IR_ValueB = ValuesB[ip];
     int reg_IR_ValueCpyA = ValuesA[ip];
     int reg_AdrB;
     int reg_direct;
     reg_direct = mod(reg_IR_ValueCpyA + ip);
     reg_IR_ValueA = ValuesB[reg_direct];
     reg_AdrB = ip;
     ValuesB[reg_AdrB] = reg_IR_ValueB - reg_IR_ValueA;
     if (ValuesB[reg_AdrB] < 0) ValuesB[reg_AdrB] += coreSize;
     ip++;
     warrior.Tasks.Enqueue(mod(ip));
 }