xref: /openbsd-src/sys/arch/mips64/include/regnum.h (revision b37e871ec868f9c5a673125d10de55ac61653edc)
1*b37e871eSmiod /*	$OpenBSD: regnum.h,v 1.4 2014/07/09 12:58:08 miod Exp $ */
2f58c7388Spefo 
3f58c7388Spefo /*
4f58c7388Spefo  * Copyright (c) 2001-2002 Opsycon AB  (www.opsycon.se / www.opsycon.com)
5f58c7388Spefo  *
6f58c7388Spefo  * Redistribution and use in source and binary forms, with or without
7f58c7388Spefo  * modification, are permitted provided that the following conditions
8f58c7388Spefo  * are met:
9f58c7388Spefo  * 1. Redistributions of source code must retain the above copyright
10f58c7388Spefo  *    notice, this list of conditions and the following disclaimer.
11f58c7388Spefo  * 2. Redistributions in binary form must reproduce the above copyright
12f58c7388Spefo  *    notice, this list of conditions and the following disclaimer in the
13f58c7388Spefo  *    documentation and/or other materials provided with the distribution.
14f58c7388Spefo  *
15f58c7388Spefo  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
16f58c7388Spefo  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17f58c7388Spefo  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18f58c7388Spefo  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
19f58c7388Spefo  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20f58c7388Spefo  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21f58c7388Spefo  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22f58c7388Spefo  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23f58c7388Spefo  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24f58c7388Spefo  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25f58c7388Spefo  * SUCH DAMAGE.
26f58c7388Spefo  *
27f58c7388Spefo  */
28f58c7388Spefo 
29f58c7388Spefo #ifndef _MIPS64_REGNUM_H_
30f58c7388Spefo #define _MIPS64_REGNUM_H_
31f58c7388Spefo 
32f58c7388Spefo /*
33f58c7388Spefo  * Location of the saved registers relative to ZERO.
34f58c7388Spefo  * Usage is p->p_regs[XX].
35f58c7388Spefo  */
36f58c7388Spefo #define ZERO	0
37f58c7388Spefo #define AST	1
38f58c7388Spefo #define V0	2
39f58c7388Spefo #define V1	3
40f58c7388Spefo #define A0	4
41f58c7388Spefo #define A1	5
42f58c7388Spefo #define A2	6
43f58c7388Spefo #define A3	7
44*b37e871eSmiod #define A4	8
45*b37e871eSmiod #define A5	9
46*b37e871eSmiod #define A6	10
47*b37e871eSmiod #define A7	11
48*b37e871eSmiod #define T0	12
49*b37e871eSmiod #define T1	13
50*b37e871eSmiod #define T2	14
51*b37e871eSmiod #define T3	15
52f58c7388Spefo #define S0	16
53f58c7388Spefo #define S1	17
54f58c7388Spefo #define S2	18
55f58c7388Spefo #define S3	19
56f58c7388Spefo #define S4	20
57f58c7388Spefo #define S5	21
58f58c7388Spefo #define S6	22
59f58c7388Spefo #define S7	23
60f58c7388Spefo #define T8	24
61f58c7388Spefo #define T9	25
62f58c7388Spefo #define K0	26
63f58c7388Spefo #define K1	27
64f58c7388Spefo #define GP	28
65f58c7388Spefo #define SP	29
66f58c7388Spefo #define S8	30
67f58c7388Spefo #define RA	31
68f58c7388Spefo #define	SR	32
69f58c7388Spefo #define	PS	SR	/* alias for SR */
70f58c7388Spefo #define MULLO	33
71f58c7388Spefo #define MULHI	34
72f58c7388Spefo #define BADVADDR 35
73f58c7388Spefo #define CAUSE	36
74f58c7388Spefo #define	PC	37
75f58c7388Spefo #define	IC	38
76f58c7388Spefo #define	CPL	39
77f58c7388Spefo 
78f58c7388Spefo #define	NUMSAVEREGS 40		/* Number of registers saved in trap */
79f58c7388Spefo 
80f58c7388Spefo #define FPBASE	NUMSAVEREGS
81f58c7388Spefo #define F0	(FPBASE+0)
82f58c7388Spefo #define F1	(FPBASE+1)
83f58c7388Spefo #define F2	(FPBASE+2)
84f58c7388Spefo #define F3	(FPBASE+3)
85f58c7388Spefo #define F4	(FPBASE+4)
86f58c7388Spefo #define F5	(FPBASE+5)
87f58c7388Spefo #define F6	(FPBASE+6)
88f58c7388Spefo #define F7	(FPBASE+7)
89f58c7388Spefo #define F8	(FPBASE+8)
90f58c7388Spefo #define F9	(FPBASE+9)
91f58c7388Spefo #define F10	(FPBASE+10)
92f58c7388Spefo #define F11	(FPBASE+11)
93f58c7388Spefo #define F12	(FPBASE+12)
94f58c7388Spefo #define F13	(FPBASE+13)
95f58c7388Spefo #define F14	(FPBASE+14)
96f58c7388Spefo #define F15	(FPBASE+15)
97f58c7388Spefo #define F16	(FPBASE+16)
98f58c7388Spefo #define F17	(FPBASE+17)
99f58c7388Spefo #define F18	(FPBASE+18)
100f58c7388Spefo #define F19	(FPBASE+19)
101f58c7388Spefo #define F20	(FPBASE+20)
102f58c7388Spefo #define F21	(FPBASE+21)
103f58c7388Spefo #define F22	(FPBASE+22)
104f58c7388Spefo #define F23	(FPBASE+23)
105f58c7388Spefo #define F24	(FPBASE+24)
106f58c7388Spefo #define F25	(FPBASE+25)
107f58c7388Spefo #define F26	(FPBASE+26)
108f58c7388Spefo #define F27	(FPBASE+27)
109f58c7388Spefo #define F28	(FPBASE+28)
110f58c7388Spefo #define F29	(FPBASE+29)
111f58c7388Spefo #define F30	(FPBASE+30)
112f58c7388Spefo #define F31	(FPBASE+31)
113f58c7388Spefo #define	FSR	(FPBASE+32)
114f58c7388Spefo 
115f58c7388Spefo #define	NUMFPREGS 33
116f58c7388Spefo 
117f58c7388Spefo #define	NREGS	(NUMSAVEREGS + NUMFPREGS)
118f58c7388Spefo 
119f58c7388Spefo #endif /* !_MIPS64_REGNUM_H_ */
120