コード例 #1
0
ファイル: Compiler.cs プロジェクト: SealedSun/prx
        private static void _emitCilImplementationHeader(CompilerState state)
        {
            //Create local cil function stack context
            //  CilFunctionContext cfctx = CilFunctionContext.New(sctx, source);
            state.SctxLocal = state.Il.DeclareLocal(typeof (CilFunctionContext));
            state.EmitLoadArg(CompilerState.ParamSctxIndex);
            state.EmitLoadArg(CompilerState.ParamSourceIndex);
            state.Il.EmitCall(OpCodes.Call, CilFunctionContext.NewMethod, null);
            state.EmitStoreLocal(state.SctxLocal.LocalIndex);

            //Initialize result and assign default return mode
            //  Result = null;
            state._EmitAssignReturnMode(ReturnMode.Exit);
            state.EmitLoadArg(CompilerState.ParamResultIndex);
            state.EmitLoadNullAsPValue();
            state.Il.Emit(OpCodes.Stind_Ref);
        }