hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
void TemplateTable::invokespecial(int byte_no) {
{- -------------------------------------------
(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.