hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp
// Set carry flags on the counters if necessary
void SimpleThresholdPolicy::handle_counter_overflow(methodOop method) {
{- -------------------------------------------
(1) 以下の 4つ(もしくは 2つ)の InvocationCounter について
SimpleThresholdPolicy::set_carry_if_necessary() を呼び出し,
もしカウンタ値が閾値を超えていればキャリービットを立てておく.
* 引数で指定された methodOop 中の _invocation_counter
* 引数で指定された methodOop 中の _backedge_counter
* 引数で指定された methodOop に付属の methodDataOop 中の _invocation_counter (もし methodDataOop があれば)
* 引数で指定された methodOop に付属の methodDataOop 中の _backedge_counter (もし methodDataOop があれば)
---------------------------------------- -}
set_carry_if_necessary(method->invocation_counter());
set_carry_if_necessary(method->backedge_counter());
methodDataOop mdo = method->method_data();
if (mdo != NULL) {
set_carry_if_necessary(mdo->invocation_counter());
set_carry_if_necessary(mdo->backedge_counter());
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.