Help to understand IRQ handler

HuyNguyen
Hi all,

I am trying to understand the code below does jumping to an interrupt
handler:
  - Upon receiving an IRQ interrupt, it jumps to the exception vector table
of IRQ (0x0000.0018)
  -From that table, it jumps to the below sub routine:
     IsrIRQ
  sub  sp,sp,#4       ;reserved for PC
  stmfd  sp!,{r8-r9}    
  ldr  r9,=INTOFFSET    
  ldr  r9,[r9]
  ldr  r8,=HandleEINT0  
  add  r8,r8,r9,lsl #2  
  ldr  r8,[r8]    
  str  r8,[sp,#8]  
  ldmfd  sp!,{r8-r9,pc}  

 I uses S3C2440. INTOFFSET is a register whose value indicates which
interrupt has been active, HandleEINT0 is the start address of interrupt
handler table located in DRAM

 - I see that it calculates the address of the corresponding ISR for the
interrupt and stores to R8
 
But I do not see where it jumps to that ISR to serve the interrupt!!!!! (I
see it just push to the stack)

Do I miss something? Is the code correct (It is from a reference project)?

Thanks,
Huy