13.5.3 Cortex-A5 Registers

This view provides 16 ARM core registers, R0 to R15, that include the Stack Pointer (SP), Link Register (LR), and Program Counter (PC). The current execution mode determines the selected set of registers, as shown in the table below. This shows that the arrangement of the registers provides duplicate copies of some registers, with the current register selected by the execution mode. This arrangement is described as banking of the registers, and the duplicated copies of registers are referred to as banked registers.

Table 13-3. Cortex-A5 Modes and Registers Layout
User and SystemMonitorSupervisorAbortUndefinedInterruptFast Interrupt
R0R0R0R0R0R0R0
R1R1R1R1R1R1R1
R2R2R2R2R2R2R2
R3R3R3R3R3R3R3
R4R4R4R4R4R4R4
R5R5R5R5R5R5R5
R6R6R6R6R6R6R6
R7R7R7R7R7R7R7
R8R8R8R8R8R8R8_FIQ(1)
R9R9R9R9R9R9R9_FIQ(1)
R10R10R10R10R10R10R10_FIQ(1)
R11R11R11R11R11R11R11_FIQ(1)
R12R12R12R12R12R12R12_FIQ(1)
R13(1)R13_MON(1)R13_SVC(1)R13_ABT(1)R13_UND(1)R13_IRQ(1)R13_FIQ(1)
R14(1)R14_MON(1)R14_SVC(1)R14_ABT(1)R14_UND(1)R14_IRQ(1)R14_FIQ(1)
PCPCPCPCPCPCPC
CPSRCPSRCPSRCPSRCPSRCPSRCPSR
SPSR_MON(1)SPSR_SVC(1)SPSR_ABT(1)SPSR_UND(1)SPSR_IRQ(1)SPSR_FIQ(1)
Note:
  1. Mode-specific banked registers.

The core contains one CPSR, and six SPSRs for exception handlers to use. The program status registers:

  • hold information about the most recently performed ALU operation
  • control the enabling and disabling of interrupts
  • set the processor operating mode
Figure 13-2. Status Register Format
  • N: Negative, Z: Zero, C: Carry, and V: Overflow are the four ALU flags
  • Q: cumulative saturation flag
  • IT: If-Then execution state bits for the Thumb-2 IT (If-Then) instruction
  • J: Jazelle bit, see the description of the T bit
  • GE: Greater than or Equal flags, for SIMD instructions
  • E: Endianness execution state bit. Controls the load and store endianness for data accesses. This bit is ignored by instruction fetches.
    • E = 0: Little endian operation
    • E = 1: Big endian operation
  • A: Asynchronous abort disable bit. Used to mask asynchronous aborts.
  • I: Interrupt disable bit. Used to mask IRQ interrupts.
  • F: Fast interrupt disable bit. Used to mask FIQ interrupts.
  • T: Thumb-2 execution state bit. This bit and the J execution state bit, bit [24], determine the instruction set state of the processor, ARM, Thumb-2, Jazelle, or Thumb-2EE.
  • Mode: five bits to encode the current processor mode. The effect of setting M[4:0] to a reserved value is UNPREDICTABLE.
Table 13-4. Processor Mode vs. Mode Field
ModeM[4:0]
USR10000
FIQ10001
IRQ10010
SVC10011
MON10110
ABT10111
UND11011
SYS11111
ReservedOther