public virtual void AddSequence(InstructionSequence seq) { for (int i = 0; i < seq.Length(); i++) { AddInstruction(seq.GetInstr(i), -1); } }
public override void InitInstruction(InstructionSequence seq) { defaultDestination = seq.GetPointerByRelOffset(operands[0]); int prefix = opcode == ICodeConstants.opc_tableswitch ? 3 : 2; int len = operands.Length - prefix; int low = 0; if (opcode == ICodeConstants.opc_lookupswitch) { len /= 2; } else { low = operands[1]; } destinations = new int[len]; values = new int[len]; for (int i = 0, k = 0; i < len; i++, k++) { if (opcode == ICodeConstants.opc_lookupswitch) { values[i] = operands[prefix + k]; k++; } else { values[i] = low + k; } destinations[i] = seq.GetPointerByRelOffset(operands[prefix + k]); } }
public virtual void InitInstruction(InstructionSequence seq) { }
public override void InitInstruction(InstructionSequence seq) { destination = seq.GetPointerByRelOffset(this.Operand(0)); }