public StackInfo Calli <TypeList, ArgList> (APC pc, TypeNode returnType, TypeList argTypes, bool instance, Dummy dest, Dummy functionPointer, ArgList args, StackInfo data) where TypeList : IIndexable <TypeNode> where ArgList : IIndexable <Dummy> { int count = 1; if (instance) { ++count; } int slots = count + (argTypes == null ? 0 : argTypes.Count); data.Pop(slots); if (MetaDataProvider.IsVoid(returnType)) { return(data); } return(data.Push()); }
public StackInfo ConstrainedCallvirt <TypeList, ArgList> (APC pc, Method method, TypeNode constraint, TypeList extraVarargs, Dummy dest, ArgList args, StackInfo data) where TypeList : IIndexable <TypeNode> where ArgList : IIndexable <Dummy> { int paramsCount = MetaDataProvider.Parameters(method).Count + (extraVarargs == null ? 0 : extraVarargs.Count); if (!MetaDataProvider.IsStatic(method)) { if (data.IsThis(paramsCount)) { this.stack_depth_mirror_for_end_old.AddCallOnThis(pc); } ++paramsCount; } data = data.Pop(paramsCount); if (MetaDataProvider.IsVoid(MetaDataProvider.ReturnType(method))) { return(data); } return(data.Push()); }