1 /* $NetBSD: regnum.h,v 1.9 2009/12/14 00:46:05 matt Exp $ */ 2 3 /* 4 * Copyright (c) 1992, 1993 5 * The Regents of the University of California. All rights reserved. 6 * 7 * This code is derived from software contributed to Berkeley by 8 * the Systems Programming Group of the University of Utah Computer 9 * Science Department and Ralph Campbell. 10 * 11 * Redistribution and use in source and binary forms, with or without 12 * modification, are permitted provided that the following conditions 13 * are met: 14 * 1. Redistributions of source code must retain the above copyright 15 * notice, this list of conditions and the following disclaimer. 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in the 18 * documentation and/or other materials provided with the distribution. 19 * 3. Neither the name of the University nor the names of its contributors 20 * may be used to endorse or promote products derived from this software 21 * without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * 35 * from: Utah Hdr: reg.h 1.1 90/07/09 36 * 37 * @(#)reg.h 8.2 (Berkeley) 1/11/94 38 */ 39 /* 40 * Copyright (c) 1988 University of Utah. 41 * 42 * This code is derived from software contributed to Berkeley by 43 * the Systems Programming Group of the University of Utah Computer 44 * Science Department and Ralph Campbell. 45 * 46 * Redistribution and use in source and binary forms, with or without 47 * modification, are permitted provided that the following conditions 48 * are met: 49 * 1. Redistributions of source code must retain the above copyright 50 * notice, this list of conditions and the following disclaimer. 51 * 2. Redistributions in binary form must reproduce the above copyright 52 * notice, this list of conditions and the following disclaimer in the 53 * documentation and/or other materials provided with the distribution. 54 * 3. All advertising materials mentioning features or use of this software 55 * must display the following acknowledgement: 56 * This product includes software developed by the University of 57 * California, Berkeley and its contributors. 58 * 4. Neither the name of the University nor the names of its contributors 59 * may be used to endorse or promote products derived from this software 60 * without specific prior written permission. 61 * 62 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 63 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 64 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 65 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 66 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 67 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 68 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 69 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 70 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 71 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 72 * SUCH DAMAGE. 73 * 74 * from: Utah Hdr: reg.h 1.1 90/07/09 75 * 76 * @(#)reg.h 8.2 (Berkeley) 1/11/94 77 */ 78 79 /* 80 * Location of the users' stored 81 * registers relative to ZERO. 82 * Usage is p->p_regs[XX]. 83 */ 84 #define _R_ZERO 0 /* hardware zero */ 85 #define _R_AST 1 /* caller-saved */ 86 #define _R_V0 2 /* caller-saved */ 87 #define _R_V1 3 /* caller-saved */ 88 #define _R_A0 4 /* caller-saved */ 89 #define _R_A1 5 /* caller-saved */ 90 #define _R_A2 6 /* caller-saved */ 91 #define _R_A3 7 /* caller-saved */ 92 #if defined(__mips_n32) || defined(__mips_n64) 93 #define _R_A4 8 /* caller-saved */ 94 #define _R_A5 9 /* caller-saved */ 95 #define _R_A6 10 /* caller-saved */ 96 #define _R_A7 11 /* caller-saved */ 97 #define _R_T0 12 /* caller-saved */ 98 #define _R_T1 13 /* caller-saved */ 99 #define _R_T2 14 /* caller-saved */ 100 #define _R_T3 15 /* caller-saved */ 101 #else 102 #define _R_T0 8 /* caller-saved */ 103 #define _R_T1 9 /* caller-saved */ 104 #define _R_T2 10 /* caller-saved */ 105 #define _R_T3 11 /* caller-saved */ 106 #define _R_T4 12 /* caller-saved */ 107 #define _R_T5 13 /* caller-saved */ 108 #define _R_T6 14 /* caller-saved */ 109 #define _R_T7 15 /* caller-saved */ 110 #endif /* __mips_n32 || __mips_n64 */ 111 #define _R_S0 16 /* CALLEE-saved */ 112 #define _R_S1 17 /* CALLEE-saved */ 113 #define _R_S2 18 /* CALLEE-saved */ 114 #define _R_S3 19 /* CALLEE-saved */ 115 #define _R_S4 20 /* CALLEE-saved */ 116 #define _R_S5 21 /* CALLEE-saved */ 117 #define _R_S6 22 /* CALLEE-saved */ 118 #define _R_S7 23 /* CALLEE-saved */ 119 #define _R_T8 24 /* caller-saved */ 120 #define _R_T9 25 /* caller-saved */ 121 #define _R_K0 26 /* kernel reserved */ 122 #define _R_K1 27 /* kernel reserved */ 123 #define _R_GP 28 /* CALLEE-saved */ 124 #define _R_SP 29 /* CALLEE-saved */ 125 #define _R_S8 30 /* CALLEE-saved */ 126 #define _R_RA 31 /* caller-saved */ 127 #define _R_SR 32 128 #define _R_PS _R_SR /* alias for SR */ 129 130 /* See <mips/regdef.h> for an explanation. */ 131 #if defined(__mips_n32) || defined(__mips_n64) 132 #define _R_TA0 8 133 #define _R_TA1 9 134 #define _R_TA2 10 135 #define _R_TA3 11 136 #else 137 #define _R_TA0 12 138 #define _R_TA1 13 139 #define _R_TA2 14 140 #define _R_TA3 15 141 #endif /* __mips_n32 || __mips_n64 */ 142 143 #define _R_MULLO 33 144 #define _R_MULHI 34 145 #define _R_BADVADDR 35 146 #define _R_CAUSE 36 147 #define _R_PC 37 148 149 #define _FPBASE 38 150 #define _R_F0 (_FPBASE+0) 151 #define _R_F1 (_FPBASE+1) 152 #define _R_F2 (_FPBASE+2) 153 #define _R_F3 (_FPBASE+3) 154 #define _R_F4 (_FPBASE+4) 155 #define _R_F5 (_FPBASE+5) 156 #define _R_F6 (_FPBASE+6) 157 #define _R_F7 (_FPBASE+7) 158 #define _R_F8 (_FPBASE+8) 159 #define _R_F9 (_FPBASE+9) 160 #define _R_F10 (_FPBASE+10) 161 #define _R_F11 (_FPBASE+11) 162 #define _R_F12 (_FPBASE+12) 163 #define _R_F13 (_FPBASE+13) 164 #define _R_F14 (_FPBASE+14) 165 #define _R_F15 (_FPBASE+15) 166 #define _R_F16 (_FPBASE+16) 167 #define _R_F17 (_FPBASE+17) 168 #define _R_F18 (_FPBASE+18) 169 #define _R_F19 (_FPBASE+19) 170 #define _R_F20 (_FPBASE+20) 171 #define _R_F21 (_FPBASE+21) 172 #define _R_F22 (_FPBASE+22) 173 #define _R_F23 (_FPBASE+23) 174 #define _R_F24 (_FPBASE+24) 175 #define _R_F25 (_FPBASE+25) 176 #define _R_F26 (_FPBASE+26) 177 #define _R_F27 (_FPBASE+27) 178 #define _R_F28 (_FPBASE+28) 179 #define _R_F29 (_FPBASE+29) 180 #define _R_F30 (_FPBASE+30) 181 #define _R_F31 (_FPBASE+31) 182 #define _R_FSR (_FPBASE+32) 183