Mercurial > flash_v2
annotate packages/hal/mips/arch/current/include/mips.inc @ 6:d376b777e2ce ecos-sw-1999-05-14
Merge from eCos master repository on 1999-05-14-19:27:43-BST
| author | jlarmour |
|---|---|
| date | Fri, 14 May 1999 12:20:00 +0000 |
| parents | 443894e2e912 |
| children | 306eee292492 |
| rev | line source |
|---|---|
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
1 #ifndef CYGONCE_HAL_MIPS_INC |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
2 #define CYGONCE_HAL_MIPS_INC |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
3 |
| 0 | 4 ##============================================================================= |
| 5 ## | |
| 6 ## mips.inc | |
| 7 ## | |
| 8 ## MIPS assembler header file | |
| 9 ## | |
| 10 ##============================================================================= | |
| 11 #####COPYRIGHTBEGIN#### | |
| 12 # | |
| 13 # ------------------------------------------- | |
| 14 # The contents of this file are subject to the Cygnus eCos Public License | |
| 15 # Version 1.0 (the "License"); you may not use this file except in | |
| 16 # compliance with the License. You may obtain a copy of the License at | |
| 17 # http://sourceware.cygnus.com/ecos | |
| 18 # | |
| 19 # Software distributed under the License is distributed on an "AS IS" | |
| 20 # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the | |
| 21 # License for the specific language governing rights and limitations under | |
| 22 # the License. | |
| 23 # | |
| 24 # The Original Code is eCos - Embedded Cygnus Operating System, released | |
| 25 # September 30, 1998. | |
| 26 # | |
| 27 # The Initial Developer of the Original Code is Cygnus. Portions created | |
| 2 | 28 # by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved. |
| 0 | 29 # ------------------------------------------- |
| 30 # | |
| 31 #####COPYRIGHTEND#### | |
| 32 ##============================================================================= | |
| 33 #######DESCRIPTIONBEGIN#### | |
| 34 ## | |
| 35 ## Author(s): nickg | |
| 36 ## Contributors: nickg | |
| 37 ## Date: 1997-10-16 | |
| 38 ## Purpose: MIPS definitions. | |
| 39 ## Description: This file contains various definitions and macros that are | |
| 40 ## useful for writing assembly code for the MIPS CPU family. | |
| 41 ## Usage: | |
| 42 ## #include <cyg/hal/mips.inc> | |
| 43 ## ... | |
| 44 ## | |
| 45 ## | |
| 46 ######DESCRIPTIONEND#### | |
| 47 ## | |
| 48 ##============================================================================= | |
| 49 | |
| 50 ##----------------------------------------------------------------------------- | |
| 51 ## Standard MIPS register names: | |
| 52 | |
| 53 #define zero $0 | |
| 54 #define z0 $0 | |
| 55 #define v0 $2 | |
| 56 #define v1 $3 | |
| 57 #define a0 $4 | |
| 58 #define a1 $5 | |
| 59 #define a2 $6 | |
| 60 #define a3 $7 | |
| 61 #define t0 $8 | |
| 62 #define t1 $9 | |
| 63 #define t2 $10 | |
| 64 #define t3 $11 | |
| 65 #define t4 $12 | |
| 66 #define t5 $13 | |
| 67 #define t6 $14 | |
| 68 #define t7 $15 | |
| 69 #define s0 $16 | |
| 70 #define s1 $17 | |
| 71 #define s2 $18 | |
| 72 #define s3 $19 | |
| 73 #define s4 $20 | |
| 74 #define s5 $21 | |
| 75 #define s6 $22 | |
| 76 #define s7 $23 | |
| 77 #define t8 $24 | |
| 78 #define t9 $25 | |
| 79 #define k0 $26 /* kernel private register 0 */ | |
| 80 #define k1 $27 /* kernel private register 1 */ | |
| 81 #define gp $28 /* global data pointer */ | |
| 82 #define sp $29 /* stack-pointer */ | |
| 83 #define fp $30 /* frame-pointer */ | |
| 84 #define ra $31 /* return address */ | |
| 85 #define pc $pc /* pc, used on mips16 */ | |
| 86 | |
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
87 #define f0 $f0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
88 #define f1 $f1 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
89 #define f2 $f2 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
90 #define f3 $f3 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
91 #define f4 $f4 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
92 #define f5 $f5 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
93 #define f6 $f6 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
94 #define f7 $f7 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
95 #define f8 $f8 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
96 #define f9 $f9 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
97 #define f10 $f10 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
98 #define f11 $f11 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
99 #define f12 $f12 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
100 #define f13 $f13 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
101 #define f14 $f14 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
102 #define f15 $f15 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
103 #define f16 $f16 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
104 #define f17 $f17 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
105 #define f18 $f18 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
106 #define f19 $f19 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
107 #define f20 $f20 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
108 #define f21 $f21 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
109 #define f22 $f22 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
110 #define f23 $f23 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
111 #define f24 $f24 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
112 #define f25 $f25 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
113 #define f26 $f26 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
114 #define f27 $f27 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
115 #define f28 $f28 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
116 #define f29 $f29 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
117 #define f30 $f30 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
118 #define f31 $f31 |
| 0 | 119 |
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
120 // Coprocessor 0 registers |
| 0 | 121 |
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
122 #define index $0 // TLB entry index register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
123 #define random $1 // TLB random index register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
124 #define tlblo0 $2 // TLB even page entry register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
125 #define tlblo1 $3 // TLB odd page entry register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
126 #define config $3 // Configuration register (TX39 only) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
127 #define context $4 // TLB context register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
128 #define pagemask $5 // TLB page size mask |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
129 #define wired $6 // TLB wired boundary |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
130 #define cache $7 // Cache control |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
131 #define badvr $8 // Bad virtual address |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
132 #define count $9 // Timer cycle count register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
133 #define tlbhi $10 // TLB virtual address match register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
134 #define compare $11 // Timer compare register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
135 #define status $12 // Status register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
136 #define cause $13 // Exception cause |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
137 #define epc $14 // Exception pc value |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
138 #define prid $15 // processor ID |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
139 #define config0 $16 // Config register 0 |
| 0 | 140 |
| 141 | |
| 142 #------------------------------------------------------------------------------ | |
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
143 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
144 #define FUNC_START(name) \ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
145 .type name,@function; \ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
146 .globl name; \ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
147 .ent name; \ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
148 name: |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
149 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
150 #define FUNC_END(name) \ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
151 name##_end: \ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
152 .end name \ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
153 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
154 #------------------------------------------------------------------------------ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
2
diff
changeset
|
155 #endif // ifndef CYGONCE_HAL_MIPS_INC |
| 0 | 156 # end of mips.inc |
