hotspot/src/cpu/sparc/vm/assembler_sparc.cpp
void MacroAssembler::call_VM_leaf_base(Register thread_cache, address entry_point, int number_of_arguments) {
{- -------------------------------------------
(1) (assert)
---------------------------------------- -}
assert_not_delayed();
{- -------------------------------------------
(1) コード生成:
「call 命令で, 引数で指定されたエントリポイントを呼び出す.
(第一引数として, カレントスレッドを表す JavaThread を渡す)」
(なお, 呼び出しの前後で G2_thread の退避/復帰を行っている.
See: MacroAssembler::save_thread(), MacroAssembler::restore_thread())
---------------------------------------- -}
save_thread(thread_cache);
// do the call
call(entry_point, relocInfo::runtime_call_type);
delayed()->nop();
restore_thread(thread_cache);
{- -------------------------------------------
(1) (デバッグ用の処理) (#ifdef ASSERT 時にのみ実行)
コード生成: (デバッグ用の処理)
---------------------------------------- -}
#ifdef ASSERT
set(badHeapWordVal, G3);
set(badHeapWordVal, G4);
set(badHeapWordVal, G5);
#endif
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.