public void Replace(InstructionNode node)
{
//Block.DebugCheck();
Debug.Assert(!IsBlockStartInstruction);
Debug.Assert(!IsBlockEndInstruction);
Debug.Assert(!node.IsBlockStartInstruction);
Debug.Assert(!node.IsBlockEndInstruction);
node.Label = Label;
node.Previous = Previous;
node.Next = Next;
node.Previous.Next = node;
node.Next.Previous = node;
// clear operations
ClearOperands();
Instruction = null;
//Block.DebugCheck();
}