запущенная программа x86 _on_ llvm - PullRequest
7 голосов
/ 16 апреля 2010

Можно ли использовать llvm для запуска программ x86? То есть Я хочу использовать llvm в качестве симулятора x86 для запуска программ x86, а затем инструмент x86.

Спасибо!

Ответы [ 3 ]

8 голосов
/ 16 апреля 2010

Я думаю, что вы ищете LibCPU .

Он имеет внешний интерфейс x86 (ну, на самом деле, на данный момент только 8086, и это даже не завершено, но они работают над этим), и так как он построен на основе LLVM, он, очевидно, также имеет серверную часть x86, что позволяет запускать x86-on-x86, но проходит через этапы оптимизации, инструментария и анализа LLVM.

1 голос
/ 17 декабря 2010

Также был проект для использования LLVM в qemu. Это также способ запуска кода x86 через LLVM.

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, но работает.

0 голосов
/ 29 июня 2012

Я не знаю libCPU, но есть libx86, который делает что-то очень похожее; если он работает на 32-битном процессоре x86 (но не в 64-битном режиме), он запускает виртуальный процесс 8086, если работает в другом месте, он пытается эмулировать 8086 в программном обеспечении. Довольно круто. Документация относительно скудна, хотя.

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

...