Module: YTLJit::VM::Node::MethodEndCodeGen

Includes:
AbsArch
Included in:
BlockEndNode, ClassEndNode, ExceptionTopNode, MethodEndNode, ThrowNode
Defined in:
lib/ytljit/vm_codegen.rb

Constant Summary

Constants included from AbsArch

AbsArch::AL, AbsArch::BL, AbsArch::CL, AbsArch::DL, AbsArch::FUNC_ARG, AbsArch::FUNC_ARG_YTL, AbsArch::FUNC_FLOAT_ARG, AbsArch::FUNC_FLOAT_ARG_YTL, AbsArch::INDIRECT_BPR, AbsArch::INDIRECT_RETR, AbsArch::INDIRECT_SPR, AbsArch::INDIRECT_TMPR, AbsArch::INDIRECT_TMPR2, AbsArch::INDIRECT_TMPR3

Constants included from SSE

SSE::XMM0, SSE::XMM1, SSE::XMM2, SSE::XMM3, SSE::XMM4, SSE::XMM5, SSE::XMM6, SSE::XMM7

Instance Method Summary collapse

Instance Method Details

#gen_method_epilogue(context) ⇒ Object



580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
# File 'lib/ytljit/vm_codegen.rb', line 580

def gen_method_epilogue(context)
  asm = context.assembler

  # Make linkage of frame pointer
  asm.with_retry do
    asm.mov(SPR, BPR)
    asm.pop(BPR)
    if @is_escape != :local_export and 
        @is_escape != :global_export then
      asm.pop(THEPR) 
    end
    asm.mov(SPR, BPR)
    asm.pop(BPR)
  end
  context.stack_content = []

  context
end