Exemple #1
0
 public InstructionNode(InstructionId instructionId, InstructionOptions instructionOptions, Operand[] operands)
     : base(CodeNodeType.Instruction)
 {
     InstructionId      = instructionId;
     InstructionOptions = instructionOptions;
     Operands           = operands;
     MemoryOperandIndex = Constants.InvalidValue;
     for (var i = 0; i < operands.Length; i++)
     {
         if (!operands[i].IsMemory())
         {
             continue;
         }
         MemoryOperandIndex = i;
         break;
     }
     Flags |= CodeNodeFlags.Removable;
 }
Exemple #2
0
 public void InitializeFrom(InstructionOptions options)
 {
     this.Code = options.Code;
     this.InstructionOperandVM.WriteValue(Code, options.Operand);
     this.SequencePoint = options.SequencePoint;
 }
Exemple #3
0
 public void Initialize(InstructionOptions options)
 {
     this.origOptions = options;
     Reinitialize();
 }
Exemple #4
0
 public InstructionOptions CopyTo(InstructionOptions options)
 {
     options.Code = this.Code;
     options.Operand = this.InstructionOperandVM.Value;
     options.SequencePoint = this.SequencePoint;
     return options;
 }
Exemple #5
0
 internal void Emit(InstructionId instructionId, Operand o0, Operand o1, Operand o2, Operand o3, InstructionOptions options)
 {
     _instructionOptions = options;
     Emit(instructionId, o0, o1, o2, o3);
 }
Exemple #6
0
 internal void Unfollow()
 {
     _instructionOptions |= InstructionOptions.Unfollow;
 }
Exemple #7
0
 public JumpNode(InstructionId instructionId, InstructionOptions instructionOptions, Operand[] operands)
     : base(instructionId, instructionOptions, operands)
 {
 }