2

Qemuソースコード(cpu-exec.c)に変換ブロックの定義があります

/qemu-0.14.0/cpu-exec.c

127行目は

static TranslationBlock * tb_find_slow(target_ulong pc、target_ulong cs_base、uint64_tフラグ)

どういう意味ですか?

4

1 に答える 1

5

これは、変換ブロックの定義ではありませんtb_find_slow()。これは、変換ブロックへのポインターを返す呼び出される関数です。変換ブロック構造はで定義されていexec-all.hます。

それらが何であるかに関して、このページには簡潔な説明があります:

QEMUはネイティブ命令を「マイクロオペレーション」に変換し、「変換ブロック」として構築します。実行が発生すると、最初に発生することの1つは、既に作成されている変換ブロックを見つけるためにルックアップが行われることです。

言い換えれば、それは一種のジャストインタイムコンパイラです。

tb_find_fast()各変換ブロックに固有である必要があるCPU状態(プログラムカウンター、コードセレクター、およびフラグ)のビットに基づくハッシュを使用する関数があります。そのハッシュが機能しない場合(結果の変換ブロックのPC / CS /フラグが異なる場合)、変換ブロックリストの順次スキャンであるslowメソッドに戻ります。

于 2011-03-17T07:21:50.093 に答える