opcodes/
[binutils.git] / include / opcode / bfin.h
blob4466fdce7a491eaf9d3c79a2fe077c2b6710f366
1 /* bfin.h -- Header file for ADI Blackfin opcode table
2 Copyright 2005 Free Software Foundation, Inc.
4 This file is part of GDB, GAS, and the GNU binutils.
6 GDB, GAS, and the GNU binutils are free software; you can redistribute
7 them and/or modify them under the terms of the GNU General Public
8 License as published by the Free Software Foundation; either version
9 1, or (at your option) any later version.
11 GDB, GAS, and the GNU binutils are distributed in the hope that they
12 will be useful, but WITHOUT ANY WARRANTY; without even the implied
13 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
14 the GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this file; see the file COPYING. If not, write to the Free
18 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
20 /* Common to all DSP32 instructions. */
21 #define BIT_MULTI_INS 0x0800
23 /* This just sets the multi instruction bit of a DSP32 instruction. */
24 #define SET_MULTI_INSTRUCTION_BIT(x) x->value |= BIT_MULTI_INS;
27 /* DSP instructions (32 bit) */
29 /* dsp32mac
30 +----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
31 | 1 | 1 | 0 | 0 |.M.| 0 | 0 |.mmod..........|.MM|.P.|.w1|.op1...|
32 |.h01|.h11|.w0|.op0...|.h00|.h10|.dst.......|.src0......|.src1......|
33 +----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
36 typedef struct
38 unsigned long opcode;
39 int bits_src1;
40 int mask_src1;
41 int bits_src0;
42 int mask_src0;
43 int bits_dst;
44 int mask_dst;
45 int bits_h10;
46 int mask_h10;
47 int bits_h00;
48 int mask_h00;
49 int bits_op0;
50 int mask_op0;
51 int bits_w0;
52 int mask_w0;
53 int bits_h11;
54 int mask_h11;
55 int bits_h01;
56 int mask_h01;
57 int bits_op1;
58 int mask_op1;
59 int bits_w1;
60 int mask_w1;
61 int bits_P;
62 int mask_P;
63 int bits_MM;
64 int mask_MM;
65 int bits_mmod;
66 int mask_mmod;
67 int bits_code2;
68 int mask_code2;
69 int bits_M;
70 int mask_M;
71 int bits_code;
72 int mask_code;
73 } DSP32Mac;
75 #define DSP32Mac_opcode 0xc0000000
76 #define DSP32Mac_src1_bits 0
77 #define DSP32Mac_src1_mask 0x7
78 #define DSP32Mac_src0_bits 3
79 #define DSP32Mac_src0_mask 0x7
80 #define DSP32Mac_dst_bits 6
81 #define DSP32Mac_dst_mask 0x7
82 #define DSP32Mac_h10_bits 9
83 #define DSP32Mac_h10_mask 0x1
84 #define DSP32Mac_h00_bits 10
85 #define DSP32Mac_h00_mask 0x1
86 #define DSP32Mac_op0_bits 11
87 #define DSP32Mac_op0_mask 0x3
88 #define DSP32Mac_w0_bits 13
89 #define DSP32Mac_w0_mask 0x1
90 #define DSP32Mac_h11_bits 14
91 #define DSP32Mac_h11_mask 0x1
92 #define DSP32Mac_h01_bits 15
93 #define DSP32Mac_h01_mask 0x1
94 #define DSP32Mac_op1_bits 16
95 #define DSP32Mac_op1_mask 0x3
96 #define DSP32Mac_w1_bits 18
97 #define DSP32Mac_w1_mask 0x1
98 #define DSP32Mac_p_bits 19
99 #define DSP32Mac_p_mask 0x1
100 #define DSP32Mac_MM_bits 20
101 #define DSP32Mac_MM_mask 0x1
102 #define DSP32Mac_mmod_bits 21
103 #define DSP32Mac_mmod_mask 0xf
104 #define DSP32Mac_code2_bits 25
105 #define DSP32Mac_code2_mask 0x3
106 #define DSP32Mac_M_bits 27
107 #define DSP32Mac_M_mask 0x1
108 #define DSP32Mac_code_bits 28
109 #define DSP32Mac_code_mask 0xf
111 #define init_DSP32Mac \
113 DSP32Mac_opcode, \
114 DSP32Mac_src1_bits, DSP32Mac_src1_mask, \
115 DSP32Mac_src0_bits, DSP32Mac_src0_mask, \
116 DSP32Mac_dst_bits, DSP32Mac_dst_mask, \
117 DSP32Mac_h10_bits, DSP32Mac_h10_mask, \
118 DSP32Mac_h00_bits, DSP32Mac_h00_mask, \
119 DSP32Mac_op0_bits, DSP32Mac_op0_mask, \
120 DSP32Mac_w0_bits, DSP32Mac_w0_mask, \
121 DSP32Mac_h11_bits, DSP32Mac_h11_mask, \
122 DSP32Mac_h01_bits, DSP32Mac_h01_mask, \
123 DSP32Mac_op1_bits, DSP32Mac_op1_mask, \
124 DSP32Mac_w1_bits, DSP32Mac_w1_mask, \
125 DSP32Mac_p_bits, DSP32Mac_p_mask, \
126 DSP32Mac_MM_bits, DSP32Mac_MM_mask, \
127 DSP32Mac_mmod_bits, DSP32Mac_mmod_mask, \
128 DSP32Mac_code2_bits, DSP32Mac_code2_mask, \
129 DSP32Mac_M_bits, DSP32Mac_M_mask, \
130 DSP32Mac_code_bits, DSP32Mac_code_mask \
133 /* dsp32mult
134 +----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
135 | 1 | 1 | 0 | 0 |.M.| 0 | 1 |.mmod..........|.MM|.P.|.w1|.op1...|
136 |.h01|.h11|.w0|.op0...|.h00|.h10|.dst.......|.src0......|.src1......|
137 +----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
140 typedef DSP32Mac DSP32Mult;
141 #define DSP32Mult_opcode 0xc2000000
143 #define init_DSP32Mult \
145 DSP32Mult_opcode, \
146 DSP32Mac_src1_bits, DSP32Mac_src1_mask, \
147 DSP32Mac_src0_bits, DSP32Mac_src0_mask, \
148 DSP32Mac_dst_bits, DSP32Mac_dst_mask, \
149 DSP32Mac_h10_bits, DSP32Mac_h10_mask, \
150 DSP32Mac_h00_bits, DSP32Mac_h00_mask, \
151 DSP32Mac_op0_bits, DSP32Mac_op0_mask, \
152 DSP32Mac_w0_bits, DSP32Mac_w0_mask, \
153 DSP32Mac_h11_bits, DSP32Mac_h11_mask, \
154 DSP32Mac_h01_bits, DSP32Mac_h01_mask, \
155 DSP32Mac_op1_bits, DSP32Mac_op1_mask, \
156 DSP32Mac_w1_bits, DSP32Mac_w1_mask, \
157 DSP32Mac_p_bits, DSP32Mac_p_mask, \
158 DSP32Mac_MM_bits, DSP32Mac_MM_mask, \
159 DSP32Mac_mmod_bits, DSP32Mac_mmod_mask, \
160 DSP32Mac_code2_bits, DSP32Mac_code2_mask, \
161 DSP32Mac_M_bits, DSP32Mac_M_mask, \
162 DSP32Mac_code_bits, DSP32Mac_code_mask \
165 /* dsp32alu
166 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
167 | 1 | 1 | 0 | 0 |.M.| 1 | 0 | - | - | - |.HL|.aopcde............|
168 |.aop...|.s.|.x.|.dst0......|.dst1......|.src0......|.src1......|
169 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
172 typedef struct
174 unsigned long opcode;
175 int bits_src1;
176 int mask_src1;
177 int bits_src0;
178 int mask_src0;
179 int bits_dst1;
180 int mask_dst1;
181 int bits_dst0;
182 int mask_dst0;
183 int bits_x;
184 int mask_x;
185 int bits_s;
186 int mask_s;
187 int bits_aop;
188 int mask_aop;
189 int bits_aopcde;
190 int mask_aopcde;
191 int bits_HL;
192 int mask_HL;
193 int bits_dontcare;
194 int mask_dontcare;
195 int bits_code2;
196 int mask_code2;
197 int bits_M;
198 int mask_M;
199 int bits_code;
200 int mask_code;
201 } DSP32Alu;
203 #define DSP32Alu_opcode 0xc4000000
204 #define DSP32Alu_src1_bits 0
205 #define DSP32Alu_src1_mask 0x7
206 #define DSP32Alu_src0_bits 3
207 #define DSP32Alu_src0_mask 0x7
208 #define DSP32Alu_dst1_bits 6
209 #define DSP32Alu_dst1_mask 0x7
210 #define DSP32Alu_dst0_bits 9
211 #define DSP32Alu_dst0_mask 0x7
212 #define DSP32Alu_x_bits 12
213 #define DSP32Alu_x_mask 0x1
214 #define DSP32Alu_s_bits 13
215 #define DSP32Alu_s_mask 0x1
216 #define DSP32Alu_aop_bits 14
217 #define DSP32Alu_aop_mask 0x3
218 #define DSP32Alu_aopcde_bits 16
219 #define DSP32Alu_aopcde_mask 0x1f
220 #define DSP32Alu_HL_bits 21
221 #define DSP32Alu_HL_mask 0x1
222 #define DSP32Alu_dontcare_bits 22
223 #define DSP32Alu_dontcare_mask 0x7
224 #define DSP32Alu_code2_bits 25
225 #define DSP32Alu_code2_mask 0x3
226 #define DSP32Alu_M_bits 27
227 #define DSP32Alu_M_mask 0x1
228 #define DSP32Alu_code_bits 28
229 #define DSP32Alu_code_mask 0xf
231 #define init_DSP32Alu \
233 DSP32Alu_opcode, \
234 DSP32Alu_src1_bits, DSP32Alu_src1_mask, \
235 DSP32Alu_src0_bits, DSP32Alu_src0_mask, \
236 DSP32Alu_dst1_bits, DSP32Alu_dst1_mask, \
237 DSP32Alu_dst0_bits, DSP32Alu_dst0_mask, \
238 DSP32Alu_x_bits, DSP32Alu_x_mask, \
239 DSP32Alu_s_bits, DSP32Alu_s_mask, \
240 DSP32Alu_aop_bits, DSP32Alu_aop_mask, \
241 DSP32Alu_aopcde_bits, DSP32Alu_aopcde_mask, \
242 DSP32Alu_HL_bits, DSP32Alu_HL_mask, \
243 DSP32Alu_dontcare_bits, DSP32Alu_dontcare_mask, \
244 DSP32Alu_code2_bits, DSP32Alu_code2_mask, \
245 DSP32Alu_M_bits, DSP32Alu_M_mask, \
246 DSP32Alu_code_bits, DSP32Alu_code_mask \
249 /* dsp32shift
250 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
251 | 1 | 1 | 0 | 0 |.M.| 1 | 1 | 0 | 0 | - | - |.sopcde............|
252 |.sop...|.HLs...|.dst0......| - | - | - |.src0......|.src1......|
253 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
256 typedef struct
258 unsigned long opcode;
259 int bits_src1;
260 int mask_src1;
261 int bits_src0;
262 int mask_src0;
263 int bits_dst1;
264 int mask_dst1;
265 int bits_dst0;
266 int mask_dst0;
267 int bits_HLs;
268 int mask_HLs;
269 int bits_sop;
270 int mask_sop;
271 int bits_sopcde;
272 int mask_sopcde;
273 int bits_dontcare;
274 int mask_dontcare;
275 int bits_code2;
276 int mask_code2;
277 int bits_M;
278 int mask_M;
279 int bits_code;
280 int mask_code;
281 } DSP32Shift;
283 #define DSP32Shift_opcode 0xc6000000
284 #define DSP32Shift_src1_bits 0
285 #define DSP32Shift_src1_mask 0x7
286 #define DSP32Shift_src0_bits 3
287 #define DSP32Shift_src0_mask 0x7
288 #define DSP32Shift_dst1_bits 6
289 #define DSP32Shift_dst1_mask 0x7
290 #define DSP32Shift_dst0_bits 9
291 #define DSP32Shift_dst0_mask 0x7
292 #define DSP32Shift_HLs_bits 12
293 #define DSP32Shift_HLs_mask 0x3
294 #define DSP32Shift_sop_bits 14
295 #define DSP32Shift_sop_mask 0x3
296 #define DSP32Shift_sopcde_bits 16
297 #define DSP32Shift_sopcde_mask 0x1f
298 #define DSP32Shift_dontcare_bits 21
299 #define DSP32Shift_dontcare_mask 0x3
300 #define DSP32Shift_code2_bits 23
301 #define DSP32Shift_code2_mask 0xf
302 #define DSP32Shift_M_bits 27
303 #define DSP32Shift_M_mask 0x1
304 #define DSP32Shift_code_bits 28
305 #define DSP32Shift_code_mask 0xf
307 #define init_DSP32Shift \
309 DSP32Shift_opcode, \
310 DSP32Shift_src1_bits, DSP32Shift_src1_mask, \
311 DSP32Shift_src0_bits, DSP32Shift_src0_mask, \
312 DSP32Shift_dst1_bits, DSP32Shift_dst1_mask, \
313 DSP32Shift_dst0_bits, DSP32Shift_dst0_mask, \
314 DSP32Shift_HLs_bits, DSP32Shift_HLs_mask, \
315 DSP32Shift_sop_bits, DSP32Shift_sop_mask, \
316 DSP32Shift_sopcde_bits, DSP32Shift_sopcde_mask, \
317 DSP32Shift_dontcare_bits, DSP32Shift_dontcare_mask, \
318 DSP32Shift_code2_bits, DSP32Shift_code2_mask, \
319 DSP32Shift_M_bits, DSP32Shift_M_mask, \
320 DSP32Shift_code_bits, DSP32Shift_code_mask \
323 /* dsp32shiftimm
324 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
325 | 1 | 1 | 0 | 0 |.M.| 1 | 1 | 0 | 1 | - | - |.sopcde............|
326 |.sop...|.HLs...|.dst0......|.immag.................|.src1......|
327 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
330 typedef struct
332 unsigned long opcode;
333 int bits_src1;
334 int mask_src1;
335 int bits_immag;
336 int mask_immag;
337 int bits_dst0;
338 int mask_dst0;
339 int bits_HLs;
340 int mask_HLs;
341 int bits_sop;
342 int mask_sop;
343 int bits_sopcde;
344 int mask_sopcde;
345 int bits_dontcare;
346 int mask_dontcare;
347 int bits_code2;
348 int mask_code2;
349 int bits_M;
350 int mask_M;
351 int bits_code;
352 int mask_code;
353 } DSP32ShiftImm;
355 #define DSP32ShiftImm_opcode 0xc6800000
356 #define DSP32ShiftImm_src1_bits 0
357 #define DSP32ShiftImm_src1_mask 0x7
358 #define DSP32ShiftImm_immag_bits 3
359 #define DSP32ShiftImm_immag_mask 0x3f
360 #define DSP32ShiftImm_dst0_bits 9
361 #define DSP32ShiftImm_dst0_mask 0x7
362 #define DSP32ShiftImm_HLs_bits 12
363 #define DSP32ShiftImm_HLs_mask 0x3
364 #define DSP32ShiftImm_sop_bits 14
365 #define DSP32ShiftImm_sop_mask 0x3
366 #define DSP32ShiftImm_sopcde_bits 16
367 #define DSP32ShiftImm_sopcde_mask 0x1f
368 #define DSP32ShiftImm_dontcare_bits 21
369 #define DSP32ShiftImm_dontcare_mask 0x3
370 #define DSP32ShiftImm_code2_bits 23
371 #define DSP32ShiftImm_code2_mask 0xf
372 #define DSP32ShiftImm_M_bits 27
373 #define DSP32ShiftImm_M_mask 0x1
374 #define DSP32ShiftImm_code_bits 28
375 #define DSP32ShiftImm_code_mask 0xf
377 #define init_DSP32ShiftImm \
379 DSP32ShiftImm_opcode, \
380 DSP32ShiftImm_src1_bits, DSP32ShiftImm_src1_mask, \
381 DSP32ShiftImm_immag_bits, DSP32ShiftImm_immag_mask, \
382 DSP32ShiftImm_dst0_bits, DSP32ShiftImm_dst0_mask, \
383 DSP32ShiftImm_HLs_bits, DSP32ShiftImm_HLs_mask, \
384 DSP32ShiftImm_sop_bits, DSP32ShiftImm_sop_mask, \
385 DSP32ShiftImm_sopcde_bits, DSP32ShiftImm_sopcde_mask, \
386 DSP32ShiftImm_dontcare_bits, DSP32ShiftImm_dontcare_mask, \
387 DSP32ShiftImm_code2_bits, DSP32ShiftImm_code2_mask, \
388 DSP32ShiftImm_M_bits, DSP32ShiftImm_M_mask, \
389 DSP32ShiftImm_code_bits, DSP32ShiftImm_code_mask \
392 /* LOAD / STORE */
394 /* LDSTidxI
395 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
396 | 1 | 1 | 1 | 0 | 0 | 1 |.W.|.Z.|.sz....|.ptr.......|.reg.......|
397 |.offset........................................................|
398 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
401 typedef struct
403 unsigned long opcode;
404 int bits_offset;
405 int mask_offset;
406 int bits_reg;
407 int mask_reg;
408 int bits_ptr;
409 int mask_ptr;
410 int bits_sz;
411 int mask_sz;
412 int bits_Z;
413 int mask_Z;
414 int bits_W;
415 int mask_W;
416 int bits_code;
417 int mask_code;
418 } LDSTidxI;
420 #define LDSTidxI_opcode 0xe4000000
421 #define LDSTidxI_offset_bits 0
422 #define LDSTidxI_offset_mask 0xffff
423 #define LDSTidxI_reg_bits 16
424 #define LDSTidxI_reg_mask 0x7
425 #define LDSTidxI_ptr_bits 19
426 #define LDSTidxI_ptr_mask 0x7
427 #define LDSTidxI_sz_bits 22
428 #define LDSTidxI_sz_mask 0x3
429 #define LDSTidxI_Z_bits 24
430 #define LDSTidxI_Z_mask 0x1
431 #define LDSTidxI_W_bits 25
432 #define LDSTidxI_W_mask 0x1
433 #define LDSTidxI_code_bits 26
434 #define LDSTidxI_code_mask 0x3f
436 #define init_LDSTidxI \
438 LDSTidxI_opcode, \
439 LDSTidxI_offset_bits, LDSTidxI_offset_mask, \
440 LDSTidxI_reg_bits, LDSTidxI_reg_mask, \
441 LDSTidxI_ptr_bits, LDSTidxI_ptr_mask, \
442 LDSTidxI_sz_bits, LDSTidxI_sz_mask, \
443 LDSTidxI_Z_bits, LDSTidxI_Z_mask, \
444 LDSTidxI_W_bits, LDSTidxI_W_mask, \
445 LDSTidxI_code_bits, LDSTidxI_code_mask \
449 /* LDST
450 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
451 | 1 | 0 | 0 | 1 |.sz....|.W.|.aop...|.Z.|.ptr.......|.reg.......|
452 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
455 typedef struct
457 unsigned short opcode;
458 int bits_reg;
459 int mask_reg;
460 int bits_ptr;
461 int mask_ptr;
462 int bits_Z;
463 int mask_Z;
464 int bits_aop;
465 int mask_aop;
466 int bits_W;
467 int mask_W;
468 int bits_sz;
469 int mask_sz;
470 int bits_code;
471 int mask_code;
472 } LDST;
474 #define LDST_opcode 0x9000
475 #define LDST_reg_bits 0
476 #define LDST_reg_mask 0x7
477 #define LDST_ptr_bits 3
478 #define LDST_ptr_mask 0x7
479 #define LDST_Z_bits 6
480 #define LDST_Z_mask 0x1
481 #define LDST_aop_bits 7
482 #define LDST_aop_mask 0x3
483 #define LDST_W_bits 9
484 #define LDST_W_mask 0x1
485 #define LDST_sz_bits 10
486 #define LDST_sz_mask 0x3
487 #define LDST_code_bits 12
488 #define LDST_code_mask 0xf
490 #define init_LDST \
492 LDST_opcode, \
493 LDST_reg_bits, LDST_reg_mask, \
494 LDST_ptr_bits, LDST_ptr_mask, \
495 LDST_Z_bits, LDST_Z_mask, \
496 LDST_aop_bits, LDST_aop_mask, \
497 LDST_W_bits, LDST_W_mask, \
498 LDST_sz_bits, LDST_sz_mask, \
499 LDST_code_bits, LDST_code_mask \
502 /* LDSTii
503 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
504 | 1 | 0 | 1 |.W.|.op....|.offset........|.ptr.......|.reg.......|
505 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
508 typedef struct
510 unsigned short opcode;
511 int bits_reg;
512 int mask_reg;
513 int bits_ptr;
514 int mask_ptr;
515 int bits_offset;
516 int mask_offset;
517 int bits_op;
518 int mask_op;
519 int bits_W;
520 int mask_W;
521 int bits_code;
522 int mask_code;
523 } LDSTii;
525 #define LDSTii_opcode 0xa000
526 #define LDSTii_reg_bit 0
527 #define LDSTii_reg_mask 0x7
528 #define LDSTii_ptr_bit 3
529 #define LDSTii_ptr_mask 0x7
530 #define LDSTii_offset_bit 6
531 #define LDSTii_offset_mask 0xf
532 #define LDSTii_op_bit 10
533 #define LDSTii_op_mask 0x3
534 #define LDSTii_W_bit 12
535 #define LDSTii_W_mask 0x1
536 #define LDSTii_code_bit 13
537 #define LDSTii_code_mask 0x7
539 #define init_LDSTii \
541 LDSTii_opcode, \
542 LDSTii_reg_bit, LDSTii_reg_mask, \
543 LDSTii_ptr_bit, LDSTii_ptr_mask, \
544 LDSTii_offset_bit, LDSTii_offset_mask, \
545 LDSTii_op_bit, LDSTii_op_mask, \
546 LDSTii_W_bit, LDSTii_W_mask, \
547 LDSTii_code_bit, LDSTii_code_mask \
551 /* LDSTiiFP
552 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
553 | 1 | 0 | 1 | 1 | 1 | 0 |.W.|.offset............|.reg...........|
554 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
557 typedef struct
559 unsigned short opcode;
560 int bits_reg;
561 int mask_reg;
562 int bits_offset;
563 int mask_offset;
564 int bits_W;
565 int mask_W;
566 int bits_code;
567 int mask_code;
568 } LDSTiiFP;
570 #define LDSTiiFP_opcode 0xb800
571 #define LDSTiiFP_reg_bits 0
572 #define LDSTiiFP_reg_mask 0xf
573 #define LDSTiiFP_offset_bits 4
574 #define LDSTiiFP_offset_mask 0x1f
575 #define LDSTiiFP_W_bits 9
576 #define LDSTiiFP_W_mask 0x1
577 #define LDSTiiFP_code_bits 10
578 #define LDSTiiFP_code_mask 0x3f
580 #define init_LDSTiiFP \
582 LDSTiiFP_opcode, \
583 LDSTiiFP_reg_bits, LDSTiiFP_reg_mask, \
584 LDSTiiFP_offset_bits, LDSTiiFP_offset_mask, \
585 LDSTiiFP_W_bits, LDSTiiFP_W_mask, \
586 LDSTiiFP_code_bits, LDSTiiFP_code_mask \
589 /* dspLDST
590 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
591 | 1 | 0 | 0 | 1 | 1 | 1 |.W.|.aop...|.m.....|.i.....|.reg.......|
592 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
595 typedef struct
597 unsigned short opcode;
598 int bits_reg;
599 int mask_reg;
600 int bits_i;
601 int mask_i;
602 int bits_m;
603 int mask_m;
604 int bits_aop;
605 int mask_aop;
606 int bits_W;
607 int mask_W;
608 int bits_code;
609 int mask_code;
610 } DspLDST;
612 #define DspLDST_opcode 0x9c00
613 #define DspLDST_reg_bits 0
614 #define DspLDST_reg_mask 0x7
615 #define DspLDST_i_bits 3
616 #define DspLDST_i_mask 0x3
617 #define DspLDST_m_bits 5
618 #define DspLDST_m_mask 0x3
619 #define DspLDST_aop_bits 7
620 #define DspLDST_aop_mask 0x3
621 #define DspLDST_W_bits 9
622 #define DspLDST_W_mask 0x1
623 #define DspLDST_code_bits 10
624 #define DspLDST_code_mask 0x3f
626 #define init_DspLDST \
628 DspLDST_opcode, \
629 DspLDST_reg_bits, DspLDST_reg_mask, \
630 DspLDST_i_bits, DspLDST_i_mask, \
631 DspLDST_m_bits, DspLDST_m_mask, \
632 DspLDST_aop_bits, DspLDST_aop_mask, \
633 DspLDST_W_bits, DspLDST_W_mask, \
634 DspLDST_code_bits, DspLDST_code_mask \
638 /* LDSTpmod
639 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
640 | 1 | 0 | 0 | 0 |.W.|.aop...|.reg.......|.idx.......|.ptr.......|
641 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
644 typedef struct
646 unsigned short opcode;
647 int bits_ptr;
648 int mask_ptr;
649 int bits_idx;
650 int mask_idx;
651 int bits_reg;
652 int mask_reg;
653 int bits_aop;
654 int mask_aop;
655 int bits_W;
656 int mask_W;
657 int bits_code;
658 int mask_code;
659 } LDSTpmod;
661 #define LDSTpmod_opcode 0x8000
662 #define LDSTpmod_ptr_bits 0
663 #define LDSTpmod_ptr_mask 0x7
664 #define LDSTpmod_idx_bits 3
665 #define LDSTpmod_idx_mask 0x7
666 #define LDSTpmod_reg_bits 6
667 #define LDSTpmod_reg_mask 0x7
668 #define LDSTpmod_aop_bits 9
669 #define LDSTpmod_aop_mask 0x3
670 #define LDSTpmod_W_bits 11
671 #define LDSTpmod_W_mask 0x1
672 #define LDSTpmod_code_bits 12
673 #define LDSTpmod_code_mask 0xf
675 #define init_LDSTpmod \
677 LDSTpmod_opcode, \
678 LDSTpmod_ptr_bits, LDSTpmod_ptr_mask, \
679 LDSTpmod_idx_bits, LDSTpmod_idx_mask, \
680 LDSTpmod_reg_bits, LDSTpmod_reg_mask, \
681 LDSTpmod_aop_bits, LDSTpmod_aop_mask, \
682 LDSTpmod_W_bits, LDSTpmod_W_mask, \
683 LDSTpmod_code_bits, LDSTpmod_code_mask \
687 /* LOGI2op
688 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
689 | 0 | 1 | 0 | 0 | 1 |.opc.......|.src...............|.dst.......|
690 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
693 typedef struct
695 unsigned short opcode;
696 int bits_dst;
697 int mask_dst;
698 int bits_src;
699 int mask_src;
700 int bits_opc;
701 int mask_opc;
702 int bits_code;
703 int mask_code;
704 } LOGI2op;
706 #define LOGI2op_opcode 0x4800
707 #define LOGI2op_dst_bits 0
708 #define LOGI2op_dst_mask 0x7
709 #define LOGI2op_src_bits 3
710 #define LOGI2op_src_mask 0x1f
711 #define LOGI2op_opc_bits 8
712 #define LOGI2op_opc_mask 0x7
713 #define LOGI2op_code_bits 11
714 #define LOGI2op_code_mask 0x1f
716 #define init_LOGI2op \
718 LOGI2op_opcode, \
719 LOGI2op_dst_bits, LOGI2op_dst_mask, \
720 LOGI2op_src_bits, LOGI2op_src_mask, \
721 LOGI2op_opc_bits, LOGI2op_opc_mask, \
722 LOGI2op_code_bits, LOGI2op_code_mask \
726 /* ALU2op
727 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
728 | 0 | 1 | 0 | 0 | 0 | 0 |.opc...........|.src.......|.dst.......|
729 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
732 typedef struct
734 unsigned short opcode;
735 int bits_dst;
736 int mask_dst;
737 int bits_src;
738 int mask_src;
739 int bits_opc;
740 int mask_opc;
741 int bits_code;
742 int mask_code;
743 } ALU2op;
745 #define ALU2op_opcode 0x4000
746 #define ALU2op_dst_bits 0
747 #define ALU2op_dst_mask 0x7
748 #define ALU2op_src_bits 3
749 #define ALU2op_src_mask 0x7
750 #define ALU2op_opc_bits 6
751 #define ALU2op_opc_mask 0xf
752 #define ALU2op_code_bits 10
753 #define ALU2op_code_mask 0x3f
755 #define init_ALU2op \
757 ALU2op_opcode, \
758 ALU2op_dst_bits, ALU2op_dst_mask, \
759 ALU2op_src_bits, ALU2op_src_mask, \
760 ALU2op_opc_bits, ALU2op_opc_mask, \
761 ALU2op_code_bits, ALU2op_code_mask \
765 /* BRCC
766 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
767 | 0 | 0 | 0 | 1 |.T.|.B.|.offset................................|
768 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
771 typedef struct
773 unsigned short opcode;
774 int bits_offset;
775 int mask_offset;
776 int bits_B;
777 int mask_B;
778 int bits_T;
779 int mask_T;
780 int bits_code;
781 int mask_code;
782 } BRCC;
784 #define BRCC_opcode 0x1000
785 #define BRCC_offset_bits 0
786 #define BRCC_offset_mask 0x3ff
787 #define BRCC_B_bits 10
788 #define BRCC_B_mask 0x1
789 #define BRCC_T_bits 11
790 #define BRCC_T_mask 0x1
791 #define BRCC_code_bits 12
792 #define BRCC_code_mask 0xf
794 #define init_BRCC \
796 BRCC_opcode, \
797 BRCC_offset_bits, BRCC_offset_mask, \
798 BRCC_B_bits, BRCC_B_mask, \
799 BRCC_T_bits, BRCC_T_mask, \
800 BRCC_code_bits, BRCC_code_mask \
804 /* UJUMP
805 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
806 | 0 | 0 | 1 | 0 |.offset........................................|
807 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
810 typedef struct
812 unsigned short opcode;
813 int bits_offset;
814 int mask_offset;
815 int bits_code;
816 int mask_code;
817 } UJump;
819 #define UJump_opcode 0x2000
820 #define UJump_offset_bits 0
821 #define UJump_offset_mask 0xfff
822 #define UJump_code_bits 12
823 #define UJump_code_mask 0xf
825 #define init_UJump \
827 UJump_opcode, \
828 UJump_offset_bits, UJump_offset_mask, \
829 UJump_code_bits, UJump_code_mask \
833 /* ProgCtrl
834 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
835 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.prgfunc.......|.poprnd........|
836 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
839 typedef struct
841 unsigned short opcode;
842 int bits_poprnd;
843 int mask_poprnd;
844 int bits_prgfunc;
845 int mask_prgfunc;
846 int bits_code;
847 int mask_code;
848 } ProgCtrl;
850 #define ProgCtrl_opcode 0x0000
851 #define ProgCtrl_poprnd_bits 0
852 #define ProgCtrl_poprnd_mask 0xf
853 #define ProgCtrl_prgfunc_bits 4
854 #define ProgCtrl_prgfunc_mask 0xf
855 #define ProgCtrl_code_bits 8
856 #define ProgCtrl_code_mask 0xff
858 #define init_ProgCtrl \
860 ProgCtrl_opcode, \
861 ProgCtrl_poprnd_bits, ProgCtrl_poprnd_mask, \
862 ProgCtrl_prgfunc_bits, ProgCtrl_prgfunc_mask, \
863 ProgCtrl_code_bits, ProgCtrl_code_mask \
866 /* CALLa
867 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
868 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |.S.|.msw...........................|
869 |.lsw...........................................................|
870 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
874 typedef struct
876 unsigned long opcode;
877 int bits_addr;
878 int mask_addr;
879 int bits_S;
880 int mask_S;
881 int bits_code;
882 int mask_code;
883 } CALLa;
885 #define CALLa_opcode 0xe2000000
886 #define CALLa_addr_bits 0
887 #define CALLa_addr_mask 0xffffff
888 #define CALLa_S_bits 24
889 #define CALLa_S_mask 0x1
890 #define CALLa_code_bits 25
891 #define CALLa_code_mask 0x7f
893 #define init_CALLa \
895 CALLa_opcode, \
896 CALLa_addr_bits, CALLa_addr_mask, \
897 CALLa_S_bits, CALLa_S_mask, \
898 CALLa_code_bits, CALLa_code_mask \
902 /* pseudoDEBUG
903 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
904 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |.fn....|.grp.......|.reg.......|
905 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
908 typedef struct
910 unsigned short opcode;
911 int bits_reg;
912 int mask_reg;
913 int bits_grp;
914 int mask_grp;
915 int bits_fn;
916 int mask_fn;
917 int bits_code;
918 int mask_code;
919 } PseudoDbg;
921 #define PseudoDbg_opcode 0xf800
922 #define PseudoDbg_reg_bits 0
923 #define PseudoDbg_reg_mask 0x7
924 #define PseudoDbg_grp_bits 3
925 #define PseudoDbg_grp_mask 0x7
926 #define PseudoDbg_fn_bits 6
927 #define PseudoDbg_fn_mask 0x3
928 #define PseudoDbg_code_bits 8
929 #define PseudoDbg_code_mask 0xff
931 #define init_PseudoDbg \
933 PseudoDbg_opcode, \
934 PseudoDbg_reg_bits, PseudoDbg_reg_mask, \
935 PseudoDbg_grp_bits, PseudoDbg_grp_mask, \
936 PseudoDbg_fn_bits, PseudoDbg_fn_mask, \
937 PseudoDbg_code_bits, PseudoDbg_code_mask \
940 /* PseudoDbg_assert
941 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
942 | 1 | 1 | 1 | 1 | 0 | - | - | - | - | - |.dbgop.....|.regtest...|
943 |.expected......................................................|
944 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
947 typedef struct
949 unsigned long opcode;
950 int bits_expected;
951 int mask_expected;
952 int bits_regtest;
953 int mask_regtest;
954 int bits_dbgop;
955 int mask_dbgop;
956 int bits_dontcare;
957 int mask_dontcare;
958 int bits_code;
959 int mask_code;
960 } PseudoDbg_Assert;
962 #define PseudoDbg_Assert_opcode 0xf0000000
963 #define PseudoDbg_Assert_expected_bits 0
964 #define PseudoDbg_Assert_expected_mask 0xffff
965 #define PseudoDbg_Assert_regtest_bits 16
966 #define PseudoDbg_Assert_regtest_mask 0x7
967 #define PseudoDbg_Assert_dbgop_bits 19
968 #define PseudoDbg_Assert_dbgop_mask 0x7
969 #define PseudoDbg_Assert_dontcare_bits 22
970 #define PseudoDbg_Assert_dontcare_mask 0x1f
971 #define PseudoDbg_Assert_code_bits 27
972 #define PseudoDbg_Assert_code_mask 0x1f
974 #define init_PseudoDbg_Assert \
976 PseudoDbg_Assert_opcode, \
977 PseudoDbg_Assert_expected_bits, PseudoDbg_Assert_expected_mask, \
978 PseudoDbg_Assert_regtest_bits, PseudoDbg_Assert_regtest_mask, \
979 PseudoDbg_Assert_dbgop_bits, PseudoDbg_Assert_dbgop_mask, \
980 PseudoDbg_Assert_dontcare_bits, PseudoDbg_Assert_dontcare_mask, \
981 PseudoDbg_Assert_code_bits, PseudoDbg_Assert_code_mask \
984 /* CaCTRL
985 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
986 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |.a.|.op....|.reg.......|
987 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
990 typedef struct
992 unsigned short opcode;
993 int bits_reg;
994 int mask_reg;
995 int bits_op;
996 int mask_op;
997 int bits_a;
998 int mask_a;
999 int bits_code;
1000 int mask_code;
1001 } CaCTRL;
1003 #define CaCTRL_opcode 0x0240
1004 #define CaCTRL_reg_bits 0
1005 #define CaCTRL_reg_mask 0x7
1006 #define CaCTRL_op_bits 3
1007 #define CaCTRL_op_mask 0x3
1008 #define CaCTRL_a_bits 5
1009 #define CaCTRL_a_mask 0x1
1010 #define CaCTRL_code_bits 6
1011 #define CaCTRL_code_mask 0x3fff
1013 #define init_CaCTRL \
1015 CaCTRL_opcode, \
1016 CaCTRL_reg_bits, CaCTRL_reg_mask, \
1017 CaCTRL_op_bits, CaCTRL_op_mask, \
1018 CaCTRL_a_bits, CaCTRL_a_mask, \
1019 CaCTRL_code_bits, CaCTRL_code_mask \
1022 /* PushPopMultiple
1023 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1024 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |.d.|.p.|.W.|.dr........|.pr........|
1025 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1028 typedef struct
1030 unsigned short opcode;
1031 int bits_pr;
1032 int mask_pr;
1033 int bits_dr;
1034 int mask_dr;
1035 int bits_W;
1036 int mask_W;
1037 int bits_p;
1038 int mask_p;
1039 int bits_d;
1040 int mask_d;
1041 int bits_code;
1042 int mask_code;
1043 } PushPopMultiple;
1045 #define PushPopMultiple_opcode 0x0400
1046 #define PushPopMultiple_pr_bits 0
1047 #define PushPopMultiple_pr_mask 0x7
1048 #define PushPopMultiple_dr_bits 3
1049 #define PushPopMultiple_dr_mask 0x7
1050 #define PushPopMultiple_W_bits 6
1051 #define PushPopMultiple_W_mask 0x1
1052 #define PushPopMultiple_p_bits 7
1053 #define PushPopMultiple_p_mask 0x1
1054 #define PushPopMultiple_d_bits 8
1055 #define PushPopMultiple_d_mask 0x1
1056 #define PushPopMultiple_code_bits 8
1057 #define PushPopMultiple_code_mask 0x1
1059 #define init_PushPopMultiple \
1061 PushPopMultiple_opcode, \
1062 PushPopMultiple_pr_bits, PushPopMultiple_pr_mask, \
1063 PushPopMultiple_dr_bits, PushPopMultiple_dr_mask, \
1064 PushPopMultiple_W_bits, PushPopMultiple_W_mask, \
1065 PushPopMultiple_p_bits, PushPopMultiple_p_mask, \
1066 PushPopMultiple_d_bits, PushPopMultiple_d_mask, \
1067 PushPopMultiple_code_bits, PushPopMultiple_code_mask \
1070 /* PushPopReg
1071 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1072 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |.W.|.grp.......|.reg.......|
1073 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1076 typedef struct
1078 unsigned short opcode;
1079 int bits_reg;
1080 int mask_reg;
1081 int bits_grp;
1082 int mask_grp;
1083 int bits_W;
1084 int mask_W;
1085 int bits_code;
1086 int mask_code;
1087 } PushPopReg;
1089 #define PushPopReg_opcode 0x0100
1090 #define PushPopReg_reg_bits 0
1091 #define PushPopReg_reg_mask 0x7
1092 #define PushPopReg_grp_bits 3
1093 #define PushPopReg_grp_mask 0x7
1094 #define PushPopReg_W_bits 6
1095 #define PushPopReg_W_mask 0x1
1096 #define PushPopReg_code_bits 7
1097 #define PushPopReg_code_mask 0x1ff
1099 #define init_PushPopReg \
1101 PushPopReg_opcode, \
1102 PushPopReg_reg_bits, PushPopReg_reg_mask, \
1103 PushPopReg_grp_bits, PushPopReg_grp_mask, \
1104 PushPopReg_W_bits, PushPopReg_W_mask, \
1105 PushPopReg_code_bits, PushPopReg_code_mask, \
1108 /* linkage
1109 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1110 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.R.|
1111 |.framesize.....................................................|
1112 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1115 typedef struct
1117 unsigned long opcode;
1118 int bits_framesize;
1119 int mask_framesize;
1120 int bits_R;
1121 int mask_R;
1122 int bits_code;
1123 int mask_code;
1124 } Linkage;
1126 #define Linkage_opcode 0xe8000000
1127 #define Linkage_framesize_bits 0
1128 #define Linkage_framesize_mask 0xffff
1129 #define Linkage_R_bits 16
1130 #define Linkage_R_mask 0x1
1131 #define Linkage_code_bits 17
1132 #define Linkage_code_mask 0x7fff
1134 #define init_Linkage \
1136 Linkage_opcode, \
1137 Linkage_framesize_bits, Linkage_framesize_mask, \
1138 Linkage_R_bits, Linkage_R_mask, \
1139 Linkage_code_bits, Linkage_code_mask \
1142 /* LoopSetup
1143 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1144 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |.rop...|.c.|.soffset.......|
1145 |.reg...........| - | - |.eoffset...............................|
1146 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1149 typedef struct
1151 unsigned long opcode;
1152 int bits_eoffset;
1153 int mask_eoffset;
1154 int bits_dontcare;
1155 int mask_dontcare;
1156 int bits_reg;
1157 int mask_reg;
1158 int bits_soffset;
1159 int mask_soffset;
1160 int bits_c;
1161 int mask_c;
1162 int bits_rop;
1163 int mask_rop;
1164 int bits_code;
1165 int mask_code;
1166 } LoopSetup;
1168 #define LoopSetup_opcode 0xe0800000
1169 #define LoopSetup_eoffset_bits 0
1170 #define LoopSetup_eoffset_mask 0x3ff
1171 #define LoopSetup_dontcare_bits 10
1172 #define LoopSetup_dontcare_mask 0x3
1173 #define LoopSetup_reg_bits 12
1174 #define LoopSetup_reg_mask 0xf
1175 #define LoopSetup_soffset_bits 16
1176 #define LoopSetup_soffset_mask 0xf
1177 #define LoopSetup_c_bits 20
1178 #define LoopSetup_c_mask 0x1
1179 #define LoopSetup_rop_bits 21
1180 #define LoopSetup_rop_mask 0x3
1181 #define LoopSetup_code_bits 23
1182 #define LoopSetup_code_mask 0x1ff
1184 #define init_LoopSetup \
1186 LoopSetup_opcode, \
1187 LoopSetup_eoffset_bits, LoopSetup_eoffset_mask, \
1188 LoopSetup_dontcare_bits, LoopSetup_dontcare_mask, \
1189 LoopSetup_reg_bits, LoopSetup_reg_mask, \
1190 LoopSetup_soffset_bits, LoopSetup_soffset_mask, \
1191 LoopSetup_c_bits, LoopSetup_c_mask, \
1192 LoopSetup_rop_bits, LoopSetup_rop_mask, \
1193 LoopSetup_code_bits, LoopSetup_code_mask \
1196 /* LDIMMhalf
1197 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1198 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |.Z.|.H.|.S.|.grp...|.reg.......|
1199 |.hword.........................................................|
1200 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1203 typedef struct
1205 unsigned long opcode;
1206 int bits_hword;
1207 int mask_hword;
1208 int bits_reg;
1209 int mask_reg;
1210 int bits_grp;
1211 int mask_grp;
1212 int bits_S;
1213 int mask_S;
1214 int bits_H;
1215 int mask_H;
1216 int bits_Z;
1217 int mask_Z;
1218 int bits_code;
1219 int mask_code;
1220 } LDIMMhalf;
1222 #define LDIMMhalf_opcode 0xe1000000
1223 #define LDIMMhalf_hword_bits 0
1224 #define LDIMMhalf_hword_mask 0xffff
1225 #define LDIMMhalf_reg_bits 16
1226 #define LDIMMhalf_reg_mask 0x7
1227 #define LDIMMhalf_grp_bits 19
1228 #define LDIMMhalf_grp_mask 0x3
1229 #define LDIMMhalf_S_bits 21
1230 #define LDIMMhalf_S_mask 0x1
1231 #define LDIMMhalf_H_bits 22
1232 #define LDIMMhalf_H_mask 0x1
1233 #define LDIMMhalf_Z_bits 23
1234 #define LDIMMhalf_Z_mask 0x1
1235 #define LDIMMhalf_code_bits 24
1236 #define LDIMMhalf_code_mask 0xff
1238 #define init_LDIMMhalf \
1240 LDIMMhalf_opcode, \
1241 LDIMMhalf_hword_bits, LDIMMhalf_hword_mask, \
1242 LDIMMhalf_reg_bits, LDIMMhalf_reg_mask, \
1243 LDIMMhalf_grp_bits, LDIMMhalf_grp_mask, \
1244 LDIMMhalf_S_bits, LDIMMhalf_S_mask, \
1245 LDIMMhalf_H_bits, LDIMMhalf_H_mask, \
1246 LDIMMhalf_Z_bits, LDIMMhalf_Z_mask, \
1247 LDIMMhalf_code_bits, LDIMMhalf_code_mask \
1251 /* CC2dreg
1252 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1253 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |.op....|.reg.......|
1254 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1257 typedef struct
1259 unsigned short opcode;
1260 int bits_reg;
1261 int mask_reg;
1262 int bits_op;
1263 int mask_op;
1264 int bits_code;
1265 int mask_code;
1266 } CC2dreg;
1268 #define CC2dreg_opcode 0x0200
1269 #define CC2dreg_reg_bits 0
1270 #define CC2dreg_reg_mask 0x7
1271 #define CC2dreg_op_bits 3
1272 #define CC2dreg_op_mask 0x3
1273 #define CC2dreg_code_bits 5
1274 #define CC2dreg_code_mask 0x7fff
1276 #define init_CC2dreg \
1278 CC2dreg_opcode, \
1279 CC2dreg_reg_bits, CC2dreg_reg_mask, \
1280 CC2dreg_op_bits, CC2dreg_op_mask, \
1281 CC2dreg_code_bits, CC2dreg_code_mask \
1285 /* PTR2op
1286 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1287 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |.opc.......|.src.......|.dst.......|
1288 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1291 typedef struct
1293 unsigned short opcode;
1294 int bits_dst;
1295 int mask_dst;
1296 int bits_src;
1297 int mask_src;
1298 int bits_opc;
1299 int mask_opc;
1300 int bits_code;
1301 int mask_code;
1302 } PTR2op;
1304 #define PTR2op_opcode 0x4400
1305 #define PTR2op_dst_bits 0
1306 #define PTR2op_dst_mask 0x7
1307 #define PTR2op_src_bits 3
1308 #define PTR2op_src_mask 0x7
1309 #define PTR2op_opc_bits 6
1310 #define PTR2op_opc_mask 0x7
1311 #define PTR2op_code_bits 9
1312 #define PTR2op_code_mask 0x7f
1314 #define init_PTR2op \
1316 PTR2op_opcode, \
1317 PTR2op_dst_bits, PTR2op_dst_mask, \
1318 PTR2op_src_bits, PTR2op_src_mask, \
1319 PTR2op_opc_bits, PTR2op_opc_mask, \
1320 PTR2op_code_bits, PTR2op_code_mask \
1324 /* COMP3op
1325 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1326 | 0 | 1 | 0 | 1 |.opc.......|.dst.......|.src1......|.src0......|
1327 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1330 typedef struct
1332 unsigned short opcode;
1333 int bits_src0;
1334 int mask_src0;
1335 int bits_src1;
1336 int mask_src1;
1337 int bits_dst;
1338 int mask_dst;
1339 int bits_opc;
1340 int mask_opc;
1341 int bits_code;
1342 int mask_code;
1343 } COMP3op;
1345 #define COMP3op_opcode 0x5000
1346 #define COMP3op_src0_bits 0
1347 #define COMP3op_src0_mask 0x7
1348 #define COMP3op_src1_bits 3
1349 #define COMP3op_src1_mask 0x7
1350 #define COMP3op_dst_bits 6
1351 #define COMP3op_dst_mask 0x7
1352 #define COMP3op_opc_bits 9
1353 #define COMP3op_opc_mask 0x7
1354 #define COMP3op_code_bits 12
1355 #define COMP3op_code_mask 0xf
1357 #define init_COMP3op \
1359 COMP3op_opcode, \
1360 COMP3op_src0_bits, COMP3op_src0_mask, \
1361 COMP3op_src1_bits, COMP3op_src1_mask, \
1362 COMP3op_dst_bits, COMP3op_dst_mask, \
1363 COMP3op_opc_bits, COMP3op_opc_mask, \
1364 COMP3op_code_bits, COMP3op_code_mask \
1367 /* ccMV
1368 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1369 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |.T.|.d.|.s.|.dst.......|.src.......|
1370 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1373 typedef struct
1375 unsigned short opcode;
1376 int bits_src;
1377 int mask_src;
1378 int bits_dst;
1379 int mask_dst;
1380 int bits_s;
1381 int mask_s;
1382 int bits_d;
1383 int mask_d;
1384 int bits_T;
1385 int mask_T;
1386 int bits_code;
1387 int mask_code;
1388 } CCmv;
1390 #define CCmv_opcode 0x0600
1391 #define CCmv_src_bits 0
1392 #define CCmv_src_mask 0x7
1393 #define CCmv_dst_bits 3
1394 #define CCmv_dst_mask 0x7
1395 #define CCmv_s_bits 6
1396 #define CCmv_s_mask 0x1
1397 #define CCmv_d_bits 7
1398 #define CCmv_d_mask 0x1
1399 #define CCmv_T_bits 8
1400 #define CCmv_T_mask 0x1
1401 #define CCmv_code_bits 9
1402 #define CCmv_code_mask 0x7f
1404 #define init_CCmv \
1406 CCmv_opcode, \
1407 CCmv_src_bits, CCmv_src_mask, \
1408 CCmv_dst_bits, CCmv_dst_mask, \
1409 CCmv_s_bits, CCmv_s_mask, \
1410 CCmv_d_bits, CCmv_d_mask, \
1411 CCmv_T_bits, CCmv_T_mask, \
1412 CCmv_code_bits, CCmv_code_mask \
1416 /* CCflag
1417 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1418 | 0 | 0 | 0 | 0 | 1 |.I.|.opc.......|.G.|.y.........|.x.........|
1419 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1422 typedef struct
1424 unsigned short opcode;
1425 int bits_x;
1426 int mask_x;
1427 int bits_y;
1428 int mask_y;
1429 int bits_G;
1430 int mask_G;
1431 int bits_opc;
1432 int mask_opc;
1433 int bits_I;
1434 int mask_I;
1435 int bits_code;
1436 int mask_code;
1437 } CCflag;
1439 #define CCflag_opcode 0x0800
1440 #define CCflag_x_bits 0
1441 #define CCflag_x_mask 0x7
1442 #define CCflag_y_bits 3
1443 #define CCflag_y_mask 0x7
1444 #define CCflag_G_bits 6
1445 #define CCflag_G_mask 0x1
1446 #define CCflag_opc_bits 7
1447 #define CCflag_opc_mask 0x7
1448 #define CCflag_I_bits 10
1449 #define CCflag_I_mask 0x1
1450 #define CCflag_code_bits 11
1451 #define CCflag_code_mask 0x1f
1453 #define init_CCflag \
1455 CCflag_opcode, \
1456 CCflag_x_bits, CCflag_x_mask, \
1457 CCflag_y_bits, CCflag_y_mask, \
1458 CCflag_G_bits, CCflag_G_mask, \
1459 CCflag_opc_bits, CCflag_opc_mask, \
1460 CCflag_I_bits, CCflag_I_mask, \
1461 CCflag_code_bits, CCflag_code_mask, \
1465 /* CC2stat
1466 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1467 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |.D.|.op....|.cbit..............|
1468 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1471 typedef struct
1473 unsigned short opcode;
1474 int bits_cbit;
1475 int mask_cbit;
1476 int bits_op;
1477 int mask_op;
1478 int bits_D;
1479 int mask_D;
1480 int bits_code;
1481 int mask_code;
1482 } CC2stat;
1484 #define CC2stat_opcode 0x0300
1485 #define CC2stat_cbit_bits 0
1486 #define CC2stat_cbit_mask 0x1f
1487 #define CC2stat_op_bits 5
1488 #define CC2stat_op_mask 0x3
1489 #define CC2stat_D_bits 7
1490 #define CC2stat_D_mask 0x1
1491 #define CC2stat_code_bits 8
1492 #define CC2stat_code_mask 0xff
1494 #define init_CC2stat \
1496 CC2stat_opcode, \
1497 CC2stat_cbit_bits, CC2stat_cbit_mask, \
1498 CC2stat_op_bits, CC2stat_op_mask, \
1499 CC2stat_D_bits, CC2stat_D_mask, \
1500 CC2stat_code_bits, CC2stat_code_mask \
1504 /* REGMV
1505 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1506 | 0 | 0 | 1 | 1 |.gd........|.gs........|.dst.......|.src.......|
1507 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1510 typedef struct
1512 unsigned short opcode;
1513 int bits_src;
1514 int mask_src;
1515 int bits_dst;
1516 int mask_dst;
1517 int bits_gs;
1518 int mask_gs;
1519 int bits_gd;
1520 int mask_gd;
1521 int bits_code;
1522 int mask_code;
1523 } RegMv;
1525 #define RegMv_opcode 0x3000
1526 #define RegMv_src_bits 0
1527 #define RegMv_src_mask 0x7
1528 #define RegMv_dst_bits 3
1529 #define RegMv_dst_mask 0x7
1530 #define RegMv_gs_bits 6
1531 #define RegMv_gs_mask 0x7
1532 #define RegMv_gd_bits 9
1533 #define RegMv_gd_mask 0x7
1534 #define RegMv_code_bits 12
1535 #define RegMv_code_mask 0xf
1537 #define init_RegMv \
1539 RegMv_opcode, \
1540 RegMv_src_bits, RegMv_src_mask, \
1541 RegMv_dst_bits, RegMv_dst_mask, \
1542 RegMv_gs_bits, RegMv_gs_mask, \
1543 RegMv_gd_bits, RegMv_gd_mask, \
1544 RegMv_code_bits, RegMv_code_mask \
1548 /* COMPI2opD
1549 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1550 | 0 | 1 | 1 | 0 | 0 |.op|.isrc......................|.dst.......|
1551 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1554 typedef struct
1556 unsigned short opcode;
1557 int bits_dst;
1558 int mask_dst;
1559 int bits_src;
1560 int mask_src;
1561 int bits_op;
1562 int mask_op;
1563 int bits_code;
1564 int mask_code;
1565 } COMPI2opD;
1567 #define COMPI2opD_opcode 0x6000
1568 #define COMPI2opD_dst_bits 0
1569 #define COMPI2opD_dst_mask 0x7
1570 #define COMPI2opD_src_bits 3
1571 #define COMPI2opD_src_mask 0x7f
1572 #define COMPI2opD_op_bits 10
1573 #define COMPI2opD_op_mask 0x1
1574 #define COMPI2opD_code_bits 11
1575 #define COMPI2opD_code_mask 0x1f
1577 #define init_COMPI2opD \
1579 COMPI2opD_opcode, \
1580 COMPI2opD_dst_bits, COMPI2opD_dst_mask, \
1581 COMPI2opD_src_bits, COMPI2opD_src_mask, \
1582 COMPI2opD_op_bits, COMPI2opD_op_mask, \
1583 COMPI2opD_code_bits, COMPI2opD_code_mask \
1586 /* COMPI2opP
1587 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1588 | 0 | 1 | 1 | 0 | 1 |.op|.src.......................|.dst.......|
1589 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1592 typedef COMPI2opD COMPI2opP;
1594 #define COMPI2opP_opcode 0x6800
1595 #define COMPI2opP_dst_bits 0
1596 #define COMPI2opP_dst_mask 0x7
1597 #define COMPI2opP_src_bits 3
1598 #define COMPI2opP_src_mask 0x7f
1599 #define COMPI2opP_op_bits 10
1600 #define COMPI2opP_op_mask 0x1
1601 #define COMPI2opP_code_bits 11
1602 #define COMPI2opP_code_mask 0x1f
1604 #define init_COMPI2opP \
1606 COMPI2opP_opcode, \
1607 COMPI2opP_dst_bits, COMPI2opP_dst_mask, \
1608 COMPI2opP_src_bits, COMPI2opP_src_mask, \
1609 COMPI2opP_op_bits, COMPI2opP_op_mask, \
1610 COMPI2opP_code_bits, COMPI2opP_code_mask \
1614 /* dagMODim
1615 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1616 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |.br| 1 | 1 |.op|.m.....|.i.....|
1617 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1620 typedef struct
1622 unsigned short opcode;
1623 int bits_i;
1624 int mask_i;
1625 int bits_m;
1626 int mask_m;
1627 int bits_op;
1628 int mask_op;
1629 int bits_code2;
1630 int mask_code2;
1631 int bits_br;
1632 int mask_br;
1633 int bits_code;
1634 int mask_code;
1635 } DagMODim;
1637 #define DagMODim_opcode 0x9e60
1638 #define DagMODim_i_bits 0
1639 #define DagMODim_i_mask 0x3
1640 #define DagMODim_m_bits 2
1641 #define DagMODim_m_mask 0x3
1642 #define DagMODim_op_bits 4
1643 #define DagMODim_op_mask 0x1
1644 #define DagMODim_code2_bits 5
1645 #define DagMODim_code2_mask 0x3
1646 #define DagMODim_br_bits 7
1647 #define DagMODim_br_mask 0x1
1648 #define DagMODim_code_bits 8
1649 #define DagMODim_code_mask 0xff
1651 #define init_DagMODim \
1653 DagMODim_opcode, \
1654 DagMODim_i_bits, DagMODim_i_mask, \
1655 DagMODim_m_bits, DagMODim_m_mask, \
1656 DagMODim_op_bits, DagMODim_op_mask, \
1657 DagMODim_code2_bits, DagMODim_code2_mask, \
1658 DagMODim_br_bits, DagMODim_br_mask, \
1659 DagMODim_code_bits, DagMODim_code_mask \
1662 /* dagMODik
1663 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1664 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |.op....|.i.....|
1665 +---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
1668 typedef struct
1670 unsigned short opcode;
1671 int bits_i;
1672 int mask_i;
1673 int bits_op;
1674 int mask_op;
1675 int bits_code;
1676 int mask_code;
1677 } DagMODik;
1679 #define DagMODik_opcode 0x9f60
1680 #define DagMODik_i_bits 0
1681 #define DagMODik_i_mask 0x3
1682 #define DagMODik_op_bits 2
1683 #define DagMODik_op_mask 0x3
1684 #define DagMODik_code_bits 3
1685 #define DagMODik_code_mask 0xfff
1687 #define init_DagMODik \
1689 DagMODik_opcode, \
1690 DagMODik_i_bits, DagMODik_i_mask, \
1691 DagMODik_op_bits, DagMODik_op_mask, \
1692 DagMODik_code_bits, DagMODik_code_mask \