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