PowerVM Lx86


PowerVM Lx86 was a binary translation layer for IBM's System p servers. It enabled 32-bit x86 Linux binaries to run unmodified on the Power ISA-based hardware. IBM used this feature to migrate x86 Linux servers to the PowerVM virtualized environment; it was supported on all POWER5 and POWER6 hardware as well as BladeCenter JS21 and JS22 systems.
In contrast to regular emulators only the instructions are translated, not the entire system, thus making it fast and flexible. The Lx86 software senses that it is executing x86 code and translates it to PowerPC code at execution, and these instructions are later cached ensuring that the translation process only has to take place once, further reducing the drop in performance usually associated with emulation. Lx86 does not support applications that access hardware directly, like kernel modules. Earlier versions of Lx86 did not run code that makes use of SSE instructions, though as of version 1.3.2 the SSE and SSE2 instruction sets were supported.
The product was at first marketed as System p AVE and was incorrectly reported as PAVE in the press but the name has since changed to PowerVM Lx86. Lx86 was based on the QuickTransit dynamic translator from Transitive, the same that Apple uses for its Rosetta emulation layer that enables Mac OS X to run unmodified PowerPC binaries on their Intel-based Macintoshes.
All versions and releases of the Lx86 product were withdrawn from marketing in September 2011, with support discontinued in April 2013.