Top


定義場所(file name)

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

名前(function name)

void TemplateTable::invokestatic(int byte_no) {

本体部(body)

  {- -------------------------------------------
  (1) (assert) (See: TemplateTable::transition())
      ---------------------------------------- -}

      transition(vtos, vtos);

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

      assert(byte_no == f1_byte, "use this argument");

  {- -------------------------------------------
  (1) コード生成:
      「呼び出しに必要な前準備を行う」
      ---------------------------------------- -}

      prepare_invoke(rbx, noreg, byte_no);

  {- -------------------------------------------
  (1) (以下で実際に呼び出しを行う)
      ---------------------------------------- -}

      // do the call

  {- -------------------------------------------
  (1) コード生成: (verify)
      ---------------------------------------- -}

      __ verify_oop(rbx);

  {- -------------------------------------------
  (1) コード生成:
      「method data pointer (mdp) の値を更新しておく」
      ---------------------------------------- -}

      __ profile_call(rax);

  {- -------------------------------------------
  (1) コード生成:
      「実際の呼び出し処理を行う」
      ---------------------------------------- -}

      __ jump_from_interpreted(rbx, rax);
    }

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