hotspot/src/share/vm/interpreter/rewriter.cpp
// Rewrite a classfile-order CP index into a native-order CPC index.
void Rewriter::rewrite_member_reference(address bcp, int offset, bool reverse) {
{- -------------------------------------------
(1) reverse 引数が false の場合には,
バイトコード命令中の Constant Pool index が埋まっている 2byte を
対応する Constant Pool Cache index に置き換える.
(また, この 2byte は実行環境のエンディアンに従って書き込む)
reverse 引数が true の場合には, 逆に元に戻す処理が行われる.
---------------------------------------- -}
address p = bcp + offset;
if (!reverse) {
int cp_index = Bytes::get_Java_u2(p);
int cache_index = cp_entry_to_cp_cache(cp_index);
Bytes::put_native_u2(p, cache_index);
} else {
int cache_index = Bytes::get_native_u2(p);
int pool_index = cp_cache_entry_pool_index(cache_index);
Bytes::put_Java_u2(p, pool_index);
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.