示例#1
0
        private static void PatchBeginInvoke(BaseMethodCompiler methodCompiler)
        {
            var nullOperand = Operand.GetNullObject(methodCompiler.TypeSystem);
            var context     = new Context(CreateMethodStructure(methodCompiler));

            context.AppendInstruction(IRInstruction.SetReturn, null, nullOperand);
            context.AppendInstruction(IRInstruction.Jmp, methodCompiler.BasicBlocks.EpilogueBlock);
        }
示例#2
0
        private static void PatchBeginInvoke(MethodCompiler methodCompiler)
        {
            var nullOperand = Operand.GetNullObject(methodCompiler.TypeSystem);
            var context     = new Context(CreateMethodStructure(methodCompiler));

            var setReturn = BaseMethodCompilerStage.GetSetReturnInstruction(nullOperand.Type, methodCompiler.Architecture.Is32BitPlatform);

            context.AppendInstruction(setReturn, null, nullOperand);
            context.AppendInstruction(IRInstruction.Jmp, methodCompiler.BasicBlocks.EpilogueBlock);
        }