Example #1
0
 public CallIndirect(System.Reflection.Metadata.SignatureCallingConvention callingConvention, IType returnType, ImmutableArray <IType> parameterTypes,
                     IEnumerable <ILInstruction> arguments, ILInstruction functionPointer) : base(OpCode.CallIndirect)
 {
     this.CallingConvention = callingConvention;
     this.ReturnType        = returnType ?? throw new ArgumentNullException("returnType");
     this.ParameterTypes    = parameterTypes.ToImmutableArray();
     this.Arguments         = new InstructionCollection <ILInstruction>(this, 0);
     this.Arguments.AddRange(arguments);
     this.FunctionPointer = functionPointer;
 }
Example #2
0
 public CallIndirect(bool isInstance, bool hasExplicitThis, System.Reflection.Metadata.SignatureCallingConvention callingConvention, IType returnType, ImmutableArray <IType> parameterTypes,
                     ILInstruction functionPointer, IEnumerable <ILInstruction> arguments) : base(OpCode.CallIndirect)
 {
     this.IsInstance        = isInstance;
     this.HasExplicitThis   = hasExplicitThis;
     this.CallingConvention = callingConvention;
     this.ReturnType        = returnType ?? throw new ArgumentNullException(nameof(returnType));
     this.ParameterTypes    = parameterTypes.ToImmutableArray();
     this.FunctionPointer   = functionPointer;
     this.Arguments         = new InstructionCollection <ILInstruction>(this, 1);
     this.Arguments.AddRange(arguments);
 }
 internal static Tuple cil_function_pointer_calling_conventions(FunctionPointerType fnptr, System.Reflection.Metadata.SignatureCallingConvention callingConvention) =>
 new Tuple("cil_function_pointer_calling_conventions", fnptr, (int)callingConvention);