11 the m bits, 12 modification of psr bits by msr instructions, Table 2-3 – ARM Cortex R4F User Manual

Page 60: Psr mode bit values -14

Advertising
background image

Programmer’s Model

ARM DDI 0363E

Copyright © 2009 ARM Limited. All rights reserved.

2-14

ID013010

Non-Confidential, Unrestricted Access

2.7.11

The M bits

M[4:0] are the mode bits. These bits determine the processor operating mode as Table 2-3
shows.

Note

In Privileged mode an illegal value programmed into M[4:0] causes the processor to enter
System mode.

In User mode M[4:0] can be read. Writes to M[4:0] are ignored.

2.7.12

Modification of PSR bits by MSR instructions

In architecture versions earlier than ARMv6,

MSR

instructions can modify the flags byte, bits

[31:24], of the CPSR in any mode, but the other three bytes are only modifiable in Privileged
modes.

In the ARMv7-R architecture each CPSR bit falls into one of these categories:

Bits that are freely modifiable from any mode, either directly by

MSR

instructions or by

other instructions whose side-effects include writing the specific bit or writing the entire
CPSR.
Bits in Figure 2-4 on page 2-10 that are in this category are N, Z, C, V, Q, GE[3:0], and E.

Bits that an

MSR

instruction must never modify, and so must only be written as a side-effect

of another instruction. If an

MSR

instruction tries to modify these bits, the results are

architecturally Unpredictable. In the processor these bits are not affected.
The bits in Figure 2-4 on page 2-10 that are in this category are the execution state bits
[26:24], [15:10], and [5].

Bits that can only be modified from Privileged modes, and that instructions completely
protect from modification while the processor is in User mode. Entering a processor
exception is the only way to modify these bits while the processor is in User mode, as
described in Exceptions on page 2-16.

Table 2-3 PSR mode bit values

M[4:0]

Mode

Visible state registers

Thumb ARM

b10000

User

R0–R7, R8-R12, SP, LR, PC, CPSR

R0–R14, PC, CPSR

b10001

FIQ

R0–R7, R8_fiq-R12_fiq, SP_fiq, LR_fiq PC,
CPSR, SPSR_fiq

R0–R7, R8_fiq–R14_fiq, PC, CPSR,
SPSR_fiq

b10010

IRQ

R0–R7, R8-R12, SP_irq, LR_irq, PC, CPSR,
SPSR_irq

R0–R12, R13_irq, R14_irq, PC, CPSR,
SPSR_irq

b10011

Supervisor

R0–R7, R8-R12, SP_svc, LR_svc, PC, CPSR,
SPSR_svc

R0–R12, R13_svc, R14_svc, PC, CPSR,
SPSR_svc

b10111

Abort

R0–R7, R8-R12, SP_abt, LR_abt, PC, CPSR,
SPSR_abt

R0–R12, R13_abt, R14_abt, PC, CPSR,
SPSR_abt

b11011

Undefined

R0–R7, R8-R12, SP_und, LR_und, PC, CPSR,
SPSR_und

R0–R12, R13_und, R14_und, PC, CPSR,
SPSR_und

b11111

System

R0–R7, R8-R12, SP, LR, PC, CPSR

R0–R14, PC, CPSR

Advertising
This manual is related to the following products: