7

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

谢谢!

4

3 回答 3

8

我认为您正在寻找LibCPU

它有一个 x86 前端(嗯,实际上目前只有 8086,这还不完整,但他们正在研究它),并且由于它建立在 LLVM 之上,它显然也有一个 x86 后端,因此使运行 x86-on-x86 成为可能,但通过 LLVM 的优化、检测和分析阶段。

于 2010-04-16T00:02:49.173 回答
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 慢两倍,但它可以工作。

于 2010-12-17T12:19:10.657 回答
0

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

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

于 2012-06-29T18:35:39.210 回答