diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1997-04-29 21:13:14 +0000 |
---|---|---|
committer | <ralf@linux-mips.org> | 1997-04-29 21:13:14 +0000 |
commit | 19c9bba94152148523ba0f7ef7cffe3d45656b11 (patch) | |
tree | 40b1cb534496a7f1ca0f5c314a523c69f1fee464 /arch/mips/sgi/kernel/indyIRQ.S | |
parent | 7206675c40394c78a90e74812bbdbf8cf3cca1be (diff) |
Import of Linux/MIPS 2.1.36
Diffstat (limited to 'arch/mips/sgi/kernel/indyIRQ.S')
-rw-r--r-- | arch/mips/sgi/kernel/indyIRQ.S | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/arch/mips/sgi/kernel/indyIRQ.S b/arch/mips/sgi/kernel/indyIRQ.S index a7058d3ee..a8a4c764a 100644 --- a/arch/mips/sgi/kernel/indyIRQ.S +++ b/arch/mips/sgi/kernel/indyIRQ.S @@ -60,7 +60,6 @@ CLI .set at mfc0 s0, CP0_CAUSE # get irq mask - lui s3, %hi(intr_count) /* First we check for r4k counter/timer IRQ. */ andi a0, s0, CAUSEF_IP7 @@ -68,56 +67,48 @@ andi a0, s0, CAUSEF_IP2 # delay slot, check local level zero /* Wheee, a timer interrupt. */ - lw s7, %lo(intr_count)(s3) move a0, sp addiu t0, s7, 1 jal indy_timer_interrupt - sw t0, %lo(intr_count)(s3) # delay slot, set intr_count + nop # delay slot j ret_from_sys_call - sw s7, %lo(intr_count)(s3) # delay slot, restore intr_count + nop # delay slot 1: beq a0, zero, 1f andi a0, s0, CAUSEF_IP3 # delay slot, check local level one /* Wheee, local level zero interrupt. */ - lw s7, %lo(intr_count)(s3) - move a0, sp - addiu t0, s7, 1 - jal indy_local0_irqdispatch - sw t0, %lo(intr_count)(s3) + move a0, sp # delay slot j ret_from_sys_call - sw s7, %lo(intr_count)(s3) # delay slot, restore intr_count + nop # delay slot 1: beq a0, zero, 1f andi a0, s0, CAUSEF_IP6 # delay slot, check bus error /* Wheee, local level one interrupt. */ - lw s7, %lo(intr_count)(s3) move a0, sp - addiu t0, s7, 1 jal indy_local1_irqdispatch - sw t0, %lo(intr_count)(s3) + nop j ret_from_sys_call - sw s7, %lo(intr_count)(s3) + nop 1: beq a0, zero, 1f - lw s7, %lo(intr_count)(s3) + nop /* Wheee, an asynchronous bus error... */ - addiu t0, s7, 1 move a0, sp jal indy_buserror_irq - sw t0, %lo(intr_count)(s3) + nop j ret_from_sys_call - sw s7, %lo(intr_count)(s3) + nop 1: /* Here by mistake? This is possible, what can happen @@ -131,8 +122,8 @@ /* Must be one of the 8254 timers... */ move a0, sp jal indy_8254timer_irq - sw t0, %lo(intr_count)(s3) + nop 1: j ret_from_sys_call - sw s7, %lo(intr_count)(s3) + nop END(indyIRQ) |