int-handler.S
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #include <asm/asm.h>
  2. #include <asm/mipsregs.h>
  3. #include <asm/regdef.h>
  4. #include <asm/stackframe.h>
  5. .set noat
  6. .align 5
  7. NESTED(ev96100IRQ, PT_SIZE, sp)
  8. SAVE_ALL
  9. CLI # Important: mark KERNEL mode !
  10. mfc0 t0, CP0_CAUSE # get pending interrupts
  11. mfc0 t1, CP0_STATUS # get enabled interrupts
  12. and t0, t1 # isolate allowed ones
  13. # FIX ME add R7000 extensions
  14. andi t0,0xff00 # isolate pending bits
  15. andi a0, t0, CAUSEF_IP7
  16. beq a0, zero, 1f
  17. move a0, sp
  18. jal mips_timer_interrupt
  19. j ret_from_irq
  20. 1: beqz t0, 3f # spurious interrupt
  21. move a0, t0
  22. move a1, sp # delay slot
  23. jal ev96100_cpu_irq
  24. j ret_from_irq
  25. 3: j spurious_interrupt
  26. END(ev96100IRQ)