PageRenderTime 16ms CodeModel.GetById 10ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/mips/sgi-ip27/ip27-irq-glue.S

https://bitbucket.org/evzijst/gittest
Assembly | 45 lines | 40 code | 5 blank | 0 comment | 2 complexity | 00d699b9a40a6fb939fb2405b68f9d18 MD5 | raw file
 1/*
 2 * This file is subject to the terms and conditions of the GNU General Public
 3 * License.  See the file "COPYING" in the main directory of this archive
 4 * for more details.
 5 *
 6 * Copyright (C) 1999 Ralf Baechle
 7 * Copyright (C) 1999 Silicon Graphics, Inc.
 8 */
 9#include <asm/asm.h>
10#include <asm/mipsregs.h>
11#include <asm/regdef.h>
12#include <asm/stackframe.h>
13
14	.text
15	.align	5
16NESTED(ip27_irq, PT_SIZE, sp)
17	SAVE_ALL
18	CLI
19
20	mfc0	s0, CP0_CAUSE
21	mfc0	t0, CP0_STATUS
22	and	s0, t0
23	move	a0, sp
24	PTR_LA	ra, ret_from_irq
25
26	/* First check for RT interrupt.  */
27	andi	t0, s0, CAUSEF_IP4
28	bnez	t0, ip4
29	andi	t0, s0, CAUSEF_IP2
30	bnez	t0, ip2
31	andi	t0, s0, CAUSEF_IP3
32	bnez	t0, ip3
33	andi	t0, s0, CAUSEF_IP5
34	bnez	t0, ip5
35	andi	t0, s0, CAUSEF_IP6
36	bnez	t0, ip6
37	j	ra
38
39ip2:	j	ip27_do_irq_mask0	# PI_INT_PEND_0 or CC_PEND_{A|B}
40ip3:	j	ip27_do_irq_mask1	# PI_INT_PEND_1
41ip4:	j	ip27_rt_timer_interrupt
42ip5:	j	ip27_prof_timer
43ip6:	j	ip27_hub_error
44
45	END(ip27_irq)