运行x86程序_on_ llvm

时间:2010-04-15 22:46:40

标签: x86 llvm

是否可以使用llvm来运行x86程序?即我想使用llvm作为x86模拟器来运行x86程序,然后检测x86程序。

谢谢!

3 个答案:

答案 0 :(得分:8)

我认为您正在寻找LibCPU

它有an x86 frontend(嗯,目前实际上只有8086,甚至还没有完成,但他们正在研究它),并且由于它是建立在LLVM之上的,它显然也有一个x86后端,因此可以运行x86-on-x86,但可以通过LLVM的优化,仪器和分析阶段。

答案 1 :(得分:1)

此外,有一个项目在qemu中使用LLVM。它也是一种通过LLVM运行x86代码的方法。

http://code.google.com/p/llvm-qemu/

这是GSoC项目,但是svn中有一个代码,作者有结果:

regular qemu     llvm-qemu rle,dse,simple regalloc   llvm-qemu full opts
4m35.349s             5m39.697s                        13m50.697s

llvm-qemu比qemu慢两倍 - 但它确实有效。

答案 2 :(得分:0)

我不知道libCPU,但有libx86,它做了类似的事情;如果在32位x86处理器上运行(但不是在64位模式下),它运行虚拟8086进程,如果在其他地方运行,它会尝试在软件中模拟8086。很酷。但文档相对稀缺。

http://www.codon.org.uk/~mjg59/libx86/