Dynamic Recompilation of IA32

In a project I am working on, I have to emulate a system. I'm looking for a non-GPL'd framework to convert IA32 machine code into an intermediate language, and then into a host language.

I was originally thinking of using LLVM for my CPU (AFAIK RPSC3 uses this method), however, it seems as though this isn't ideal for dynamic recompilation. (For example, llvm-qemu showed terrible results when compared to the base qemu project.) Not only that, but it's quite a large dependency. I'm trying to keep this as light-weight as possible.

I could also try to bastardize the core out of MAME, which seems like the most realistic idea. I'm looking into it ATM and will update with a decision.

My final option is to write a custom solution. I usually wouldn't have a problem with something like this with an architecture such as MIPS or even the PowerPC architecture, but with the IA32... let's just say it's something I would abhor. It would take literally several months to a year+ worth of work, which is something I'd like to avoid if possible. Not only that, but I doubt a lot of programmers would like to work on that.

So, what do you guys think? Do you have any potential solutions?
Last edited on
Topic archived. No new replies allowed.