[BACK]Return to int-handler.S CVS log [TXT][DIR] Up to [Development] / linux-2.4-xfs / arch / mips / galileo-boards / ev96100

File: [Development] / linux-2.4-xfs / arch / mips / galileo-boards / ev96100 / int-handler.S (download)

Revision 1.1, Wed Dec 31 00:54:49 2003 UTC (13 years, 9 months ago) by cattelan
Branch: MAIN
CVS Tags: HEAD

Initial Import 2.4.24pre2

#include <asm/asm.h>
#include <asm/mipsregs.h>
#include <asm/regdef.h>
#include <asm/stackframe.h>

	.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			# delay slot
	jal	ev96100_cpu_irq
	j	ret_from_irq

3:	j	spurious_interrupt
	END(ev96100IRQ)