- 40
- 0
- 约6.39千字
- 约 7页
- 2018-05-10 发布于重庆
- 举报
qemu技术分析--TCG基本原理
QEMU技术分析2 - TCG(Tiny Code Generator)基本原理从QEMU-0.10.0开始,TCG成为QEMU新的翻译引擎,做到了“真正”的动态翻译(从某种意义上说,旧版本是从编译后的目标文件中复制二进制指令)。TCG的全称为“Tiny Code Generator”,QEMU的作者Fabrice Bellard在TCG的说明文件中写到,TCG起源于一个C编译器后端,后来被简化为QEMU的动态代码生成器(Fabrice Bellard以前还写过一个很牛的编译器TinyCC)。实际上TCG的作用也和一个真正的编译器后端一样,主要负责分析、优化Target代码以及生成Host代码。? ? ? ? Target指令 ---- TCG ---- Host指令以下的讲述以X86平台为例(Host和Target都是X86)。我在上篇文章中讲到,动态翻译的基本思想就是把每一条Target指令切分成为若干条微操作,每条微操作由一段简单的C代码来实现,运行时通过一个动态代码生成器把这些微操作组合成一个函数,最后执行这个函数,就相当于执行了一条Target指令。这种思想的基础是因为CPU指令都是很规则的,每条指令的长度、操作码、操作数都有固定格式,根据前面就可推导出后面,所以只需通过反汇编引擎分析出指令的操作码、输入参数、输出参数等,剩下的工作就是编码为目标指令了。那
原创力文档

文档评论(0)