#include #include #include #include .set noat .align 5 NESTED(ev96100IRQ, PT_SIZE, sp) SAVE_ALL CLI # Important: mark KERNEL mode ! mfc0 t0, CP0_CAUSE # get pending interrupts mfc0 t1, CP0_STATUS # get enabled interrupts and t0, t1 # isolate allowed ones # FIX ME add R7000 extensions andi t0,0xff00 # isolate pending bits andi a0, t0, CAUSEF_IP7 beq a0, zero, 1f move a0, sp jal mips_timer_interrupt j ret_from_irq 1: beqz t0, 3f # spurious interrupt move a0, t0 move a1, sp jal ev96100_cpu_irq j ret_from_irq 3: j spurious_interrupt END(ev96100IRQ)