diff options
Diffstat (limited to 'libpixelflinger/codeflinger/mips_opcode.h')
-rw-r--r-- | libpixelflinger/codeflinger/mips_opcode.h | 220 |
1 files changed, 63 insertions, 157 deletions
diff --git a/libpixelflinger/codeflinger/mips_opcode.h b/libpixelflinger/codeflinger/mips_opcode.h index 45bb19ea1..7ed5ef579 100644 --- a/libpixelflinger/codeflinger/mips_opcode.h +++ b/libpixelflinger/codeflinger/mips_opcode.h | |||
@@ -125,118 +125,69 @@ typedef union { | |||
125 | #define OP_BLEZ 006 | 125 | #define OP_BLEZ 006 |
126 | #define OP_BGTZ 007 | 126 | #define OP_BGTZ 007 |
127 | 127 | ||
128 | #if __mips_isa_rev < 6 | ||
129 | #define OP_ADDI 010 | 128 | #define OP_ADDI 010 |
130 | #else | ||
131 | #define OP_POP10 010 | ||
132 | #endif | ||
133 | |||
134 | #define OP_ADDIU 011 | 129 | #define OP_ADDIU 011 |
135 | #define OP_SLTI 012 | 130 | #define OP_SLTI 012 |
136 | #define OP_SLTIU 013 | 131 | #define OP_SLTIU 013 |
137 | #define OP_ANDI 014 | 132 | #define OP_ANDI 014 |
138 | #define OP_ORI 015 | 133 | #define OP_ORI 015 |
139 | #define OP_XORI 016 | 134 | #define OP_XORI 016 |
140 | |||
141 | #if __mips_isa_rev < 6 | ||
142 | #define OP_LUI 017 | 135 | #define OP_LUI 017 |
143 | #else | ||
144 | #define OP_AUI 017 | ||
145 | #endif | ||
146 | 136 | ||
147 | #define OP_COP0 020 | 137 | #define OP_COP0 020 |
148 | #define OP_COP1 021 | 138 | #define OP_COP1 021 |
149 | #define OP_COP2 022 | 139 | #define OP_COP2 022 |
150 | |||
151 | #if __mips_isa_rev < 6 | ||
152 | #define OP_COP3 023 | 140 | #define OP_COP3 023 |
153 | #define OP_BEQL 024 | 141 | #define OP_BEQL 024 /* MIPS-II, for r4000 port */ |
154 | #define OP_BNEL 025 | 142 | #define OP_BNEL 025 /* MIPS-II, for r4000 port */ |
155 | #define OP_BLEZL 026 | 143 | #define OP_BLEZL 026 /* MIPS-II, for r4000 port */ |
156 | #define OP_BGTZL 027 | 144 | #define OP_BGTZL 027 /* MIPS-II, for r4000 port */ |
157 | #define OP_DADDI 030 | ||
158 | #else | ||
159 | #define OP_POP26 026 | ||
160 | #define OP_POP27 027 | ||
161 | #define OP_POP30 030 | ||
162 | #endif | ||
163 | 145 | ||
164 | #define OP_DADDIU 031 | 146 | #define OP_DADDI 030 /* MIPS-II, for r4000 port */ |
147 | #define OP_DADDIU 031 /* MIPS-II, for r4000 port */ | ||
148 | #define OP_LDL 032 /* MIPS-II, for r4000 port */ | ||
149 | #define OP_LDR 033 /* MIPS-II, for r4000 port */ | ||
165 | 150 | ||
166 | #if __mips_isa_rev < 6 | 151 | #define OP_SPECIAL2 034 /* QED opcodes */ |
167 | #define OP_LDL 032 | 152 | #define OP_SPECIAL3 037 /* mips32r2 opcodes */ |
168 | #define OP_LDR 033 | ||
169 | #define OP_SPECIAL2 034 | ||
170 | #else | ||
171 | #define OP_DAUI 035 | ||
172 | #endif | ||
173 | |||
174 | #define OP_SPECIAL3 037 | ||
175 | 153 | ||
176 | #define OP_LB 040 | 154 | #define OP_LB 040 |
177 | #define OP_LH 041 | 155 | #define OP_LH 041 |
178 | |||
179 | #if __mips_isa_rev < 6 | ||
180 | #define OP_LWL 042 | 156 | #define OP_LWL 042 |
181 | #endif | ||
182 | |||
183 | #define OP_LW 043 | 157 | #define OP_LW 043 |
184 | #define OP_LBU 044 | 158 | #define OP_LBU 044 |
185 | #define OP_LHU 045 | 159 | #define OP_LHU 045 |
186 | #define OP_LWR 046 | 160 | #define OP_LWR 046 |
187 | #define OP_LHU 045 | 161 | #define OP_LHU 045 |
188 | |||
189 | #if __mips_isa_rev < 6 | ||
190 | #define OP_LWR 046 | 162 | #define OP_LWR 046 |
191 | #endif | 163 | #define OP_LWU 047 /* MIPS-II, for r4000 port */ |
192 | |||
193 | #define OP_LWU 047 | ||
194 | 164 | ||
195 | #define OP_SB 050 | 165 | #define OP_SB 050 |
196 | #define OP_SH 051 | 166 | #define OP_SH 051 |
197 | |||
198 | #if __mips_isa_rev < 6 | ||
199 | #define OP_SWL 052 | 167 | #define OP_SWL 052 |
200 | #endif | ||
201 | |||
202 | #define OP_SW 053 | 168 | #define OP_SW 053 |
203 | 169 | #define OP_SDL 054 /* MIPS-II, for r4000 port */ | |
204 | #if __mips_isa_rev < 6 | 170 | #define OP_SDR 055 /* MIPS-II, for r4000 port */ |
205 | #define OP_SDL 054 | ||
206 | #define OP_SDR 055 | ||
207 | #define OP_SWR 056 | 171 | #define OP_SWR 056 |
208 | #define OP_CACHE 057 | 172 | #define OP_CACHE 057 /* MIPS-II, for r4000 port */ |
173 | |||
209 | #define OP_LL 060 | 174 | #define OP_LL 060 |
210 | #define OP_LWC0 OP_LL | 175 | #define OP_LWC0 OP_LL /* backwards source compatibility */ |
211 | #define OP_LWC1 061 | 176 | #define OP_LWC1 061 |
212 | #define OP_LWC2 062 | 177 | #define OP_LWC2 062 |
213 | #define OP_LWC3 063 | 178 | #define OP_LWC3 063 |
214 | #define OP_LLD 064 | 179 | #define OP_LLD 064 /* MIPS-II, for r4000 port */ |
215 | #else | ||
216 | #define OP_LWC1 061 | ||
217 | #define OP_BC 062 | ||
218 | #endif | ||
219 | |||
220 | #define OP_LDC1 065 | 180 | #define OP_LDC1 065 |
221 | #define OP_LD 067 | 181 | #define OP_LD 067 /* MIPS-II, for r4000 port */ |
222 | 182 | ||
223 | #if __mips_isa_rev < 6 | ||
224 | #define OP_SC 070 | 183 | #define OP_SC 070 |
225 | #define OP_SWC0 OP_SC | 184 | #define OP_SWC0 OP_SC /* backwards source compatibility */ |
226 | #endif | ||
227 | |||
228 | #define OP_SWC1 071 | 185 | #define OP_SWC1 071 |
229 | |||
230 | #if __mips_isa_rev < 6 | ||
231 | #define OP_SWC2 072 | 186 | #define OP_SWC2 072 |
232 | #define OP_SWC3 073 | 187 | #define OP_SWC3 073 |
233 | #define OP_SCD 074 | 188 | #define OP_SCD 074 /* MIPS-II, for r4000 port */ |
234 | #else | ||
235 | #define OP_BALC 072 | ||
236 | #endif | ||
237 | |||
238 | #define OP_SDC1 075 | 189 | #define OP_SDC1 075 |
239 | #define OP_SD 077 | 190 | #define OP_SD 077 /* MIPS-II, for r4000 port */ |
240 | 191 | ||
241 | /* | 192 | /* |
242 | * Values for the 'func' field when 'op' == OP_SPECIAL. | 193 | * Values for the 'func' field when 'op' == OP_SPECIAL. |
@@ -248,50 +199,28 @@ typedef union { | |||
248 | #define OP_SRLV 006 | 199 | #define OP_SRLV 006 |
249 | #define OP_SRAV 007 | 200 | #define OP_SRAV 007 |
250 | 201 | ||
251 | #if __mips_isa_rev < 6 | ||
252 | #define OP_JR 010 | 202 | #define OP_JR 010 |
253 | #endif | ||
254 | |||
255 | #define OP_JALR 011 | 203 | #define OP_JALR 011 |
256 | #define OP_SYSCALL 014 | 204 | #define OP_SYSCALL 014 |
257 | #define OP_BREAK 015 | 205 | #define OP_BREAK 015 |
258 | #define OP_SYNC 017 | 206 | #define OP_SYNC 017 /* MIPS-II, for r4000 port */ |
259 | 207 | ||
260 | #if __mips_isa_rev < 6 | ||
261 | #define OP_MFHI 020 | 208 | #define OP_MFHI 020 |
262 | #define OP_MTHI 021 | 209 | #define OP_MTHI 021 |
263 | #define OP_MFLO 022 | 210 | #define OP_MFLO 022 |
264 | #define OP_MTLO 023 | 211 | #define OP_MTLO 023 |
265 | #else | 212 | #define OP_DSLLV 024 /* MIPS-II, for r4000 port */ |
266 | #define OP_CLZ 020 | 213 | #define OP_DSRLV 026 /* MIPS-II, for r4000 port */ |
267 | #define OP_CLO 021 | 214 | #define OP_DSRAV 027 /* MIPS-II, for r4000 port */ |
268 | #define OP_DCLZ 022 | ||
269 | #define OP_DCLO 023 | ||
270 | #endif | ||
271 | |||
272 | #define OP_DSLLV 024 | ||
273 | #define OP_DSRLV 026 | ||
274 | #define OP_DSRAV 027 | ||
275 | 215 | ||
276 | #if __mips_isa_rev < 6 | ||
277 | #define OP_MULT 030 | 216 | #define OP_MULT 030 |
278 | #define OP_MULTU 031 | 217 | #define OP_MULTU 031 |
279 | #define OP_DIV 032 | 218 | #define OP_DIV 032 |
280 | #define OP_DIVU 033 | 219 | #define OP_DIVU 033 |
281 | #define OP_DMULT 034 | 220 | #define OP_DMULT 034 /* MIPS-II, for r4000 port */ |
282 | #define OP_DMULTU 035 | 221 | #define OP_DMULTU 035 /* MIPS-II, for r4000 port */ |
283 | #define OP_DDIV 036 | 222 | #define OP_DDIV 036 /* MIPS-II, for r4000 port */ |
284 | #define OP_DDIVU 037 | 223 | #define OP_DDIVU 037 /* MIPS-II, for r4000 port */ |
285 | #else | ||
286 | #define OP_SOP30 030 | ||
287 | #define OP_SOP31 031 | ||
288 | #define OP_SOP32 032 | ||
289 | #define OP_SOP33 033 | ||
290 | #define OP_SOP34 034 | ||
291 | #define OP_SOP35 035 | ||
292 | #define OP_SOP36 036 | ||
293 | #define OP_SOP37 037 | ||
294 | #endif | ||
295 | 224 | ||
296 | #define OP_ADD 040 | 225 | #define OP_ADD 040 |
297 | #define OP_ADDU 041 | 226 | #define OP_ADDU 041 |
@@ -304,96 +233,73 @@ typedef union { | |||
304 | 233 | ||
305 | #define OP_SLT 052 | 234 | #define OP_SLT 052 |
306 | #define OP_SLTU 053 | 235 | #define OP_SLTU 053 |
307 | #define OP_DADD 054 | 236 | #define OP_DADD 054 /* MIPS-II, for r4000 port */ |
308 | #define OP_DADDU 055 | 237 | #define OP_DADDU 055 /* MIPS-II, for r4000 port */ |
309 | #define OP_DSUB 056 | 238 | #define OP_DSUB 056 /* MIPS-II, for r4000 port */ |
310 | #define OP_DSUBU 057 | 239 | #define OP_DSUBU 057 /* MIPS-II, for r4000 port */ |
311 | 240 | ||
312 | #define OP_TGE 060 | 241 | #define OP_TGE 060 /* MIPS-II, for r4000 port */ |
313 | #define OP_TGEU 061 | 242 | #define OP_TGEU 061 /* MIPS-II, for r4000 port */ |
314 | #define OP_TLT 062 | 243 | #define OP_TLT 062 /* MIPS-II, for r4000 port */ |
315 | #define OP_TLTU 063 | 244 | #define OP_TLTU 063 /* MIPS-II, for r4000 port */ |
316 | #define OP_TEQ 064 | 245 | #define OP_TEQ 064 /* MIPS-II, for r4000 port */ |
317 | #define OP_TNE 066 | 246 | #define OP_TNE 066 /* MIPS-II, for r4000 port */ |
318 | 247 | ||
319 | #define OP_DSLL 070 | 248 | #define OP_DSLL 070 /* MIPS-II, for r4000 port */ |
320 | #define OP_DSRL 072 | 249 | #define OP_DSRL 072 /* MIPS-II, for r4000 port */ |
321 | #define OP_DSRA 073 | 250 | #define OP_DSRA 073 /* MIPS-II, for r4000 port */ |
322 | #define OP_DSLL32 074 | 251 | #define OP_DSLL32 074 /* MIPS-II, for r4000 port */ |
323 | #define OP_DSRL32 076 | 252 | #define OP_DSRL32 076 /* MIPS-II, for r4000 port */ |
324 | #define OP_DSRA32 077 | 253 | #define OP_DSRA32 077 /* MIPS-II, for r4000 port */ |
325 | 254 | ||
326 | #if __mips_isa_rev < 6 | ||
327 | /* | 255 | /* |
328 | * Values for the 'func' field when 'op' == OP_SPECIAL2. | 256 | * Values for the 'func' field when 'op' == OP_SPECIAL2. |
329 | * OP_SPECIAL2 opcodes are removed in mips32r6 | ||
330 | */ | 257 | */ |
331 | #define OP_MAD 000 /* QED */ | 258 | #define OP_MAD 000 /* QED */ |
332 | #define OP_MADU 001 /* QED */ | 259 | #define OP_MADU 001 /* QED */ |
333 | #define OP_MUL 002 /* QED */ | 260 | #define OP_MUL 002 /* QED */ |
334 | #endif | ||
335 | 261 | ||
336 | /* | 262 | /* |
337 | * Values for the 'func' field when 'op' == OP_SPECIAL3. | 263 | * Values for the 'func' field when 'op' == OP_SPECIAL3. |
338 | */ | 264 | */ |
339 | #define OP_EXT 000 | 265 | #define OP_EXT 000 |
340 | #define OP_DEXTM 001 | ||
341 | #define OP_DEXTU 002 | ||
342 | #define OP_DEXT 003 | ||
343 | #define OP_INS 004 | 266 | #define OP_INS 004 |
344 | #define OP_DINSM 005 | ||
345 | #define OP_DINSU 006 | ||
346 | #define OP_DINS 007 | ||
347 | #define OP_BSHFL 040 | 267 | #define OP_BSHFL 040 |
348 | #define OP_RDHWR 073 | ||
349 | 268 | ||
350 | /* | 269 | /* |
351 | * Values for the 'shamt' field when OP_SPECIAL3 && func OP_BSHFL. | 270 | * Values for the 'shamt' field when OP_SPECIAL3 && func OP_BSHFL. |
352 | */ | 271 | */ |
353 | |||
354 | #define OP_WSBH 002 | 272 | #define OP_WSBH 002 |
355 | #define OP_SEB 020 | 273 | #define OP_SEB 020 |
356 | #define OP_SEH 030 | 274 | #define OP_SEH 030 |
357 | 275 | ||
358 | #if __mips_isa_rev == 6 | ||
359 | /* | ||
360 | * Values for the 'shamt' field when OP_SOP30. | ||
361 | */ | ||
362 | #define OP_MUL 002 | ||
363 | #define OP_MUH 003 | ||
364 | #endif | ||
365 | |||
366 | /* | 276 | /* |
367 | * Values for the 'func' field when 'op' == OP_BCOND. | 277 | * Values for the 'func' field when 'op' == OP_BCOND. |
368 | */ | 278 | */ |
369 | #define OP_BLTZ 000 | 279 | #define OP_BLTZ 000 |
370 | #define OP_BGEZ 001 | 280 | #define OP_BGEZ 001 |
281 | #define OP_BLTZL 002 /* MIPS-II, for r4000 port */ | ||
282 | #define OP_BGEZL 003 /* MIPS-II, for r4000 port */ | ||
371 | 283 | ||
372 | #if __mips_isa_rev < 6 | 284 | #define OP_TGEI 010 /* MIPS-II, for r4000 port */ |
373 | #define OP_BLTZL 002 | 285 | #define OP_TGEIU 011 /* MIPS-II, for r4000 port */ |
374 | #define OP_BGEZL 003 | 286 | #define OP_TLTI 012 /* MIPS-II, for r4000 port */ |
375 | #define OP_TGEI 010 | 287 | #define OP_TLTIU 013 /* MIPS-II, for r4000 port */ |
376 | #define OP_TGEIU 011 | 288 | #define OP_TEQI 014 /* MIPS-II, for r4000 port */ |
377 | #define OP_TLTI 012 | 289 | #define OP_TNEI 016 /* MIPS-II, for r4000 port */ |
378 | #define OP_TLTIU 013 | 290 | |
379 | #define OP_TEQI 014 | 291 | #define OP_BLTZAL 020 /* MIPS-II, for r4000 port */ |
380 | #define OP_TNEI 016 | ||
381 | #define OP_BLTZAL 020 | ||
382 | #define OP_BGEZAL 021 | 292 | #define OP_BGEZAL 021 |
383 | #define OP_BLTZALL 022 | 293 | #define OP_BLTZALL 022 |
384 | #define OP_BGEZALL 023 | 294 | #define OP_BGEZALL 023 |
385 | #else | ||
386 | #define OP_NAL 020 | ||
387 | #define OP_BAL 021 | ||
388 | #endif | ||
389 | 295 | ||
390 | /* | 296 | /* |
391 | * Values for the 'rs' field when 'op' == OP_COPz. | 297 | * Values for the 'rs' field when 'op' == OP_COPz. |
392 | */ | 298 | */ |
393 | #define OP_MF 000 | 299 | #define OP_MF 000 |
394 | #define OP_DMF 001 | 300 | #define OP_DMF 001 /* MIPS-II, for r4000 port */ |
395 | #define OP_MT 004 | 301 | #define OP_MT 004 |
396 | #define OP_DMT 005 | 302 | #define OP_DMT 005 /* MIPS-II, for r4000 port */ |
397 | #define OP_BCx 010 | 303 | #define OP_BCx 010 |
398 | #define OP_BCy 014 | 304 | #define OP_BCy 014 |
399 | #define OP_CF 002 | 305 | #define OP_CF 002 |
@@ -405,6 +311,6 @@ typedef union { | |||
405 | #define COPz_BC_TF_MASK 0x01 | 311 | #define COPz_BC_TF_MASK 0x01 |
406 | #define COPz_BC_TRUE 0x01 | 312 | #define COPz_BC_TRUE 0x01 |
407 | #define COPz_BC_FALSE 0x00 | 313 | #define COPz_BC_FALSE 0x00 |
408 | #define COPz_BCL_TF_MASK 0x02 | 314 | #define COPz_BCL_TF_MASK 0x02 /* MIPS-II, for r4000 port */ |
409 | #define COPz_BCL_TRUE 0x02 | 315 | #define COPz_BCL_TRUE 0x02 /* MIPS-II, for r4000 port */ |
410 | #define COPz_BCL_FALSE 0x00 | 316 | #define COPz_BCL_FALSE 0x00 /* MIPS-II, for r4000 port */ |