aboutsummaryrefslogtreecommitdiff
path: root/src/exceptions/fiq.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/exceptions/fiq.S')
-rw-r--r--src/exceptions/fiq.S7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/exceptions/fiq.S b/src/exceptions/fiq.S
index f323a02..005ed76 100644
--- a/src/exceptions/fiq.S
+++ b/src/exceptions/fiq.S
@@ -6,13 +6,17 @@ fiq:
bl c_fiq_handler
cmp r0, #1
bne 1f
+ // Schedule if interrupted a thread
mrs r1, spsr
and r1, r1, #0x1f
cmp r1, #0x10
bne 1f
ldmfd sp!, {r0-r12,lr}
+ // Don't skip missed instruction upon return
sub lr, #4
push {r3}
+ // Store the instruction in a special area for
+ // future processing
ldr r3, =irqlr
str lr, [r3, #0]
pop {r3}
@@ -21,6 +25,3 @@ fiq:
1:
ldmfd sp!, {r0-r12,lr}
subs pc, lr, #4
-
-.section .data
-fiq_msg: .asciz "FIQ\n"