Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
 public StackInfo LoadElement(APC pc, TypeNode type, Dummy dest, Dummy array, Dummy index, StackInfo data)
 {
     return(data.Pop(2).Push());
 }
Esempio n. 4
0
 public StackInfo Initobj(APC pc, TypeNode type, Dummy ptr, StackInfo data)
 {
     return(data.Pop(1));
 }
Esempio n. 5
0
 public StackInfo Unary(APC pc, UnaryOperator op, bool unsigned, Dummy dest, Dummy source, StackInfo data)
 {
     return(data.Pop(1).Push());
 }
Esempio n. 6
0
 public StackInfo StoreStaticField(APC pc, Field field, Dummy value, StackInfo data)
 {
     return(data.Pop(1));
 }
Esempio n. 7
0
 public StackInfo StoreElement(APC pc, TypeNode type, Dummy array, Dummy index, Dummy value, StackInfo data)
 {
     return(data.Pop(3));
 }
Esempio n. 8
0
 public StackInfo RefAnyType(APC pc, Dummy dest, Dummy source, StackInfo data)
 {
     return(data.Pop(1).Push());
 }
Esempio n. 9
0
 public StackInfo NewArray <ArgList> (APC pc, TypeNode type, Dummy dest, ArgList lengths, StackInfo data) where ArgList : IIndexable <Dummy>
 {
     return(data.Pop(lengths.Count).Push());
 }
Esempio n. 10
0
 public StackInfo EndFilter(APC pc, Dummy decision, StackInfo data)
 {
     return(data.Pop(1));
 }
Esempio n. 11
0
 public StackInfo CopyBlock(APC pc, Dummy destAddress, Dummy srcAddress, Dummy len, StackInfo data)
 {
     return(data.Pop(3));
 }
Esempio n. 12
0
 public StackInfo BranchFalse(APC pc, APC target, Dummy cond, StackInfo data)
 {
     return(data.Pop(1));
 }
Esempio n. 13
0
 public StackInfo BranchCond(APC pc, APC target, BranchOperator bop, Dummy value1, Dummy value2, StackInfo data)
 {
     return(data.Pop(2));
 }
Esempio n. 14
0
 public StackInfo Assert(APC pc, EdgeTag tag, Dummy condition, StackInfo data)
 {
     return(data.Pop(1));
 }
Esempio n. 15
0
 public StackInfo LoadFieldAddress(APC pc, Field field, Dummy dest, Dummy obj, StackInfo data)
 {
     return(data.Pop(1).Push());
 }
Esempio n. 16
0
 public StackInfo Pop(APC pc, Dummy source, StackInfo data)
 {
     return(data.Pop(1));
 }
Esempio n. 17
0
 public StackInfo LoadLength(APC pc, Dummy dest, Dummy array, StackInfo data)
 {
     return(data.Pop(1).Push());
 }
Esempio n. 18
0
 public StackInfo StoreArg(APC pc, Parameter argument, Dummy source, StackInfo data)
 {
     return(data.Pop(1));
 }
Esempio n. 19
0
        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());
        }
Esempio n. 20
0
 public StackInfo StoreLocal(APC pc, Local local, Dummy source, StackInfo data)
 {
     return(data.Pop(1));
 }
Esempio n. 21
0
 public StackInfo RefAnyVal(APC pc, TypeNode type, Dummy dest, Dummy source, StackInfo data)
 {
     return(data.Pop(1).Push());
 }
Esempio n. 22
0
 public StackInfo Switch(APC pc, TypeNode type, IEnumerable <Pair <object, APC> > cases, Dummy value, StackInfo data)
 {
     return(data.Pop(1));
 }
Esempio n. 23
0
 public StackInfo StoreField(APC pc, Field field, Dummy obj, Dummy value, StackInfo data)
 {
     return(data.Pop(2));
 }
Esempio n. 24
0
 public StackInfo CopyObj(APC pc, TypeNode type, Dummy destPtr, Dummy sourcePtr, StackInfo data)
 {
     return(data.Pop(2));
 }
Esempio n. 25
0
 public StackInfo UnboxAny(APC pc, TypeNode type, Dummy dest, Dummy obj, StackInfo data)
 {
     return(data.Pop(1).Push());
 }
Esempio n. 26
0
 public StackInfo Binary(APC pc, BinaryOperator op, Dummy dest, Dummy operand1, Dummy operand2, StackInfo data)
 {
     return(data.Pop(2).Push());
 }