/* $NetBSD: regnum.h,v 1.11 2011/08/16 06:58:15 matt 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 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)