maurossi/linux

32 bit?

Closed this issue · 3 comments

Sorry - not really an issue, but a question. I've not looked into lots of detail on your OPEMU patches. You would probably be able to answer without looking. Will this work on 32-bit compiled kernels? I've got a PentiumM that lacks SSE3 and SSSE3 needed for Google's x86 ABI and I figure a kernel that can emulate the code is the first step, then the second is to build Android's userland removing as much SSE3 as possible, relying on the kernel emulator for the rest.

Doable?

Hi,

for the android userspace part we had achieved a full understanding of the changes needed in marshmallow-x86 to support a non SSSE3 builds,

Non SSE3, i,e. SSE2 only or otherwise called amd64 builds would require so much invasive changes that kernel based emulation would be a must, unfortunately AOSP is scientifically leveraging the Intel CPU minimum baseline at each new release.

When I started (to suffer) on the task of emulating (S)SSE* there were promising options described in this ticket: https://sourceforge.net/p/android-x86/misc/3/

I was fascinated by adding instruction emulation layer in kernel, as I saw several promising implementations:

  • SSEplus and xnu OPEMU which is based on it and successfully deployed in amd64 OSX builds
  • simplified kernel trap based emulation, again an SSEplus rework, which I was explained from Emil Velikov it would never make it into kernel development cycle because of security issues
  • Unicorn CPU Emulator http://www.unicorn-engine.org/

Unfortunately I was not able to deliver too much, because of limited skills, but I am happy to share all the info I have.

Mauro

Hi,
closing as the minimum requirements for android-x86 32bit to work on AMD CPU is to have SSE3
We have no plan to work on SSE2 only i.e. amd64 build of android-x86 there would be too many efforts
and very few users/testers.
M.