是否可以使用llvm来运行x86程序?即我想使用llvm作为x86模拟器来运行x86程序,然后检测x86程序。
谢谢!
答案 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
。很酷。但文档相对稀缺。