dalvikVM 掘削
dalvik/vm/interp/Interp.c の dvmInterpret 手続き。コメントと手続き定義の先頭部分が以下。
/* * Main interpreter loop entry point. Select "standard" or "debug" * interpreter and switch between them as required. * * This begins executing code at the start of "method". On exit, "pResult" * holds the return value of the method (or, if "method" returns NULL, it * holds an undefined value). * * The interpreted stack frame, which holds the method arguments, has * already been set up. */ void dvmInterpret(Thread* self, const Method* method, JValue* pResult)
基本的には
- dvmMterpStd 手続き
- dvmInterpretStd 手続き
のどちらかが呼び出されるらしいんですが、以前のエントリによれば dvmInterpretStd というシンボルが解決できなかった模様。
dvmMterpStd 手続き
dalvik/vm/mterp/Mterp.c で定義されててここから呼んでる
changeInterp = dvmMterpStdRun(glue);
がアセンブラなのか。
命令がどう評価されてるのか、もなんですが、どんな命令があるのか、ってのも確認したかったのかどうか。
む
GOTO_NEXT なマクロが見つけれない、と思ってたら以下のエントリで見つけている模様。
場所がどこか、とかな情報が無いな。
と思ったら継続して色々している記録を発見。
- http://d.hatena.ne.jp/yamanetoshi/20101101/1288601721
- http://d.hatena.ne.jp/yamanetoshi/20101102/1288679629
別途確認の方向。これから出社。