qemu-TCG动态翻译技术
来源:互联网 发布:礼物说app源码 编辑:程序博客网 时间:2024/04/29 05:30
1. TCG简单介绍
TCG(Tiny Code Generator)最早被用于C编译器的后端。在TCG相关的代码中,target指的是我们通常说的host,这一点需要注意,并不是我们理解的被仿真的平台。
2. TCG动态翻译技术的几个概念
(1)与dyngen一样,TCG的“function”与qemu的TBs(Translated Block)相对应,即以分支跳转指令结束的代码段。
(2)TCG中有三种变量:temporary, local temporary, global。这三种变量有着不同的生命周期,temporary变量的声明周期是TBs,local temporary变量的声明周期是functions,global变量的声明周期是所有的functions,类似C语言的全局变量。temporary和local temporary变量通常在function内定义,global变量通常在function外定义。全局变量通常被映射到某个内存地址或某个固定的寄存器。
3. TCG operations
就像dyngen动态翻译技术中的micro-operations一样,TCG也采用中间表示的形式(TCG instructions),TCG至中间表示支持的三种变量有两种数据类型:32 bit整型和64 bit整型。另外,指针类型被实现为整型的别名。
TCG指令有固定的形式:
TCG 操作码 输出变量域,输入变量域,常量域
比较特殊的是call指令,其后只跟一个变量,同时作为输出和输入变量域。
举个例子:
add_i32 t0, t1, t2 (t0 <- t1 + t2)
操作码 输出变量域 输入变量域 常量域(输入)
4. TCG是qemu的核心,主要实现了以下翻译流程:
- qemu-TCG动态翻译技术
- qemu源码分析之五-- TCG动态翻译技术
- qemu-dyngen动态翻译技术
- QEMU技术分析2 - TCG(Tiny Code Generator)基本原理
- QEMU技术分析2 - TCG(Tiny Code Generator)基本原理
- Understand Qemu TCG
- qemu动态翻译续
- QEMU技术分析1 - 动态翻译(dynamic translation)
- qemu源码分析之四--dyngen动态翻译技术
- qemu学习(四)————tcg操作码 分析
- qemu中KVM硬件虚拟化的初始化分析 (tcg、xen、kvm、qtest)(转)
- qemu翻译过程分析(二)
- qemu翻译过程分析(四)
- 模拟器qemu技术内幕
- qemu核心-动态翻译器
- QEMU动态翻译器
- 虚拟化技术之QEMU
- QEMU翻译块(TB)分析
- MongoDB介绍及安装
- 单片机在清除标志位时不要用位操作
- Visual Studio 2013: fatal error C1083: Cannot open include file: 'winsock2.h': No such file or direc
- poj 2406 Power Strings (最小重复子串出现次数 kmp)
- servlet各个版本支持jstl
- qemu-TCG动态翻译技术
- 神奇的理发头盔
- JSP指令
- 线程本地存储(Windows和Linux)
- Java遍历Map,List的4种方法
- JQuery:常用方法一览
- JAVA 解析XML之DOM方式
- Python实现矩阵相乘
- Elements of Modern C++ Style