Project: x86 to ARM binary translator

André Hentschel nerv at
Sat Apr 2 06:14:37 CDT 2011

Am 02.04.2011 03:14, schrieb Charles Davis:
> On 4/1/11 6:19 PM, Yale Zhang wrote:
>> Fellow developers,
>> I'm thinking of starting a VM project to allow running x86 Windows apps
>> on ARM Android. This will obviously involve binary translation. I've
>> read about QEMU's  tiny code generator and think for a usable experience,
>>  the intermediate micro-op representation will have to be abandoned, and
>> use a more efficient, though less portable x86 to ARM translator. I also
>> saw some Google SOC project that tried to incorporate LLVM into QEMU,
>> but with disastrous slow down if done naively. I still think it's worth
>> to do so, but lots of care will need to be done to only optimize code
>> that needs it like Sun's HotSpot Java compiler does.

Maybe first to ARM Linux and then to ARM Android?

>> Questions:
>> 1. How useful would this be and how much interest?
>>    Obviously, this will be a huge project, and I just want to gauge the
>> interest before I jump in. Microsoft will be releasing Windows for ARM
>> soon, so there will be no need to worry about
>>    running Office, Matlab, Visual C++, etc on ARM, leaving only legacy
>> applications and games to benefit from binary translation. I'm mostly
>> interested in seeing some 3D games run on my
>>    Xoom.


>> If your're interested in this project, please reply.
> I'm not competent enough to mentor you, but, being a Mac user, I have a
> story to tell you. It's about a version of Wine that did incorporate
> binary translation: Darwine. Darwine was separate from mainline Wine; it
> incorporated QEMU directly and used it to translate x86 to PowerPC code.
> In a faraway time when Macs used PowerPC CPUs, Darwine allowed x86
> Windows apps to run on Mac OS X. Now that Macs aren't built PowerPC
> chips anymore, Darwine has been abandoned. You might consider using it
> as a starting point, though.

I know about that and was told it was never implemented because of
problems with the endianess (PPC big, x86 little), so i wonder if
that ever worked, or was just planned to work?
Any Darwine user around?


Best Regards, André Hentschel

More information about the wine-devel mailing list