private DuplicateStackTop newDuplicateStackTop(BasicBlock block) { DuplicateStackTop result = new DuplicateStackTop(); result.Options[BasicBlock.BASIC_BLOCK_OPTION] = block; return result; }
protected internal override void VisitDuplicateStackTop(DuplicateStackTop node, object data) { StackTypes stack = data as StackTypes; stack.Push(stack.Peek()); AddTask(node.Next,stack); }
protected internal virtual void VisitDuplicateStackTop(DuplicateStackTop node, object data) { throw new NodeNotSupportedException(node); }
protected override void VisitDuplicateStackTop(DuplicateStackTop upNode, object o) { State state = o as State; BTValue val = state.Stack[0] as BTValue; state.Stack.Push(val); Annotation.SetNodeBTType(upNode, val.BTType); }
protected override void VisitDuplicateStackTop(DuplicateStackTop upNode, object o) { DepthContainer cnt = o as DepthContainer; cnt.Depth -= 1; }
protected internal override void VisitDuplicateStackTop(DuplicateStackTop node, object data) { generator.Emit(OpCodes.Dup); AddTask(node.Next,null); }