IA-32 Execution Layer
The IA-32 Execution Layer (IA-32 EL) is a software emulator in the form of a software driver that improves performance of 32-bit applications running on 64-bit Intel Itanium-based systems, particularly those running Linux and Windows Server 2003 (it is included in Windows Server 2003 SP1 and later and in most Linux distributions for Itanium). The IA-32 EL bypasses the slow x86 hardware emulation which is available on pre-Montecito Itanium models. The IA-32 EL used a two-phase (later three-phase) approach: initially it quickly translated every piece of code at a basic block level, adding certain instrumentation for detecting hot code; then hot code was dynamically optimized at a super-block level, and the optimized translated code replaced cold code on the fly. Later interpretation engine was added that allowed to avoid altogether translation of code executed just a few times - cold non-optimized translation became thus the second phase, and hot optimized translation became the third phase. IA-32 Execution Layer supported self-modifying code, and could even optimize it quite well. Part of the software is under the LGPL and part is under an Intel proprietary license. See also
 Itanium
 List of Intel Itanium microprocessors

References

External links
 Intel® Itanium® Processor Family Reference Guide: IA-32 Execution Layer

Device drivers
Intel
X86 emulators