コード例 #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;
        }
コード例 #2
0
 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;
     }
 }