ARM instruction meaning

arm, assembly

Solution

From the ARM manual:

^

is an optional suffix. You must not use it in User mode or System mode. It has two purposes: If op is LDM and reglist contains the pc (r15), in addition to the normal multiple register transfer, the SPSR is copied into the CPSR. This is for returning from exception handlers. Use this only from exception modes. Otherwise, data is transferred into or out of the User mode registers instead of the current mode registers.

Problem

``` sub lr,lr,#4 stmfd sp!,{lr} stmfd sp!,{r0-r14}^ mrs r1,spsr stmfd sp!,{r1} bl irqHandler ldmfd sp!,{r1} msr spsr_cxsf,r1 ldmfd sp!,{pc}^ bl irqHandler ``` Can anybody help me with this '^' meaning T_T what is different with ``` stmfd sp!,{r0-r14}^ ``` and ``` stmfd sp!,{r0-r14} ``` ????

Original source