]> git.karo-electronics.de Git - karo-tx-redboot.git/blob - packages/hal/mips/arch/v2_0/include/mips.inc
Initial revision
[karo-tx-redboot.git] / packages / hal / mips / arch / v2_0 / include / mips.inc
1 #ifndef CYGONCE_HAL_MIPS_INC
2 #define CYGONCE_HAL_MIPS_INC
3
4 ##=============================================================================
5 ##
6 ##      mips.inc
7 ##
8 ##      MIPS assembler header file
9 ##
10 ##=============================================================================
11 #####ECOSGPLCOPYRIGHTBEGIN####
12 ## -------------------------------------------
13 ## This file is part of eCos, the Embedded Configurable Operating System.
14 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
15 ##
16 ## eCos is free software; you can redistribute it and/or modify it under
17 ## the terms of the GNU General Public License as published by the Free
18 ## Software Foundation; either version 2 or (at your option) any later version.
19 ##
20 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
21 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
22 ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
23 ## for more details.
24 ##
25 ## You should have received a copy of the GNU General Public License along
26 ## with eCos; if not, write to the Free Software Foundation, Inc.,
27 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
28 ##
29 ## As a special exception, if other files instantiate templates or use macros
30 ## or inline functions from this file, or you compile this file and link it
31 ## with other works to produce a work based on this file, this file does not
32 ## by itself cause the resulting work to be covered by the GNU General Public
33 ## License. However the source code for this file must still be made available
34 ## in accordance with section (3) of the GNU General Public License.
35 ##
36 ## This exception does not invalidate any other reasons why a work based on
37 ## this file might be covered by the GNU General Public License.
38 ##
39 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
40 ## at http://sources.redhat.com/ecos/ecos-license/
41 ## -------------------------------------------
42 #####ECOSGPLCOPYRIGHTEND####
43 ##=============================================================================
44 #######DESCRIPTIONBEGIN####
45 ##
46 ## Author(s):   nickg
47 ## Contributors:        nickg
48 ## Date:        1997-10-16
49 ## Purpose:     MIPS definitions.
50 ## Description: This file contains various definitions and macros that are
51 ##              useful for writing assembly code for the MIPS CPU family.
52 ## Usage:
53 ##              #include <cyg/hal/mips.inc>
54 ##              ...
55 ##              
56 ##
57 ######DESCRIPTIONEND####
58 ##
59 ##=============================================================================
60
61 ##-----------------------------------------------------------------------------
62 ## Standard MIPS register names:
63
64 #define zero    $0
65 #define z0      $0
66 #define v0      $2
67 #define v1      $3
68 #define a0      $4
69 #define a1      $5
70 #define a2      $6
71 #define a3      $7
72 #define t0      $8
73 #define t1      $9
74 #define t2      $10
75 #define t3      $11
76 #define t4      $12
77 #define t5      $13
78 #define t6      $14
79 #define t7      $15
80 #define s0      $16
81 #define s1      $17
82 #define s2      $18
83 #define s3      $19
84 #define s4      $20
85 #define s5      $21
86 #define s6      $22
87 #define s7      $23
88 #define t8      $24
89 #define t9      $25
90 #define k0      $26     /* kernel private register 0 */
91 #define k1      $27     /* kernel private register 1 */
92 #define gp      $28     /* global data pointer */
93 #define sp      $29     /* stack-pointer */
94 #define fp      $30     /* frame-pointer */
95 #define ra      $31     /* return address */
96 #define pc      $pc     /* pc, used on mips16 */
97
98 #define f0      $f0
99 #define f1      $f1
100 #define f2      $f2
101 #define f3      $f3
102 #define f4      $f4
103 #define f5      $f5
104 #define f6      $f6
105 #define f7      $f7
106 #define f8      $f8
107 #define f9      $f9
108 #define f10     $f10
109 #define f11     $f11
110 #define f12     $f12
111 #define f13     $f13
112 #define f14     $f14
113 #define f15     $f15
114 #define f16     $f16
115 #define f17     $f17
116 #define f18     $f18
117 #define f19     $f19
118 #define f20     $f20
119 #define f21     $f21
120 #define f22     $f22
121 #define f23     $f23
122 #define f24     $f24
123 #define f25     $f25
124 #define f26     $f26
125 #define f27     $f27
126 #define f28     $f28
127 #define f29     $f29
128 #define f30     $f30
129 #define f31     $f31
130
131 // Coprocessor 0 registers
132
133 #define index           $0      // TLB entry index register
134 #define random          $1      // TLB random index register
135 #define tlblo0          $2      // TLB even page entry register
136 #define tlblo1          $3      // TLB odd page entry register
137 #define config          $3      // Configuration register (TX39 only)
138 #define context         $4      // TLB context register
139 #define pagemask        $5      // TLB page size mask
140 #define wired           $6      // TLB wired boundary
141 #define cachectrl       $7      // Cache control
142 #define badvr           $8      // Bad virtual address
143 #define count           $9      // Timer cycle count register
144 #define tlbhi           $10     // TLB virtual address match register
145 #define compare         $11     // Timer compare register
146 #define status          $12     // Status register      
147 #define cause           $13     // Exception cause
148 #define epc             $14     // Exception pc value
149 #define prid            $15     // processor ID
150 #define config0         $16     // Config register 0
151 #define lladdr          $17     // LLAdddr
152 #define xcontext        $20     // XContext register
153 #define ecc             $26     // Error Checking and Correcting
154 #define cache_err       $27     // Cache Error and Status
155 #define taglo           $28     // TagLo
156 #define taghi           $29     // TagHi
157 #define error_epc       $30     // Error exception pc value
158
159
160 #------------------------------------------------------------------------------
161
162 #define FUNC_START(name)        \
163         .type name,@function;   \
164         .set push ;             \
165         .globl name;            \
166         .ent   name;            \
167         .set noreorder ;        \
168 name:
169
170 #define FUNC_END(name)          \
171 name##_end:                     \
172         .set pop;               \
173         .end name               \
174
175 #------------------------------------------------------------------------------
176 #endif // ifndef CYGONCE_HAL_MIPS_INC
177 # end of mips.inc