private void EndEmitPopLocal(LocalAddress address) { string localName = mLambdaNode.locals[address.index]; if (mHeapEnvFieldBuilders.ContainsKey(localName)) { mILGenerator.Emit(OpCodes.Stfld, mHeapEnvFieldBuilders[localName]); } else if (address.index < mLambdaNode.formalCount) { JITInterpreter_DS.EmitStoreArg(mILGenerator, HasThisArgument(), mArgBuilders[address.index]); } else { JITInterpreter_DS.EmitStoreLocal(mILGenerator, mLocalBuilders[address.index - mLambdaNode.formalCount]); } }
private void BeginEmitPopLocal(LocalAddress address) { string localName = mLambdaNode.locals[address.index]; if (mHeapEnvFieldBuilders.ContainsKey(localName)) { JITInterpreter_DS.EmitLoadLocal(mILGenerator, mHeapEnvBuilder); } else if (address.index < mLambdaNode.formalCount) { // } else { // } }
private void EndEmitPopLocal(LocalAddress address) { var builder = mLocalBuilders[address.index]; if (builder is ParameterBuilder) { JITInterpreter_DS2.EmitStoreArg(mILGenerator, HasThisArgument(), builder as ParameterBuilder); } else { LocalBuilder localBuilder = builder as LocalBuilder; if (localBuilder.LocalType == typeof(object)) { JITInterpreter_DS2.EmitStoreLocal(mILGenerator, localBuilder); } else { mILGenerator.Emit(OpCodes.Stfld, typeof(SharedValue).GetField("value")); } } }
private void BeginEmitPopLocal(LocalAddress address) { var builder = mLocalBuilders[address.index]; if (builder is ParameterBuilder) { // } else { LocalBuilder localBuilder = builder as LocalBuilder; if (localBuilder.LocalType == typeof(object)) { // } else { JITInterpreter_DS2.EmitLoadLocal(mILGenerator, localBuilder); } } }