xref: /original-bsd/sys/luna68k/luna68k/vectors.s (revision 333da485)
1| Copyright (c) 1988 University of Utah
2| Copyright (c) 1990, 1993
3|	The Regents of the University of California.  All rights reserved.
4|
5| %sccs.include.redist.gas%
6|
7| from: hp300/hp300/vectors.s	7.3 (Berkeley) 6/5/92
8|
9|	@(#)vectors.s	8.2 (Berkeley) 01/21/94
10|
11
12#ifdef HPFPLIB
13/*
14 * XXX the HP FP library mishandles "normal" F-line faults causing
15 * the kernel to crash, hence we detect it ourselves rather than just
16 * vectoring to "_fline".  We also always catch unsupported data type
17 * faults ourselves for no particular reason.
18 */
19#define	_fpbsun		_bsun
20#define	_fpinex		_inex
21#define	_fpdz		_dz
22#define	_fpunfl		_unfl
23#define	_fpoperr	_operr
24#define	_fpovfl		_ovfl
25#define	_fpsnan		_snan
26#else
27#define	_fpbsun		_fpfault
28#define	_fpinex		_fpfault
29#define	_fpdz		_fpfault
30#define	_fpunfl		_fpfault
31#define	_fpoperr	_fpfault
32#define	_fpovfl		_fpfault
33#define	_fpsnan		_fpfault
34#endif
35
36	.text
37	.globl	_buserr,_addrerr
38	.globl	_illinst,_zerodiv,_chkinst,_trapvinst,_privinst,_trace
39	.globl	_badtrap
40	.globl	_spurintr,_lev1intr,_lev2intr,_lev3intr
41	.globl	_lev4intr,_lev5intr,_lev6intr,_lev7intr
42	.globl	_trap0,_trap1,_trap2,_trap15
43	.globl	_fpfline, _fpunsupp, _fpfault
44	.globl	_fpbsun, _fpinex, _fpdz, _fpunfl, _fpoperr, _fpovfl, _fpsnan
45	.globl	_trap12
46
47Lvectab:
48	bra	start
49	.long	0
50	.long	_buserr		/* 2: bus error */
51	.long	_addrerr	/* 3: address error */
52	.long	_illinst	/* 4: illegal instruction */
53	.long	_zerodiv	/* 5: zero divide */
54	.long	_chkinst	/* 6: CHK instruction */
55	.long	_trapvinst	/* 7: TRAPV instruction */
56	.long	_privinst	/* 8: privilege violation */
57	.long	_trace		/* 9: trace */
58	.long	_illinst	/* 10: line 1010 emulator */
59	.long	_fpfline	/* 11: line 1111 emulator */
60	.long	_badtrap	/* 12: unassigned, reserved */
61	.long	_coperr		/* 13: coprocessor protocol violation */
62	.long	_fmterr		/* 14: format error */
63	.long	_badtrap	/* 15: uninitialized interrupt vector */
64	.long	_badtrap	/* 16: unassigned, reserved */
65	.long	_badtrap	/* 17: unassigned, reserved */
66	.long	_badtrap	/* 18: unassigned, reserved */
67	.long	_badtrap	/* 19: unassigned, reserved */
68	.long	_badtrap	/* 20: unassigned, reserved */
69	.long	_badtrap	/* 21: unassigned, reserved */
70	.long	_badtrap	/* 22: unassigned, reserved */
71	.long	_badtrap	/* 23: unassigned, reserved */
72	.long	_spurintr	/* 24: spurious interrupt */
73	.long	_lev1intr	/* 25: level 1 interrupt autovector */
74	.long	_lev2intr	/* 26: level 2 interrupt autovector */
75	.long	_lev3intr	/* 27: level 3 interrupt autovector */
76	.long	_lev4intr	/* 28: level 4 interrupt autovector */
77	.long	_lev5intr	/* 29: level 5 interrupt autovector */
78	.long	_lev6intr	/* 30: level 6 interrupt autovector */
79	.long	_lev7intr	/* 31: level 7 interrupt autovector */
80	.long	_trap0		/* 32: syscalls */
81	.long	_trap1		/* 33: sigreturn syscall or breakpoint */
82	.long	_trap2		/* 34: breakpoint or sigreturn syscall */
83	.long	_illinst	/* 35: TRAP instruction vector */
84	.long	_illinst	/* 36: TRAP instruction vector */
85	.long	_illinst	/* 37: TRAP instruction vector */
86	.long	_illinst	/* 38: TRAP instruction vector */
87	.long	_illinst	/* 39: TRAP instruction vector */
88	.long	_illinst	/* 40: TRAP instruction vector */
89	.long	_illinst	/* 41: TRAP instruction vector */
90	.long	_illinst	/* 42: TRAP instruction vector */
91	.long	_illinst	/* 43: TRAP instruction vector */
92	.long	_trap12		/* 44: TRAP instruction vector */
93	.long	_illinst	/* 45: TRAP instruction vector */
94	.long	_illinst	/* 46: TRAP instruction vector */
95	.long	_trap15		/* 47: TRAP instruction vector */
96 	.long	_fpbsun		/* 48: FPCP branch/set on unordered cond */
97 	.long	_fpinex		/* 49: FPCP inexact result */
98 	.long	_fpdz		/* 50: FPCP divide by zero */
99 	.long	_fpunfl		/* 51: FPCP underflow */
100 	.long	_fpoperr	/* 52: FPCP operand error */
101 	.long	_fpovfl		/* 53: FPCP overflow */
102 	.long	_fpsnan		/* 54: FPCP signalling NAN */
103
104	.long	_fpunsupp	/* 55: FPCP unimplemented data type */
105	.long	_badtrap	/* 56: unassigned, reserved */
106	.long	_badtrap	/* 57: unassigned, reserved */
107	.long	_badtrap	/* 58: unassigned, reserved */
108	.long	_badtrap	/* 59: unassigned, reserved */
109	.long	_badtrap	/* 60: unassigned, reserved */
110	.long	_badtrap	/* 61: unassigned, reserved */
111	.long	_badtrap	/* 62: unassigned, reserved */
112	.long	_badtrap	/* 63: unassigned, reserved */
113#define BADTRAP16	.long	_badtrap,_badtrap,_badtrap,_badtrap,\
114				_badtrap,_badtrap,_badtrap,_badtrap,\
115				_badtrap,_badtrap,_badtrap,_badtrap,\
116				_badtrap,_badtrap,_badtrap,_badtrap
117	BADTRAP16		/* 64-255: user interrupt vectors */
118	BADTRAP16		/* 64-255: user interrupt vectors */
119	BADTRAP16		/* 64-255: user interrupt vectors */
120	BADTRAP16		/* 64-255: user interrupt vectors */
121	BADTRAP16		/* 64-255: user interrupt vectors */
122	BADTRAP16		/* 64-255: user interrupt vectors */
123	BADTRAP16		/* 64-255: user interrupt vectors */
124	BADTRAP16		/* 64-255: user interrupt vectors */
125	BADTRAP16		/* 64-255: user interrupt vectors */
126	BADTRAP16		/* 64-255: user interrupt vectors */
127	BADTRAP16		/* 64-255: user interrupt vectors */
128	BADTRAP16		/* 64-255: user interrupt vectors */
129