int-handler.S
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
- /*
- * arch/mips/philips/nino/int-handler.S
- *
- * Copyright (C) 2001 Steven J. Hill (sjhill@realitydiluted.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Interrupt exception dispatch code for Philips Nino
- */
- #include <asm/asm.h>
- #include <asm/mipsregs.h>
- #include <asm/regdef.h>
- #include <asm/stackframe.h>
- /*
- * Here is the table of interrupts for the Philips Nino
- * which uses the Philips PR31700/Toshiba TMPR3912 core.
- *
- * MIPS IRQ Description
- * -------- --------------------------------
- * 0 SW0 interrupt (unused)
- * 1 SW1 interrupt (unused)
- * 2
- * 3
- * 4 PR31700 low priority interrupts
- * 5
- * 6 PR31700 high priority interrupts
- * 7
- */
- .text
- .set noreorder
- .set noat
- .align 5
- NESTED(ninoIRQ, PT_SIZE, sp)
- SAVE_ALL
- CLI
- .set at
- mfc0 s0, CP0_CAUSE # determine cause
- andi a0, s0, CAUSEF_IP6
- beq a0, zero, 1f
- andi a0, s0, CAUSEF_IP4 # delay slot
- move a0, sp
- jal irq6_dispatch
- nop # delay slot
- j ret_from_irq
- nop # delay slot
- 1:
- beq a0, zero, 1f
- nop # delay slot
- move a0, sp
- jal irq4_dispatch
- nop # delay slot
- j ret_from_irq
- nop # delay slot
- 1:
- /* We should never get here */
- move a0, sp
- j irq_bad
- nop
- END(ninoIRQ)