Exceptions
ARM DDI 0337G Copyright © 2005-2008 ARM Limited. All rights reserved. 5-19
Unrestricted Access Non-Confidential
When used in this way, the value written to the PC is intercepted and is referred to as
the EXC_RETURN value.
EXC_RETURN[3:0]
provides return information as defined in
Table 5-6.
Reserved entries in this table result in a chained exception to a Usage Fault.
If an EXC_RETURN value is loaded into the PC when in Thread mode, or from the
vector table, or by any other instruction, the value is treated as an address, not as a
special value. This address range is defined to have Execute Never (XN) permissions,
and results in a MemManage fault.
Table 5-6 Exception return behavior
EXC_RETURN[3:0] Description
0bXXX0 Reserved.
0b0001 Return to Handler mode.
Exception return gets state from the main stack.
On return execution uses the main stack.
0b0011 Reserved.
0b01X1 Reserved.
0b1001 Return to Thread mode.
Exception return gets state from the main stack.
On return execution uses the main stack.
0b1101 Return to Thread mode.
Exception return gets state from the process stack.
On return execution uses the process stack.
0b1X11 Reserved.