aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/arch/arm/exception_asm.S
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/arch/arm/exception_asm.S')
-rw-r--r--payloads/libpayload/arch/arm/exception_asm.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/payloads/libpayload/arch/arm/exception_asm.S b/payloads/libpayload/arch/arm/exception_asm.S
index 6a28c5cdef..974d1724b5 100644
--- a/payloads/libpayload/arch/arm/exception_asm.S
+++ b/payloads/libpayload/arch/arm/exception_asm.S
@@ -74,9 +74,13 @@ exception_common:
stmfd sp, { sp, lr }^
sub sp, sp, $8
push { r0 - r12 }
+ mrs r0, SPSR
+ push { r0 }
mov r0, sp
ldr r1, exception_idx
blx exception_dispatch
+ pop { r0 }
+ msr SPSR_cxsf, r0
pop { r0 - r12 }
add sp, sp, $8
ldmfd sp!, { pc }^