diff options
Diffstat (limited to 'src/exceptions/fiq.S')
-rw-r--r-- | src/exceptions/fiq.S | 7 |
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" |