Itanium Architecture for Software Developers

Let us begin a study of the floating-point instructions with the instructions that enable floating-point data to be transferred between the registers of the floating-point register file and memory, between the floating-point and general register files, and converted between integer and floating-point data types. Chapter 5 examined the use of the load instruction to load data from memory to a general register. At that time we found that the load and store instructions could also be used to transfer information between memory and the floating-point registers. This is the role of the floating-point memory access instructions. It is also necessary to transfer floating-point information between the general registers and floating-point registers. This operation is performed by the register transfer instructions. Finally, the data conversion instructions permit conversion of a floating-point number in one floating-point register to either a signed or unsigned integer in another floating-point register. In this section, we examine the operation of these three types of floating-point instructions.
Let us begin a study of the floating-point instruction set with the floating-point memory access instructions. They include the load, load-pair, and store instructions. Load instructions transfer data from a storage location in memory to a floating-point register or a pair of floating-point registers. The store instruction reverses this operation. It saves data in a floating-point register to a storage location in memory. There are no floating-point store-pair instructions.
The same performance concerns...