public StackInfo LoadArg(APC pc, Parameter argument, bool isOld, Dummy dest, StackInfo data) { if (!MetaDataProvider.IsStatic(MetaDataProvider.DeclaringMethod(argument)) && MetaDataProvider.ParameterIndex(argument) == 0) { return(data.PushThis()); } return(data.Push()); }
private int OldStartDepth(Subroutine subroutine) { Method method = ((IMethodInfo)subroutine).Method; int count = MetaDataProvider.Parameters(method).Count; if (!MetaDataProvider.IsConstructor(method) && !MetaDataProvider.IsStatic(method)) { ++count; } return(count); }
public StackInfo Call <TypeList, ArgList> (APC pc, Method method, bool virt, TypeList extraVarargs, Dummy dest, ArgList args, StackInfo data) where TypeList : IIndexable <TypeNode> where ArgList : IIndexable <Dummy> { int count = MetaDataProvider.Parameters(method).Count + (extraVarargs == null ? 0 : extraVarargs.Count); if (!MetaDataProvider.IsStatic(method)) { if (data.IsThis(count)) { this.stack_depth_mirror_for_end_old.AddCallOnThis(pc); } ++count; } data = data.Pop(count); if (MetaDataProvider.IsVoidMethod(method)) { return(data); } return(data.Push()); }