hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
void TemplateTable::athrow() {
{- -------------------------------------------
(1) (assert) (See: TemplateTable::transition())
---------------------------------------- -}
transition(atos, vtos);
{- -------------------------------------------
(1) (assert)
---------------------------------------- -}
// This works because exception is cached in Otos_i which is same as O0,
// which is same as what throw_exception_entry_expects
assert(Otos_i == Oexception, "see explanation above");
{- -------------------------------------------
(1) コード生成: (verify)用
---------------------------------------- -}
__ verify_oop(Otos_i);
{- -------------------------------------------
(1) コード生成:
「もし送出対象の例外オブジェクトが null であれば, NullPointerException」
(See: [here](no30592Qc.html) for details)
---------------------------------------- -}
__ null_check(Otos_i);
{- -------------------------------------------
(1) コード生成:
「Interpreter::throw_exception_entry() が指すコードへジャンプし, 例外送出処理を行う.」
---------------------------------------- -}
__ throw_if_not_x(Assembler::never, Interpreter::throw_exception_entry(), G3_scratch);
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.