111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*	$OpenBSD: regnum.h,v 1.3 2004/08/10 20:28:13 deraadt Exp $ */
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 2001-2002 Opsycon AB  (www.opsycon.se / www.opsycon.com)
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Redistribution and use in source and binary forms, with or without
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * modification, are permitted provided that the following conditions
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * are met:
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1. Redistributions of source code must retain the above copyright
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *    notice, this list of conditions and the following disclaimer.
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2. Redistributions in binary form must reproduce the above copyright
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *    notice, this list of conditions and the following disclaimer in the
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *    documentation and/or other materials provided with the distribution.
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * SUCH DAMAGE.
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _MIPS64_REGNUM_H_
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _MIPS64_REGNUM_H_
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Location of the saved registers relative to ZERO.
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Usage is p->p_regs[XX].
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ZERO	0
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AST	1
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V0	2
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V1	3
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define A0	4
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define A1	5
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define A2	6
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define A3	7
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define T0	8
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define T1	9
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define T2	10
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define T3	11
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define T4	12
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define T5	13
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define T6	14
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define T7	15
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S0	16
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S1	17
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S2	18
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S3	19
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S4	20
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S5	21
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S6	22
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S7	23
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define T8	24
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define T9	25
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K0	26
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define K1	27
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GP	28
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SP	29
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S8	30
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RA	31
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	SR	32
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	PS	SR	/* alias for SR */
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MULLO	33
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MULHI	34
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BADVADDR 35
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CAUSE	36
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	PC	37
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	IC	38
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	CPL	39
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	NUMSAVEREGS 40		/* Number of registers saved in trap */
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FPBASE	NUMSAVEREGS
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F0	(FPBASE+0)
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F1	(FPBASE+1)
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F2	(FPBASE+2)
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F3	(FPBASE+3)
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F4	(FPBASE+4)
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F5	(FPBASE+5)
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F6	(FPBASE+6)
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F7	(FPBASE+7)
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F8	(FPBASE+8)
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F9	(FPBASE+9)
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F10	(FPBASE+10)
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F11	(FPBASE+11)
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F12	(FPBASE+12)
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F13	(FPBASE+13)
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F14	(FPBASE+14)
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F15	(FPBASE+15)
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F16	(FPBASE+16)
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F17	(FPBASE+17)
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F18	(FPBASE+18)
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F19	(FPBASE+19)
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F20	(FPBASE+20)
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F21	(FPBASE+21)
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F22	(FPBASE+22)
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F23	(FPBASE+23)
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F24	(FPBASE+24)
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F25	(FPBASE+25)
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F26	(FPBASE+26)
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F27	(FPBASE+27)
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F28	(FPBASE+28)
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F29	(FPBASE+29)
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F30	(FPBASE+30)
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F31	(FPBASE+31)
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	FSR	(FPBASE+32)
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	NUMFPREGS 33
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define	NREGS	(NUMSAVEREGS + NUMFPREGS)
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* !_MIPS64_REGNUM_H_ */
120