Template Interpreter による return 系のバイトコードの処理は, 全て TemplateTable::_return() 内で行われる.
TemplateTable::_return() が生成するコード
-> (1) return_register_finalizer バイトコードの場合は, 必要に応じて Finalizer の登録処理を行う
-> InterpreterRuntime::register_finalizer()
(1) スタックフレームを破棄するための準備を行う (synchronized method であればロックの解除も行う)
-> InterpreterMacroAssembler::remove_activation() が生成するコード
-> InterpreterMacroAssembler::unlock_if_synchronized_method() が生成するコード
-> (See: here for details)
-> InterpreterMacroAssembler::notify_method_exit() が生成するコード
(1) restore しつつ, リターン.
TemplateTable::_return() が生成するコード
-> (1) return_register_finalizer バイトコードの場合は, 必要に応じて Finalizer の登録処理を行う
-> InterpreterRuntime::register_finalizer()
(1) スタックフレームを破棄するための準備を行う (synchronized method であればロックの解除も行う)
-> InterpreterMacroAssembler::remove_activation() が生成するコード
-> InterpreterMacroAssembler::unlock_object() が生成するコード
-> (See: here for details)
-> InterpreterMacroAssembler::notify_method_exit() が生成するコード
(1) リターン.
See: here for details
(#Under Construction)
See: here for details
(#Under Construction)
See: here for details
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.