The Itanium architecture defines 64 predicate registers (Pr0 Pr63), which are only one bit in width and can thus accommodate only a Boolean true (1) or false (0) value: Each bit in this 64-bit Pr vector is separately addressable.
Table D-2 gives the nomenclature and standardized uses of the Itanium predicate registers. A register is constant if its value is permanently defined at the hardware level. A register is scratch if it may be freely used by a routine at any calling level (caller must save anything important). A register is preserved if a calling routine depends on its contents (any called procedure must save and restore its contents for its caller). Unlike the general register set, no predicate registers are automatically stacked at the time of a procedure call. If necessary, the entire Pr vector can be saved in a general register using the mov pr instruction. |