public IExecutionEngine GetExecutor(CompiledModel compiledModel, IILOperationSet ilOperationSet) { _typeLoader.LoadGlobalMethods(compiledModel.Methods.Values.ToList()); IExecutionEngine executor = new ExecutionEngine(compiledModel, _gcHeap, _typesHeap, _typeLoader, new CallStack(Int16.MaxValue), ilOperationSet); return(executor); }
public MethodStateMachineFactory(IGCHeap gcHeap, ITypesHeap typesHeap, ITypeLoader typeLoader, IILOperationSet ilOperationSet) { _ilOperationSet = ilOperationSet; _gcHeap = gcHeap; _typeLoader = typeLoader; _typesHeap = typesHeap; }
public ExecutionEngine(CompiledModel compiledModel, IGCHeap gcHeap, ITypesHeap typesHeap, ITypeLoader typeLoader, ICallStack callStack, IILOperationSet ilOperationSet) { _compiledModel = compiledModel; _callStack = callStack; _methodStateMachineFactory = new MethodStateMachineFactory(gcHeap, typesHeap, typeLoader, ilOperationSet); FillInterruptionResolvers(); }
public static MethodStateMachine CreateForMethod(MethodDesc methodDescription, IGCHeap gcHeap, ITypesHeap typesHeap, ITypeLoader typeLoader, IILOperationSet operationSet) { MethodStateMachine execModel = new MethodStateMachine() { _operationSet = operationSet, MethodDesc = methodDescription, Context = ILTool.Kernel.MethodContext.CreateForMethod(methodDescription, gcHeap, typesHeap, typeLoader), State = new MethodState() }; return(execModel); }