Exemplo n.º 1
0
 public override bool UpdateDivergenceStack(DivergenceStack divergenceStack, IList <BitArray> activeMasks)
 {
     divergenceStack.Peek().NextPC = ReconvergencePC;
     for (var i = 0; i < NextPCs.Count; i++)
     {
         if (activeMasks[i].Any())
         {
             divergenceStack.Push(NextPCs[i], activeMasks[i], ReconvergencePC);
         }
     }
     return(true);
 }
        public override bool UpdateDivergenceStack(DivergenceStack divergenceStack, IList <BitArray> activeMasks)
        {
            var topOfDivergenceStack = divergenceStack.Peek();

            if (NextPC == topOfDivergenceStack.ReconvergencePC)
            {
                // Reconvergence.
                divergenceStack.Pop();
                return(true);
            }
            else
            {
                // No Divergence.
                topOfDivergenceStack.NextPC = NextPC;
                return(false);
            }
        }
 public abstract bool UpdateDivergenceStack(DivergenceStack divergenceStack, IList <BitArray> activeMasks);