需要对Qemu源代码行发表评论

时间:2011-03-17 07:16:13

标签: linux virtualization qemu

Qemu源代码(cpu-exec.c)中有一个Translation Block的定义

/qemu-0.14.0/cpu-exec.c

第127行说

static TranslationBlock * tb_find_slow(target_ulong pc,                                       target_ulong cs_base,                                       uint64_t flags)

这是什么意思?

1 个答案:

答案 0 :(得分:5)

这不是翻译块的定义,这是一个名为tb_find_slow()的函数,它返回指向翻译块的指针。翻译块结构在exec-all.h中定义。

至于它们是什么,this page有一个简洁的描述:

  

QEMU将原生指令转换为“微操作”并将其构建为“翻译块”。执行时,首先发生的事情之一是进行查找以查找已创建的翻译块。

换句话说,它是一种即时编译器。

有一个tb_find_fast()函数,它使用基于CPU状态(程序计数器,代码选择器和标志)的散列,这对于每个转换块应该是唯一的。如果该哈希不起作用(结果转换块具有不同的PC / CS /标志),则它将恢复为慢速方法,即对转换块列表的顺序扫描。