示例#1
0
文件: remapper.cs 项目: moayyaed/ikvm
 internal override void Generate(CodeGenContext context, CodeEmitter ilgen)
 {
     base.Generate(context, ilgen);
     if (typeType != null)
     {
         ilgen.Emit(OpCodes.Isinst, typeType);
     }
     else
     {
         if (typeWrapper.IsGhost || typeWrapper.IsGhostArray)
         {
             ilgen.Emit(OpCodes.Dup);
             typeWrapper.EmitInstanceOf(ilgen);
             CodeEmitterLabel endLabel = ilgen.DefineLabel();
             ilgen.EmitBrtrue(endLabel);
             ilgen.Emit(OpCodes.Pop);
             ilgen.Emit(OpCodes.Ldnull);
             ilgen.MarkLabel(endLabel);
         }
         else
         {
             ilgen.Emit(OpCodes.Isinst, typeWrapper.TypeAsTBD);
         }
     }
 }
示例#2
0
文件: remapper.cs 项目: moayyaed/ikvm
 internal override void Emit(CodeEmitter ilgen, CodeEmitterLabel label)
 {
     ilgen.EmitBrtrue(label);
 }