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 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()); }
public StackInfo LoadElement(APC pc, TypeNode type, Dummy dest, Dummy array, Dummy index, StackInfo data) { return(data.Pop(2).Push()); }
public StackInfo Initobj(APC pc, TypeNode type, Dummy ptr, StackInfo data) { return(data.Pop(1)); }
public StackInfo Unary(APC pc, UnaryOperator op, bool unsigned, Dummy dest, Dummy source, StackInfo data) { return(data.Pop(1).Push()); }
public StackInfo StoreStaticField(APC pc, Field field, Dummy value, StackInfo data) { return(data.Pop(1)); }
public StackInfo StoreElement(APC pc, TypeNode type, Dummy array, Dummy index, Dummy value, StackInfo data) { return(data.Pop(3)); }
public StackInfo RefAnyType(APC pc, Dummy dest, Dummy source, StackInfo data) { return(data.Pop(1).Push()); }
public StackInfo NewArray <ArgList> (APC pc, TypeNode type, Dummy dest, ArgList lengths, StackInfo data) where ArgList : IIndexable <Dummy> { return(data.Pop(lengths.Count).Push()); }
public StackInfo EndFilter(APC pc, Dummy decision, StackInfo data) { return(data.Pop(1)); }
public StackInfo CopyBlock(APC pc, Dummy destAddress, Dummy srcAddress, Dummy len, StackInfo data) { return(data.Pop(3)); }
public StackInfo BranchFalse(APC pc, APC target, Dummy cond, StackInfo data) { return(data.Pop(1)); }
public StackInfo BranchCond(APC pc, APC target, BranchOperator bop, Dummy value1, Dummy value2, StackInfo data) { return(data.Pop(2)); }
public StackInfo Assert(APC pc, EdgeTag tag, Dummy condition, StackInfo data) { return(data.Pop(1)); }
public StackInfo LoadFieldAddress(APC pc, Field field, Dummy dest, Dummy obj, StackInfo data) { return(data.Pop(1).Push()); }
public StackInfo Pop(APC pc, Dummy source, StackInfo data) { return(data.Pop(1)); }
public StackInfo LoadLength(APC pc, Dummy dest, Dummy array, StackInfo data) { return(data.Pop(1).Push()); }
public StackInfo StoreArg(APC pc, Parameter argument, Dummy source, StackInfo data) { return(data.Pop(1)); }
public StackInfo NewObj <ArgList> (APC pc, Method ctor, Dummy dest, ArgList args, StackInfo data) where ArgList : IIndexable <Dummy> { int paramsCount = MetaDataProvider.Parameters(ctor).Count; return(data.Pop(paramsCount).Push()); }
public StackInfo StoreLocal(APC pc, Local local, Dummy source, StackInfo data) { return(data.Pop(1)); }
public StackInfo RefAnyVal(APC pc, TypeNode type, Dummy dest, Dummy source, StackInfo data) { return(data.Pop(1).Push()); }
public StackInfo Switch(APC pc, TypeNode type, IEnumerable <Pair <object, APC> > cases, Dummy value, StackInfo data) { return(data.Pop(1)); }
public StackInfo StoreField(APC pc, Field field, Dummy obj, Dummy value, StackInfo data) { return(data.Pop(2)); }
public StackInfo CopyObj(APC pc, TypeNode type, Dummy destPtr, Dummy sourcePtr, StackInfo data) { return(data.Pop(2)); }
public StackInfo UnboxAny(APC pc, TypeNode type, Dummy dest, Dummy obj, StackInfo data) { return(data.Pop(1).Push()); }
public StackInfo Binary(APC pc, BinaryOperator op, Dummy dest, Dummy operand1, Dummy operand2, StackInfo data) { return(data.Pop(2).Push()); }