public Instruction Create (OpCode opcode, byte value) { if (opcode.OperandType == OperandType.ShortInlineVar) return Instruction.Create (opcode, body.Variables [value]); if (opcode.OperandType == OperandType.ShortInlineArg) return Instruction.Create (opcode, body.GetParameter (value)); return Instruction.Create (opcode, value); }
public void Emit (OpCode opcode, FieldReference field) { Append (Create (opcode, field)); }
internal Instruction (OpCode opcode, object operand) { this.opcode = opcode; this.operand = operand; }
public static Instruction Create (OpCode opcode, ParameterDefinition parameter) { if (parameter == null) throw new ArgumentNullException ("parameter"); if (opcode.OperandType != OperandType.ShortInlineArg && opcode.OperandType != OperandType.InlineArg) throw new ArgumentException ("opcode"); return new Instruction (opcode, parameter); }
public static Instruction Create (OpCode opcode, Instruction [] targets) { if (targets == null) throw new ArgumentNullException ("targets"); if (opcode.OperandType != OperandType.InlineSwitch) throw new ArgumentException ("opcode"); return new Instruction (opcode, targets); }
public static Instruction Create (OpCode opcode, double value) { if (opcode.OperandType != OperandType.InlineR) throw new ArgumentException ("opcode"); return new Instruction (opcode, value); }
public static Instruction Create (OpCode opcode, string value) { if (value == null) throw new ArgumentNullException ("value"); if (opcode.OperandType != OperandType.InlineString) throw new ArgumentException ("opcode"); return new Instruction (opcode, value); }
public static Instruction Create (OpCode opcode, MethodReference method) { if (method == null) throw new ArgumentNullException ("method"); if (opcode.OperandType != OperandType.InlineMethod && opcode.OperandType != OperandType.InlineTok) throw new ArgumentException ("opcode"); return new Instruction (opcode, method); }
public Instruction Create (OpCode opcode) { return Instruction.Create (opcode); }
public void Emit (OpCode opcode, ParameterDefinition parameter) { Append (Create (opcode, parameter)); }
public void Emit (OpCode opcode, VariableDefinition variable) { Append (Create (opcode, variable)); }
public void Emit (OpCode opcode, Instruction [] targets) { Append (Create (opcode, targets)); }
public void Emit (OpCode opcode, double value) { Append (Create (opcode, value)); }
public void Emit (OpCode opcode, float value) { Append (Create (opcode, value)); }
public void Emit (OpCode opcode, long value) { Append (Create (opcode, value)); }
public static Instruction Create (OpCode opcode, TypeReference type) { if (type == null) throw new ArgumentNullException ("type"); if (opcode.OperandType != OperandType.InlineType && opcode.OperandType != OperandType.InlineTok) throw new ArgumentException ("opcode"); return new Instruction (opcode, type); }
public static Instruction Create (OpCode opcode, CallSite site) { if (site == null) throw new ArgumentNullException ("site"); if (opcode.Code != Code.Calli) throw new ArgumentException ("code"); return new Instruction (opcode, site); }
public Instruction Create (OpCode opcode, TypeReference type) { return Instruction.Create (opcode, type); }
public static Instruction Create (OpCode opcode, FieldReference field) { if (field == null) throw new ArgumentNullException ("field"); if (opcode.OperandType != OperandType.InlineField && opcode.OperandType != OperandType.InlineTok) throw new ArgumentException ("opcode"); return new Instruction (opcode, field); }
public Instruction Create (OpCode opcode, CallSite site) { return Instruction.Create (opcode, site); }
public static Instruction Create (OpCode opcode, byte value) { if (opcode.OperandType != OperandType.ShortInlineI || opcode == OpCodes.Ldc_I4_S) throw new ArgumentException ("opcode"); return new Instruction (opcode, value); }
public Instruction Create (OpCode opcode, MethodReference method) { return Instruction.Create (opcode, method); }
public static Instruction Create (OpCode opcode, Instruction target) { if (target == null) throw new ArgumentNullException ("target"); if (opcode.OperandType != OperandType.InlineBrTarget && opcode.OperandType != OperandType.ShortInlineBrTarget) throw new ArgumentException ("opcode"); return new Instruction (opcode, target); }
public Instruction Create (OpCode opcode, FieldReference field) { return Instruction.Create (opcode, field); }
public static Instruction Create (OpCode opcode, VariableDefinition variable) { if (variable == null) throw new ArgumentNullException ("variable"); if (opcode.OperandType != OperandType.ShortInlineVar && opcode.OperandType != OperandType.InlineVar) throw new ArgumentException ("opcode"); return new Instruction (opcode, variable); }
public Instruction Create (OpCode opcode, sbyte value) { return Instruction.Create (opcode, value); }
internal Instruction (int offset, OpCode opCode) { this.offset = offset; this.opcode = opCode; }
public static Instruction Create (OpCode opcode) { if (opcode.OperandType != OperandType.InlineNone) throw new ArgumentException ("opcode"); return new Instruction (opcode, null); }
void WriteOpCode (OpCode opcode) { if (opcode.Size == 1) { WriteByte (opcode.Op2); } else { WriteByte (opcode.Op1); WriteByte (opcode.Op2); } }
public void Emit (OpCode opcode, CallSite site) { Append (Create (opcode, site)); }