$ svn co http://llvm-qemu.googlecode.com/svn/trunk/ llvm-qemu # qemu 0.9 需要 GCC 3.x # wget http://qemu.sourcearchive.com/downloads/0.9.1/qemu_0.9.1.orig.tar.gz # wget ftp://gd.tuwien.ac.at/gnu/gcc/releases/gcc-3.4.6/gcc-3.4.6.tar.gz $ wget http://llvm.org/releases/2.1/llvm-2.1.tar.gz; tar xvf llvm-2.1.tar.gz $ wget http://llvm.org/releases/2.1/llvm-gcc4.0-2.1.source.tar.gz; tar xvf llvm-gcc4.0-2.1.source.tar.gz $ mkdir build; cd build $ wget http://llvm.org/releases/2.1/llvm-gcc4.0-2.1-x86-linux-RHEL4.tar.gz;
QEMU 0.9 版以前使用 dyngen,對於 dyngen 的描述可以參考以下文件。QEMU 0.10 以後改採 TCG。
QEMU 0.9 版的作法:
dyngen 是在建置 QEMU 的時候,負責由包含 micro op 的目的檔生成 dynamic code generator。dynamic code generator 在 QEMU 執行的時候負責動態翻譯。
target-*/op.* 實現 micro op 對應的 C 函式。
block chaining。