
2-4
MPC603e & EC603e RISC Microprocessors User's Manual
MOTOROLA
The 603e’s user-level registers are described as follows:
User-level registers (UISA)
—The user-level registers can be accessed by all
software with either user or supervisor privileges. The user-level register set
includes the following:
— General-purpose registers (GPRs). The general-purpose register file consists of
thirty-two 32-bit GPRs designated as GPR0–GPR31. This register file serves as
the data source or destination for all integer instructions and provides data for
generating addresses.
— Floating-point registers (FPRs). The floating-point register file consists of thirty-
two 64-bit FPRs designated as FPR0–FPR31, which serves as the data source or
destination for all floating-point instructions. These registers can contain data
objects of either single- or double-precision floating-point format. (The floating-
point register file is not supported on the EC603e microprocessor; an attempt to
access the floating-point register file will result in a floating-point unavailable
exception.)
— Condition register (CR). The CR is a 32-bit register, divided into eight 4-bit
fields, CR0–CR7, that reflects the results of certain arithmetic operations and
provides a mechanism for testing and branching.
— Floating-point status and control register (FPSCR). The FPSCR is a user-control
register that contains all floating-point exception signal bits, exception summary
bits, exception enable bits, and rounding control bits needed for compliance with
the IEEE 754 standard. (The FPU is not supported on the EC603e
microprocessor; an attempt to access the floating-point register file will result in
a floating-point unavailable exception.)
The remaining user-level registers are SPRs. Note that the PowerPC architecture
provides a separate mechanism for accessing SPRs (the
mtspr
and
mfspr
instructions). These instructions are commonly used to explicitly access certain
registers, while other SPRs may be more typically accessed as the side effect of
executing other instructions.
— XER register (XER). The XER is a 32-bit register that indicates overflow and
carries for integer operations. It is set implicitly by many instructions.
— Link register (LR). The 32-bit link register provides the branch target address for
the Branch Conditional to Link Register (
bclr
x
) instruction, and can optionally
be used to hold the logical address (referred to as the effective address in the
architecture specification) of the instruction that follows a branch and link
instruction, typically used for linking to subroutines.
— Count register (CTR). The CTR is a 32-bit register for holding a loop count that
can be decremented during execution of appropriately coded branch instructions.
The CTR can also provide the branch target address for the Branch Conditional
to Count Register (
bcctr
x
) instruction.