14.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 14-3. Cortex-A5 Modes and Registers Layout
User and System Monitor Supervisor Abort Undefined Interrupt Fast Interrupt
R0 R0 R0 R0 R0 R0 R0
R1 R1 R1 R1 R1 R1 R1
R2 R2 R2 R2 R2 R2 R2
R3 R3 R3 R3 R3 R3 R3
R4 R4 R4 R4 R4 R4 R4
R5 R5 R5 R5 R5 R5 R5
R6 R6 R6 R6 R6 R6 R6
R7 R7 R7 R7 R7 R7 R7
R8 R8 R8 R8 R8 R8 R8_FIQ(1)
R9 R9 R9 R9 R9 R9 R9_FIQ(1)
R10 R10 R10 R10 R10 R10 R10_FIQ(1)
R11 R11 R11 R11 R11 R11 R11_FIQ(1)
R12 R12 R12 R12 R12 R12 R12_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)
PC PC PC PC PC PC PC
CPSR CPSR CPSR CPSR CPSR CPSR CPSR
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 14-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 14-4. Processor Mode vs. Mode Field
Mode M[4:0]
USR 10000
FIQ 10001
IRQ 10010
SVC 10011
MON 10110
ABT 10111
UND 11011
SYS 11111
Reserved Other