2010-04-15 13 views
6

¿Es posible usar llvm para ejecutar programas x86? Es decir. Quiero usar llvm como un simulador x86 para ejecutar programas x86 y luego instrumentar el programa x86.ejecutando el programa x86 _on_ llvm

Gracias!

+2

Para citar Charles Babbage, "yo no soy capaz razón para aprehender el tipo de confusión de ideas que podrían provocar una pregunta." –

+2

¡Buena pregunta! En realidad, había leído sobre LibCPU hace un par de semanas, pero lo olvidé por completo. Esta pregunta me impulsó a regresar y volver a verla. ¡Gracias! –

Respuesta

7

Creo que está buscando LibCPU.

Tiene an x86 frontend (bueno, en realidad solo 8086 en este momento, y eso ni siquiera está completo, pero están trabajando en ello), y como está construido sobre LLVM, obviamente también tiene un backend x86 , lo que hace posible ejecutar x86-on-x86 pero pasarlo a través de las etapas de optimización, instrumentación y análisis de LLVM.

+0

¿puede funcionar la LibCPU para el código 387 (FPU clásica)? – osgx

1

Además, había un proyecto para usar LLVM en qemu. También es una forma de ejecutar el código x86 a través de LLVM.

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

Fue GSoC proyecto, pero hay un código en SVN y autor tienen los resultados:

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

llvm-qemu dos veces tres veces más lento que qemu, pero funciona.

+1

Aparentemente fue concebido como una forma de optimizar qemu. Yo diría que la razón por la que fue abandonado fue debido a estos resultados desalentadores. – TechZilla

0

No sé libCPU, pero hay libx86, que hace algo muy similar; si se ejecuta en un procesador x86 de 32 bits (pero no en el modo de 64 bits), ejecuta un proceso 8086 virtual, si se ejecuta en otro lado, intenta emular el 8086 en el software. Muy genial. La documentación es relativamente escasa.

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

Cuestiones relacionadas