[BACK]Return to loader.S CVS log [TXT][DIR] Up to [local] / funnyos / arch / testarm / boot

Diff for /funnyos/arch/testarm/boot/loader.S between version 1.3 and 1.5

version 1.3, 2007/11/04 22:39:27 version 1.5, 2007/11/23 13:37:42
Line 61 
Line 61 
         nop          nop
   
 _vector_irq:  _vector_irq:
           /* decrement pc by one insn */
           sub lr, lr, #4
   
         bl irq_trampoline          /* store all system mode registers */
           stmdb sp!, {r0-r12, lr}
   
         mrs r0, spsr          /* store sys_mode's cpsr */
         msr cpsr, r0  //      mrs r1, spsr
   //      stmdb sp!, {r1}
   
         subs pc, r14, #4          /* pass sp (which now contains struct pcb of interrupted task) to irq_trampoline */
           mov r0, sp
   
           bl irq_trampoline
   
           /* load r0-r12 and pc from the stack */
           /* note ^ that copies SPSR into CPSR */
           /** here we may return to different task (if pcb was changed in the stack memory) **/
           ldmia sp!, {r0-r12, pc}^
   
 _vector_fiq:  _vector_fiq:
         nop          nop

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.5

CVSweb