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

Chapter 2 introduced the architectural register resources and data types of the Itanium processor and showed their C language representations. Computer architecture is closely related to assembly language programming, because it is through assembly language programs that the architecture of a machine can be understood. Our presentation of this material differs from certain traditional computer architecture book in which assembly language programming is presented as a language in which one might write complete application programs.
With a proper knowledge of the computer architecture, there are many high-level languages, such as C, that provide most of the capabilities of assembly language programming. The use of high-level languages results in a much higher level of representation and programmer efficiency. However, the high level of abstraction of such languages obscures important underlying architectural features. Therefore, it is important to understand the machine at the assembly language level in order to write high-level code intelligently.
For instance, you may need to decide between the use of competing data and control structures, global variables and function parameters, and recursion, multiple function calls, or other programming structures. While many of these choices are influenced by high-level factors, the machine architecture has a profound effect on the computational efficiency of the chosen method. This statement is perhaps more relevant for the EPIC architecture than for any other contemporary architecture.
In this chapter, we first introduce the Itanium processor s instruction set and instruction syntax, and the operation of a core group of assembly language instructions. Then, we...