aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/include/generic-netbsd/mips/regnum.h
blob: 9df856d50c4dd597dd7738294d105eed9ce83475 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/*	$NetBSD: regnum.h,v 1.12 2020/07/26 08:08:41 simonb Exp $	*/

/*
 * Copyright (c) 1988 University of Utah.
 * Copyright (c) 1992, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * the Systems Programming Group of the University of Utah Computer
 * Science Department and Ralph Campbell.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * from: Utah Hdr: reg.h 1.1 90/07/09
 *
 *	@(#)reg.h	8.2 (Berkeley) 1/11/94
 */

/*
 * Location of the users' stored
 * registers relative to ZERO.
 * Usage is p->p_regs[XX].
 */
#define	_R_ZERO		0		/* hardware zero */
#define	_R_AST		1		/* caller-saved */
#define	_R_V0		2		/* caller-saved */
#define	_R_V1		3		/* caller-saved */
#define	_R_A0		4		/* caller-saved */
#define	_R_A1		5		/* caller-saved */
#define	_R_A2		6		/* caller-saved */
#define	_R_A3		7		/* caller-saved */
#if defined(__mips_n32) || defined(__mips_n64)
#define	_R_A4		8		/* caller-saved */
#define	_R_A5		9		/* caller-saved */
#define	_R_A6		10		/* caller-saved */
#define	_R_A7		11		/* caller-saved */
#define	_R_T0		12		/* caller-saved */
#define	_R_T1		13		/* caller-saved */
#define	_R_T2		14		/* caller-saved */
#define	_R_T3		15		/* caller-saved */
#else
#define	_R_T0		8		/* caller-saved */
#define	_R_T1		9		/* caller-saved */
#define	_R_T2		10		/* caller-saved */
#define	_R_T3		11		/* caller-saved */
#define	_R_T4		12		/* caller-saved */
#define	_R_T5		13		/* caller-saved */
#define	_R_T6		14		/* caller-saved */
#define	_R_T7		15		/* caller-saved */
#endif /* __mips_n32 || __mips_n64 */
#define	_R_S0		16		/* CALLEE-saved */
#define	_R_S1		17		/* CALLEE-saved */
#define	_R_S2		18		/* CALLEE-saved */
#define	_R_S3		19		/* CALLEE-saved */
#define	_R_S4		20		/* CALLEE-saved */
#define	_R_S5		21		/* CALLEE-saved */
#define	_R_S6		22		/* CALLEE-saved */
#define	_R_S7		23		/* CALLEE-saved */
#define	_R_T8		24		/* caller-saved */
#define	_R_T9		25		/* caller-saved */
#define	_R_K0		26		/* kernel reserved */
#define	_R_K1		27		/* kernel reserved */
#define	_R_GP		28		/* CALLEE-saved */
#define	_R_SP		29		/* CALLEE-saved */
#define	_R_S8		30		/* CALLEE-saved */
#define	_R_RA		31		/* caller-saved */
#define	_R_SR		32
#define	_R_PS		_R_SR	/* alias for SR */

/* See <mips/regdef.h> for an explanation. */
#if defined(__mips_n32) || defined(__mips_n64)
#define	_R_TA0		8
#define	_R_TA1		9
#define	_R_TA2		10
#define	_R_TA3		11
#else
#define	_R_TA0		12
#define	_R_TA1		13
#define	_R_TA2		14
#define	_R_TA3		15
#endif /* __mips_n32 || __mips_n64 */

#define	_R_MULLO	33
#define	_R_MULHI	34
#define	_R_BADVADDR	35
#define	_R_CAUSE	36
#define	_R_PC		37

#define	_FPBASE		(_R_PC + 1)
#define	_R_F0		(_FPBASE+0)
#define	_R_F1		(_FPBASE+1)
#define	_R_F2		(_FPBASE+2)
#define	_R_F3		(_FPBASE+3)
#define	_R_F4		(_FPBASE+4)
#define	_R_F5		(_FPBASE+5)
#define	_R_F6		(_FPBASE+6)
#define	_R_F7		(_FPBASE+7)
#define	_R_F8		(_FPBASE+8)
#define	_R_F9		(_FPBASE+9)
#define	_R_F10		(_FPBASE+10)
#define	_R_F11		(_FPBASE+11)
#define	_R_F12		(_FPBASE+12)
#define	_R_F13		(_FPBASE+13)
#define	_R_F14		(_FPBASE+14)
#define	_R_F15		(_FPBASE+15)
#define	_R_F16		(_FPBASE+16)
#define	_R_F17		(_FPBASE+17)
#define	_R_F18		(_FPBASE+18)
#define	_R_F19		(_FPBASE+19)
#define	_R_F20		(_FPBASE+20)
#define	_R_F21		(_FPBASE+21)
#define	_R_F22		(_FPBASE+22)
#define	_R_F23		(_FPBASE+23)
#define	_R_F24		(_FPBASE+24)
#define	_R_F25		(_FPBASE+25)
#define	_R_F26		(_FPBASE+26)
#define	_R_F27		(_FPBASE+27)
#define	_R_F28		(_FPBASE+28)
#define	_R_F29		(_FPBASE+29)
#define	_R_F30		(_FPBASE+30)
#define	_R_F31		(_FPBASE+31)
#define	_R_FSR		(_FPBASE+32)

#define	_R_DSPBASE	(_R_FSR + 1)
#define	_R_MULLO1	(_R_DSPBASE + 0)
#define	_R_MULHI1	(_R_DSPBASE + 1)
#define	_R_MULLO2	(_R_DSPBASE + 2)
#define	_R_MULHI2	(_R_DSPBASE + 3)
#define	_R_MULLO3	(_R_DSPBASE + 4)
#define	_R_MULHI3	(_R_DSPBASE + 5)
#define	_R_DSPCTL	(_R_DSPBASE + 6)