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