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.