xref: /netbsd-src/sys/arch/amiga/amiga/vectors.s (revision 5aefcfdc06931dd97e76246d2fe0302f7b3fe094)
1/*	$NetBSD: vectors.s,v 1.13 1998/10/18 04:42:17 itohy Exp $	*/
2
3/*
4 * Copyright (c) 1988 University of Utah
5 * Copyright (c) 1990 Regents of the University of California.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 *    notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 *    notice, this list of conditions and the following disclaimer in the
15 *    documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 *    must display the following acknowledgement:
18 *	This product includes software developed by the University of
19 *	California, Berkeley and its contributors.
20 * 4. Neither the name of the University nor the names of its contributors
21 *    may be used to endorse or promote products derived from this software
22 *    without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 *	@(#)vectors.s	7.2 (Berkeley) 5/7/91
37 */
38	.data
39	.globl	_buserr,_addrerr
40	.globl	_illinst,_zerodiv,_chkinst,_trapvinst,_privinst,_trace
41	.globl	_badtrap
42	.globl	_spurintr,_lev1intr,_lev2intr,_lev3intr
43	.globl	_lev4intr,_lev5intr,_lev6intr,_lev7intr
44	.globl	_trap0
45#ifdef COMPAT_13
46	.globl	_trap1
47#endif
48	.globl	_trap2,_trap15
49	.globl	_fpfline, _fpunsupp, _fpfault
50	.globl	_trap12
51
52	.globl	_vectab
53_vectab:
54Lvectab:
55	.long	0x4ef80400	/* 0: jmp 0x400:w (unused reset SSP) */
56	.long	0		/* 1: NOT USED (reset PC) */
57	.long	_buserr		/* 2: bus error */
58	.long	_addrerr	/* 3: address error */
59	.long	_illinst	/* 4: illegal instruction */
60	.long	_zerodiv	/* 5: zero divide */
61	.long	_chkinst	/* 6: CHK instruction */
62	.long	_trapvinst	/* 7: TRAPV instruction */
63	.long	_privinst	/* 8: privilege violation */
64	.long	_trace		/* 9: trace */
65	.long	_illinst	/* 10: line 1010 emulator */
66	.long	_fpfline	/* 11: line 1111 emulator */
67	.long	_badtrap	/* 12: unassigned, reserved */
68	.long	_coperr		/* 13: coprocessor protocol violation */
69	.long	_fmterr		/* 14: format error */
70	.long	_badtrap	/* 15: uninitialized interrupt vector */
71	.long	_badtrap	/* 16: unassigned, reserved */
72	.long	_badtrap	/* 17: unassigned, reserved */
73	.long	_badtrap	/* 18: unassigned, reserved */
74	.long	_badtrap	/* 19: unassigned, reserved */
75	.long	_badtrap	/* 20: unassigned, reserved */
76	.long	_badtrap	/* 21: unassigned, reserved */
77	.long	_badtrap	/* 22: unassigned, reserved */
78	.long	_badtrap	/* 23: unassigned, reserved */
79	.long	_spurintr	/* 24: spurious interrupt */
80	.long	_lev1intr	/* 25: level 1 interrupt autovector */
81	.long	_lev2intr	/* 26: level 2 interrupt autovector */
82	.long	_lev3intr	/* 27: level 3 interrupt autovector */
83	.long	_lev4intr	/* 28: level 4 interrupt autovector */
84	.long	_lev5intr	/* 29: level 5 interrupt autovector */
85	.long	_lev6intr	/* 30: level 6 interrupt autovector */
86	.long	_lev7intr	/* 31: level 7 interrupt autovector */
87	.long	_trap0		/* 32: syscalls */
88#ifdef COMPAT_13
89	.long	_trap1		/* 33: compat_13_sigreturn */
90#else
91	.long	_illinst
92#endif
93	.long	_trap2		/* 34: trace */
94	.long	_trap3		/* 35: sigreturn special syscall */
95	.long	_illinst	/* 36: TRAP instruction vector */
96	.long	_illinst	/* 37: TRAP instruction vector */
97	.long	_illinst	/* 38: TRAP instruction vector */
98	.long	_illinst	/* 39: TRAP instruction vector */
99	.long	_illinst	/* 40: TRAP instruction vector */
100	.long	_illinst	/* 41: TRAP instruction vector */
101	.long	_illinst	/* 42: TRAP instruction vector */
102	.long	_illinst	/* 43: TRAP instruction vector */
103	.long	_trap12		/* 44: TRAP instruction vector */
104	.long	_illinst	/* 45: TRAP instruction vector */
105	.long	_illinst	/* 46: TRAP instruction vector */
106	.long	_trap15		/* 47: TRAP instruction vector */
107#ifdef FPSP
108	.globl	bsun, inex, dz, unfl, operr, ovfl, snan
109	.long	bsun		/* 48: FPCP branch/set on unordered cond */
110	.long	inex		/* 49: FPCP inexact result */
111	.long	dz		/* 50: FPCP divide by zero */
112	.long	unfl		/* 51: FPCP underflow */
113	.long	operr		/* 52: FPCP operand error */
114	.long	ovfl		/* 53: FPCP overflow */
115	.long	snan		/* 54: FPCP signalling NAN */
116#else
117	.globl	_fpfault
118	.long	_fpfault	/* 48: FPCP branch/set on unordered cond */
119	.long	_fpfault	/* 49: FPCP inexact result */
120	.long	_fpfault	/* 50: FPCP divide by zero */
121	.long	_fpfault	/* 51: FPCP underflow */
122	.long	_fpfault	/* 52: FPCP operand error */
123	.long	_fpfault	/* 53: FPCP overflow */
124	.long	_fpfault	/* 54: FPCP signalling NAN */
125#endif
126
127
128	.long	_fpunsupp	/* 55: FPCP unimplemented data type */
129	.long	_badtrap	/* 56: unassigned, reserved */
130	.long	_badtrap	/* 57: unassigned, reserved */
131	.long	_badtrap	/* 58: unassigned, reserved */
132	.long	_badtrap	/* 59: unassigned, reserved */
133	.long	_badtrap	/* 60: unassigned, reserved */
134	.long	_badtrap	/* 61: unassigned, reserved */
135	.long	_badtrap	/* 62: unassigned, reserved */
136	.long	_badtrap	/* 63: unassigned, reserved */
137#define BADTRAP16	.long	_badtrap,_badtrap,_badtrap,_badtrap,\
138				_badtrap,_badtrap,_badtrap,_badtrap,\
139				_badtrap,_badtrap,_badtrap,_badtrap,\
140				_badtrap,_badtrap,_badtrap,_badtrap
141	BADTRAP16		/* 64-255: user interrupt vectors */
142	BADTRAP16		/* 64-255: user interrupt vectors */
143	BADTRAP16		/* 64-255: user interrupt vectors */
144	BADTRAP16		/* 64-255: user interrupt vectors */
145	BADTRAP16		/* 64-255: user interrupt vectors */
146	BADTRAP16		/* 64-255: user interrupt vectors */
147	BADTRAP16		/* 64-255: user interrupt vectors */
148	BADTRAP16		/* 64-255: user interrupt vectors */
149	BADTRAP16		/* 64-255: user interrupt vectors */
150	BADTRAP16		/* 64-255: user interrupt vectors */
151	BADTRAP16		/* 64-255: user interrupt vectors */
152	BADTRAP16		/* 64-255: user interrupt vectors */
153