Programming Itanium-based Systems: Developing High Performance Applications for Intel's New Architecture

The resources of the Intel Itanium processor that are visible to the application programmer are collectively called the application programming architecture. The execution environment consists of the registers, and the main memory address space used during the execution of an application program. The application environment is similar to the execution environment, but it includes only those resources that the application programmer can access directly through software.
As a programmer, you will need to understand how the compiler applies architecture resources, such as data types and registers, as it converts an HLL application program to code that runs on the Itanium processor. To debug an application, you must examine data such as constants, variables, and pointers in registers and memory.
This chapter covers both the resources of the Itanium application environment and the way in which a high-level language, such as C, employs them.
The application register set is the set of register resources available to programmers for use in their applications. The Itanium architecture provides many registers, so that several computations can be performed at the same time without having to frequently store (write) and load (read) intermediate results to or from memory. This is an important asset of the architecture and contributes to the high level of software performance achieved by Itanium processor-based computers.
Figure 2.1 shows the Itanium processor s register set. This includes 128 general registers, the instruction pointer, 128 floating-point registers, 64 predicate registers, 8 branch registers, a current frame marker register, user...