hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
void TemplateTable::fast_invokevfinal(int byte_no) {
{- -------------------------------------------
(1) (assert) (See: TemplateTable::transition())
---------------------------------------- -}
transition(vtos, vtos);
{- -------------------------------------------
(1) (assert)
---------------------------------------- -}
assert(byte_no == f2_byte, "use this argument");
{- -------------------------------------------
(1) コード生成:
「対応する methodOop の情報を CPCache から取得し, G5_method レジスタに設定する.
(なお, この時点で resolve が終わってなければ resolve も行う)」
---------------------------------------- -}
load_invoke_cp_cache_entry(byte_no, G5_method, noreg, Lscratch, true,
/*is_invokevfinal*/true, false);
{- -------------------------------------------
(1) コード生成:
「SP の値を O5_savedSP レジスタに退避しておく」
---------------------------------------- -}
__ mov(SP, O5_savedSP); // record SP that we wanted the callee to restore
{- -------------------------------------------
(1) コード生成:
「実際の呼び出し処理を行う」
---------------------------------------- -}
invokevfinal_helper(G3_scratch, Lscratch);
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.