Top


定義場所(file name)

hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp

説明(description)

// Helper for vtos entry point generation

名前(function name)

void TemplateInterpreterGenerator::set_vtos_entry_points(Template* t,
                                                         address& bep,
                                                         address& cep,
                                                         address& sep,
                                                         address& aep,
                                                         address& iep,
                                                         address& lep,
                                                         address& fep,
                                                         address& dep,
                                                         address& vep) {

本体部(body)

  {- -------------------------------------------
  (1) (assert)
      ---------------------------------------- -}

      assert(t->is_valid() && t->tos_in() == vtos, "illegal template");

  {- -------------------------------------------
  (1) TemplateInterpreterGenerator::generate_and_dispatch() でコードを生成する.

      各エントリポイントについては, 以下のように設定する.
      * vtos で到達した場合のエントリ (= vep) については, 
        想定されている TOS 状態 (= vtos) とあっているため
        そのまま TemplateInterpreterGenerator::generate_and_dispatch() が生成したコードにフォールスルーするエントリを設定.
      * それ以外の TOS 状態で到達した場合のエントリについては, 
        想定されている TOS 状態 (= vtos) に合わせるために TOS の値を push してから 
        TemplateInterpreterGenerator::generate_and_dispatch() が生成したコードにフォールスルーするエントリを設定.
      ---------------------------------------- -}

      Label L;
      aep = __ pc();  __ push_ptr();  __ jmp(L);
      fep = __ pc();  __ push_f();    __ jmp(L);
      dep = __ pc();  __ push_d();    __ jmp(L);
      lep = __ pc();  __ push_l();    __ jmp(L);
      bep = cep = sep =
      iep = __ pc();  __ push_i();
      vep = __ pc();
      __ bind(L);
      generate_and_dispatch(t);
    }

This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.