Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 843

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

IA-32 Application Support
The Itanium architecture enables Itanium architecture-based operating systems to host
IA-32 applications, Itanium architecture-based applications, as well as mixed
IA-32/Itanium architecture-based applications. Unless the operating system explicitly
intercepts ISA transfers (using the PSR.di), user-level code can transition between the
two instruction sets without operating system intervention. This allows IA-32 programs
to call Itanium architecture-based subroutines or vice-versa. Itanium
architecture-based and IA-32 code can share data through registers and/or memory.
Multi-threaded IA-32 and Itanium architecture-based applications can easily
communicate with each other or the Itanium architecture-based operating system
using shared memory. The Itanium architecture does not support execution of Itanium
architecture-based programs on an IA-32 operating system. While the architecture
does not prevent IA-32 code from executing as part of an Itanium architecture-based
operating system, it is strongly recommended that Itanium architecture-based
operating systems do not contain IA-32 code.
One of the most compelling motivations for executing IA-32 code on an Itanium
architecture-based operating system is the ability to run existing unmodified IA-32
application binaries. Because IA-32 performs 32-bit instruction/memory references that
are zero-extended into 64-bit virtual addresses, Itanium architecture-based operating
systems must ensure that all IA-32 code and data is located in the lower 4GBytes of the
virtual address space. Compute intensive IA-32 applications can improve their
performance substantially by migrating compute kernels from IA-32 to Itanium
architecture-based code while preserving the bulk of the application's IA-32 binary
code. If mixed IA-32/Itanium architecture-based applications are supported, care has
to be taken that the data accessible to IA-32 portions of the application is located in the
lower 4GBytes of the virtual address space.
While processors based on the Itanium architecture are capable of supporting a wide
range of Itanium architecture-based/IA-32 code mixing, Itanium architecture-based
operating systems need to provide a software support infrastructure to enable full
interoperability between the IA-32 and Itanium instruction set. Most Itanium
architecture-based operating systems are expected to support user-level IA-32
applications, and, as a result, must be able to provide the full range of operating
system services through a 32-bit system call interface. However, different operating
systems and runtime conventions may reduce the set of interoperability modes as
desired by the operating system vendor.
While it is an interesting topic, this chapter does not discuss 32-bit application binary
interfaces provided by specific operating systems. Instead, this chapter focusses on
what services are required from an Itanium architecture-based operating system by a
processor based on the Itanium architecture that is executing IA-32 code. In other
words, the focus of this chapter is the low-level processor / operating system interface
rather than the IA-32 software / operating system (application binary) interface.
Volume 2, Part 2: IA-32 Application Support
9
2:595

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents