1
2 /*---------------------------------------------------------------*/
3 /*--- begin Tilegx disassembler tilegx-disasm.c ---*/
4 /*---------------------------------------------------------------*/
5
6 /*
7 This file is part of Valgrind, a dynamic binary instrumentation
8 framework.
9
10 Copyright Tilera Corp. 2010-2013
11
12 This program is free software; you can redistribute it and/or
13 modify it under the terms of the GNU General Public License as
14 published by the Free Software Foundation; either version 2 of the
15 License, or (at your option) any later version.
16
17 This program is distributed in the hope that it will be useful, but
18 WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 General Public License for more details.
21
22 You should have received a copy of the GNU General Public License
23 along with this program; if not, write to the Free Software
24 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
25 02110-1301, USA.
26
27 The GNU General Public License is contained in the file COPYING.
28 */
29
30 /* Contributed by Zhi-Gang Liu <zliu at tilera dot com> */
31
32 #include "tilegx_disasm.h"
33 #include <stdarg.h>
34
35 /* This define is BFD_RELOC_##x for real bfd, or -1 for everyone else. */
36 #define BFD_RELOC(x) -1
37
38 /* Special registers. */
39 #define TREG_LR 55
40 #define TREG_SN 56
41 #define TREG_ZERO 63
42
43 #ifndef NULL
44 #define NULL 0
45 #endif
46
47 const struct tilegx_opcode tilegx_opcodes[336] =
48 {
49 #ifndef _MSC_VER
50 { "bpt", TILEGX_OPC_BPT, 0x2, 0, TREG_ZERO, 0,
51 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
52 #ifndef DISASM_ONLY
53 {
54 0ULL,
55 0xffffffff80000000ULL,
56 0ULL,
57 0ULL,
58 0ULL
59 },
60 {
61 -1ULL,
62 0x286a44ae00000000ULL,
63 -1ULL,
64 -1ULL,
65 -1ULL
66 }
67 #endif
68 },
69 { "info", TILEGX_OPC_INFO, 0xf, 1, TREG_ZERO, 1,
70 { { 0 }, { 1 }, { 2 }, { 3 }, { 0, } },
71 #ifndef DISASM_ONLY
72 {
73 0xc00000007ff00fffULL,
74 0xfff807ff80000000ULL,
75 0x0000000078000fffULL,
76 0x3c0007ff80000000ULL,
77 0ULL
78 },
79 {
80 0x0000000040300fffULL,
81 0x181807ff80000000ULL,
82 0x0000000010000fffULL,
83 0x0c0007ff80000000ULL,
84 -1ULL
85 }
86 #endif
87 },
88 { "infol", TILEGX_OPC_INFOL, 0x3, 1, TREG_ZERO, 1,
89 { { 4 }, { 5 }, { 0, }, { 0, }, { 0, } },
90 #ifndef DISASM_ONLY
91 {
92 0xc000000070000fffULL,
93 0xf80007ff80000000ULL,
94 0ULL,
95 0ULL,
96 0ULL
97 },
98 {
99 0x0000000070000fffULL,
100 0x380007ff80000000ULL,
101 -1ULL,
102 -1ULL,
103 -1ULL
104 }
105 #endif
106 },
107 { "ld4s_tls", TILEGX_OPC_LD4S_TLS, 0x2, 3, TREG_ZERO, 1,
108 { { 0, }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
109 #ifndef DISASM_ONLY
110 {
111 0ULL,
112 0xfffff80000000000ULL,
113 0ULL,
114 0ULL,
115 0ULL
116 },
117 {
118 -1ULL,
119 0x1858000000000000ULL,
120 -1ULL,
121 -1ULL,
122 -1ULL
123 }
124 #endif
125 },
126 { "ld_tls", TILEGX_OPC_LD_TLS, 0x2, 3, TREG_ZERO, 1,
127 { { 0, }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
128 #ifndef DISASM_ONLY
129 {
130 0ULL,
131 0xfffff80000000000ULL,
132 0ULL,
133 0ULL,
134 0ULL
135 },
136 {
137 -1ULL,
138 0x18a0000000000000ULL,
139 -1ULL,
140 -1ULL,
141 -1ULL
142 }
143 #endif
144 },
145 { "move", TILEGX_OPC_MOVE, 0xf, 2, TREG_ZERO, 1,
146 { { 8, 9 }, { 6, 7 }, { 10, 11 }, { 12, 13 }, { 0, } },
147 #ifndef DISASM_ONLY
148 {
149 0xc00000007ffff000ULL,
150 0xfffff80000000000ULL,
151 0x00000000780ff000ULL,
152 0x3c07f80000000000ULL,
153 0ULL
154 },
155 {
156 0x000000005107f000ULL,
157 0x283bf80000000000ULL,
158 0x00000000500bf000ULL,
159 0x2c05f80000000000ULL,
160 -1ULL
161 }
162 #endif
163 },
164 { "movei", TILEGX_OPC_MOVEI, 0xf, 2, TREG_ZERO, 1,
165 { { 8, 0 }, { 6, 1 }, { 10, 2 }, { 12, 3 }, { 0, } },
166 #ifndef DISASM_ONLY
167 {
168 0xc00000007ff00fc0ULL,
169 0xfff807e000000000ULL,
170 0x0000000078000fc0ULL,
171 0x3c0007e000000000ULL,
172 0ULL
173 },
174 {
175 0x0000000040100fc0ULL,
176 0x180807e000000000ULL,
177 0x0000000000000fc0ULL,
178 0x040007e000000000ULL,
179 -1ULL
180 }
181 #endif
182 },
183 { "moveli", TILEGX_OPC_MOVELI, 0x3, 2, TREG_ZERO, 1,
184 { { 8, 4 }, { 6, 5 }, { 0, }, { 0, }, { 0, } },
185 #ifndef DISASM_ONLY
186 {
187 0xc000000070000fc0ULL,
188 0xf80007e000000000ULL,
189 0ULL,
190 0ULL,
191 0ULL
192 },
193 {
194 0x0000000010000fc0ULL,
195 0x000007e000000000ULL,
196 -1ULL,
197 -1ULL,
198 -1ULL
199 }
200 #endif
201 },
202 { "prefetch", TILEGX_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1,
203 { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
204 #ifndef DISASM_ONLY
205 {
206 0ULL,
207 0xfffff81f80000000ULL,
208 0ULL,
209 0ULL,
210 0xc3f8000004000000ULL
211 },
212 {
213 -1ULL,
214 0x286a801f80000000ULL,
215 -1ULL,
216 -1ULL,
217 0x41f8000004000000ULL
218 }
219 #endif
220 },
221 { "prefetch_add_l1", TILEGX_OPC_PREFETCH_ADD_L1, 0x2, 2, TREG_ZERO, 1,
222 { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
223 #ifndef DISASM_ONLY
224 {
225 0ULL,
226 0xfff8001f80000000ULL,
227 0ULL,
228 0ULL,
229 0ULL
230 },
231 {
232 -1ULL,
233 0x1840001f80000000ULL,
234 -1ULL,
235 -1ULL,
236 -1ULL
237 }
238 #endif
239 },
240 { "prefetch_add_l1_fault", TILEGX_OPC_PREFETCH_ADD_L1_FAULT, 0x2, 2, TREG_ZERO, 1,
241 { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
242 #ifndef DISASM_ONLY
243 {
244 0ULL,
245 0xfff8001f80000000ULL,
246 0ULL,
247 0ULL,
248 0ULL
249 },
250 {
251 -1ULL,
252 0x1838001f80000000ULL,
253 -1ULL,
254 -1ULL,
255 -1ULL
256 }
257 #endif
258 },
259 { "prefetch_add_l2", TILEGX_OPC_PREFETCH_ADD_L2, 0x2, 2, TREG_ZERO, 1,
260 { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
261 #ifndef DISASM_ONLY
262 {
263 0ULL,
264 0xfff8001f80000000ULL,
265 0ULL,
266 0ULL,
267 0ULL
268 },
269 {
270 -1ULL,
271 0x1850001f80000000ULL,
272 -1ULL,
273 -1ULL,
274 -1ULL
275 }
276 #endif
277 },
278 { "prefetch_add_l2_fault", TILEGX_OPC_PREFETCH_ADD_L2_FAULT, 0x2, 2, TREG_ZERO, 1,
279 { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
280 #ifndef DISASM_ONLY
281 {
282 0ULL,
283 0xfff8001f80000000ULL,
284 0ULL,
285 0ULL,
286 0ULL
287 },
288 {
289 -1ULL,
290 0x1848001f80000000ULL,
291 -1ULL,
292 -1ULL,
293 -1ULL
294 }
295 #endif
296 },
297 { "prefetch_add_l3", TILEGX_OPC_PREFETCH_ADD_L3, 0x2, 2, TREG_ZERO, 1,
298 { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
299 #ifndef DISASM_ONLY
300 {
301 0ULL,
302 0xfff8001f80000000ULL,
303 0ULL,
304 0ULL,
305 0ULL
306 },
307 {
308 -1ULL,
309 0x1860001f80000000ULL,
310 -1ULL,
311 -1ULL,
312 -1ULL
313 }
314 #endif
315 },
316 { "prefetch_add_l3_fault", TILEGX_OPC_PREFETCH_ADD_L3_FAULT, 0x2, 2, TREG_ZERO, 1,
317 { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
318 #ifndef DISASM_ONLY
319 {
320 0ULL,
321 0xfff8001f80000000ULL,
322 0ULL,
323 0ULL,
324 0ULL
325 },
326 {
327 -1ULL,
328 0x1858001f80000000ULL,
329 -1ULL,
330 -1ULL,
331 -1ULL
332 }
333 #endif
334 },
335 { "prefetch_l1", TILEGX_OPC_PREFETCH_L1, 0x12, 1, TREG_ZERO, 1,
336 { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
337 #ifndef DISASM_ONLY
338 {
339 0ULL,
340 0xfffff81f80000000ULL,
341 0ULL,
342 0ULL,
343 0xc3f8000004000000ULL
344 },
345 {
346 -1ULL,
347 0x286a801f80000000ULL,
348 -1ULL,
349 -1ULL,
350 0x41f8000004000000ULL
351 }
352 #endif
353 },
354 { "prefetch_l1_fault", TILEGX_OPC_PREFETCH_L1_FAULT, 0x12, 1, TREG_ZERO, 1,
355 { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
356 #ifndef DISASM_ONLY
357 {
358 0ULL,
359 0xfffff81f80000000ULL,
360 0ULL,
361 0ULL,
362 0xc3f8000004000000ULL
363 },
364 {
365 -1ULL,
366 0x286a781f80000000ULL,
367 -1ULL,
368 -1ULL,
369 0x41f8000000000000ULL
370 }
371 #endif
372 },
373 { "prefetch_l2", TILEGX_OPC_PREFETCH_L2, 0x12, 1, TREG_ZERO, 1,
374 { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
375 #ifndef DISASM_ONLY
376 {
377 0ULL,
378 0xfffff81f80000000ULL,
379 0ULL,
380 0ULL,
381 0xc3f8000004000000ULL
382 },
383 {
384 -1ULL,
385 0x286a901f80000000ULL,
386 -1ULL,
387 -1ULL,
388 0x43f8000004000000ULL
389 }
390 #endif
391 },
392 { "prefetch_l2_fault", TILEGX_OPC_PREFETCH_L2_FAULT, 0x12, 1, TREG_ZERO, 1,
393 { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
394 #ifndef DISASM_ONLY
395 {
396 0ULL,
397 0xfffff81f80000000ULL,
398 0ULL,
399 0ULL,
400 0xc3f8000004000000ULL
401 },
402 {
403 -1ULL,
404 0x286a881f80000000ULL,
405 -1ULL,
406 -1ULL,
407 0x43f8000000000000ULL
408 }
409 #endif
410 },
411 { "prefetch_l3", TILEGX_OPC_PREFETCH_L3, 0x12, 1, TREG_ZERO, 1,
412 { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
413 #ifndef DISASM_ONLY
414 {
415 0ULL,
416 0xfffff81f80000000ULL,
417 0ULL,
418 0ULL,
419 0xc3f8000004000000ULL
420 },
421 {
422 -1ULL,
423 0x286aa01f80000000ULL,
424 -1ULL,
425 -1ULL,
426 0x83f8000000000000ULL
427 }
428 #endif
429 },
430 { "prefetch_l3_fault", TILEGX_OPC_PREFETCH_L3_FAULT, 0x12, 1, TREG_ZERO, 1,
431 { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } },
432 #ifndef DISASM_ONLY
433 {
434 0ULL,
435 0xfffff81f80000000ULL,
436 0ULL,
437 0ULL,
438 0xc3f8000004000000ULL
439 },
440 {
441 -1ULL,
442 0x286a981f80000000ULL,
443 -1ULL,
444 -1ULL,
445 0x81f8000004000000ULL
446 }
447 #endif
448 },
449 { "raise", TILEGX_OPC_RAISE, 0x2, 0, TREG_ZERO, 1,
450 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
451 #ifndef DISASM_ONLY
452 {
453 0ULL,
454 0xffffffff80000000ULL,
455 0ULL,
456 0ULL,
457 0ULL
458 },
459 {
460 -1ULL,
461 0x286a44ae80000000ULL,
462 -1ULL,
463 -1ULL,
464 -1ULL
465 }
466 #endif
467 },
468 { "add", TILEGX_OPC_ADD, 0xf, 3, TREG_ZERO, 1,
469 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
470 #ifndef DISASM_ONLY
471 {
472 0xc00000007ffc0000ULL,
473 0xfffe000000000000ULL,
474 0x00000000780c0000ULL,
475 0x3c06000000000000ULL,
476 0ULL
477 },
478 {
479 0x00000000500c0000ULL,
480 0x2806000000000000ULL,
481 0x0000000028040000ULL,
482 0x1802000000000000ULL,
483 -1ULL
484 }
485 #endif
486 },
487 { "addi", TILEGX_OPC_ADDI, 0xf, 3, TREG_ZERO, 1,
488 { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
489 #ifndef DISASM_ONLY
490 {
491 0xc00000007ff00000ULL,
492 0xfff8000000000000ULL,
493 0x0000000078000000ULL,
494 0x3c00000000000000ULL,
495 0ULL
496 },
497 {
498 0x0000000040100000ULL,
499 0x1808000000000000ULL,
500 0ULL,
501 0x0400000000000000ULL,
502 -1ULL
503 }
504 #endif
505 },
506 { "addli", TILEGX_OPC_ADDLI, 0x3, 3, TREG_ZERO, 1,
507 { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } },
508 #ifndef DISASM_ONLY
509 {
510 0xc000000070000000ULL,
511 0xf800000000000000ULL,
512 0ULL,
513 0ULL,
514 0ULL
515 },
516 {
517 0x0000000010000000ULL,
518 0ULL,
519 -1ULL,
520 -1ULL,
521 -1ULL
522 }
523 #endif
524 },
525 { "addx", TILEGX_OPC_ADDX, 0xf, 3, TREG_ZERO, 1,
526 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
527 #ifndef DISASM_ONLY
528 {
529 0xc00000007ffc0000ULL,
530 0xfffe000000000000ULL,
531 0x00000000780c0000ULL,
532 0x3c06000000000000ULL,
533 0ULL
534 },
535 {
536 0x0000000050080000ULL,
537 0x2804000000000000ULL,
538 0x0000000028000000ULL,
539 0x1800000000000000ULL,
540 -1ULL
541 }
542 #endif
543 },
544 { "addxi", TILEGX_OPC_ADDXI, 0xf, 3, TREG_ZERO, 1,
545 { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
546 #ifndef DISASM_ONLY
547 {
548 0xc00000007ff00000ULL,
549 0xfff8000000000000ULL,
550 0x0000000078000000ULL,
551 0x3c00000000000000ULL,
552 0ULL
553 },
554 {
555 0x0000000040200000ULL,
556 0x1810000000000000ULL,
557 0x0000000008000000ULL,
558 0x0800000000000000ULL,
559 -1ULL
560 }
561 #endif
562 },
563 { "addxli", TILEGX_OPC_ADDXLI, 0x3, 3, TREG_ZERO, 1,
564 { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } },
565 #ifndef DISASM_ONLY
566 {
567 0xc000000070000000ULL,
568 0xf800000000000000ULL,
569 0ULL,
570 0ULL,
571 0ULL
572 },
573 {
574 0x0000000020000000ULL,
575 0x0800000000000000ULL,
576 -1ULL,
577 -1ULL,
578 -1ULL
579 }
580 #endif
581 },
582 { "addxsc", TILEGX_OPC_ADDXSC, 0x3, 3, TREG_ZERO, 1,
583 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
584 #ifndef DISASM_ONLY
585 {
586 0xc00000007ffc0000ULL,
587 0xfffe000000000000ULL,
588 0ULL,
589 0ULL,
590 0ULL
591 },
592 {
593 0x0000000050040000ULL,
594 0x2802000000000000ULL,
595 -1ULL,
596 -1ULL,
597 -1ULL
598 }
599 #endif
600 },
601 { "and", TILEGX_OPC_AND, 0xf, 3, TREG_ZERO, 1,
602 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
603 #ifndef DISASM_ONLY
604 {
605 0xc00000007ffc0000ULL,
606 0xfffe000000000000ULL,
607 0x00000000780c0000ULL,
608 0x3c06000000000000ULL,
609 0ULL
610 },
611 {
612 0x0000000050100000ULL,
613 0x2808000000000000ULL,
614 0x0000000050000000ULL,
615 0x2c00000000000000ULL,
616 -1ULL
617 }
618 #endif
619 },
620 { "andi", TILEGX_OPC_ANDI, 0xf, 3, TREG_ZERO, 1,
621 { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
622 #ifndef DISASM_ONLY
623 {
624 0xc00000007ff00000ULL,
625 0xfff8000000000000ULL,
626 0x0000000078000000ULL,
627 0x3c00000000000000ULL,
628 0ULL
629 },
630 {
631 0x0000000040300000ULL,
632 0x1818000000000000ULL,
633 0x0000000010000000ULL,
634 0x0c00000000000000ULL,
635 -1ULL
636 }
637 #endif
638 },
639 { "beqz", TILEGX_OPC_BEQZ, 0x2, 2, TREG_ZERO, 1,
640 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
641 #ifndef DISASM_ONLY
642 {
643 0ULL,
644 0xffc0000000000000ULL,
645 0ULL,
646 0ULL,
647 0ULL
648 },
649 {
650 -1ULL,
651 0x1440000000000000ULL,
652 -1ULL,
653 -1ULL,
654 -1ULL
655 }
656 #endif
657 },
658 { "beqzt", TILEGX_OPC_BEQZT, 0x2, 2, TREG_ZERO, 1,
659 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
660 #ifndef DISASM_ONLY
661 {
662 0ULL,
663 0xffc0000000000000ULL,
664 0ULL,
665 0ULL,
666 0ULL
667 },
668 {
669 -1ULL,
670 0x1400000000000000ULL,
671 -1ULL,
672 -1ULL,
673 -1ULL
674 }
675 #endif
676 },
677 { "bfexts", TILEGX_OPC_BFEXTS, 0x1, 4, TREG_ZERO, 1,
678 { { 8, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
679 #ifndef DISASM_ONLY
680 {
681 0xc00000007f000000ULL,
682 0ULL,
683 0ULL,
684 0ULL,
685 0ULL
686 },
687 {
688 0x0000000034000000ULL,
689 -1ULL,
690 -1ULL,
691 -1ULL,
692 -1ULL
693 }
694 #endif
695 },
696 { "bfextu", TILEGX_OPC_BFEXTU, 0x1, 4, TREG_ZERO, 1,
697 { { 8, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
698 #ifndef DISASM_ONLY
699 {
700 0xc00000007f000000ULL,
701 0ULL,
702 0ULL,
703 0ULL,
704 0ULL
705 },
706 {
707 0x0000000035000000ULL,
708 -1ULL,
709 -1ULL,
710 -1ULL,
711 -1ULL
712 }
713 #endif
714 },
715 { "bfins", TILEGX_OPC_BFINS, 0x1, 4, TREG_ZERO, 1,
716 { { 23, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
717 #ifndef DISASM_ONLY
718 {
719 0xc00000007f000000ULL,
720 0ULL,
721 0ULL,
722 0ULL,
723 0ULL
724 },
725 {
726 0x0000000036000000ULL,
727 -1ULL,
728 -1ULL,
729 -1ULL,
730 -1ULL
731 }
732 #endif
733 },
734 { "bgez", TILEGX_OPC_BGEZ, 0x2, 2, TREG_ZERO, 1,
735 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
736 #ifndef DISASM_ONLY
737 {
738 0ULL,
739 0xffc0000000000000ULL,
740 0ULL,
741 0ULL,
742 0ULL
743 },
744 {
745 -1ULL,
746 0x14c0000000000000ULL,
747 -1ULL,
748 -1ULL,
749 -1ULL
750 }
751 #endif
752 },
753 { "bgezt", TILEGX_OPC_BGEZT, 0x2, 2, TREG_ZERO, 1,
754 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
755 #ifndef DISASM_ONLY
756 {
757 0ULL,
758 0xffc0000000000000ULL,
759 0ULL,
760 0ULL,
761 0ULL
762 },
763 {
764 -1ULL,
765 0x1480000000000000ULL,
766 -1ULL,
767 -1ULL,
768 -1ULL
769 }
770 #endif
771 },
772 { "bgtz", TILEGX_OPC_BGTZ, 0x2, 2, TREG_ZERO, 1,
773 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
774 #ifndef DISASM_ONLY
775 {
776 0ULL,
777 0xffc0000000000000ULL,
778 0ULL,
779 0ULL,
780 0ULL
781 },
782 {
783 -1ULL,
784 0x1540000000000000ULL,
785 -1ULL,
786 -1ULL,
787 -1ULL
788 }
789 #endif
790 },
791 { "bgtzt", TILEGX_OPC_BGTZT, 0x2, 2, TREG_ZERO, 1,
792 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
793 #ifndef DISASM_ONLY
794 {
795 0ULL,
796 0xffc0000000000000ULL,
797 0ULL,
798 0ULL,
799 0ULL
800 },
801 {
802 -1ULL,
803 0x1500000000000000ULL,
804 -1ULL,
805 -1ULL,
806 -1ULL
807 }
808 #endif
809 },
810 { "blbc", TILEGX_OPC_BLBC, 0x2, 2, TREG_ZERO, 1,
811 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
812 #ifndef DISASM_ONLY
813 {
814 0ULL,
815 0xffc0000000000000ULL,
816 0ULL,
817 0ULL,
818 0ULL
819 },
820 {
821 -1ULL,
822 0x15c0000000000000ULL,
823 -1ULL,
824 -1ULL,
825 -1ULL
826 }
827 #endif
828 },
829 { "blbct", TILEGX_OPC_BLBCT, 0x2, 2, TREG_ZERO, 1,
830 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
831 #ifndef DISASM_ONLY
832 {
833 0ULL,
834 0xffc0000000000000ULL,
835 0ULL,
836 0ULL,
837 0ULL
838 },
839 {
840 -1ULL,
841 0x1580000000000000ULL,
842 -1ULL,
843 -1ULL,
844 -1ULL
845 }
846 #endif
847 },
848 { "blbs", TILEGX_OPC_BLBS, 0x2, 2, TREG_ZERO, 1,
849 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
850 #ifndef DISASM_ONLY
851 {
852 0ULL,
853 0xffc0000000000000ULL,
854 0ULL,
855 0ULL,
856 0ULL
857 },
858 {
859 -1ULL,
860 0x1640000000000000ULL,
861 -1ULL,
862 -1ULL,
863 -1ULL
864 }
865 #endif
866 },
867 { "blbst", TILEGX_OPC_BLBST, 0x2, 2, TREG_ZERO, 1,
868 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
869 #ifndef DISASM_ONLY
870 {
871 0ULL,
872 0xffc0000000000000ULL,
873 0ULL,
874 0ULL,
875 0ULL
876 },
877 {
878 -1ULL,
879 0x1600000000000000ULL,
880 -1ULL,
881 -1ULL,
882 -1ULL
883 }
884 #endif
885 },
886 { "blez", TILEGX_OPC_BLEZ, 0x2, 2, TREG_ZERO, 1,
887 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
888 #ifndef DISASM_ONLY
889 {
890 0ULL,
891 0xffc0000000000000ULL,
892 0ULL,
893 0ULL,
894 0ULL
895 },
896 {
897 -1ULL,
898 0x16c0000000000000ULL,
899 -1ULL,
900 -1ULL,
901 -1ULL
902 }
903 #endif
904 },
905 { "blezt", TILEGX_OPC_BLEZT, 0x2, 2, TREG_ZERO, 1,
906 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
907 #ifndef DISASM_ONLY
908 {
909 0ULL,
910 0xffc0000000000000ULL,
911 0ULL,
912 0ULL,
913 0ULL
914 },
915 {
916 -1ULL,
917 0x1680000000000000ULL,
918 -1ULL,
919 -1ULL,
920 -1ULL
921 }
922 #endif
923 },
924 { "bltz", TILEGX_OPC_BLTZ, 0x2, 2, TREG_ZERO, 1,
925 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
926 #ifndef DISASM_ONLY
927 {
928 0ULL,
929 0xffc0000000000000ULL,
930 0ULL,
931 0ULL,
932 0ULL
933 },
934 {
935 -1ULL,
936 0x1740000000000000ULL,
937 -1ULL,
938 -1ULL,
939 -1ULL
940 }
941 #endif
942 },
943 { "bltzt", TILEGX_OPC_BLTZT, 0x2, 2, TREG_ZERO, 1,
944 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
945 #ifndef DISASM_ONLY
946 {
947 0ULL,
948 0xffc0000000000000ULL,
949 0ULL,
950 0ULL,
951 0ULL
952 },
953 {
954 -1ULL,
955 0x1700000000000000ULL,
956 -1ULL,
957 -1ULL,
958 -1ULL
959 }
960 #endif
961 },
962 { "bnez", TILEGX_OPC_BNEZ, 0x2, 2, TREG_ZERO, 1,
963 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
964 #ifndef DISASM_ONLY
965 {
966 0ULL,
967 0xffc0000000000000ULL,
968 0ULL,
969 0ULL,
970 0ULL
971 },
972 {
973 -1ULL,
974 0x17c0000000000000ULL,
975 -1ULL,
976 -1ULL,
977 -1ULL
978 }
979 #endif
980 },
981 { "bnezt", TILEGX_OPC_BNEZT, 0x2, 2, TREG_ZERO, 1,
982 { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } },
983 #ifndef DISASM_ONLY
984 {
985 0ULL,
986 0xffc0000000000000ULL,
987 0ULL,
988 0ULL,
989 0ULL
990 },
991 {
992 -1ULL,
993 0x1780000000000000ULL,
994 -1ULL,
995 -1ULL,
996 -1ULL
997 }
998 #endif
999 },
1000 { "clz", TILEGX_OPC_CLZ, 0x5, 2, TREG_ZERO, 1,
1001 { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
1002 #ifndef DISASM_ONLY
1003 {
1004 0xc00000007ffff000ULL,
1005 0ULL,
1006 0x00000000780ff000ULL,
1007 0ULL,
1008 0ULL
1009 },
1010 {
1011 0x0000000051481000ULL,
1012 -1ULL,
1013 0x00000000300c1000ULL,
1014 -1ULL,
1015 -1ULL
1016 }
1017 #endif
1018 },
1019 { "cmoveqz", TILEGX_OPC_CMOVEQZ, 0x5, 3, TREG_ZERO, 1,
1020 { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
1021 #ifndef DISASM_ONLY
1022 {
1023 0xc00000007ffc0000ULL,
1024 0ULL,
1025 0x00000000780c0000ULL,
1026 0ULL,
1027 0ULL
1028 },
1029 {
1030 0x0000000050140000ULL,
1031 -1ULL,
1032 0x0000000048000000ULL,
1033 -1ULL,
1034 -1ULL
1035 }
1036 #endif
1037 },
1038 { "cmovnez", TILEGX_OPC_CMOVNEZ, 0x5, 3, TREG_ZERO, 1,
1039 { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
1040 #ifndef DISASM_ONLY
1041 {
1042 0xc00000007ffc0000ULL,
1043 0ULL,
1044 0x00000000780c0000ULL,
1045 0ULL,
1046 0ULL
1047 },
1048 {
1049 0x0000000050180000ULL,
1050 -1ULL,
1051 0x0000000048040000ULL,
1052 -1ULL,
1053 -1ULL
1054 }
1055 #endif
1056 },
1057 { "cmpeq", TILEGX_OPC_CMPEQ, 0xf, 3, TREG_ZERO, 1,
1058 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1059 #ifndef DISASM_ONLY
1060 {
1061 0xc00000007ffc0000ULL,
1062 0xfffe000000000000ULL,
1063 0x00000000780c0000ULL,
1064 0x3c06000000000000ULL,
1065 0ULL
1066 },
1067 {
1068 0x00000000501c0000ULL,
1069 0x280a000000000000ULL,
1070 0x0000000040000000ULL,
1071 0x2404000000000000ULL,
1072 -1ULL
1073 }
1074 #endif
1075 },
1076 { "cmpeqi", TILEGX_OPC_CMPEQI, 0xf, 3, TREG_ZERO, 1,
1077 { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
1078 #ifndef DISASM_ONLY
1079 {
1080 0xc00000007ff00000ULL,
1081 0xfff8000000000000ULL,
1082 0x0000000078000000ULL,
1083 0x3c00000000000000ULL,
1084 0ULL
1085 },
1086 {
1087 0x0000000040400000ULL,
1088 0x1820000000000000ULL,
1089 0x0000000018000000ULL,
1090 0x1000000000000000ULL,
1091 -1ULL
1092 }
1093 #endif
1094 },
1095 { "cmpexch", TILEGX_OPC_CMPEXCH, 0x2, 3, TREG_ZERO, 1,
1096 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1097 #ifndef DISASM_ONLY
1098 {
1099 0ULL,
1100 0xfffe000000000000ULL,
1101 0ULL,
1102 0ULL,
1103 0ULL
1104 },
1105 {
1106 -1ULL,
1107 0x280e000000000000ULL,
1108 -1ULL,
1109 -1ULL,
1110 -1ULL
1111 }
1112 #endif
1113 },
1114 { "cmpexch4", TILEGX_OPC_CMPEXCH4, 0x2, 3, TREG_ZERO, 1,
1115 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1116 #ifndef DISASM_ONLY
1117 {
1118 0ULL,
1119 0xfffe000000000000ULL,
1120 0ULL,
1121 0ULL,
1122 0ULL
1123 },
1124 {
1125 -1ULL,
1126 0x280c000000000000ULL,
1127 -1ULL,
1128 -1ULL,
1129 -1ULL
1130 }
1131 #endif
1132 },
1133 { "cmples", TILEGX_OPC_CMPLES, 0xf, 3, TREG_ZERO, 1,
1134 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1135 #ifndef DISASM_ONLY
1136 {
1137 0xc00000007ffc0000ULL,
1138 0xfffe000000000000ULL,
1139 0x00000000780c0000ULL,
1140 0x3c06000000000000ULL,
1141 0ULL
1142 },
1143 {
1144 0x0000000050200000ULL,
1145 0x2810000000000000ULL,
1146 0x0000000038000000ULL,
1147 0x2000000000000000ULL,
1148 -1ULL
1149 }
1150 #endif
1151 },
1152 { "cmpleu", TILEGX_OPC_CMPLEU, 0xf, 3, TREG_ZERO, 1,
1153 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1154 #ifndef DISASM_ONLY
1155 {
1156 0xc00000007ffc0000ULL,
1157 0xfffe000000000000ULL,
1158 0x00000000780c0000ULL,
1159 0x3c06000000000000ULL,
1160 0ULL
1161 },
1162 {
1163 0x0000000050240000ULL,
1164 0x2812000000000000ULL,
1165 0x0000000038040000ULL,
1166 0x2002000000000000ULL,
1167 -1ULL
1168 }
1169 #endif
1170 },
1171 { "cmplts", TILEGX_OPC_CMPLTS, 0xf, 3, TREG_ZERO, 1,
1172 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1173 #ifndef DISASM_ONLY
1174 {
1175 0xc00000007ffc0000ULL,
1176 0xfffe000000000000ULL,
1177 0x00000000780c0000ULL,
1178 0x3c06000000000000ULL,
1179 0ULL
1180 },
1181 {
1182 0x0000000050280000ULL,
1183 0x2814000000000000ULL,
1184 0x0000000038080000ULL,
1185 0x2004000000000000ULL,
1186 -1ULL
1187 }
1188 #endif
1189 },
1190 { "cmpltsi", TILEGX_OPC_CMPLTSI, 0xf, 3, TREG_ZERO, 1,
1191 { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
1192 #ifndef DISASM_ONLY
1193 {
1194 0xc00000007ff00000ULL,
1195 0xfff8000000000000ULL,
1196 0x0000000078000000ULL,
1197 0x3c00000000000000ULL,
1198 0ULL
1199 },
1200 {
1201 0x0000000040500000ULL,
1202 0x1828000000000000ULL,
1203 0x0000000020000000ULL,
1204 0x1400000000000000ULL,
1205 -1ULL
1206 }
1207 #endif
1208 },
1209 { "cmpltu", TILEGX_OPC_CMPLTU, 0xf, 3, TREG_ZERO, 1,
1210 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1211 #ifndef DISASM_ONLY
1212 {
1213 0xc00000007ffc0000ULL,
1214 0xfffe000000000000ULL,
1215 0x00000000780c0000ULL,
1216 0x3c06000000000000ULL,
1217 0ULL
1218 },
1219 {
1220 0x00000000502c0000ULL,
1221 0x2816000000000000ULL,
1222 0x00000000380c0000ULL,
1223 0x2006000000000000ULL,
1224 -1ULL
1225 }
1226 #endif
1227 },
1228 { "cmpltui", TILEGX_OPC_CMPLTUI, 0x3, 3, TREG_ZERO, 1,
1229 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
1230 #ifndef DISASM_ONLY
1231 {
1232 0xc00000007ff00000ULL,
1233 0xfff8000000000000ULL,
1234 0ULL,
1235 0ULL,
1236 0ULL
1237 },
1238 {
1239 0x0000000040600000ULL,
1240 0x1830000000000000ULL,
1241 -1ULL,
1242 -1ULL,
1243 -1ULL
1244 }
1245 #endif
1246 },
1247 { "cmpne", TILEGX_OPC_CMPNE, 0xf, 3, TREG_ZERO, 1,
1248 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1249 #ifndef DISASM_ONLY
1250 {
1251 0xc00000007ffc0000ULL,
1252 0xfffe000000000000ULL,
1253 0x00000000780c0000ULL,
1254 0x3c06000000000000ULL,
1255 0ULL
1256 },
1257 {
1258 0x0000000050300000ULL,
1259 0x2818000000000000ULL,
1260 0x0000000040040000ULL,
1261 0x2406000000000000ULL,
1262 -1ULL
1263 }
1264 #endif
1265 },
1266 { "cmul", TILEGX_OPC_CMUL, 0x1, 3, TREG_ZERO, 1,
1267 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1268 #ifndef DISASM_ONLY
1269 {
1270 0xc00000007ffc0000ULL,
1271 0ULL,
1272 0ULL,
1273 0ULL,
1274 0ULL
1275 },
1276 {
1277 0x00000000504c0000ULL,
1278 -1ULL,
1279 -1ULL,
1280 -1ULL,
1281 -1ULL
1282 }
1283 #endif
1284 },
1285 { "cmula", TILEGX_OPC_CMULA, 0x1, 3, TREG_ZERO, 1,
1286 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1287 #ifndef DISASM_ONLY
1288 {
1289 0xc00000007ffc0000ULL,
1290 0ULL,
1291 0ULL,
1292 0ULL,
1293 0ULL
1294 },
1295 {
1296 0x0000000050380000ULL,
1297 -1ULL,
1298 -1ULL,
1299 -1ULL,
1300 -1ULL
1301 }
1302 #endif
1303 },
1304 { "cmulaf", TILEGX_OPC_CMULAF, 0x1, 3, TREG_ZERO, 1,
1305 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1306 #ifndef DISASM_ONLY
1307 {
1308 0xc00000007ffc0000ULL,
1309 0ULL,
1310 0ULL,
1311 0ULL,
1312 0ULL
1313 },
1314 {
1315 0x0000000050340000ULL,
1316 -1ULL,
1317 -1ULL,
1318 -1ULL,
1319 -1ULL
1320 }
1321 #endif
1322 },
1323 { "cmulf", TILEGX_OPC_CMULF, 0x1, 3, TREG_ZERO, 1,
1324 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1325 #ifndef DISASM_ONLY
1326 {
1327 0xc00000007ffc0000ULL,
1328 0ULL,
1329 0ULL,
1330 0ULL,
1331 0ULL
1332 },
1333 {
1334 0x0000000050400000ULL,
1335 -1ULL,
1336 -1ULL,
1337 -1ULL,
1338 -1ULL
1339 }
1340 #endif
1341 },
1342 { "cmulfr", TILEGX_OPC_CMULFR, 0x1, 3, TREG_ZERO, 1,
1343 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1344 #ifndef DISASM_ONLY
1345 {
1346 0xc00000007ffc0000ULL,
1347 0ULL,
1348 0ULL,
1349 0ULL,
1350 0ULL
1351 },
1352 {
1353 0x00000000503c0000ULL,
1354 -1ULL,
1355 -1ULL,
1356 -1ULL,
1357 -1ULL
1358 }
1359 #endif
1360 },
1361 { "cmulh", TILEGX_OPC_CMULH, 0x1, 3, TREG_ZERO, 1,
1362 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1363 #ifndef DISASM_ONLY
1364 {
1365 0xc00000007ffc0000ULL,
1366 0ULL,
1367 0ULL,
1368 0ULL,
1369 0ULL
1370 },
1371 {
1372 0x0000000050480000ULL,
1373 -1ULL,
1374 -1ULL,
1375 -1ULL,
1376 -1ULL
1377 }
1378 #endif
1379 },
1380 { "cmulhr", TILEGX_OPC_CMULHR, 0x1, 3, TREG_ZERO, 1,
1381 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1382 #ifndef DISASM_ONLY
1383 {
1384 0xc00000007ffc0000ULL,
1385 0ULL,
1386 0ULL,
1387 0ULL,
1388 0ULL
1389 },
1390 {
1391 0x0000000050440000ULL,
1392 -1ULL,
1393 -1ULL,
1394 -1ULL,
1395 -1ULL
1396 }
1397 #endif
1398 },
1399 { "crc32_32", TILEGX_OPC_CRC32_32, 0x1, 3, TREG_ZERO, 1,
1400 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1401 #ifndef DISASM_ONLY
1402 {
1403 0xc00000007ffc0000ULL,
1404 0ULL,
1405 0ULL,
1406 0ULL,
1407 0ULL
1408 },
1409 {
1410 0x0000000050500000ULL,
1411 -1ULL,
1412 -1ULL,
1413 -1ULL,
1414 -1ULL
1415 }
1416 #endif
1417 },
1418 { "crc32_8", TILEGX_OPC_CRC32_8, 0x1, 3, TREG_ZERO, 1,
1419 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1420 #ifndef DISASM_ONLY
1421 {
1422 0xc00000007ffc0000ULL,
1423 0ULL,
1424 0ULL,
1425 0ULL,
1426 0ULL
1427 },
1428 {
1429 0x0000000050540000ULL,
1430 -1ULL,
1431 -1ULL,
1432 -1ULL,
1433 -1ULL
1434 }
1435 #endif
1436 },
1437 { "ctz", TILEGX_OPC_CTZ, 0x5, 2, TREG_ZERO, 1,
1438 { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
1439 #ifndef DISASM_ONLY
1440 {
1441 0xc00000007ffff000ULL,
1442 0ULL,
1443 0x00000000780ff000ULL,
1444 0ULL,
1445 0ULL
1446 },
1447 {
1448 0x0000000051482000ULL,
1449 -1ULL,
1450 0x00000000300c2000ULL,
1451 -1ULL,
1452 -1ULL
1453 }
1454 #endif
1455 },
1456 { "dblalign", TILEGX_OPC_DBLALIGN, 0x1, 3, TREG_ZERO, 1,
1457 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1458 #ifndef DISASM_ONLY
1459 {
1460 0xc00000007ffc0000ULL,
1461 0ULL,
1462 0ULL,
1463 0ULL,
1464 0ULL
1465 },
1466 {
1467 0x0000000050640000ULL,
1468 -1ULL,
1469 -1ULL,
1470 -1ULL,
1471 -1ULL
1472 }
1473 #endif
1474 },
1475 { "dblalign2", TILEGX_OPC_DBLALIGN2, 0x3, 3, TREG_ZERO, 1,
1476 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1477 #ifndef DISASM_ONLY
1478 {
1479 0xc00000007ffc0000ULL,
1480 0xfffe000000000000ULL,
1481 0ULL,
1482 0ULL,
1483 0ULL
1484 },
1485 {
1486 0x0000000050580000ULL,
1487 0x281a000000000000ULL,
1488 -1ULL,
1489 -1ULL,
1490 -1ULL
1491 }
1492 #endif
1493 },
1494 { "dblalign4", TILEGX_OPC_DBLALIGN4, 0x3, 3, TREG_ZERO, 1,
1495 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1496 #ifndef DISASM_ONLY
1497 {
1498 0xc00000007ffc0000ULL,
1499 0xfffe000000000000ULL,
1500 0ULL,
1501 0ULL,
1502 0ULL
1503 },
1504 {
1505 0x00000000505c0000ULL,
1506 0x281c000000000000ULL,
1507 -1ULL,
1508 -1ULL,
1509 -1ULL
1510 }
1511 #endif
1512 },
1513 { "dblalign6", TILEGX_OPC_DBLALIGN6, 0x3, 3, TREG_ZERO, 1,
1514 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1515 #ifndef DISASM_ONLY
1516 {
1517 0xc00000007ffc0000ULL,
1518 0xfffe000000000000ULL,
1519 0ULL,
1520 0ULL,
1521 0ULL
1522 },
1523 {
1524 0x0000000050600000ULL,
1525 0x281e000000000000ULL,
1526 -1ULL,
1527 -1ULL,
1528 -1ULL
1529 }
1530 #endif
1531 },
1532 { "drain", TILEGX_OPC_DRAIN, 0x2, 0, TREG_ZERO, 0,
1533 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
1534 #ifndef DISASM_ONLY
1535 {
1536 0ULL,
1537 0xfffff80000000000ULL,
1538 0ULL,
1539 0ULL,
1540 0ULL
1541 },
1542 {
1543 -1ULL,
1544 0x286a080000000000ULL,
1545 -1ULL,
1546 -1ULL,
1547 -1ULL
1548 }
1549 #endif
1550 },
1551 { "dtlbpr", TILEGX_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1,
1552 { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
1553 #ifndef DISASM_ONLY
1554 {
1555 0ULL,
1556 0xfffff80000000000ULL,
1557 0ULL,
1558 0ULL,
1559 0ULL
1560 },
1561 {
1562 -1ULL,
1563 0x286a100000000000ULL,
1564 -1ULL,
1565 -1ULL,
1566 -1ULL
1567 }
1568 #endif
1569 },
1570 { "exch", TILEGX_OPC_EXCH, 0x2, 3, TREG_ZERO, 1,
1571 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1572 #ifndef DISASM_ONLY
1573 {
1574 0ULL,
1575 0xfffe000000000000ULL,
1576 0ULL,
1577 0ULL,
1578 0ULL
1579 },
1580 {
1581 -1ULL,
1582 0x2822000000000000ULL,
1583 -1ULL,
1584 -1ULL,
1585 -1ULL
1586 }
1587 #endif
1588 },
1589 { "exch4", TILEGX_OPC_EXCH4, 0x2, 3, TREG_ZERO, 1,
1590 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1591 #ifndef DISASM_ONLY
1592 {
1593 0ULL,
1594 0xfffe000000000000ULL,
1595 0ULL,
1596 0ULL,
1597 0ULL
1598 },
1599 {
1600 -1ULL,
1601 0x2820000000000000ULL,
1602 -1ULL,
1603 -1ULL,
1604 -1ULL
1605 }
1606 #endif
1607 },
1608 { "fdouble_add_flags", TILEGX_OPC_FDOUBLE_ADD_FLAGS, 0x1, 3, TREG_ZERO, 1,
1609 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1610 #ifndef DISASM_ONLY
1611 {
1612 0xc00000007ffc0000ULL,
1613 0ULL,
1614 0ULL,
1615 0ULL,
1616 0ULL
1617 },
1618 {
1619 0x00000000506c0000ULL,
1620 -1ULL,
1621 -1ULL,
1622 -1ULL,
1623 -1ULL
1624 }
1625 #endif
1626 },
1627 { "fdouble_addsub", TILEGX_OPC_FDOUBLE_ADDSUB, 0x1, 3, TREG_ZERO, 1,
1628 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1629 #ifndef DISASM_ONLY
1630 {
1631 0xc00000007ffc0000ULL,
1632 0ULL,
1633 0ULL,
1634 0ULL,
1635 0ULL
1636 },
1637 {
1638 0x0000000050680000ULL,
1639 -1ULL,
1640 -1ULL,
1641 -1ULL,
1642 -1ULL
1643 }
1644 #endif
1645 },
1646 { "fdouble_mul_flags", TILEGX_OPC_FDOUBLE_MUL_FLAGS, 0x1, 3, TREG_ZERO, 1,
1647 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1648 #ifndef DISASM_ONLY
1649 {
1650 0xc00000007ffc0000ULL,
1651 0ULL,
1652 0ULL,
1653 0ULL,
1654 0ULL
1655 },
1656 {
1657 0x0000000050700000ULL,
1658 -1ULL,
1659 -1ULL,
1660 -1ULL,
1661 -1ULL
1662 }
1663 #endif
1664 },
1665 { "fdouble_pack1", TILEGX_OPC_FDOUBLE_PACK1, 0x1, 3, TREG_ZERO, 1,
1666 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1667 #ifndef DISASM_ONLY
1668 {
1669 0xc00000007ffc0000ULL,
1670 0ULL,
1671 0ULL,
1672 0ULL,
1673 0ULL
1674 },
1675 {
1676 0x0000000050740000ULL,
1677 -1ULL,
1678 -1ULL,
1679 -1ULL,
1680 -1ULL
1681 }
1682 #endif
1683 },
1684 { "fdouble_pack2", TILEGX_OPC_FDOUBLE_PACK2, 0x1, 3, TREG_ZERO, 1,
1685 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1686 #ifndef DISASM_ONLY
1687 {
1688 0xc00000007ffc0000ULL,
1689 0ULL,
1690 0ULL,
1691 0ULL,
1692 0ULL
1693 },
1694 {
1695 0x0000000050780000ULL,
1696 -1ULL,
1697 -1ULL,
1698 -1ULL,
1699 -1ULL
1700 }
1701 #endif
1702 },
1703 { "fdouble_sub_flags", TILEGX_OPC_FDOUBLE_SUB_FLAGS, 0x1, 3, TREG_ZERO, 1,
1704 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1705 #ifndef DISASM_ONLY
1706 {
1707 0xc00000007ffc0000ULL,
1708 0ULL,
1709 0ULL,
1710 0ULL,
1711 0ULL
1712 },
1713 {
1714 0x00000000507c0000ULL,
1715 -1ULL,
1716 -1ULL,
1717 -1ULL,
1718 -1ULL
1719 }
1720 #endif
1721 },
1722 { "fdouble_unpack_max", TILEGX_OPC_FDOUBLE_UNPACK_MAX, 0x1, 3, TREG_ZERO, 1,
1723 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1724 #ifndef DISASM_ONLY
1725 {
1726 0xc00000007ffc0000ULL,
1727 0ULL,
1728 0ULL,
1729 0ULL,
1730 0ULL
1731 },
1732 {
1733 0x0000000050800000ULL,
1734 -1ULL,
1735 -1ULL,
1736 -1ULL,
1737 -1ULL
1738 }
1739 #endif
1740 },
1741 { "fdouble_unpack_min", TILEGX_OPC_FDOUBLE_UNPACK_MIN, 0x1, 3, TREG_ZERO, 1,
1742 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1743 #ifndef DISASM_ONLY
1744 {
1745 0xc00000007ffc0000ULL,
1746 0ULL,
1747 0ULL,
1748 0ULL,
1749 0ULL
1750 },
1751 {
1752 0x0000000050840000ULL,
1753 -1ULL,
1754 -1ULL,
1755 -1ULL,
1756 -1ULL
1757 }
1758 #endif
1759 },
1760 { "fetchadd", TILEGX_OPC_FETCHADD, 0x2, 3, TREG_ZERO, 1,
1761 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1762 #ifndef DISASM_ONLY
1763 {
1764 0ULL,
1765 0xfffe000000000000ULL,
1766 0ULL,
1767 0ULL,
1768 0ULL
1769 },
1770 {
1771 -1ULL,
1772 0x282a000000000000ULL,
1773 -1ULL,
1774 -1ULL,
1775 -1ULL
1776 }
1777 #endif
1778 },
1779 { "fetchadd4", TILEGX_OPC_FETCHADD4, 0x2, 3, TREG_ZERO, 1,
1780 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1781 #ifndef DISASM_ONLY
1782 {
1783 0ULL,
1784 0xfffe000000000000ULL,
1785 0ULL,
1786 0ULL,
1787 0ULL
1788 },
1789 {
1790 -1ULL,
1791 0x2824000000000000ULL,
1792 -1ULL,
1793 -1ULL,
1794 -1ULL
1795 }
1796 #endif
1797 },
1798 { "fetchaddgez", TILEGX_OPC_FETCHADDGEZ, 0x2, 3, TREG_ZERO, 1,
1799 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1800 #ifndef DISASM_ONLY
1801 {
1802 0ULL,
1803 0xfffe000000000000ULL,
1804 0ULL,
1805 0ULL,
1806 0ULL
1807 },
1808 {
1809 -1ULL,
1810 0x2828000000000000ULL,
1811 -1ULL,
1812 -1ULL,
1813 -1ULL
1814 }
1815 #endif
1816 },
1817 { "fetchaddgez4", TILEGX_OPC_FETCHADDGEZ4, 0x2, 3, TREG_ZERO, 1,
1818 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1819 #ifndef DISASM_ONLY
1820 {
1821 0ULL,
1822 0xfffe000000000000ULL,
1823 0ULL,
1824 0ULL,
1825 0ULL
1826 },
1827 {
1828 -1ULL,
1829 0x2826000000000000ULL,
1830 -1ULL,
1831 -1ULL,
1832 -1ULL
1833 }
1834 #endif
1835 },
1836 { "fetchand", TILEGX_OPC_FETCHAND, 0x2, 3, TREG_ZERO, 1,
1837 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1838 #ifndef DISASM_ONLY
1839 {
1840 0ULL,
1841 0xfffe000000000000ULL,
1842 0ULL,
1843 0ULL,
1844 0ULL
1845 },
1846 {
1847 -1ULL,
1848 0x282e000000000000ULL,
1849 -1ULL,
1850 -1ULL,
1851 -1ULL
1852 }
1853 #endif
1854 },
1855 { "fetchand4", TILEGX_OPC_FETCHAND4, 0x2, 3, TREG_ZERO, 1,
1856 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1857 #ifndef DISASM_ONLY
1858 {
1859 0ULL,
1860 0xfffe000000000000ULL,
1861 0ULL,
1862 0ULL,
1863 0ULL
1864 },
1865 {
1866 -1ULL,
1867 0x282c000000000000ULL,
1868 -1ULL,
1869 -1ULL,
1870 -1ULL
1871 }
1872 #endif
1873 },
1874 { "fetchor", TILEGX_OPC_FETCHOR, 0x2, 3, TREG_ZERO, 1,
1875 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1876 #ifndef DISASM_ONLY
1877 {
1878 0ULL,
1879 0xfffe000000000000ULL,
1880 0ULL,
1881 0ULL,
1882 0ULL
1883 },
1884 {
1885 -1ULL,
1886 0x2832000000000000ULL,
1887 -1ULL,
1888 -1ULL,
1889 -1ULL
1890 }
1891 #endif
1892 },
1893 { "fetchor4", TILEGX_OPC_FETCHOR4, 0x2, 3, TREG_ZERO, 1,
1894 { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
1895 #ifndef DISASM_ONLY
1896 {
1897 0ULL,
1898 0xfffe000000000000ULL,
1899 0ULL,
1900 0ULL,
1901 0ULL
1902 },
1903 {
1904 -1ULL,
1905 0x2830000000000000ULL,
1906 -1ULL,
1907 -1ULL,
1908 -1ULL
1909 }
1910 #endif
1911 },
1912 { "finv", TILEGX_OPC_FINV, 0x2, 1, TREG_ZERO, 1,
1913 { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
1914 #ifndef DISASM_ONLY
1915 {
1916 0ULL,
1917 0xfffff80000000000ULL,
1918 0ULL,
1919 0ULL,
1920 0ULL
1921 },
1922 {
1923 -1ULL,
1924 0x286a180000000000ULL,
1925 -1ULL,
1926 -1ULL,
1927 -1ULL
1928 }
1929 #endif
1930 },
1931 { "flush", TILEGX_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1,
1932 { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
1933 #ifndef DISASM_ONLY
1934 {
1935 0ULL,
1936 0xfffff80000000000ULL,
1937 0ULL,
1938 0ULL,
1939 0ULL
1940 },
1941 {
1942 -1ULL,
1943 0x286a280000000000ULL,
1944 -1ULL,
1945 -1ULL,
1946 -1ULL
1947 }
1948 #endif
1949 },
1950 { "flushwb", TILEGX_OPC_FLUSHWB, 0x2, 0, TREG_ZERO, 1,
1951 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
1952 #ifndef DISASM_ONLY
1953 {
1954 0ULL,
1955 0xfffff80000000000ULL,
1956 0ULL,
1957 0ULL,
1958 0ULL
1959 },
1960 {
1961 -1ULL,
1962 0x286a200000000000ULL,
1963 -1ULL,
1964 -1ULL,
1965 -1ULL
1966 }
1967 #endif
1968 },
1969 { "fnop", TILEGX_OPC_FNOP, 0xf, 0, TREG_ZERO, 1,
1970 { { }, { }, { }, { }, { 0, } },
1971 #ifndef DISASM_ONLY
1972 {
1973 0xc00000007ffff000ULL,
1974 0xfffff80000000000ULL,
1975 0x00000000780ff000ULL,
1976 0x3c07f80000000000ULL,
1977 0ULL
1978 },
1979 {
1980 0x0000000051483000ULL,
1981 0x286a300000000000ULL,
1982 0x00000000300c3000ULL,
1983 0x1c06400000000000ULL,
1984 -1ULL
1985 }
1986 #endif
1987 },
1988 { "fsingle_add1", TILEGX_OPC_FSINGLE_ADD1, 0x1, 3, TREG_ZERO, 1,
1989 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1990 #ifndef DISASM_ONLY
1991 {
1992 0xc00000007ffc0000ULL,
1993 0ULL,
1994 0ULL,
1995 0ULL,
1996 0ULL
1997 },
1998 {
1999 0x0000000050880000ULL,
2000 -1ULL,
2001 -1ULL,
2002 -1ULL,
2003 -1ULL
2004 }
2005 #endif
2006 },
2007 { "fsingle_addsub2", TILEGX_OPC_FSINGLE_ADDSUB2, 0x1, 3, TREG_ZERO, 1,
2008 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
2009 #ifndef DISASM_ONLY
2010 {
2011 0xc00000007ffc0000ULL,
2012 0ULL,
2013 0ULL,
2014 0ULL,
2015 0ULL
2016 },
2017 {
2018 0x00000000508c0000ULL,
2019 -1ULL,
2020 -1ULL,
2021 -1ULL,
2022 -1ULL
2023 }
2024 #endif
2025 },
2026 { "fsingle_mul1", TILEGX_OPC_FSINGLE_MUL1, 0x1, 3, TREG_ZERO, 1,
2027 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
2028 #ifndef DISASM_ONLY
2029 {
2030 0xc00000007ffc0000ULL,
2031 0ULL,
2032 0ULL,
2033 0ULL,
2034 0ULL
2035 },
2036 {
2037 0x0000000050900000ULL,
2038 -1ULL,
2039 -1ULL,
2040 -1ULL,
2041 -1ULL
2042 }
2043 #endif
2044 },
2045 { "fsingle_mul2", TILEGX_OPC_FSINGLE_MUL2, 0x1, 3, TREG_ZERO, 1,
2046 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
2047 #ifndef DISASM_ONLY
2048 {
2049 0xc00000007ffc0000ULL,
2050 0ULL,
2051 0ULL,
2052 0ULL,
2053 0ULL
2054 },
2055 {
2056 0x0000000050940000ULL,
2057 -1ULL,
2058 -1ULL,
2059 -1ULL,
2060 -1ULL
2061 }
2062 #endif
2063 },
2064 { "fsingle_pack1", TILEGX_OPC_FSINGLE_PACK1, 0x5, 2, TREG_ZERO, 1,
2065 { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
2066 #ifndef DISASM_ONLY
2067 {
2068 0xc00000007ffff000ULL,
2069 0ULL,
2070 0x00000000780ff000ULL,
2071 0ULL,
2072 0ULL
2073 },
2074 {
2075 0x0000000051484000ULL,
2076 -1ULL,
2077 0x00000000300c4000ULL,
2078 -1ULL,
2079 -1ULL
2080 }
2081 #endif
2082 },
2083 { "fsingle_pack2", TILEGX_OPC_FSINGLE_PACK2, 0x1, 3, TREG_ZERO, 1,
2084 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
2085 #ifndef DISASM_ONLY
2086 {
2087 0xc00000007ffc0000ULL,
2088 0ULL,
2089 0ULL,
2090 0ULL,
2091 0ULL
2092 },
2093 {
2094 0x0000000050980000ULL,
2095 -1ULL,
2096 -1ULL,
2097 -1ULL,
2098 -1ULL
2099 }
2100 #endif
2101 },
2102 { "fsingle_sub1", TILEGX_OPC_FSINGLE_SUB1, 0x1, 3, TREG_ZERO, 1,
2103 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
2104 #ifndef DISASM_ONLY
2105 {
2106 0xc00000007ffc0000ULL,
2107 0ULL,
2108 0ULL,
2109 0ULL,
2110 0ULL
2111 },
2112 {
2113 0x00000000509c0000ULL,
2114 -1ULL,
2115 -1ULL,
2116 -1ULL,
2117 -1ULL
2118 }
2119 #endif
2120 },
2121 { "icoh", TILEGX_OPC_ICOH, 0x2, 1, TREG_ZERO, 1,
2122 { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
2123 #ifndef DISASM_ONLY
2124 {
2125 0ULL,
2126 0xfffff80000000000ULL,
2127 0ULL,
2128 0ULL,
2129 0ULL
2130 },
2131 {
2132 -1ULL,
2133 0x286a380000000000ULL,
2134 -1ULL,
2135 -1ULL,
2136 -1ULL
2137 }
2138 #endif
2139 },
2140 { "ill", TILEGX_OPC_ILL, 0xa, 0, TREG_ZERO, 1,
2141 { { 0, }, { }, { 0, }, { }, { 0, } },
2142 #ifndef DISASM_ONLY
2143 {
2144 0ULL,
2145 0xfffff80000000000ULL,
2146 0ULL,
2147 0x3c07f80000000000ULL,
2148 0ULL
2149 },
2150 {
2151 -1ULL,
2152 0x286a400000000000ULL,
2153 -1ULL,
2154 0x1c06480000000000ULL,
2155 -1ULL
2156 }
2157 #endif
2158 },
2159 { "inv", TILEGX_OPC_INV, 0x2, 1, TREG_ZERO, 1,
2160 { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
2161 #ifndef DISASM_ONLY
2162 {
2163 0ULL,
2164 0xfffff80000000000ULL,
2165 0ULL,
2166 0ULL,
2167 0ULL
2168 },
2169 {
2170 -1ULL,
2171 0x286a480000000000ULL,
2172 -1ULL,
2173 -1ULL,
2174 -1ULL
2175 }
2176 #endif
2177 },
2178 { "iret", TILEGX_OPC_IRET, 0x2, 0, TREG_ZERO, 1,
2179 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
2180 #ifndef DISASM_ONLY
2181 {
2182 0ULL,
2183 0xfffff80000000000ULL,
2184 0ULL,
2185 0ULL,
2186 0ULL
2187 },
2188 {
2189 -1ULL,
2190 0x286a500000000000ULL,
2191 -1ULL,
2192 -1ULL,
2193 -1ULL
2194 }
2195 #endif
2196 },
2197 { "j", TILEGX_OPC_J, 0x2, 1, TREG_ZERO, 1,
2198 { { 0, }, { 25 }, { 0, }, { 0, }, { 0, } },
2199 #ifndef DISASM_ONLY
2200 {
2201 0ULL,
2202 0xfc00000000000000ULL,
2203 0ULL,
2204 0ULL,
2205 0ULL
2206 },
2207 {
2208 -1ULL,
2209 0x2400000000000000ULL,
2210 -1ULL,
2211 -1ULL,
2212 -1ULL
2213 }
2214 #endif
2215 },
2216 { "jal", TILEGX_OPC_JAL, 0x2, 1, TREG_LR, 1,
2217 { { 0, }, { 25 }, { 0, }, { 0, }, { 0, } },
2218 #ifndef DISASM_ONLY
2219 {
2220 0ULL,
2221 0xfc00000000000000ULL,
2222 0ULL,
2223 0ULL,
2224 0ULL
2225 },
2226 {
2227 -1ULL,
2228 0x2000000000000000ULL,
2229 -1ULL,
2230 -1ULL,
2231 -1ULL
2232 }
2233 #endif
2234 },
2235 { "jalr", TILEGX_OPC_JALR, 0xa, 1, TREG_LR, 1,
2236 { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
2237 #ifndef DISASM_ONLY
2238 {
2239 0ULL,
2240 0xfffff80000000000ULL,
2241 0ULL,
2242 0x3c07f80000000000ULL,
2243 0ULL
2244 },
2245 {
2246 -1ULL,
2247 0x286a600000000000ULL,
2248 -1ULL,
2249 0x1c06580000000000ULL,
2250 -1ULL
2251 }
2252 #endif
2253 },
2254 { "jalrp", TILEGX_OPC_JALRP, 0xa, 1, TREG_LR, 1,
2255 { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
2256 #ifndef DISASM_ONLY
2257 {
2258 0ULL,
2259 0xfffff80000000000ULL,
2260 0ULL,
2261 0x3c07f80000000000ULL,
2262 0ULL
2263 },
2264 {
2265 -1ULL,
2266 0x286a580000000000ULL,
2267 -1ULL,
2268 0x1c06500000000000ULL,
2269 -1ULL
2270 }
2271 #endif
2272 },
2273 { "jr", TILEGX_OPC_JR, 0xa, 1, TREG_ZERO, 1,
2274 { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
2275 #ifndef DISASM_ONLY
2276 {
2277 0ULL,
2278 0xfffff80000000000ULL,
2279 0ULL,
2280 0x3c07f80000000000ULL,
2281 0ULL
2282 },
2283 {
2284 -1ULL,
2285 0x286a700000000000ULL,
2286 -1ULL,
2287 0x1c06680000000000ULL,
2288 -1ULL
2289 }
2290 #endif
2291 },
2292 { "jrp", TILEGX_OPC_JRP, 0xa, 1, TREG_ZERO, 1,
2293 { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } },
2294 #ifndef DISASM_ONLY
2295 {
2296 0ULL,
2297 0xfffff80000000000ULL,
2298 0ULL,
2299 0x3c07f80000000000ULL,
2300 0ULL
2301 },
2302 {
2303 -1ULL,
2304 0x286a680000000000ULL,
2305 -1ULL,
2306 0x1c06600000000000ULL,
2307 -1ULL
2308 }
2309 #endif
2310 },
2311 { "ld", TILEGX_OPC_LD, 0x12, 2, TREG_ZERO, 1,
2312 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2313 #ifndef DISASM_ONLY
2314 {
2315 0ULL,
2316 0xfffff80000000000ULL,
2317 0ULL,
2318 0ULL,
2319 0xc200000004000000ULL
2320 },
2321 {
2322 -1ULL,
2323 0x286ae80000000000ULL,
2324 -1ULL,
2325 -1ULL,
2326 0x8200000004000000ULL
2327 }
2328 #endif
2329 },
2330 { "ld1s", TILEGX_OPC_LD1S, 0x12, 2, TREG_ZERO, 1,
2331 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2332 #ifndef DISASM_ONLY
2333 {
2334 0ULL,
2335 0xfffff80000000000ULL,
2336 0ULL,
2337 0ULL,
2338 0xc200000004000000ULL
2339 },
2340 {
2341 -1ULL,
2342 0x286a780000000000ULL,
2343 -1ULL,
2344 -1ULL,
2345 0x4000000000000000ULL
2346 }
2347 #endif
2348 },
2349 { "ld1s_add", TILEGX_OPC_LD1S_ADD, 0x2, 3, TREG_ZERO, 1,
2350 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2351 #ifndef DISASM_ONLY
2352 {
2353 0ULL,
2354 0xfff8000000000000ULL,
2355 0ULL,
2356 0ULL,
2357 0ULL
2358 },
2359 {
2360 -1ULL,
2361 0x1838000000000000ULL,
2362 -1ULL,
2363 -1ULL,
2364 -1ULL
2365 }
2366 #endif
2367 },
2368 { "ld1u", TILEGX_OPC_LD1U, 0x12, 2, TREG_ZERO, 1,
2369 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2370 #ifndef DISASM_ONLY
2371 {
2372 0ULL,
2373 0xfffff80000000000ULL,
2374 0ULL,
2375 0ULL,
2376 0xc200000004000000ULL
2377 },
2378 {
2379 -1ULL,
2380 0x286a800000000000ULL,
2381 -1ULL,
2382 -1ULL,
2383 0x4000000004000000ULL
2384 }
2385 #endif
2386 },
2387 { "ld1u_add", TILEGX_OPC_LD1U_ADD, 0x2, 3, TREG_ZERO, 1,
2388 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2389 #ifndef DISASM_ONLY
2390 {
2391 0ULL,
2392 0xfff8000000000000ULL,
2393 0ULL,
2394 0ULL,
2395 0ULL
2396 },
2397 {
2398 -1ULL,
2399 0x1840000000000000ULL,
2400 -1ULL,
2401 -1ULL,
2402 -1ULL
2403 }
2404 #endif
2405 },
2406 { "ld2s", TILEGX_OPC_LD2S, 0x12, 2, TREG_ZERO, 1,
2407 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2408 #ifndef DISASM_ONLY
2409 {
2410 0ULL,
2411 0xfffff80000000000ULL,
2412 0ULL,
2413 0ULL,
2414 0xc200000004000000ULL
2415 },
2416 {
2417 -1ULL,
2418 0x286a880000000000ULL,
2419 -1ULL,
2420 -1ULL,
2421 0x4200000000000000ULL
2422 }
2423 #endif
2424 },
2425 { "ld2s_add", TILEGX_OPC_LD2S_ADD, 0x2, 3, TREG_ZERO, 1,
2426 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2427 #ifndef DISASM_ONLY
2428 {
2429 0ULL,
2430 0xfff8000000000000ULL,
2431 0ULL,
2432 0ULL,
2433 0ULL
2434 },
2435 {
2436 -1ULL,
2437 0x1848000000000000ULL,
2438 -1ULL,
2439 -1ULL,
2440 -1ULL
2441 }
2442 #endif
2443 },
2444 { "ld2u", TILEGX_OPC_LD2U, 0x12, 2, TREG_ZERO, 1,
2445 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2446 #ifndef DISASM_ONLY
2447 {
2448 0ULL,
2449 0xfffff80000000000ULL,
2450 0ULL,
2451 0ULL,
2452 0xc200000004000000ULL
2453 },
2454 {
2455 -1ULL,
2456 0x286a900000000000ULL,
2457 -1ULL,
2458 -1ULL,
2459 0x4200000004000000ULL
2460 }
2461 #endif
2462 },
2463 { "ld2u_add", TILEGX_OPC_LD2U_ADD, 0x2, 3, TREG_ZERO, 1,
2464 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2465 #ifndef DISASM_ONLY
2466 {
2467 0ULL,
2468 0xfff8000000000000ULL,
2469 0ULL,
2470 0ULL,
2471 0ULL
2472 },
2473 {
2474 -1ULL,
2475 0x1850000000000000ULL,
2476 -1ULL,
2477 -1ULL,
2478 -1ULL
2479 }
2480 #endif
2481 },
2482 { "ld4s", TILEGX_OPC_LD4S, 0x12, 2, TREG_ZERO, 1,
2483 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2484 #ifndef DISASM_ONLY
2485 {
2486 0ULL,
2487 0xfffff80000000000ULL,
2488 0ULL,
2489 0ULL,
2490 0xc200000004000000ULL
2491 },
2492 {
2493 -1ULL,
2494 0x286a980000000000ULL,
2495 -1ULL,
2496 -1ULL,
2497 0x8000000004000000ULL
2498 }
2499 #endif
2500 },
2501 { "ld4s_add", TILEGX_OPC_LD4S_ADD, 0x2, 3, TREG_ZERO, 1,
2502 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2503 #ifndef DISASM_ONLY
2504 {
2505 0ULL,
2506 0xfff8000000000000ULL,
2507 0ULL,
2508 0ULL,
2509 0ULL
2510 },
2511 {
2512 -1ULL,
2513 0x1858000000000000ULL,
2514 -1ULL,
2515 -1ULL,
2516 -1ULL
2517 }
2518 #endif
2519 },
2520 { "ld4u", TILEGX_OPC_LD4U, 0x12, 2, TREG_ZERO, 1,
2521 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } },
2522 #ifndef DISASM_ONLY
2523 {
2524 0ULL,
2525 0xfffff80000000000ULL,
2526 0ULL,
2527 0ULL,
2528 0xc200000004000000ULL
2529 },
2530 {
2531 -1ULL,
2532 0x286aa00000000000ULL,
2533 -1ULL,
2534 -1ULL,
2535 0x8200000000000000ULL
2536 }
2537 #endif
2538 },
2539 { "ld4u_add", TILEGX_OPC_LD4U_ADD, 0x2, 3, TREG_ZERO, 1,
2540 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2541 #ifndef DISASM_ONLY
2542 {
2543 0ULL,
2544 0xfff8000000000000ULL,
2545 0ULL,
2546 0ULL,
2547 0ULL
2548 },
2549 {
2550 -1ULL,
2551 0x1860000000000000ULL,
2552 -1ULL,
2553 -1ULL,
2554 -1ULL
2555 }
2556 #endif
2557 },
2558 { "ld_add", TILEGX_OPC_LD_ADD, 0x2, 3, TREG_ZERO, 1,
2559 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2560 #ifndef DISASM_ONLY
2561 {
2562 0ULL,
2563 0xfff8000000000000ULL,
2564 0ULL,
2565 0ULL,
2566 0ULL
2567 },
2568 {
2569 -1ULL,
2570 0x18a0000000000000ULL,
2571 -1ULL,
2572 -1ULL,
2573 -1ULL
2574 }
2575 #endif
2576 },
2577 { "ldna", TILEGX_OPC_LDNA, 0x2, 2, TREG_ZERO, 1,
2578 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2579 #ifndef DISASM_ONLY
2580 {
2581 0ULL,
2582 0xfffff80000000000ULL,
2583 0ULL,
2584 0ULL,
2585 0ULL
2586 },
2587 {
2588 -1ULL,
2589 0x286aa80000000000ULL,
2590 -1ULL,
2591 -1ULL,
2592 -1ULL
2593 }
2594 #endif
2595 },
2596 { "ldna_add", TILEGX_OPC_LDNA_ADD, 0x2, 3, TREG_ZERO, 1,
2597 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2598 #ifndef DISASM_ONLY
2599 {
2600 0ULL,
2601 0xfff8000000000000ULL,
2602 0ULL,
2603 0ULL,
2604 0ULL
2605 },
2606 {
2607 -1ULL,
2608 0x18a8000000000000ULL,
2609 -1ULL,
2610 -1ULL,
2611 -1ULL
2612 }
2613 #endif
2614 },
2615 { "ldnt", TILEGX_OPC_LDNT, 0x2, 2, TREG_ZERO, 1,
2616 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2617 #ifndef DISASM_ONLY
2618 {
2619 0ULL,
2620 0xfffff80000000000ULL,
2621 0ULL,
2622 0ULL,
2623 0ULL
2624 },
2625 {
2626 -1ULL,
2627 0x286ae00000000000ULL,
2628 -1ULL,
2629 -1ULL,
2630 -1ULL
2631 }
2632 #endif
2633 },
2634 { "ldnt1s", TILEGX_OPC_LDNT1S, 0x2, 2, TREG_ZERO, 1,
2635 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2636 #ifndef DISASM_ONLY
2637 {
2638 0ULL,
2639 0xfffff80000000000ULL,
2640 0ULL,
2641 0ULL,
2642 0ULL
2643 },
2644 {
2645 -1ULL,
2646 0x286ab00000000000ULL,
2647 -1ULL,
2648 -1ULL,
2649 -1ULL
2650 }
2651 #endif
2652 },
2653 { "ldnt1s_add", TILEGX_OPC_LDNT1S_ADD, 0x2, 3, TREG_ZERO, 1,
2654 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2655 #ifndef DISASM_ONLY
2656 {
2657 0ULL,
2658 0xfff8000000000000ULL,
2659 0ULL,
2660 0ULL,
2661 0ULL
2662 },
2663 {
2664 -1ULL,
2665 0x1868000000000000ULL,
2666 -1ULL,
2667 -1ULL,
2668 -1ULL
2669 }
2670 #endif
2671 },
2672 { "ldnt1u", TILEGX_OPC_LDNT1U, 0x2, 2, TREG_ZERO, 1,
2673 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2674 #ifndef DISASM_ONLY
2675 {
2676 0ULL,
2677 0xfffff80000000000ULL,
2678 0ULL,
2679 0ULL,
2680 0ULL
2681 },
2682 {
2683 -1ULL,
2684 0x286ab80000000000ULL,
2685 -1ULL,
2686 -1ULL,
2687 -1ULL
2688 }
2689 #endif
2690 },
2691 { "ldnt1u_add", TILEGX_OPC_LDNT1U_ADD, 0x2, 3, TREG_ZERO, 1,
2692 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2693 #ifndef DISASM_ONLY
2694 {
2695 0ULL,
2696 0xfff8000000000000ULL,
2697 0ULL,
2698 0ULL,
2699 0ULL
2700 },
2701 {
2702 -1ULL,
2703 0x1870000000000000ULL,
2704 -1ULL,
2705 -1ULL,
2706 -1ULL
2707 }
2708 #endif
2709 },
2710 { "ldnt2s", TILEGX_OPC_LDNT2S, 0x2, 2, TREG_ZERO, 1,
2711 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2712 #ifndef DISASM_ONLY
2713 {
2714 0ULL,
2715 0xfffff80000000000ULL,
2716 0ULL,
2717 0ULL,
2718 0ULL
2719 },
2720 {
2721 -1ULL,
2722 0x286ac00000000000ULL,
2723 -1ULL,
2724 -1ULL,
2725 -1ULL
2726 }
2727 #endif
2728 },
2729 { "ldnt2s_add", TILEGX_OPC_LDNT2S_ADD, 0x2, 3, TREG_ZERO, 1,
2730 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2731 #ifndef DISASM_ONLY
2732 {
2733 0ULL,
2734 0xfff8000000000000ULL,
2735 0ULL,
2736 0ULL,
2737 0ULL
2738 },
2739 {
2740 -1ULL,
2741 0x1878000000000000ULL,
2742 -1ULL,
2743 -1ULL,
2744 -1ULL
2745 }
2746 #endif
2747 },
2748 { "ldnt2u", TILEGX_OPC_LDNT2U, 0x2, 2, TREG_ZERO, 1,
2749 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2750 #ifndef DISASM_ONLY
2751 {
2752 0ULL,
2753 0xfffff80000000000ULL,
2754 0ULL,
2755 0ULL,
2756 0ULL
2757 },
2758 {
2759 -1ULL,
2760 0x286ac80000000000ULL,
2761 -1ULL,
2762 -1ULL,
2763 -1ULL
2764 }
2765 #endif
2766 },
2767 { "ldnt2u_add", TILEGX_OPC_LDNT2U_ADD, 0x2, 3, TREG_ZERO, 1,
2768 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2769 #ifndef DISASM_ONLY
2770 {
2771 0ULL,
2772 0xfff8000000000000ULL,
2773 0ULL,
2774 0ULL,
2775 0ULL
2776 },
2777 {
2778 -1ULL,
2779 0x1880000000000000ULL,
2780 -1ULL,
2781 -1ULL,
2782 -1ULL
2783 }
2784 #endif
2785 },
2786 { "ldnt4s", TILEGX_OPC_LDNT4S, 0x2, 2, TREG_ZERO, 1,
2787 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2788 #ifndef DISASM_ONLY
2789 {
2790 0ULL,
2791 0xfffff80000000000ULL,
2792 0ULL,
2793 0ULL,
2794 0ULL
2795 },
2796 {
2797 -1ULL,
2798 0x286ad00000000000ULL,
2799 -1ULL,
2800 -1ULL,
2801 -1ULL
2802 }
2803 #endif
2804 },
2805 { "ldnt4s_add", TILEGX_OPC_LDNT4S_ADD, 0x2, 3, TREG_ZERO, 1,
2806 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2807 #ifndef DISASM_ONLY
2808 {
2809 0ULL,
2810 0xfff8000000000000ULL,
2811 0ULL,
2812 0ULL,
2813 0ULL
2814 },
2815 {
2816 -1ULL,
2817 0x1888000000000000ULL,
2818 -1ULL,
2819 -1ULL,
2820 -1ULL
2821 }
2822 #endif
2823 },
2824 { "ldnt4u", TILEGX_OPC_LDNT4U, 0x2, 2, TREG_ZERO, 1,
2825 { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } },
2826 #ifndef DISASM_ONLY
2827 {
2828 0ULL,
2829 0xfffff80000000000ULL,
2830 0ULL,
2831 0ULL,
2832 0ULL
2833 },
2834 {
2835 -1ULL,
2836 0x286ad80000000000ULL,
2837 -1ULL,
2838 -1ULL,
2839 -1ULL
2840 }
2841 #endif
2842 },
2843 { "ldnt4u_add", TILEGX_OPC_LDNT4U_ADD, 0x2, 3, TREG_ZERO, 1,
2844 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2845 #ifndef DISASM_ONLY
2846 {
2847 0ULL,
2848 0xfff8000000000000ULL,
2849 0ULL,
2850 0ULL,
2851 0ULL
2852 },
2853 {
2854 -1ULL,
2855 0x1890000000000000ULL,
2856 -1ULL,
2857 -1ULL,
2858 -1ULL
2859 }
2860 #endif
2861 },
2862 { "ldnt_add", TILEGX_OPC_LDNT_ADD, 0x2, 3, TREG_ZERO, 1,
2863 { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } },
2864 #ifndef DISASM_ONLY
2865 {
2866 0ULL,
2867 0xfff8000000000000ULL,
2868 0ULL,
2869 0ULL,
2870 0ULL
2871 },
2872 {
2873 -1ULL,
2874 0x1898000000000000ULL,
2875 -1ULL,
2876 -1ULL,
2877 -1ULL
2878 }
2879 #endif
2880 },
2881 { "lnk", TILEGX_OPC_LNK, 0xa, 1, TREG_ZERO, 1,
2882 { { 0, }, { 6 }, { 0, }, { 12 }, { 0, } },
2883 #ifndef DISASM_ONLY
2884 {
2885 0ULL,
2886 0xfffff80000000000ULL,
2887 0ULL,
2888 0x3c07f80000000000ULL,
2889 0ULL
2890 },
2891 {
2892 -1ULL,
2893 0x286af00000000000ULL,
2894 -1ULL,
2895 0x1c06700000000000ULL,
2896 -1ULL
2897 }
2898 #endif
2899 },
2900 { "mf", TILEGX_OPC_MF, 0x2, 0, TREG_ZERO, 1,
2901 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
2902 #ifndef DISASM_ONLY
2903 {
2904 0ULL,
2905 0xfffff80000000000ULL,
2906 0ULL,
2907 0ULL,
2908 0ULL
2909 },
2910 {
2911 -1ULL,
2912 0x286af80000000000ULL,
2913 -1ULL,
2914 -1ULL,
2915 -1ULL
2916 }
2917 #endif
2918 },
2919 { "mfspr", TILEGX_OPC_MFSPR, 0x2, 2, TREG_ZERO, 1,
2920 { { 0, }, { 6, 27 }, { 0, }, { 0, }, { 0, } },
2921 #ifndef DISASM_ONLY
2922 {
2923 0ULL,
2924 0xfff8000000000000ULL,
2925 0ULL,
2926 0ULL,
2927 0ULL
2928 },
2929 {
2930 -1ULL,
2931 0x18b0000000000000ULL,
2932 -1ULL,
2933 -1ULL,
2934 -1ULL
2935 }
2936 #endif
2937 },
2938 { "mm", TILEGX_OPC_MM, 0x1, 4, TREG_ZERO, 1,
2939 { { 23, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
2940 #ifndef DISASM_ONLY
2941 {
2942 0xc00000007f000000ULL,
2943 0ULL,
2944 0ULL,
2945 0ULL,
2946 0ULL
2947 },
2948 {
2949 0x0000000037000000ULL,
2950 -1ULL,
2951 -1ULL,
2952 -1ULL,
2953 -1ULL
2954 }
2955 #endif
2956 },
2957 { "mnz", TILEGX_OPC_MNZ, 0xf, 3, TREG_ZERO, 1,
2958 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
2959 #ifndef DISASM_ONLY
2960 {
2961 0xc00000007ffc0000ULL,
2962 0xfffe000000000000ULL,
2963 0x00000000780c0000ULL,
2964 0x3c06000000000000ULL,
2965 0ULL
2966 },
2967 {
2968 0x0000000050a00000ULL,
2969 0x2834000000000000ULL,
2970 0x0000000048080000ULL,
2971 0x2804000000000000ULL,
2972 -1ULL
2973 }
2974 #endif
2975 },
2976 { "mtspr", TILEGX_OPC_MTSPR, 0x2, 2, TREG_ZERO, 1,
2977 { { 0, }, { 28, 7 }, { 0, }, { 0, }, { 0, } },
2978 #ifndef DISASM_ONLY
2979 {
2980 0ULL,
2981 0xfff8000000000000ULL,
2982 0ULL,
2983 0ULL,
2984 0ULL
2985 },
2986 {
2987 -1ULL,
2988 0x18b8000000000000ULL,
2989 -1ULL,
2990 -1ULL,
2991 -1ULL
2992 }
2993 #endif
2994 },
2995 { "mul_hs_hs", TILEGX_OPC_MUL_HS_HS, 0x5, 3, TREG_ZERO, 1,
2996 { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
2997 #ifndef DISASM_ONLY
2998 {
2999 0xc00000007ffc0000ULL,
3000 0ULL,
3001 0x00000000780c0000ULL,
3002 0ULL,
3003 0ULL
3004 },
3005 {
3006 0x0000000050d40000ULL,
3007 -1ULL,
3008 0x0000000068000000ULL,
3009 -1ULL,
3010 -1ULL
3011 }
3012 #endif
3013 },
3014 { "mul_hs_hu", TILEGX_OPC_MUL_HS_HU, 0x1, 3, TREG_ZERO, 1,
3015 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3016 #ifndef DISASM_ONLY
3017 {
3018 0xc00000007ffc0000ULL,
3019 0ULL,
3020 0ULL,
3021 0ULL,
3022 0ULL
3023 },
3024 {
3025 0x0000000050d80000ULL,
3026 -1ULL,
3027 -1ULL,
3028 -1ULL,
3029 -1ULL
3030 }
3031 #endif
3032 },
3033 { "mul_hs_ls", TILEGX_OPC_MUL_HS_LS, 0x1, 3, TREG_ZERO, 1,
3034 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3035 #ifndef DISASM_ONLY
3036 {
3037 0xc00000007ffc0000ULL,
3038 0ULL,
3039 0ULL,
3040 0ULL,
3041 0ULL
3042 },
3043 {
3044 0x0000000050dc0000ULL,
3045 -1ULL,
3046 -1ULL,
3047 -1ULL,
3048 -1ULL
3049 }
3050 #endif
3051 },
3052 { "mul_hs_lu", TILEGX_OPC_MUL_HS_LU, 0x1, 3, TREG_ZERO, 1,
3053 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3054 #ifndef DISASM_ONLY
3055 {
3056 0xc00000007ffc0000ULL,
3057 0ULL,
3058 0ULL,
3059 0ULL,
3060 0ULL
3061 },
3062 {
3063 0x0000000050e00000ULL,
3064 -1ULL,
3065 -1ULL,
3066 -1ULL,
3067 -1ULL
3068 }
3069 #endif
3070 },
3071 { "mul_hu_hu", TILEGX_OPC_MUL_HU_HU, 0x5, 3, TREG_ZERO, 1,
3072 { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
3073 #ifndef DISASM_ONLY
3074 {
3075 0xc00000007ffc0000ULL,
3076 0ULL,
3077 0x00000000780c0000ULL,
3078 0ULL,
3079 0ULL
3080 },
3081 {
3082 0x0000000050e40000ULL,
3083 -1ULL,
3084 0x0000000068040000ULL,
3085 -1ULL,
3086 -1ULL
3087 }
3088 #endif
3089 },
3090 { "mul_hu_ls", TILEGX_OPC_MUL_HU_LS, 0x1, 3, TREG_ZERO, 1,
3091 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3092 #ifndef DISASM_ONLY
3093 {
3094 0xc00000007ffc0000ULL,
3095 0ULL,
3096 0ULL,
3097 0ULL,
3098 0ULL
3099 },
3100 {
3101 0x0000000050e80000ULL,
3102 -1ULL,
3103 -1ULL,
3104 -1ULL,
3105 -1ULL
3106 }
3107 #endif
3108 },
3109 { "mul_hu_lu", TILEGX_OPC_MUL_HU_LU, 0x1, 3, TREG_ZERO, 1,
3110 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3111 #ifndef DISASM_ONLY
3112 {
3113 0xc00000007ffc0000ULL,
3114 0ULL,
3115 0ULL,
3116 0ULL,
3117 0ULL
3118 },
3119 {
3120 0x0000000050ec0000ULL,
3121 -1ULL,
3122 -1ULL,
3123 -1ULL,
3124 -1ULL
3125 }
3126 #endif
3127 },
3128 { "mul_ls_ls", TILEGX_OPC_MUL_LS_LS, 0x5, 3, TREG_ZERO, 1,
3129 { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
3130 #ifndef DISASM_ONLY
3131 {
3132 0xc00000007ffc0000ULL,
3133 0ULL,
3134 0x00000000780c0000ULL,
3135 0ULL,
3136 0ULL
3137 },
3138 {
3139 0x0000000050f00000ULL,
3140 -1ULL,
3141 0x0000000068080000ULL,
3142 -1ULL,
3143 -1ULL
3144 }
3145 #endif
3146 },
3147 { "mul_ls_lu", TILEGX_OPC_MUL_LS_LU, 0x1, 3, TREG_ZERO, 1,
3148 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3149 #ifndef DISASM_ONLY
3150 {
3151 0xc00000007ffc0000ULL,
3152 0ULL,
3153 0ULL,
3154 0ULL,
3155 0ULL
3156 },
3157 {
3158 0x0000000050f40000ULL,
3159 -1ULL,
3160 -1ULL,
3161 -1ULL,
3162 -1ULL
3163 }
3164 #endif
3165 },
3166 { "mul_lu_lu", TILEGX_OPC_MUL_LU_LU, 0x5, 3, TREG_ZERO, 1,
3167 { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
3168 #ifndef DISASM_ONLY
3169 {
3170 0xc00000007ffc0000ULL,
3171 0ULL,
3172 0x00000000780c0000ULL,
3173 0ULL,
3174 0ULL
3175 },
3176 {
3177 0x0000000050f80000ULL,
3178 -1ULL,
3179 0x00000000680c0000ULL,
3180 -1ULL,
3181 -1ULL
3182 }
3183 #endif
3184 },
3185 { "mula_hs_hs", TILEGX_OPC_MULA_HS_HS, 0x5, 3, TREG_ZERO, 1,
3186 { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
3187 #ifndef DISASM_ONLY
3188 {
3189 0xc00000007ffc0000ULL,
3190 0ULL,
3191 0x00000000780c0000ULL,
3192 0ULL,
3193 0ULL
3194 },
3195 {
3196 0x0000000050a80000ULL,
3197 -1ULL,
3198 0x0000000070000000ULL,
3199 -1ULL,
3200 -1ULL
3201 }
3202 #endif
3203 },
3204 { "mula_hs_hu", TILEGX_OPC_MULA_HS_HU, 0x1, 3, TREG_ZERO, 1,
3205 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3206 #ifndef DISASM_ONLY
3207 {
3208 0xc00000007ffc0000ULL,
3209 0ULL,
3210 0ULL,
3211 0ULL,
3212 0ULL
3213 },
3214 {
3215 0x0000000050ac0000ULL,
3216 -1ULL,
3217 -1ULL,
3218 -1ULL,
3219 -1ULL
3220 }
3221 #endif
3222 },
3223 { "mula_hs_ls", TILEGX_OPC_MULA_HS_LS, 0x1, 3, TREG_ZERO, 1,
3224 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3225 #ifndef DISASM_ONLY
3226 {
3227 0xc00000007ffc0000ULL,
3228 0ULL,
3229 0ULL,
3230 0ULL,
3231 0ULL
3232 },
3233 {
3234 0x0000000050b00000ULL,
3235 -1ULL,
3236 -1ULL,
3237 -1ULL,
3238 -1ULL
3239 }
3240 #endif
3241 },
3242 { "mula_hs_lu", TILEGX_OPC_MULA_HS_LU, 0x1, 3, TREG_ZERO, 1,
3243 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3244 #ifndef DISASM_ONLY
3245 {
3246 0xc00000007ffc0000ULL,
3247 0ULL,
3248 0ULL,
3249 0ULL,
3250 0ULL
3251 },
3252 {
3253 0x0000000050b40000ULL,
3254 -1ULL,
3255 -1ULL,
3256 -1ULL,
3257 -1ULL
3258 }
3259 #endif
3260 },
3261 { "mula_hu_hu", TILEGX_OPC_MULA_HU_HU, 0x5, 3, TREG_ZERO, 1,
3262 { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
3263 #ifndef DISASM_ONLY
3264 {
3265 0xc00000007ffc0000ULL,
3266 0ULL,
3267 0x00000000780c0000ULL,
3268 0ULL,
3269 0ULL
3270 },
3271 {
3272 0x0000000050b80000ULL,
3273 -1ULL,
3274 0x0000000070040000ULL,
3275 -1ULL,
3276 -1ULL
3277 }
3278 #endif
3279 },
3280 { "mula_hu_ls", TILEGX_OPC_MULA_HU_LS, 0x1, 3, TREG_ZERO, 1,
3281 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3282 #ifndef DISASM_ONLY
3283 {
3284 0xc00000007ffc0000ULL,
3285 0ULL,
3286 0ULL,
3287 0ULL,
3288 0ULL
3289 },
3290 {
3291 0x0000000050bc0000ULL,
3292 -1ULL,
3293 -1ULL,
3294 -1ULL,
3295 -1ULL
3296 }
3297 #endif
3298 },
3299 { "mula_hu_lu", TILEGX_OPC_MULA_HU_LU, 0x1, 3, TREG_ZERO, 1,
3300 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3301 #ifndef DISASM_ONLY
3302 {
3303 0xc00000007ffc0000ULL,
3304 0ULL,
3305 0ULL,
3306 0ULL,
3307 0ULL
3308 },
3309 {
3310 0x0000000050c00000ULL,
3311 -1ULL,
3312 -1ULL,
3313 -1ULL,
3314 -1ULL
3315 }
3316 #endif
3317 },
3318 { "mula_ls_ls", TILEGX_OPC_MULA_LS_LS, 0x5, 3, TREG_ZERO, 1,
3319 { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
3320 #ifndef DISASM_ONLY
3321 {
3322 0xc00000007ffc0000ULL,
3323 0ULL,
3324 0x00000000780c0000ULL,
3325 0ULL,
3326 0ULL
3327 },
3328 {
3329 0x0000000050c40000ULL,
3330 -1ULL,
3331 0x0000000070080000ULL,
3332 -1ULL,
3333 -1ULL
3334 }
3335 #endif
3336 },
3337 { "mula_ls_lu", TILEGX_OPC_MULA_LS_LU, 0x1, 3, TREG_ZERO, 1,
3338 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3339 #ifndef DISASM_ONLY
3340 {
3341 0xc00000007ffc0000ULL,
3342 0ULL,
3343 0ULL,
3344 0ULL,
3345 0ULL
3346 },
3347 {
3348 0x0000000050c80000ULL,
3349 -1ULL,
3350 -1ULL,
3351 -1ULL,
3352 -1ULL
3353 }
3354 #endif
3355 },
3356 { "mula_lu_lu", TILEGX_OPC_MULA_LU_LU, 0x5, 3, TREG_ZERO, 1,
3357 { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
3358 #ifndef DISASM_ONLY
3359 {
3360 0xc00000007ffc0000ULL,
3361 0ULL,
3362 0x00000000780c0000ULL,
3363 0ULL,
3364 0ULL
3365 },
3366 {
3367 0x0000000050cc0000ULL,
3368 -1ULL,
3369 0x00000000700c0000ULL,
3370 -1ULL,
3371 -1ULL
3372 }
3373 #endif
3374 },
3375 { "mulax", TILEGX_OPC_MULAX, 0x5, 3, TREG_ZERO, 1,
3376 { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
3377 #ifndef DISASM_ONLY
3378 {
3379 0xc00000007ffc0000ULL,
3380 0ULL,
3381 0x00000000780c0000ULL,
3382 0ULL,
3383 0ULL
3384 },
3385 {
3386 0x0000000050a40000ULL,
3387 -1ULL,
3388 0x0000000040080000ULL,
3389 -1ULL,
3390 -1ULL
3391 }
3392 #endif
3393 },
3394 { "mulx", TILEGX_OPC_MULX, 0x5, 3, TREG_ZERO, 1,
3395 { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
3396 #ifndef DISASM_ONLY
3397 {
3398 0xc00000007ffc0000ULL,
3399 0ULL,
3400 0x00000000780c0000ULL,
3401 0ULL,
3402 0ULL
3403 },
3404 {
3405 0x0000000050d00000ULL,
3406 -1ULL,
3407 0x00000000400c0000ULL,
3408 -1ULL,
3409 -1ULL
3410 }
3411 #endif
3412 },
3413 { "mz", TILEGX_OPC_MZ, 0xf, 3, TREG_ZERO, 1,
3414 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3415 #ifndef DISASM_ONLY
3416 {
3417 0xc00000007ffc0000ULL,
3418 0xfffe000000000000ULL,
3419 0x00000000780c0000ULL,
3420 0x3c06000000000000ULL,
3421 0ULL
3422 },
3423 {
3424 0x0000000050fc0000ULL,
3425 0x2836000000000000ULL,
3426 0x00000000480c0000ULL,
3427 0x2806000000000000ULL,
3428 -1ULL
3429 }
3430 #endif
3431 },
3432 { "nap", TILEGX_OPC_NAP, 0x2, 0, TREG_ZERO, 0,
3433 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
3434 #ifndef DISASM_ONLY
3435 {
3436 0ULL,
3437 0xfffff80000000000ULL,
3438 0ULL,
3439 0ULL,
3440 0ULL
3441 },
3442 {
3443 -1ULL,
3444 0x286b000000000000ULL,
3445 -1ULL,
3446 -1ULL,
3447 -1ULL
3448 }
3449 #endif
3450 },
3451 { "nop", TILEGX_OPC_NOP, 0xf, 0, TREG_ZERO, 1,
3452 { { }, { }, { }, { }, { 0, } },
3453 #ifndef DISASM_ONLY
3454 {
3455 0xc00000007ffff000ULL,
3456 0xfffff80000000000ULL,
3457 0x00000000780ff000ULL,
3458 0x3c07f80000000000ULL,
3459 0ULL
3460 },
3461 {
3462 0x0000000051485000ULL,
3463 0x286b080000000000ULL,
3464 0x00000000300c5000ULL,
3465 0x1c06780000000000ULL,
3466 -1ULL
3467 }
3468 #endif
3469 },
3470 { "nor", TILEGX_OPC_NOR, 0xf, 3, TREG_ZERO, 1,
3471 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3472 #ifndef DISASM_ONLY
3473 {
3474 0xc00000007ffc0000ULL,
3475 0xfffe000000000000ULL,
3476 0x00000000780c0000ULL,
3477 0x3c06000000000000ULL,
3478 0ULL
3479 },
3480 {
3481 0x0000000051000000ULL,
3482 0x2838000000000000ULL,
3483 0x0000000050040000ULL,
3484 0x2c02000000000000ULL,
3485 -1ULL
3486 }
3487 #endif
3488 },
3489 { "or", TILEGX_OPC_OR, 0xf, 3, TREG_ZERO, 1,
3490 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3491 #ifndef DISASM_ONLY
3492 {
3493 0xc00000007ffc0000ULL,
3494 0xfffe000000000000ULL,
3495 0x00000000780c0000ULL,
3496 0x3c06000000000000ULL,
3497 0ULL
3498 },
3499 {
3500 0x0000000051040000ULL,
3501 0x283a000000000000ULL,
3502 0x0000000050080000ULL,
3503 0x2c04000000000000ULL,
3504 -1ULL
3505 }
3506 #endif
3507 },
3508 { "ori", TILEGX_OPC_ORI, 0x3, 3, TREG_ZERO, 1,
3509 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
3510 #ifndef DISASM_ONLY
3511 {
3512 0xc00000007ff00000ULL,
3513 0xfff8000000000000ULL,
3514 0ULL,
3515 0ULL,
3516 0ULL
3517 },
3518 {
3519 0x0000000040700000ULL,
3520 0x18c0000000000000ULL,
3521 -1ULL,
3522 -1ULL,
3523 -1ULL
3524 }
3525 #endif
3526 },
3527 { "pcnt", TILEGX_OPC_PCNT, 0x5, 2, TREG_ZERO, 1,
3528 { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
3529 #ifndef DISASM_ONLY
3530 {
3531 0xc00000007ffff000ULL,
3532 0ULL,
3533 0x00000000780ff000ULL,
3534 0ULL,
3535 0ULL
3536 },
3537 {
3538 0x0000000051486000ULL,
3539 -1ULL,
3540 0x00000000300c6000ULL,
3541 -1ULL,
3542 -1ULL
3543 }
3544 #endif
3545 },
3546 { "revbits", TILEGX_OPC_REVBITS, 0x5, 2, TREG_ZERO, 1,
3547 { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
3548 #ifndef DISASM_ONLY
3549 {
3550 0xc00000007ffff000ULL,
3551 0ULL,
3552 0x00000000780ff000ULL,
3553 0ULL,
3554 0ULL
3555 },
3556 {
3557 0x0000000051487000ULL,
3558 -1ULL,
3559 0x00000000300c7000ULL,
3560 -1ULL,
3561 -1ULL
3562 }
3563 #endif
3564 },
3565 { "revbytes", TILEGX_OPC_REVBYTES, 0x5, 2, TREG_ZERO, 1,
3566 { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
3567 #ifndef DISASM_ONLY
3568 {
3569 0xc00000007ffff000ULL,
3570 0ULL,
3571 0x00000000780ff000ULL,
3572 0ULL,
3573 0ULL
3574 },
3575 {
3576 0x0000000051488000ULL,
3577 -1ULL,
3578 0x00000000300c8000ULL,
3579 -1ULL,
3580 -1ULL
3581 }
3582 #endif
3583 },
3584 { "rotl", TILEGX_OPC_ROTL, 0xf, 3, TREG_ZERO, 1,
3585 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3586 #ifndef DISASM_ONLY
3587 {
3588 0xc00000007ffc0000ULL,
3589 0xfffe000000000000ULL,
3590 0x00000000780c0000ULL,
3591 0x3c06000000000000ULL,
3592 0ULL
3593 },
3594 {
3595 0x0000000051080000ULL,
3596 0x283c000000000000ULL,
3597 0x0000000058000000ULL,
3598 0x3000000000000000ULL,
3599 -1ULL
3600 }
3601 #endif
3602 },
3603 { "rotli", TILEGX_OPC_ROTLI, 0xf, 3, TREG_ZERO, 1,
3604 { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
3605 #ifndef DISASM_ONLY
3606 {
3607 0xc00000007ffc0000ULL,
3608 0xfffe000000000000ULL,
3609 0x00000000780c0000ULL,
3610 0x3c06000000000000ULL,
3611 0ULL
3612 },
3613 {
3614 0x0000000060040000ULL,
3615 0x3002000000000000ULL,
3616 0x0000000078000000ULL,
3617 0x3800000000000000ULL,
3618 -1ULL
3619 }
3620 #endif
3621 },
3622 { "shl", TILEGX_OPC_SHL, 0xf, 3, TREG_ZERO, 1,
3623 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3624 #ifndef DISASM_ONLY
3625 {
3626 0xc00000007ffc0000ULL,
3627 0xfffe000000000000ULL,
3628 0x00000000780c0000ULL,
3629 0x3c06000000000000ULL,
3630 0ULL
3631 },
3632 {
3633 0x0000000051280000ULL,
3634 0x284c000000000000ULL,
3635 0x0000000058040000ULL,
3636 0x3002000000000000ULL,
3637 -1ULL
3638 }
3639 #endif
3640 },
3641 { "shl16insli", TILEGX_OPC_SHL16INSLI, 0x3, 3, TREG_ZERO, 1,
3642 { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } },
3643 #ifndef DISASM_ONLY
3644 {
3645 0xc000000070000000ULL,
3646 0xf800000000000000ULL,
3647 0ULL,
3648 0ULL,
3649 0ULL
3650 },
3651 {
3652 0x0000000070000000ULL,
3653 0x3800000000000000ULL,
3654 -1ULL,
3655 -1ULL,
3656 -1ULL
3657 }
3658 #endif
3659 },
3660 { "shl1add", TILEGX_OPC_SHL1ADD, 0xf, 3, TREG_ZERO, 1,
3661 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3662 #ifndef DISASM_ONLY
3663 {
3664 0xc00000007ffc0000ULL,
3665 0xfffe000000000000ULL,
3666 0x00000000780c0000ULL,
3667 0x3c06000000000000ULL,
3668 0ULL
3669 },
3670 {
3671 0x0000000051100000ULL,
3672 0x2840000000000000ULL,
3673 0x0000000030000000ULL,
3674 0x1c00000000000000ULL,
3675 -1ULL
3676 }
3677 #endif
3678 },
3679 { "shl1addx", TILEGX_OPC_SHL1ADDX, 0xf, 3, TREG_ZERO, 1,
3680 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3681 #ifndef DISASM_ONLY
3682 {
3683 0xc00000007ffc0000ULL,
3684 0xfffe000000000000ULL,
3685 0x00000000780c0000ULL,
3686 0x3c06000000000000ULL,
3687 0ULL
3688 },
3689 {
3690 0x00000000510c0000ULL,
3691 0x283e000000000000ULL,
3692 0x0000000060040000ULL,
3693 0x3402000000000000ULL,
3694 -1ULL
3695 }
3696 #endif
3697 },
3698 { "shl2add", TILEGX_OPC_SHL2ADD, 0xf, 3, TREG_ZERO, 1,
3699 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3700 #ifndef DISASM_ONLY
3701 {
3702 0xc00000007ffc0000ULL,
3703 0xfffe000000000000ULL,
3704 0x00000000780c0000ULL,
3705 0x3c06000000000000ULL,
3706 0ULL
3707 },
3708 {
3709 0x0000000051180000ULL,
3710 0x2844000000000000ULL,
3711 0x0000000030040000ULL,
3712 0x1c02000000000000ULL,
3713 -1ULL
3714 }
3715 #endif
3716 },
3717 { "shl2addx", TILEGX_OPC_SHL2ADDX, 0xf, 3, TREG_ZERO, 1,
3718 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3719 #ifndef DISASM_ONLY
3720 {
3721 0xc00000007ffc0000ULL,
3722 0xfffe000000000000ULL,
3723 0x00000000780c0000ULL,
3724 0x3c06000000000000ULL,
3725 0ULL
3726 },
3727 {
3728 0x0000000051140000ULL,
3729 0x2842000000000000ULL,
3730 0x0000000060080000ULL,
3731 0x3404000000000000ULL,
3732 -1ULL
3733 }
3734 #endif
3735 },
3736 { "shl3add", TILEGX_OPC_SHL3ADD, 0xf, 3, TREG_ZERO, 1,
3737 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3738 #ifndef DISASM_ONLY
3739 {
3740 0xc00000007ffc0000ULL,
3741 0xfffe000000000000ULL,
3742 0x00000000780c0000ULL,
3743 0x3c06000000000000ULL,
3744 0ULL
3745 },
3746 {
3747 0x0000000051200000ULL,
3748 0x2848000000000000ULL,
3749 0x0000000030080000ULL,
3750 0x1c04000000000000ULL,
3751 -1ULL
3752 }
3753 #endif
3754 },
3755 { "shl3addx", TILEGX_OPC_SHL3ADDX, 0xf, 3, TREG_ZERO, 1,
3756 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3757 #ifndef DISASM_ONLY
3758 {
3759 0xc00000007ffc0000ULL,
3760 0xfffe000000000000ULL,
3761 0x00000000780c0000ULL,
3762 0x3c06000000000000ULL,
3763 0ULL
3764 },
3765 {
3766 0x00000000511c0000ULL,
3767 0x2846000000000000ULL,
3768 0x00000000600c0000ULL,
3769 0x3406000000000000ULL,
3770 -1ULL
3771 }
3772 #endif
3773 },
3774 { "shli", TILEGX_OPC_SHLI, 0xf, 3, TREG_ZERO, 1,
3775 { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
3776 #ifndef DISASM_ONLY
3777 {
3778 0xc00000007ffc0000ULL,
3779 0xfffe000000000000ULL,
3780 0x00000000780c0000ULL,
3781 0x3c06000000000000ULL,
3782 0ULL
3783 },
3784 {
3785 0x0000000060080000ULL,
3786 0x3004000000000000ULL,
3787 0x0000000078040000ULL,
3788 0x3802000000000000ULL,
3789 -1ULL
3790 }
3791 #endif
3792 },
3793 { "shlx", TILEGX_OPC_SHLX, 0x3, 3, TREG_ZERO, 1,
3794 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
3795 #ifndef DISASM_ONLY
3796 {
3797 0xc00000007ffc0000ULL,
3798 0xfffe000000000000ULL,
3799 0ULL,
3800 0ULL,
3801 0ULL
3802 },
3803 {
3804 0x0000000051240000ULL,
3805 0x284a000000000000ULL,
3806 -1ULL,
3807 -1ULL,
3808 -1ULL
3809 }
3810 #endif
3811 },
3812 { "shlxi", TILEGX_OPC_SHLXI, 0x3, 3, TREG_ZERO, 1,
3813 { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
3814 #ifndef DISASM_ONLY
3815 {
3816 0xc00000007ffc0000ULL,
3817 0xfffe000000000000ULL,
3818 0ULL,
3819 0ULL,
3820 0ULL
3821 },
3822 {
3823 0x00000000600c0000ULL,
3824 0x3006000000000000ULL,
3825 -1ULL,
3826 -1ULL,
3827 -1ULL
3828 }
3829 #endif
3830 },
3831 { "shrs", TILEGX_OPC_SHRS, 0xf, 3, TREG_ZERO, 1,
3832 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3833 #ifndef DISASM_ONLY
3834 {
3835 0xc00000007ffc0000ULL,
3836 0xfffe000000000000ULL,
3837 0x00000000780c0000ULL,
3838 0x3c06000000000000ULL,
3839 0ULL
3840 },
3841 {
3842 0x00000000512c0000ULL,
3843 0x284e000000000000ULL,
3844 0x0000000058080000ULL,
3845 0x3004000000000000ULL,
3846 -1ULL
3847 }
3848 #endif
3849 },
3850 { "shrsi", TILEGX_OPC_SHRSI, 0xf, 3, TREG_ZERO, 1,
3851 { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
3852 #ifndef DISASM_ONLY
3853 {
3854 0xc00000007ffc0000ULL,
3855 0xfffe000000000000ULL,
3856 0x00000000780c0000ULL,
3857 0x3c06000000000000ULL,
3858 0ULL
3859 },
3860 {
3861 0x0000000060100000ULL,
3862 0x3008000000000000ULL,
3863 0x0000000078080000ULL,
3864 0x3804000000000000ULL,
3865 -1ULL
3866 }
3867 #endif
3868 },
3869 { "shru", TILEGX_OPC_SHRU, 0xf, 3, TREG_ZERO, 1,
3870 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
3871 #ifndef DISASM_ONLY
3872 {
3873 0xc00000007ffc0000ULL,
3874 0xfffe000000000000ULL,
3875 0x00000000780c0000ULL,
3876 0x3c06000000000000ULL,
3877 0ULL
3878 },
3879 {
3880 0x0000000051340000ULL,
3881 0x2852000000000000ULL,
3882 0x00000000580c0000ULL,
3883 0x3006000000000000ULL,
3884 -1ULL
3885 }
3886 #endif
3887 },
3888 { "shrui", TILEGX_OPC_SHRUI, 0xf, 3, TREG_ZERO, 1,
3889 { { 8, 9, 29 }, { 6, 7, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
3890 #ifndef DISASM_ONLY
3891 {
3892 0xc00000007ffc0000ULL,
3893 0xfffe000000000000ULL,
3894 0x00000000780c0000ULL,
3895 0x3c06000000000000ULL,
3896 0ULL
3897 },
3898 {
3899 0x0000000060140000ULL,
3900 0x300a000000000000ULL,
3901 0x00000000780c0000ULL,
3902 0x3806000000000000ULL,
3903 -1ULL
3904 }
3905 #endif
3906 },
3907 { "shrux", TILEGX_OPC_SHRUX, 0x3, 3, TREG_ZERO, 1,
3908 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
3909 #ifndef DISASM_ONLY
3910 {
3911 0xc00000007ffc0000ULL,
3912 0xfffe000000000000ULL,
3913 0ULL,
3914 0ULL,
3915 0ULL
3916 },
3917 {
3918 0x0000000051300000ULL,
3919 0x2850000000000000ULL,
3920 -1ULL,
3921 -1ULL,
3922 -1ULL
3923 }
3924 #endif
3925 },
3926 { "shruxi", TILEGX_OPC_SHRUXI, 0x3, 3, TREG_ZERO, 1,
3927 { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
3928 #ifndef DISASM_ONLY
3929 {
3930 0xc00000007ffc0000ULL,
3931 0xfffe000000000000ULL,
3932 0ULL,
3933 0ULL,
3934 0ULL
3935 },
3936 {
3937 0x0000000060180000ULL,
3938 0x300c000000000000ULL,
3939 -1ULL,
3940 -1ULL,
3941 -1ULL
3942 }
3943 #endif
3944 },
3945 { "shufflebytes", TILEGX_OPC_SHUFFLEBYTES, 0x1, 3, TREG_ZERO, 1,
3946 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3947 #ifndef DISASM_ONLY
3948 {
3949 0xc00000007ffc0000ULL,
3950 0ULL,
3951 0ULL,
3952 0ULL,
3953 0ULL
3954 },
3955 {
3956 0x0000000051380000ULL,
3957 -1ULL,
3958 -1ULL,
3959 -1ULL,
3960 -1ULL
3961 }
3962 #endif
3963 },
3964 { "st", TILEGX_OPC_ST, 0x12, 2, TREG_ZERO, 1,
3965 { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
3966 #ifndef DISASM_ONLY
3967 {
3968 0ULL,
3969 0xfffe000000000000ULL,
3970 0ULL,
3971 0ULL,
3972 0xc200000004000000ULL
3973 },
3974 {
3975 -1ULL,
3976 0x2862000000000000ULL,
3977 -1ULL,
3978 -1ULL,
3979 0xc200000004000000ULL
3980 }
3981 #endif
3982 },
3983 { "st1", TILEGX_OPC_ST1, 0x12, 2, TREG_ZERO, 1,
3984 { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
3985 #ifndef DISASM_ONLY
3986 {
3987 0ULL,
3988 0xfffe000000000000ULL,
3989 0ULL,
3990 0ULL,
3991 0xc200000004000000ULL
3992 },
3993 {
3994 -1ULL,
3995 0x2854000000000000ULL,
3996 -1ULL,
3997 -1ULL,
3998 0xc000000000000000ULL
3999 }
4000 #endif
4001 },
4002 { "st1_add", TILEGX_OPC_ST1_ADD, 0x2, 3, TREG_ZERO, 1,
4003 { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4004 #ifndef DISASM_ONLY
4005 {
4006 0ULL,
4007 0xfff8000000000000ULL,
4008 0ULL,
4009 0ULL,
4010 0ULL
4011 },
4012 {
4013 -1ULL,
4014 0x18c8000000000000ULL,
4015 -1ULL,
4016 -1ULL,
4017 -1ULL
4018 }
4019 #endif
4020 },
4021 { "st2", TILEGX_OPC_ST2, 0x12, 2, TREG_ZERO, 1,
4022 { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
4023 #ifndef DISASM_ONLY
4024 {
4025 0ULL,
4026 0xfffe000000000000ULL,
4027 0ULL,
4028 0ULL,
4029 0xc200000004000000ULL
4030 },
4031 {
4032 -1ULL,
4033 0x2856000000000000ULL,
4034 -1ULL,
4035 -1ULL,
4036 0xc000000004000000ULL
4037 }
4038 #endif
4039 },
4040 { "st2_add", TILEGX_OPC_ST2_ADD, 0x2, 3, TREG_ZERO, 1,
4041 { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4042 #ifndef DISASM_ONLY
4043 {
4044 0ULL,
4045 0xfff8000000000000ULL,
4046 0ULL,
4047 0ULL,
4048 0ULL
4049 },
4050 {
4051 -1ULL,
4052 0x18d0000000000000ULL,
4053 -1ULL,
4054 -1ULL,
4055 -1ULL
4056 }
4057 #endif
4058 },
4059 { "st4", TILEGX_OPC_ST4, 0x12, 2, TREG_ZERO, 1,
4060 { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 14, 33 } },
4061 #ifndef DISASM_ONLY
4062 {
4063 0ULL,
4064 0xfffe000000000000ULL,
4065 0ULL,
4066 0ULL,
4067 0xc200000004000000ULL
4068 },
4069 {
4070 -1ULL,
4071 0x2858000000000000ULL,
4072 -1ULL,
4073 -1ULL,
4074 0xc200000000000000ULL
4075 }
4076 #endif
4077 },
4078 { "st4_add", TILEGX_OPC_ST4_ADD, 0x2, 3, TREG_ZERO, 1,
4079 { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4080 #ifndef DISASM_ONLY
4081 {
4082 0ULL,
4083 0xfff8000000000000ULL,
4084 0ULL,
4085 0ULL,
4086 0ULL
4087 },
4088 {
4089 -1ULL,
4090 0x18d8000000000000ULL,
4091 -1ULL,
4092 -1ULL,
4093 -1ULL
4094 }
4095 #endif
4096 },
4097 { "st_add", TILEGX_OPC_ST_ADD, 0x2, 3, TREG_ZERO, 1,
4098 { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4099 #ifndef DISASM_ONLY
4100 {
4101 0ULL,
4102 0xfff8000000000000ULL,
4103 0ULL,
4104 0ULL,
4105 0ULL
4106 },
4107 {
4108 -1ULL,
4109 0x1900000000000000ULL,
4110 -1ULL,
4111 -1ULL,
4112 -1ULL
4113 }
4114 #endif
4115 },
4116 { "stnt", TILEGX_OPC_STNT, 0x2, 2, TREG_ZERO, 1,
4117 { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
4118 #ifndef DISASM_ONLY
4119 {
4120 0ULL,
4121 0xfffe000000000000ULL,
4122 0ULL,
4123 0ULL,
4124 0ULL
4125 },
4126 {
4127 -1ULL,
4128 0x2860000000000000ULL,
4129 -1ULL,
4130 -1ULL,
4131 -1ULL
4132 }
4133 #endif
4134 },
4135 { "stnt1", TILEGX_OPC_STNT1, 0x2, 2, TREG_ZERO, 1,
4136 { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
4137 #ifndef DISASM_ONLY
4138 {
4139 0ULL,
4140 0xfffe000000000000ULL,
4141 0ULL,
4142 0ULL,
4143 0ULL
4144 },
4145 {
4146 -1ULL,
4147 0x285a000000000000ULL,
4148 -1ULL,
4149 -1ULL,
4150 -1ULL
4151 }
4152 #endif
4153 },
4154 { "stnt1_add", TILEGX_OPC_STNT1_ADD, 0x2, 3, TREG_ZERO, 1,
4155 { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4156 #ifndef DISASM_ONLY
4157 {
4158 0ULL,
4159 0xfff8000000000000ULL,
4160 0ULL,
4161 0ULL,
4162 0ULL
4163 },
4164 {
4165 -1ULL,
4166 0x18e0000000000000ULL,
4167 -1ULL,
4168 -1ULL,
4169 -1ULL
4170 }
4171 #endif
4172 },
4173 { "stnt2", TILEGX_OPC_STNT2, 0x2, 2, TREG_ZERO, 1,
4174 { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
4175 #ifndef DISASM_ONLY
4176 {
4177 0ULL,
4178 0xfffe000000000000ULL,
4179 0ULL,
4180 0ULL,
4181 0ULL
4182 },
4183 {
4184 -1ULL,
4185 0x285c000000000000ULL,
4186 -1ULL,
4187 -1ULL,
4188 -1ULL
4189 }
4190 #endif
4191 },
4192 { "stnt2_add", TILEGX_OPC_STNT2_ADD, 0x2, 3, TREG_ZERO, 1,
4193 { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4194 #ifndef DISASM_ONLY
4195 {
4196 0ULL,
4197 0xfff8000000000000ULL,
4198 0ULL,
4199 0ULL,
4200 0ULL
4201 },
4202 {
4203 -1ULL,
4204 0x18e8000000000000ULL,
4205 -1ULL,
4206 -1ULL,
4207 -1ULL
4208 }
4209 #endif
4210 },
4211 { "stnt4", TILEGX_OPC_STNT4, 0x2, 2, TREG_ZERO, 1,
4212 { { 0, }, { 7, 17 }, { 0, }, { 0, }, { 0, } },
4213 #ifndef DISASM_ONLY
4214 {
4215 0ULL,
4216 0xfffe000000000000ULL,
4217 0ULL,
4218 0ULL,
4219 0ULL
4220 },
4221 {
4222 -1ULL,
4223 0x285e000000000000ULL,
4224 -1ULL,
4225 -1ULL,
4226 -1ULL
4227 }
4228 #endif
4229 },
4230 { "stnt4_add", TILEGX_OPC_STNT4_ADD, 0x2, 3, TREG_ZERO, 1,
4231 { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4232 #ifndef DISASM_ONLY
4233 {
4234 0ULL,
4235 0xfff8000000000000ULL,
4236 0ULL,
4237 0ULL,
4238 0ULL
4239 },
4240 {
4241 -1ULL,
4242 0x18f0000000000000ULL,
4243 -1ULL,
4244 -1ULL,
4245 -1ULL
4246 }
4247 #endif
4248 },
4249 { "stnt_add", TILEGX_OPC_STNT_ADD, 0x2, 3, TREG_ZERO, 1,
4250 { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
4251 #ifndef DISASM_ONLY
4252 {
4253 0ULL,
4254 0xfff8000000000000ULL,
4255 0ULL,
4256 0ULL,
4257 0ULL
4258 },
4259 {
4260 -1ULL,
4261 0x18f8000000000000ULL,
4262 -1ULL,
4263 -1ULL,
4264 -1ULL
4265 }
4266 #endif
4267 },
4268 { "sub", TILEGX_OPC_SUB, 0xf, 3, TREG_ZERO, 1,
4269 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
4270 #ifndef DISASM_ONLY
4271 {
4272 0xc00000007ffc0000ULL,
4273 0xfffe000000000000ULL,
4274 0x00000000780c0000ULL,
4275 0x3c06000000000000ULL,
4276 0ULL
4277 },
4278 {
4279 0x0000000051440000ULL,
4280 0x2868000000000000ULL,
4281 0x00000000280c0000ULL,
4282 0x1806000000000000ULL,
4283 -1ULL
4284 }
4285 #endif
4286 },
4287 { "subx", TILEGX_OPC_SUBX, 0xf, 3, TREG_ZERO, 1,
4288 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
4289 #ifndef DISASM_ONLY
4290 {
4291 0xc00000007ffc0000ULL,
4292 0xfffe000000000000ULL,
4293 0x00000000780c0000ULL,
4294 0x3c06000000000000ULL,
4295 0ULL
4296 },
4297 {
4298 0x0000000051400000ULL,
4299 0x2866000000000000ULL,
4300 0x0000000028080000ULL,
4301 0x1804000000000000ULL,
4302 -1ULL
4303 }
4304 #endif
4305 },
4306 { "subxsc", TILEGX_OPC_SUBXSC, 0x3, 3, TREG_ZERO, 1,
4307 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4308 #ifndef DISASM_ONLY
4309 {
4310 0xc00000007ffc0000ULL,
4311 0xfffe000000000000ULL,
4312 0ULL,
4313 0ULL,
4314 0ULL
4315 },
4316 {
4317 0x00000000513c0000ULL,
4318 0x2864000000000000ULL,
4319 -1ULL,
4320 -1ULL,
4321 -1ULL
4322 }
4323 #endif
4324 },
4325 { "swint0", TILEGX_OPC_SWINT0, 0x2, 0, TREG_ZERO, 0,
4326 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
4327 #ifndef DISASM_ONLY
4328 {
4329 0ULL,
4330 0xfffff80000000000ULL,
4331 0ULL,
4332 0ULL,
4333 0ULL
4334 },
4335 {
4336 -1ULL,
4337 0x286b100000000000ULL,
4338 -1ULL,
4339 -1ULL,
4340 -1ULL
4341 }
4342 #endif
4343 },
4344 { "swint1", TILEGX_OPC_SWINT1, 0x2, 0, TREG_ZERO, 0,
4345 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
4346 #ifndef DISASM_ONLY
4347 {
4348 0ULL,
4349 0xfffff80000000000ULL,
4350 0ULL,
4351 0ULL,
4352 0ULL
4353 },
4354 {
4355 -1ULL,
4356 0x286b180000000000ULL,
4357 -1ULL,
4358 -1ULL,
4359 -1ULL
4360 }
4361 #endif
4362 },
4363 { "swint2", TILEGX_OPC_SWINT2, 0x2, 0, TREG_ZERO, 0,
4364 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
4365 #ifndef DISASM_ONLY
4366 {
4367 0ULL,
4368 0xfffff80000000000ULL,
4369 0ULL,
4370 0ULL,
4371 0ULL
4372 },
4373 {
4374 -1ULL,
4375 0x286b200000000000ULL,
4376 -1ULL,
4377 -1ULL,
4378 -1ULL
4379 }
4380 #endif
4381 },
4382 { "swint3", TILEGX_OPC_SWINT3, 0x2, 0, TREG_ZERO, 0,
4383 { { 0, }, { }, { 0, }, { 0, }, { 0, } },
4384 #ifndef DISASM_ONLY
4385 {
4386 0ULL,
4387 0xfffff80000000000ULL,
4388 0ULL,
4389 0ULL,
4390 0ULL
4391 },
4392 {
4393 -1ULL,
4394 0x286b280000000000ULL,
4395 -1ULL,
4396 -1ULL,
4397 -1ULL
4398 }
4399 #endif
4400 },
4401 { "tblidxb0", TILEGX_OPC_TBLIDXB0, 0x5, 2, TREG_ZERO, 1,
4402 { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
4403 #ifndef DISASM_ONLY
4404 {
4405 0xc00000007ffff000ULL,
4406 0ULL,
4407 0x00000000780ff000ULL,
4408 0ULL,
4409 0ULL
4410 },
4411 {
4412 0x0000000051489000ULL,
4413 -1ULL,
4414 0x00000000300c9000ULL,
4415 -1ULL,
4416 -1ULL
4417 }
4418 #endif
4419 },
4420 { "tblidxb1", TILEGX_OPC_TBLIDXB1, 0x5, 2, TREG_ZERO, 1,
4421 { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
4422 #ifndef DISASM_ONLY
4423 {
4424 0xc00000007ffff000ULL,
4425 0ULL,
4426 0x00000000780ff000ULL,
4427 0ULL,
4428 0ULL
4429 },
4430 {
4431 0x000000005148a000ULL,
4432 -1ULL,
4433 0x00000000300ca000ULL,
4434 -1ULL,
4435 -1ULL
4436 }
4437 #endif
4438 },
4439 { "tblidxb2", TILEGX_OPC_TBLIDXB2, 0x5, 2, TREG_ZERO, 1,
4440 { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
4441 #ifndef DISASM_ONLY
4442 {
4443 0xc00000007ffff000ULL,
4444 0ULL,
4445 0x00000000780ff000ULL,
4446 0ULL,
4447 0ULL
4448 },
4449 {
4450 0x000000005148b000ULL,
4451 -1ULL,
4452 0x00000000300cb000ULL,
4453 -1ULL,
4454 -1ULL
4455 }
4456 #endif
4457 },
4458 { "tblidxb3", TILEGX_OPC_TBLIDXB3, 0x5, 2, TREG_ZERO, 1,
4459 { { 23, 9 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
4460 #ifndef DISASM_ONLY
4461 {
4462 0xc00000007ffff000ULL,
4463 0ULL,
4464 0x00000000780ff000ULL,
4465 0ULL,
4466 0ULL
4467 },
4468 {
4469 0x000000005148c000ULL,
4470 -1ULL,
4471 0x00000000300cc000ULL,
4472 -1ULL,
4473 -1ULL
4474 }
4475 #endif
4476 },
4477 { "v1add", TILEGX_OPC_V1ADD, 0x3, 3, TREG_ZERO, 1,
4478 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4479 #ifndef DISASM_ONLY
4480 {
4481 0xc00000007ffc0000ULL,
4482 0xfffe000000000000ULL,
4483 0ULL,
4484 0ULL,
4485 0ULL
4486 },
4487 {
4488 0x0000000051500000ULL,
4489 0x286e000000000000ULL,
4490 -1ULL,
4491 -1ULL,
4492 -1ULL
4493 }
4494 #endif
4495 },
4496 { "v1addi", TILEGX_OPC_V1ADDI, 0x3, 3, TREG_ZERO, 1,
4497 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
4498 #ifndef DISASM_ONLY
4499 {
4500 0xc00000007ff00000ULL,
4501 0xfff8000000000000ULL,
4502 0ULL,
4503 0ULL,
4504 0ULL
4505 },
4506 {
4507 0x0000000040800000ULL,
4508 0x1908000000000000ULL,
4509 -1ULL,
4510 -1ULL,
4511 -1ULL
4512 }
4513 #endif
4514 },
4515 { "v1adduc", TILEGX_OPC_V1ADDUC, 0x3, 3, TREG_ZERO, 1,
4516 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4517 #ifndef DISASM_ONLY
4518 {
4519 0xc00000007ffc0000ULL,
4520 0xfffe000000000000ULL,
4521 0ULL,
4522 0ULL,
4523 0ULL
4524 },
4525 {
4526 0x00000000514c0000ULL,
4527 0x286c000000000000ULL,
4528 -1ULL,
4529 -1ULL,
4530 -1ULL
4531 }
4532 #endif
4533 },
4534 { "v1adiffu", TILEGX_OPC_V1ADIFFU, 0x1, 3, TREG_ZERO, 1,
4535 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4536 #ifndef DISASM_ONLY
4537 {
4538 0xc00000007ffc0000ULL,
4539 0ULL,
4540 0ULL,
4541 0ULL,
4542 0ULL
4543 },
4544 {
4545 0x0000000051540000ULL,
4546 -1ULL,
4547 -1ULL,
4548 -1ULL,
4549 -1ULL
4550 }
4551 #endif
4552 },
4553 { "v1avgu", TILEGX_OPC_V1AVGU, 0x1, 3, TREG_ZERO, 1,
4554 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4555 #ifndef DISASM_ONLY
4556 {
4557 0xc00000007ffc0000ULL,
4558 0ULL,
4559 0ULL,
4560 0ULL,
4561 0ULL
4562 },
4563 {
4564 0x0000000051580000ULL,
4565 -1ULL,
4566 -1ULL,
4567 -1ULL,
4568 -1ULL
4569 }
4570 #endif
4571 },
4572 { "v1cmpeq", TILEGX_OPC_V1CMPEQ, 0x3, 3, TREG_ZERO, 1,
4573 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4574 #ifndef DISASM_ONLY
4575 {
4576 0xc00000007ffc0000ULL,
4577 0xfffe000000000000ULL,
4578 0ULL,
4579 0ULL,
4580 0ULL
4581 },
4582 {
4583 0x00000000515c0000ULL,
4584 0x2870000000000000ULL,
4585 -1ULL,
4586 -1ULL,
4587 -1ULL
4588 }
4589 #endif
4590 },
4591 { "v1cmpeqi", TILEGX_OPC_V1CMPEQI, 0x3, 3, TREG_ZERO, 1,
4592 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
4593 #ifndef DISASM_ONLY
4594 {
4595 0xc00000007ff00000ULL,
4596 0xfff8000000000000ULL,
4597 0ULL,
4598 0ULL,
4599 0ULL
4600 },
4601 {
4602 0x0000000040900000ULL,
4603 0x1910000000000000ULL,
4604 -1ULL,
4605 -1ULL,
4606 -1ULL
4607 }
4608 #endif
4609 },
4610 { "v1cmples", TILEGX_OPC_V1CMPLES, 0x3, 3, TREG_ZERO, 1,
4611 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4612 #ifndef DISASM_ONLY
4613 {
4614 0xc00000007ffc0000ULL,
4615 0xfffe000000000000ULL,
4616 0ULL,
4617 0ULL,
4618 0ULL
4619 },
4620 {
4621 0x0000000051600000ULL,
4622 0x2872000000000000ULL,
4623 -1ULL,
4624 -1ULL,
4625 -1ULL
4626 }
4627 #endif
4628 },
4629 { "v1cmpleu", TILEGX_OPC_V1CMPLEU, 0x3, 3, TREG_ZERO, 1,
4630 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4631 #ifndef DISASM_ONLY
4632 {
4633 0xc00000007ffc0000ULL,
4634 0xfffe000000000000ULL,
4635 0ULL,
4636 0ULL,
4637 0ULL
4638 },
4639 {
4640 0x0000000051640000ULL,
4641 0x2874000000000000ULL,
4642 -1ULL,
4643 -1ULL,
4644 -1ULL
4645 }
4646 #endif
4647 },
4648 { "v1cmplts", TILEGX_OPC_V1CMPLTS, 0x3, 3, TREG_ZERO, 1,
4649 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4650 #ifndef DISASM_ONLY
4651 {
4652 0xc00000007ffc0000ULL,
4653 0xfffe000000000000ULL,
4654 0ULL,
4655 0ULL,
4656 0ULL
4657 },
4658 {
4659 0x0000000051680000ULL,
4660 0x2876000000000000ULL,
4661 -1ULL,
4662 -1ULL,
4663 -1ULL
4664 }
4665 #endif
4666 },
4667 { "v1cmpltsi", TILEGX_OPC_V1CMPLTSI, 0x3, 3, TREG_ZERO, 1,
4668 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
4669 #ifndef DISASM_ONLY
4670 {
4671 0xc00000007ff00000ULL,
4672 0xfff8000000000000ULL,
4673 0ULL,
4674 0ULL,
4675 0ULL
4676 },
4677 {
4678 0x0000000040a00000ULL,
4679 0x1918000000000000ULL,
4680 -1ULL,
4681 -1ULL,
4682 -1ULL
4683 }
4684 #endif
4685 },
4686 { "v1cmpltu", TILEGX_OPC_V1CMPLTU, 0x3, 3, TREG_ZERO, 1,
4687 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4688 #ifndef DISASM_ONLY
4689 {
4690 0xc00000007ffc0000ULL,
4691 0xfffe000000000000ULL,
4692 0ULL,
4693 0ULL,
4694 0ULL
4695 },
4696 {
4697 0x00000000516c0000ULL,
4698 0x2878000000000000ULL,
4699 -1ULL,
4700 -1ULL,
4701 -1ULL
4702 }
4703 #endif
4704 },
4705 { "v1cmpltui", TILEGX_OPC_V1CMPLTUI, 0x3, 3, TREG_ZERO, 1,
4706 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
4707 #ifndef DISASM_ONLY
4708 {
4709 0xc00000007ff00000ULL,
4710 0xfff8000000000000ULL,
4711 0ULL,
4712 0ULL,
4713 0ULL
4714 },
4715 {
4716 0x0000000040b00000ULL,
4717 0x1920000000000000ULL,
4718 -1ULL,
4719 -1ULL,
4720 -1ULL
4721 }
4722 #endif
4723 },
4724 { "v1cmpne", TILEGX_OPC_V1CMPNE, 0x3, 3, TREG_ZERO, 1,
4725 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4726 #ifndef DISASM_ONLY
4727 {
4728 0xc00000007ffc0000ULL,
4729 0xfffe000000000000ULL,
4730 0ULL,
4731 0ULL,
4732 0ULL
4733 },
4734 {
4735 0x0000000051700000ULL,
4736 0x287a000000000000ULL,
4737 -1ULL,
4738 -1ULL,
4739 -1ULL
4740 }
4741 #endif
4742 },
4743 { "v1ddotpu", TILEGX_OPC_V1DDOTPU, 0x1, 3, TREG_ZERO, 1,
4744 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4745 #ifndef DISASM_ONLY
4746 {
4747 0xc00000007ffc0000ULL,
4748 0ULL,
4749 0ULL,
4750 0ULL,
4751 0ULL
4752 },
4753 {
4754 0x0000000052880000ULL,
4755 -1ULL,
4756 -1ULL,
4757 -1ULL,
4758 -1ULL
4759 }
4760 #endif
4761 },
4762 { "v1ddotpua", TILEGX_OPC_V1DDOTPUA, 0x1, 3, TREG_ZERO, 1,
4763 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4764 #ifndef DISASM_ONLY
4765 {
4766 0xc00000007ffc0000ULL,
4767 0ULL,
4768 0ULL,
4769 0ULL,
4770 0ULL
4771 },
4772 {
4773 0x0000000052840000ULL,
4774 -1ULL,
4775 -1ULL,
4776 -1ULL,
4777 -1ULL
4778 }
4779 #endif
4780 },
4781 { "v1ddotpus", TILEGX_OPC_V1DDOTPUS, 0x1, 3, TREG_ZERO, 1,
4782 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4783 #ifndef DISASM_ONLY
4784 {
4785 0xc00000007ffc0000ULL,
4786 0ULL,
4787 0ULL,
4788 0ULL,
4789 0ULL
4790 },
4791 {
4792 0x0000000051780000ULL,
4793 -1ULL,
4794 -1ULL,
4795 -1ULL,
4796 -1ULL
4797 }
4798 #endif
4799 },
4800 { "v1ddotpusa", TILEGX_OPC_V1DDOTPUSA, 0x1, 3, TREG_ZERO, 1,
4801 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4802 #ifndef DISASM_ONLY
4803 {
4804 0xc00000007ffc0000ULL,
4805 0ULL,
4806 0ULL,
4807 0ULL,
4808 0ULL
4809 },
4810 {
4811 0x0000000051740000ULL,
4812 -1ULL,
4813 -1ULL,
4814 -1ULL,
4815 -1ULL
4816 }
4817 #endif
4818 },
4819 { "v1dotp", TILEGX_OPC_V1DOTP, 0x1, 3, TREG_ZERO, 1,
4820 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4821 #ifndef DISASM_ONLY
4822 {
4823 0xc00000007ffc0000ULL,
4824 0ULL,
4825 0ULL,
4826 0ULL,
4827 0ULL
4828 },
4829 {
4830 0x0000000051880000ULL,
4831 -1ULL,
4832 -1ULL,
4833 -1ULL,
4834 -1ULL
4835 }
4836 #endif
4837 },
4838 { "v1dotpa", TILEGX_OPC_V1DOTPA, 0x1, 3, TREG_ZERO, 1,
4839 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4840 #ifndef DISASM_ONLY
4841 {
4842 0xc00000007ffc0000ULL,
4843 0ULL,
4844 0ULL,
4845 0ULL,
4846 0ULL
4847 },
4848 {
4849 0x00000000517c0000ULL,
4850 -1ULL,
4851 -1ULL,
4852 -1ULL,
4853 -1ULL
4854 }
4855 #endif
4856 },
4857 { "v1dotpu", TILEGX_OPC_V1DOTPU, 0x1, 3, TREG_ZERO, 1,
4858 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4859 #ifndef DISASM_ONLY
4860 {
4861 0xc00000007ffc0000ULL,
4862 0ULL,
4863 0ULL,
4864 0ULL,
4865 0ULL
4866 },
4867 {
4868 0x0000000052900000ULL,
4869 -1ULL,
4870 -1ULL,
4871 -1ULL,
4872 -1ULL
4873 }
4874 #endif
4875 },
4876 { "v1dotpua", TILEGX_OPC_V1DOTPUA, 0x1, 3, TREG_ZERO, 1,
4877 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4878 #ifndef DISASM_ONLY
4879 {
4880 0xc00000007ffc0000ULL,
4881 0ULL,
4882 0ULL,
4883 0ULL,
4884 0ULL
4885 },
4886 {
4887 0x00000000528c0000ULL,
4888 -1ULL,
4889 -1ULL,
4890 -1ULL,
4891 -1ULL
4892 }
4893 #endif
4894 },
4895 { "v1dotpus", TILEGX_OPC_V1DOTPUS, 0x1, 3, TREG_ZERO, 1,
4896 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4897 #ifndef DISASM_ONLY
4898 {
4899 0xc00000007ffc0000ULL,
4900 0ULL,
4901 0ULL,
4902 0ULL,
4903 0ULL
4904 },
4905 {
4906 0x0000000051840000ULL,
4907 -1ULL,
4908 -1ULL,
4909 -1ULL,
4910 -1ULL
4911 }
4912 #endif
4913 },
4914 { "v1dotpusa", TILEGX_OPC_V1DOTPUSA, 0x1, 3, TREG_ZERO, 1,
4915 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4916 #ifndef DISASM_ONLY
4917 {
4918 0xc00000007ffc0000ULL,
4919 0ULL,
4920 0ULL,
4921 0ULL,
4922 0ULL
4923 },
4924 {
4925 0x0000000051800000ULL,
4926 -1ULL,
4927 -1ULL,
4928 -1ULL,
4929 -1ULL
4930 }
4931 #endif
4932 },
4933 { "v1int_h", TILEGX_OPC_V1INT_H, 0x3, 3, TREG_ZERO, 1,
4934 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4935 #ifndef DISASM_ONLY
4936 {
4937 0xc00000007ffc0000ULL,
4938 0xfffe000000000000ULL,
4939 0ULL,
4940 0ULL,
4941 0ULL
4942 },
4943 {
4944 0x00000000518c0000ULL,
4945 0x287c000000000000ULL,
4946 -1ULL,
4947 -1ULL,
4948 -1ULL
4949 }
4950 #endif
4951 },
4952 { "v1int_l", TILEGX_OPC_V1INT_L, 0x3, 3, TREG_ZERO, 1,
4953 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4954 #ifndef DISASM_ONLY
4955 {
4956 0xc00000007ffc0000ULL,
4957 0xfffe000000000000ULL,
4958 0ULL,
4959 0ULL,
4960 0ULL
4961 },
4962 {
4963 0x0000000051900000ULL,
4964 0x287e000000000000ULL,
4965 -1ULL,
4966 -1ULL,
4967 -1ULL
4968 }
4969 #endif
4970 },
4971 { "v1maxu", TILEGX_OPC_V1MAXU, 0x3, 3, TREG_ZERO, 1,
4972 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
4973 #ifndef DISASM_ONLY
4974 {
4975 0xc00000007ffc0000ULL,
4976 0xfffe000000000000ULL,
4977 0ULL,
4978 0ULL,
4979 0ULL
4980 },
4981 {
4982 0x0000000051940000ULL,
4983 0x2880000000000000ULL,
4984 -1ULL,
4985 -1ULL,
4986 -1ULL
4987 }
4988 #endif
4989 },
4990 { "v1maxui", TILEGX_OPC_V1MAXUI, 0x3, 3, TREG_ZERO, 1,
4991 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
4992 #ifndef DISASM_ONLY
4993 {
4994 0xc00000007ff00000ULL,
4995 0xfff8000000000000ULL,
4996 0ULL,
4997 0ULL,
4998 0ULL
4999 },
5000 {
5001 0x0000000040c00000ULL,
5002 0x1928000000000000ULL,
5003 -1ULL,
5004 -1ULL,
5005 -1ULL
5006 }
5007 #endif
5008 },
5009 { "v1minu", TILEGX_OPC_V1MINU, 0x3, 3, TREG_ZERO, 1,
5010 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5011 #ifndef DISASM_ONLY
5012 {
5013 0xc00000007ffc0000ULL,
5014 0xfffe000000000000ULL,
5015 0ULL,
5016 0ULL,
5017 0ULL
5018 },
5019 {
5020 0x0000000051980000ULL,
5021 0x2882000000000000ULL,
5022 -1ULL,
5023 -1ULL,
5024 -1ULL
5025 }
5026 #endif
5027 },
5028 { "v1minui", TILEGX_OPC_V1MINUI, 0x3, 3, TREG_ZERO, 1,
5029 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5030 #ifndef DISASM_ONLY
5031 {
5032 0xc00000007ff00000ULL,
5033 0xfff8000000000000ULL,
5034 0ULL,
5035 0ULL,
5036 0ULL
5037 },
5038 {
5039 0x0000000040d00000ULL,
5040 0x1930000000000000ULL,
5041 -1ULL,
5042 -1ULL,
5043 -1ULL
5044 }
5045 #endif
5046 },
5047 { "v1mnz", TILEGX_OPC_V1MNZ, 0x3, 3, TREG_ZERO, 1,
5048 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5049 #ifndef DISASM_ONLY
5050 {
5051 0xc00000007ffc0000ULL,
5052 0xfffe000000000000ULL,
5053 0ULL,
5054 0ULL,
5055 0ULL
5056 },
5057 {
5058 0x00000000519c0000ULL,
5059 0x2884000000000000ULL,
5060 -1ULL,
5061 -1ULL,
5062 -1ULL
5063 }
5064 #endif
5065 },
5066 { "v1multu", TILEGX_OPC_V1MULTU, 0x1, 3, TREG_ZERO, 1,
5067 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5068 #ifndef DISASM_ONLY
5069 {
5070 0xc00000007ffc0000ULL,
5071 0ULL,
5072 0ULL,
5073 0ULL,
5074 0ULL
5075 },
5076 {
5077 0x0000000051a00000ULL,
5078 -1ULL,
5079 -1ULL,
5080 -1ULL,
5081 -1ULL
5082 }
5083 #endif
5084 },
5085 { "v1mulu", TILEGX_OPC_V1MULU, 0x1, 3, TREG_ZERO, 1,
5086 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5087 #ifndef DISASM_ONLY
5088 {
5089 0xc00000007ffc0000ULL,
5090 0ULL,
5091 0ULL,
5092 0ULL,
5093 0ULL
5094 },
5095 {
5096 0x0000000051a80000ULL,
5097 -1ULL,
5098 -1ULL,
5099 -1ULL,
5100 -1ULL
5101 }
5102 #endif
5103 },
5104 { "v1mulus", TILEGX_OPC_V1MULUS, 0x1, 3, TREG_ZERO, 1,
5105 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5106 #ifndef DISASM_ONLY
5107 {
5108 0xc00000007ffc0000ULL,
5109 0ULL,
5110 0ULL,
5111 0ULL,
5112 0ULL
5113 },
5114 {
5115 0x0000000051a40000ULL,
5116 -1ULL,
5117 -1ULL,
5118 -1ULL,
5119 -1ULL
5120 }
5121 #endif
5122 },
5123 { "v1mz", TILEGX_OPC_V1MZ, 0x3, 3, TREG_ZERO, 1,
5124 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5125 #ifndef DISASM_ONLY
5126 {
5127 0xc00000007ffc0000ULL,
5128 0xfffe000000000000ULL,
5129 0ULL,
5130 0ULL,
5131 0ULL
5132 },
5133 {
5134 0x0000000051ac0000ULL,
5135 0x2886000000000000ULL,
5136 -1ULL,
5137 -1ULL,
5138 -1ULL
5139 }
5140 #endif
5141 },
5142 { "v1sadau", TILEGX_OPC_V1SADAU, 0x1, 3, TREG_ZERO, 1,
5143 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5144 #ifndef DISASM_ONLY
5145 {
5146 0xc00000007ffc0000ULL,
5147 0ULL,
5148 0ULL,
5149 0ULL,
5150 0ULL
5151 },
5152 {
5153 0x0000000051b00000ULL,
5154 -1ULL,
5155 -1ULL,
5156 -1ULL,
5157 -1ULL
5158 }
5159 #endif
5160 },
5161 { "v1sadu", TILEGX_OPC_V1SADU, 0x1, 3, TREG_ZERO, 1,
5162 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5163 #ifndef DISASM_ONLY
5164 {
5165 0xc00000007ffc0000ULL,
5166 0ULL,
5167 0ULL,
5168 0ULL,
5169 0ULL
5170 },
5171 {
5172 0x0000000051b40000ULL,
5173 -1ULL,
5174 -1ULL,
5175 -1ULL,
5176 -1ULL
5177 }
5178 #endif
5179 },
5180 { "v1shl", TILEGX_OPC_V1SHL, 0x3, 3, TREG_ZERO, 1,
5181 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5182 #ifndef DISASM_ONLY
5183 {
5184 0xc00000007ffc0000ULL,
5185 0xfffe000000000000ULL,
5186 0ULL,
5187 0ULL,
5188 0ULL
5189 },
5190 {
5191 0x0000000051b80000ULL,
5192 0x2888000000000000ULL,
5193 -1ULL,
5194 -1ULL,
5195 -1ULL
5196 }
5197 #endif
5198 },
5199 { "v1shli", TILEGX_OPC_V1SHLI, 0x3, 3, TREG_ZERO, 1,
5200 { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
5201 #ifndef DISASM_ONLY
5202 {
5203 0xc00000007ffc0000ULL,
5204 0xfffe000000000000ULL,
5205 0ULL,
5206 0ULL,
5207 0ULL
5208 },
5209 {
5210 0x00000000601c0000ULL,
5211 0x300e000000000000ULL,
5212 -1ULL,
5213 -1ULL,
5214 -1ULL
5215 }
5216 #endif
5217 },
5218 { "v1shrs", TILEGX_OPC_V1SHRS, 0x3, 3, TREG_ZERO, 1,
5219 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5220 #ifndef DISASM_ONLY
5221 {
5222 0xc00000007ffc0000ULL,
5223 0xfffe000000000000ULL,
5224 0ULL,
5225 0ULL,
5226 0ULL
5227 },
5228 {
5229 0x0000000051bc0000ULL,
5230 0x288a000000000000ULL,
5231 -1ULL,
5232 -1ULL,
5233 -1ULL
5234 }
5235 #endif
5236 },
5237 { "v1shrsi", TILEGX_OPC_V1SHRSI, 0x3, 3, TREG_ZERO, 1,
5238 { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
5239 #ifndef DISASM_ONLY
5240 {
5241 0xc00000007ffc0000ULL,
5242 0xfffe000000000000ULL,
5243 0ULL,
5244 0ULL,
5245 0ULL
5246 },
5247 {
5248 0x0000000060200000ULL,
5249 0x3010000000000000ULL,
5250 -1ULL,
5251 -1ULL,
5252 -1ULL
5253 }
5254 #endif
5255 },
5256 { "v1shru", TILEGX_OPC_V1SHRU, 0x3, 3, TREG_ZERO, 1,
5257 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5258 #ifndef DISASM_ONLY
5259 {
5260 0xc00000007ffc0000ULL,
5261 0xfffe000000000000ULL,
5262 0ULL,
5263 0ULL,
5264 0ULL
5265 },
5266 {
5267 0x0000000051c00000ULL,
5268 0x288c000000000000ULL,
5269 -1ULL,
5270 -1ULL,
5271 -1ULL
5272 }
5273 #endif
5274 },
5275 { "v1shrui", TILEGX_OPC_V1SHRUI, 0x3, 3, TREG_ZERO, 1,
5276 { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
5277 #ifndef DISASM_ONLY
5278 {
5279 0xc00000007ffc0000ULL,
5280 0xfffe000000000000ULL,
5281 0ULL,
5282 0ULL,
5283 0ULL
5284 },
5285 {
5286 0x0000000060240000ULL,
5287 0x3012000000000000ULL,
5288 -1ULL,
5289 -1ULL,
5290 -1ULL
5291 }
5292 #endif
5293 },
5294 { "v1sub", TILEGX_OPC_V1SUB, 0x3, 3, TREG_ZERO, 1,
5295 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5296 #ifndef DISASM_ONLY
5297 {
5298 0xc00000007ffc0000ULL,
5299 0xfffe000000000000ULL,
5300 0ULL,
5301 0ULL,
5302 0ULL
5303 },
5304 {
5305 0x0000000051c80000ULL,
5306 0x2890000000000000ULL,
5307 -1ULL,
5308 -1ULL,
5309 -1ULL
5310 }
5311 #endif
5312 },
5313 { "v1subuc", TILEGX_OPC_V1SUBUC, 0x3, 3, TREG_ZERO, 1,
5314 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5315 #ifndef DISASM_ONLY
5316 {
5317 0xc00000007ffc0000ULL,
5318 0xfffe000000000000ULL,
5319 0ULL,
5320 0ULL,
5321 0ULL
5322 },
5323 {
5324 0x0000000051c40000ULL,
5325 0x288e000000000000ULL,
5326 -1ULL,
5327 -1ULL,
5328 -1ULL
5329 }
5330 #endif
5331 },
5332 { "v2add", TILEGX_OPC_V2ADD, 0x3, 3, TREG_ZERO, 1,
5333 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5334 #ifndef DISASM_ONLY
5335 {
5336 0xc00000007ffc0000ULL,
5337 0xfffe000000000000ULL,
5338 0ULL,
5339 0ULL,
5340 0ULL
5341 },
5342 {
5343 0x0000000051d00000ULL,
5344 0x2894000000000000ULL,
5345 -1ULL,
5346 -1ULL,
5347 -1ULL
5348 }
5349 #endif
5350 },
5351 { "v2addi", TILEGX_OPC_V2ADDI, 0x3, 3, TREG_ZERO, 1,
5352 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5353 #ifndef DISASM_ONLY
5354 {
5355 0xc00000007ff00000ULL,
5356 0xfff8000000000000ULL,
5357 0ULL,
5358 0ULL,
5359 0ULL
5360 },
5361 {
5362 0x0000000040e00000ULL,
5363 0x1938000000000000ULL,
5364 -1ULL,
5365 -1ULL,
5366 -1ULL
5367 }
5368 #endif
5369 },
5370 { "v2addsc", TILEGX_OPC_V2ADDSC, 0x3, 3, TREG_ZERO, 1,
5371 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5372 #ifndef DISASM_ONLY
5373 {
5374 0xc00000007ffc0000ULL,
5375 0xfffe000000000000ULL,
5376 0ULL,
5377 0ULL,
5378 0ULL
5379 },
5380 {
5381 0x0000000051cc0000ULL,
5382 0x2892000000000000ULL,
5383 -1ULL,
5384 -1ULL,
5385 -1ULL
5386 }
5387 #endif
5388 },
5389 { "v2adiffs", TILEGX_OPC_V2ADIFFS, 0x1, 3, TREG_ZERO, 1,
5390 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5391 #ifndef DISASM_ONLY
5392 {
5393 0xc00000007ffc0000ULL,
5394 0ULL,
5395 0ULL,
5396 0ULL,
5397 0ULL
5398 },
5399 {
5400 0x0000000051d40000ULL,
5401 -1ULL,
5402 -1ULL,
5403 -1ULL,
5404 -1ULL
5405 }
5406 #endif
5407 },
5408 { "v2avgs", TILEGX_OPC_V2AVGS, 0x1, 3, TREG_ZERO, 1,
5409 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5410 #ifndef DISASM_ONLY
5411 {
5412 0xc00000007ffc0000ULL,
5413 0ULL,
5414 0ULL,
5415 0ULL,
5416 0ULL
5417 },
5418 {
5419 0x0000000051d80000ULL,
5420 -1ULL,
5421 -1ULL,
5422 -1ULL,
5423 -1ULL
5424 }
5425 #endif
5426 },
5427 { "v2cmpeq", TILEGX_OPC_V2CMPEQ, 0x3, 3, TREG_ZERO, 1,
5428 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5429 #ifndef DISASM_ONLY
5430 {
5431 0xc00000007ffc0000ULL,
5432 0xfffe000000000000ULL,
5433 0ULL,
5434 0ULL,
5435 0ULL
5436 },
5437 {
5438 0x0000000051dc0000ULL,
5439 0x2896000000000000ULL,
5440 -1ULL,
5441 -1ULL,
5442 -1ULL
5443 }
5444 #endif
5445 },
5446 { "v2cmpeqi", TILEGX_OPC_V2CMPEQI, 0x3, 3, TREG_ZERO, 1,
5447 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5448 #ifndef DISASM_ONLY
5449 {
5450 0xc00000007ff00000ULL,
5451 0xfff8000000000000ULL,
5452 0ULL,
5453 0ULL,
5454 0ULL
5455 },
5456 {
5457 0x0000000040f00000ULL,
5458 0x1940000000000000ULL,
5459 -1ULL,
5460 -1ULL,
5461 -1ULL
5462 }
5463 #endif
5464 },
5465 { "v2cmples", TILEGX_OPC_V2CMPLES, 0x3, 3, TREG_ZERO, 1,
5466 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5467 #ifndef DISASM_ONLY
5468 {
5469 0xc00000007ffc0000ULL,
5470 0xfffe000000000000ULL,
5471 0ULL,
5472 0ULL,
5473 0ULL
5474 },
5475 {
5476 0x0000000051e00000ULL,
5477 0x2898000000000000ULL,
5478 -1ULL,
5479 -1ULL,
5480 -1ULL
5481 }
5482 #endif
5483 },
5484 { "v2cmpleu", TILEGX_OPC_V2CMPLEU, 0x3, 3, TREG_ZERO, 1,
5485 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5486 #ifndef DISASM_ONLY
5487 {
5488 0xc00000007ffc0000ULL,
5489 0xfffe000000000000ULL,
5490 0ULL,
5491 0ULL,
5492 0ULL
5493 },
5494 {
5495 0x0000000051e40000ULL,
5496 0x289a000000000000ULL,
5497 -1ULL,
5498 -1ULL,
5499 -1ULL
5500 }
5501 #endif
5502 },
5503 { "v2cmplts", TILEGX_OPC_V2CMPLTS, 0x3, 3, TREG_ZERO, 1,
5504 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5505 #ifndef DISASM_ONLY
5506 {
5507 0xc00000007ffc0000ULL,
5508 0xfffe000000000000ULL,
5509 0ULL,
5510 0ULL,
5511 0ULL
5512 },
5513 {
5514 0x0000000051e80000ULL,
5515 0x289c000000000000ULL,
5516 -1ULL,
5517 -1ULL,
5518 -1ULL
5519 }
5520 #endif
5521 },
5522 { "v2cmpltsi", TILEGX_OPC_V2CMPLTSI, 0x3, 3, TREG_ZERO, 1,
5523 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5524 #ifndef DISASM_ONLY
5525 {
5526 0xc00000007ff00000ULL,
5527 0xfff8000000000000ULL,
5528 0ULL,
5529 0ULL,
5530 0ULL
5531 },
5532 {
5533 0x0000000041000000ULL,
5534 0x1948000000000000ULL,
5535 -1ULL,
5536 -1ULL,
5537 -1ULL
5538 }
5539 #endif
5540 },
5541 { "v2cmpltu", TILEGX_OPC_V2CMPLTU, 0x3, 3, TREG_ZERO, 1,
5542 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5543 #ifndef DISASM_ONLY
5544 {
5545 0xc00000007ffc0000ULL,
5546 0xfffe000000000000ULL,
5547 0ULL,
5548 0ULL,
5549 0ULL
5550 },
5551 {
5552 0x0000000051ec0000ULL,
5553 0x289e000000000000ULL,
5554 -1ULL,
5555 -1ULL,
5556 -1ULL
5557 }
5558 #endif
5559 },
5560 { "v2cmpltui", TILEGX_OPC_V2CMPLTUI, 0x3, 3, TREG_ZERO, 1,
5561 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5562 #ifndef DISASM_ONLY
5563 {
5564 0xc00000007ff00000ULL,
5565 0xfff8000000000000ULL,
5566 0ULL,
5567 0ULL,
5568 0ULL
5569 },
5570 {
5571 0x0000000041100000ULL,
5572 0x1950000000000000ULL,
5573 -1ULL,
5574 -1ULL,
5575 -1ULL
5576 }
5577 #endif
5578 },
5579 { "v2cmpne", TILEGX_OPC_V2CMPNE, 0x3, 3, TREG_ZERO, 1,
5580 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5581 #ifndef DISASM_ONLY
5582 {
5583 0xc00000007ffc0000ULL,
5584 0xfffe000000000000ULL,
5585 0ULL,
5586 0ULL,
5587 0ULL
5588 },
5589 {
5590 0x0000000051f00000ULL,
5591 0x28a0000000000000ULL,
5592 -1ULL,
5593 -1ULL,
5594 -1ULL
5595 }
5596 #endif
5597 },
5598 { "v2dotp", TILEGX_OPC_V2DOTP, 0x1, 3, TREG_ZERO, 1,
5599 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5600 #ifndef DISASM_ONLY
5601 {
5602 0xc00000007ffc0000ULL,
5603 0ULL,
5604 0ULL,
5605 0ULL,
5606 0ULL
5607 },
5608 {
5609 0x0000000051f80000ULL,
5610 -1ULL,
5611 -1ULL,
5612 -1ULL,
5613 -1ULL
5614 }
5615 #endif
5616 },
5617 { "v2dotpa", TILEGX_OPC_V2DOTPA, 0x1, 3, TREG_ZERO, 1,
5618 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5619 #ifndef DISASM_ONLY
5620 {
5621 0xc00000007ffc0000ULL,
5622 0ULL,
5623 0ULL,
5624 0ULL,
5625 0ULL
5626 },
5627 {
5628 0x0000000051f40000ULL,
5629 -1ULL,
5630 -1ULL,
5631 -1ULL,
5632 -1ULL
5633 }
5634 #endif
5635 },
5636 { "v2int_h", TILEGX_OPC_V2INT_H, 0x3, 3, TREG_ZERO, 1,
5637 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5638 #ifndef DISASM_ONLY
5639 {
5640 0xc00000007ffc0000ULL,
5641 0xfffe000000000000ULL,
5642 0ULL,
5643 0ULL,
5644 0ULL
5645 },
5646 {
5647 0x0000000051fc0000ULL,
5648 0x28a2000000000000ULL,
5649 -1ULL,
5650 -1ULL,
5651 -1ULL
5652 }
5653 #endif
5654 },
5655 { "v2int_l", TILEGX_OPC_V2INT_L, 0x3, 3, TREG_ZERO, 1,
5656 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5657 #ifndef DISASM_ONLY
5658 {
5659 0xc00000007ffc0000ULL,
5660 0xfffe000000000000ULL,
5661 0ULL,
5662 0ULL,
5663 0ULL
5664 },
5665 {
5666 0x0000000052000000ULL,
5667 0x28a4000000000000ULL,
5668 -1ULL,
5669 -1ULL,
5670 -1ULL
5671 }
5672 #endif
5673 },
5674 { "v2maxs", TILEGX_OPC_V2MAXS, 0x3, 3, TREG_ZERO, 1,
5675 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5676 #ifndef DISASM_ONLY
5677 {
5678 0xc00000007ffc0000ULL,
5679 0xfffe000000000000ULL,
5680 0ULL,
5681 0ULL,
5682 0ULL
5683 },
5684 {
5685 0x0000000052040000ULL,
5686 0x28a6000000000000ULL,
5687 -1ULL,
5688 -1ULL,
5689 -1ULL
5690 }
5691 #endif
5692 },
5693 { "v2maxsi", TILEGX_OPC_V2MAXSI, 0x3, 3, TREG_ZERO, 1,
5694 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5695 #ifndef DISASM_ONLY
5696 {
5697 0xc00000007ff00000ULL,
5698 0xfff8000000000000ULL,
5699 0ULL,
5700 0ULL,
5701 0ULL
5702 },
5703 {
5704 0x0000000041200000ULL,
5705 0x1958000000000000ULL,
5706 -1ULL,
5707 -1ULL,
5708 -1ULL
5709 }
5710 #endif
5711 },
5712 { "v2mins", TILEGX_OPC_V2MINS, 0x3, 3, TREG_ZERO, 1,
5713 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5714 #ifndef DISASM_ONLY
5715 {
5716 0xc00000007ffc0000ULL,
5717 0xfffe000000000000ULL,
5718 0ULL,
5719 0ULL,
5720 0ULL
5721 },
5722 {
5723 0x0000000052080000ULL,
5724 0x28a8000000000000ULL,
5725 -1ULL,
5726 -1ULL,
5727 -1ULL
5728 }
5729 #endif
5730 },
5731 { "v2minsi", TILEGX_OPC_V2MINSI, 0x3, 3, TREG_ZERO, 1,
5732 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
5733 #ifndef DISASM_ONLY
5734 {
5735 0xc00000007ff00000ULL,
5736 0xfff8000000000000ULL,
5737 0ULL,
5738 0ULL,
5739 0ULL
5740 },
5741 {
5742 0x0000000041300000ULL,
5743 0x1960000000000000ULL,
5744 -1ULL,
5745 -1ULL,
5746 -1ULL
5747 }
5748 #endif
5749 },
5750 { "v2mnz", TILEGX_OPC_V2MNZ, 0x3, 3, TREG_ZERO, 1,
5751 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5752 #ifndef DISASM_ONLY
5753 {
5754 0xc00000007ffc0000ULL,
5755 0xfffe000000000000ULL,
5756 0ULL,
5757 0ULL,
5758 0ULL
5759 },
5760 {
5761 0x00000000520c0000ULL,
5762 0x28aa000000000000ULL,
5763 -1ULL,
5764 -1ULL,
5765 -1ULL
5766 }
5767 #endif
5768 },
5769 { "v2mulfsc", TILEGX_OPC_V2MULFSC, 0x1, 3, TREG_ZERO, 1,
5770 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5771 #ifndef DISASM_ONLY
5772 {
5773 0xc00000007ffc0000ULL,
5774 0ULL,
5775 0ULL,
5776 0ULL,
5777 0ULL
5778 },
5779 {
5780 0x0000000052100000ULL,
5781 -1ULL,
5782 -1ULL,
5783 -1ULL,
5784 -1ULL
5785 }
5786 #endif
5787 },
5788 { "v2muls", TILEGX_OPC_V2MULS, 0x1, 3, TREG_ZERO, 1,
5789 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5790 #ifndef DISASM_ONLY
5791 {
5792 0xc00000007ffc0000ULL,
5793 0ULL,
5794 0ULL,
5795 0ULL,
5796 0ULL
5797 },
5798 {
5799 0x0000000052140000ULL,
5800 -1ULL,
5801 -1ULL,
5802 -1ULL,
5803 -1ULL
5804 }
5805 #endif
5806 },
5807 { "v2mults", TILEGX_OPC_V2MULTS, 0x1, 3, TREG_ZERO, 1,
5808 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5809 #ifndef DISASM_ONLY
5810 {
5811 0xc00000007ffc0000ULL,
5812 0ULL,
5813 0ULL,
5814 0ULL,
5815 0ULL
5816 },
5817 {
5818 0x0000000052180000ULL,
5819 -1ULL,
5820 -1ULL,
5821 -1ULL,
5822 -1ULL
5823 }
5824 #endif
5825 },
5826 { "v2mz", TILEGX_OPC_V2MZ, 0x3, 3, TREG_ZERO, 1,
5827 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5828 #ifndef DISASM_ONLY
5829 {
5830 0xc00000007ffc0000ULL,
5831 0xfffe000000000000ULL,
5832 0ULL,
5833 0ULL,
5834 0ULL
5835 },
5836 {
5837 0x00000000521c0000ULL,
5838 0x28ac000000000000ULL,
5839 -1ULL,
5840 -1ULL,
5841 -1ULL
5842 }
5843 #endif
5844 },
5845 { "v2packh", TILEGX_OPC_V2PACKH, 0x3, 3, TREG_ZERO, 1,
5846 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5847 #ifndef DISASM_ONLY
5848 {
5849 0xc00000007ffc0000ULL,
5850 0xfffe000000000000ULL,
5851 0ULL,
5852 0ULL,
5853 0ULL
5854 },
5855 {
5856 0x0000000052200000ULL,
5857 0x28ae000000000000ULL,
5858 -1ULL,
5859 -1ULL,
5860 -1ULL
5861 }
5862 #endif
5863 },
5864 { "v2packl", TILEGX_OPC_V2PACKL, 0x3, 3, TREG_ZERO, 1,
5865 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5866 #ifndef DISASM_ONLY
5867 {
5868 0xc00000007ffc0000ULL,
5869 0xfffe000000000000ULL,
5870 0ULL,
5871 0ULL,
5872 0ULL
5873 },
5874 {
5875 0x0000000052240000ULL,
5876 0x28b0000000000000ULL,
5877 -1ULL,
5878 -1ULL,
5879 -1ULL
5880 }
5881 #endif
5882 },
5883 { "v2packuc", TILEGX_OPC_V2PACKUC, 0x3, 3, TREG_ZERO, 1,
5884 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5885 #ifndef DISASM_ONLY
5886 {
5887 0xc00000007ffc0000ULL,
5888 0xfffe000000000000ULL,
5889 0ULL,
5890 0ULL,
5891 0ULL
5892 },
5893 {
5894 0x0000000052280000ULL,
5895 0x28b2000000000000ULL,
5896 -1ULL,
5897 -1ULL,
5898 -1ULL
5899 }
5900 #endif
5901 },
5902 { "v2sadas", TILEGX_OPC_V2SADAS, 0x1, 3, TREG_ZERO, 1,
5903 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5904 #ifndef DISASM_ONLY
5905 {
5906 0xc00000007ffc0000ULL,
5907 0ULL,
5908 0ULL,
5909 0ULL,
5910 0ULL
5911 },
5912 {
5913 0x00000000522c0000ULL,
5914 -1ULL,
5915 -1ULL,
5916 -1ULL,
5917 -1ULL
5918 }
5919 #endif
5920 },
5921 { "v2sadau", TILEGX_OPC_V2SADAU, 0x1, 3, TREG_ZERO, 1,
5922 { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5923 #ifndef DISASM_ONLY
5924 {
5925 0xc00000007ffc0000ULL,
5926 0ULL,
5927 0ULL,
5928 0ULL,
5929 0ULL
5930 },
5931 {
5932 0x0000000052300000ULL,
5933 -1ULL,
5934 -1ULL,
5935 -1ULL,
5936 -1ULL
5937 }
5938 #endif
5939 },
5940 { "v2sads", TILEGX_OPC_V2SADS, 0x1, 3, TREG_ZERO, 1,
5941 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5942 #ifndef DISASM_ONLY
5943 {
5944 0xc00000007ffc0000ULL,
5945 0ULL,
5946 0ULL,
5947 0ULL,
5948 0ULL
5949 },
5950 {
5951 0x0000000052340000ULL,
5952 -1ULL,
5953 -1ULL,
5954 -1ULL,
5955 -1ULL
5956 }
5957 #endif
5958 },
5959 { "v2sadu", TILEGX_OPC_V2SADU, 0x1, 3, TREG_ZERO, 1,
5960 { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5961 #ifndef DISASM_ONLY
5962 {
5963 0xc00000007ffc0000ULL,
5964 0ULL,
5965 0ULL,
5966 0ULL,
5967 0ULL
5968 },
5969 {
5970 0x0000000052380000ULL,
5971 -1ULL,
5972 -1ULL,
5973 -1ULL,
5974 -1ULL
5975 }
5976 #endif
5977 },
5978 { "v2shl", TILEGX_OPC_V2SHL, 0x3, 3, TREG_ZERO, 1,
5979 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
5980 #ifndef DISASM_ONLY
5981 {
5982 0xc00000007ffc0000ULL,
5983 0xfffe000000000000ULL,
5984 0ULL,
5985 0ULL,
5986 0ULL
5987 },
5988 {
5989 0x0000000052400000ULL,
5990 0x28b6000000000000ULL,
5991 -1ULL,
5992 -1ULL,
5993 -1ULL
5994 }
5995 #endif
5996 },
5997 { "v2shli", TILEGX_OPC_V2SHLI, 0x3, 3, TREG_ZERO, 1,
5998 { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
5999 #ifndef DISASM_ONLY
6000 {
6001 0xc00000007ffc0000ULL,
6002 0xfffe000000000000ULL,
6003 0ULL,
6004 0ULL,
6005 0ULL
6006 },
6007 {
6008 0x0000000060280000ULL,
6009 0x3014000000000000ULL,
6010 -1ULL,
6011 -1ULL,
6012 -1ULL
6013 }
6014 #endif
6015 },
6016 { "v2shlsc", TILEGX_OPC_V2SHLSC, 0x3, 3, TREG_ZERO, 1,
6017 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6018 #ifndef DISASM_ONLY
6019 {
6020 0xc00000007ffc0000ULL,
6021 0xfffe000000000000ULL,
6022 0ULL,
6023 0ULL,
6024 0ULL
6025 },
6026 {
6027 0x00000000523c0000ULL,
6028 0x28b4000000000000ULL,
6029 -1ULL,
6030 -1ULL,
6031 -1ULL
6032 }
6033 #endif
6034 },
6035 { "v2shrs", TILEGX_OPC_V2SHRS, 0x3, 3, TREG_ZERO, 1,
6036 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6037 #ifndef DISASM_ONLY
6038 {
6039 0xc00000007ffc0000ULL,
6040 0xfffe000000000000ULL,
6041 0ULL,
6042 0ULL,
6043 0ULL
6044 },
6045 {
6046 0x0000000052440000ULL,
6047 0x28b8000000000000ULL,
6048 -1ULL,
6049 -1ULL,
6050 -1ULL
6051 }
6052 #endif
6053 },
6054 { "v2shrsi", TILEGX_OPC_V2SHRSI, 0x3, 3, TREG_ZERO, 1,
6055 { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
6056 #ifndef DISASM_ONLY
6057 {
6058 0xc00000007ffc0000ULL,
6059 0xfffe000000000000ULL,
6060 0ULL,
6061 0ULL,
6062 0ULL
6063 },
6064 {
6065 0x00000000602c0000ULL,
6066 0x3016000000000000ULL,
6067 -1ULL,
6068 -1ULL,
6069 -1ULL
6070 }
6071 #endif
6072 },
6073 { "v2shru", TILEGX_OPC_V2SHRU, 0x3, 3, TREG_ZERO, 1,
6074 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6075 #ifndef DISASM_ONLY
6076 {
6077 0xc00000007ffc0000ULL,
6078 0xfffe000000000000ULL,
6079 0ULL,
6080 0ULL,
6081 0ULL
6082 },
6083 {
6084 0x0000000052480000ULL,
6085 0x28ba000000000000ULL,
6086 -1ULL,
6087 -1ULL,
6088 -1ULL
6089 }
6090 #endif
6091 },
6092 { "v2shrui", TILEGX_OPC_V2SHRUI, 0x3, 3, TREG_ZERO, 1,
6093 { { 8, 9, 29 }, { 6, 7, 30 }, { 0, }, { 0, }, { 0, } },
6094 #ifndef DISASM_ONLY
6095 {
6096 0xc00000007ffc0000ULL,
6097 0xfffe000000000000ULL,
6098 0ULL,
6099 0ULL,
6100 0ULL
6101 },
6102 {
6103 0x0000000060300000ULL,
6104 0x3018000000000000ULL,
6105 -1ULL,
6106 -1ULL,
6107 -1ULL
6108 }
6109 #endif
6110 },
6111 { "v2sub", TILEGX_OPC_V2SUB, 0x3, 3, TREG_ZERO, 1,
6112 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6113 #ifndef DISASM_ONLY
6114 {
6115 0xc00000007ffc0000ULL,
6116 0xfffe000000000000ULL,
6117 0ULL,
6118 0ULL,
6119 0ULL
6120 },
6121 {
6122 0x0000000052500000ULL,
6123 0x28be000000000000ULL,
6124 -1ULL,
6125 -1ULL,
6126 -1ULL
6127 }
6128 #endif
6129 },
6130 { "v2subsc", TILEGX_OPC_V2SUBSC, 0x3, 3, TREG_ZERO, 1,
6131 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6132 #ifndef DISASM_ONLY
6133 {
6134 0xc00000007ffc0000ULL,
6135 0xfffe000000000000ULL,
6136 0ULL,
6137 0ULL,
6138 0ULL
6139 },
6140 {
6141 0x00000000524c0000ULL,
6142 0x28bc000000000000ULL,
6143 -1ULL,
6144 -1ULL,
6145 -1ULL
6146 }
6147 #endif
6148 },
6149 { "v4add", TILEGX_OPC_V4ADD, 0x3, 3, TREG_ZERO, 1,
6150 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6151 #ifndef DISASM_ONLY
6152 {
6153 0xc00000007ffc0000ULL,
6154 0xfffe000000000000ULL,
6155 0ULL,
6156 0ULL,
6157 0ULL
6158 },
6159 {
6160 0x0000000052580000ULL,
6161 0x28c2000000000000ULL,
6162 -1ULL,
6163 -1ULL,
6164 -1ULL
6165 }
6166 #endif
6167 },
6168 { "v4addsc", TILEGX_OPC_V4ADDSC, 0x3, 3, TREG_ZERO, 1,
6169 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6170 #ifndef DISASM_ONLY
6171 {
6172 0xc00000007ffc0000ULL,
6173 0xfffe000000000000ULL,
6174 0ULL,
6175 0ULL,
6176 0ULL
6177 },
6178 {
6179 0x0000000052540000ULL,
6180 0x28c0000000000000ULL,
6181 -1ULL,
6182 -1ULL,
6183 -1ULL
6184 }
6185 #endif
6186 },
6187 { "v4int_h", TILEGX_OPC_V4INT_H, 0x3, 3, TREG_ZERO, 1,
6188 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6189 #ifndef DISASM_ONLY
6190 {
6191 0xc00000007ffc0000ULL,
6192 0xfffe000000000000ULL,
6193 0ULL,
6194 0ULL,
6195 0ULL
6196 },
6197 {
6198 0x00000000525c0000ULL,
6199 0x28c4000000000000ULL,
6200 -1ULL,
6201 -1ULL,
6202 -1ULL
6203 }
6204 #endif
6205 },
6206 { "v4int_l", TILEGX_OPC_V4INT_L, 0x3, 3, TREG_ZERO, 1,
6207 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6208 #ifndef DISASM_ONLY
6209 {
6210 0xc00000007ffc0000ULL,
6211 0xfffe000000000000ULL,
6212 0ULL,
6213 0ULL,
6214 0ULL
6215 },
6216 {
6217 0x0000000052600000ULL,
6218 0x28c6000000000000ULL,
6219 -1ULL,
6220 -1ULL,
6221 -1ULL
6222 }
6223 #endif
6224 },
6225 { "v4packsc", TILEGX_OPC_V4PACKSC, 0x3, 3, TREG_ZERO, 1,
6226 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6227 #ifndef DISASM_ONLY
6228 {
6229 0xc00000007ffc0000ULL,
6230 0xfffe000000000000ULL,
6231 0ULL,
6232 0ULL,
6233 0ULL
6234 },
6235 {
6236 0x0000000052640000ULL,
6237 0x28c8000000000000ULL,
6238 -1ULL,
6239 -1ULL,
6240 -1ULL
6241 }
6242 #endif
6243 },
6244 { "v4shl", TILEGX_OPC_V4SHL, 0x3, 3, TREG_ZERO, 1,
6245 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6246 #ifndef DISASM_ONLY
6247 {
6248 0xc00000007ffc0000ULL,
6249 0xfffe000000000000ULL,
6250 0ULL,
6251 0ULL,
6252 0ULL
6253 },
6254 {
6255 0x00000000526c0000ULL,
6256 0x28cc000000000000ULL,
6257 -1ULL,
6258 -1ULL,
6259 -1ULL
6260 }
6261 #endif
6262 },
6263 { "v4shlsc", TILEGX_OPC_V4SHLSC, 0x3, 3, TREG_ZERO, 1,
6264 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6265 #ifndef DISASM_ONLY
6266 {
6267 0xc00000007ffc0000ULL,
6268 0xfffe000000000000ULL,
6269 0ULL,
6270 0ULL,
6271 0ULL
6272 },
6273 {
6274 0x0000000052680000ULL,
6275 0x28ca000000000000ULL,
6276 -1ULL,
6277 -1ULL,
6278 -1ULL
6279 }
6280 #endif
6281 },
6282 { "v4shrs", TILEGX_OPC_V4SHRS, 0x3, 3, TREG_ZERO, 1,
6283 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6284 #ifndef DISASM_ONLY
6285 {
6286 0xc00000007ffc0000ULL,
6287 0xfffe000000000000ULL,
6288 0ULL,
6289 0ULL,
6290 0ULL
6291 },
6292 {
6293 0x0000000052700000ULL,
6294 0x28ce000000000000ULL,
6295 -1ULL,
6296 -1ULL,
6297 -1ULL
6298 }
6299 #endif
6300 },
6301 { "v4shru", TILEGX_OPC_V4SHRU, 0x3, 3, TREG_ZERO, 1,
6302 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6303 #ifndef DISASM_ONLY
6304 {
6305 0xc00000007ffc0000ULL,
6306 0xfffe000000000000ULL,
6307 0ULL,
6308 0ULL,
6309 0ULL
6310 },
6311 {
6312 0x0000000052740000ULL,
6313 0x28d0000000000000ULL,
6314 -1ULL,
6315 -1ULL,
6316 -1ULL
6317 }
6318 #endif
6319 },
6320 { "v4sub", TILEGX_OPC_V4SUB, 0x3, 3, TREG_ZERO, 1,
6321 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6322 #ifndef DISASM_ONLY
6323 {
6324 0xc00000007ffc0000ULL,
6325 0xfffe000000000000ULL,
6326 0ULL,
6327 0ULL,
6328 0ULL
6329 },
6330 {
6331 0x00000000527c0000ULL,
6332 0x28d4000000000000ULL,
6333 -1ULL,
6334 -1ULL,
6335 -1ULL
6336 }
6337 #endif
6338 },
6339 { "v4subsc", TILEGX_OPC_V4SUBSC, 0x3, 3, TREG_ZERO, 1,
6340 { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } },
6341 #ifndef DISASM_ONLY
6342 {
6343 0xc00000007ffc0000ULL,
6344 0xfffe000000000000ULL,
6345 0ULL,
6346 0ULL,
6347 0ULL
6348 },
6349 {
6350 0x0000000052780000ULL,
6351 0x28d2000000000000ULL,
6352 -1ULL,
6353 -1ULL,
6354 -1ULL
6355 }
6356 #endif
6357 },
6358 { "wh64", TILEGX_OPC_WH64, 0x2, 1, TREG_ZERO, 1,
6359 { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
6360 #ifndef DISASM_ONLY
6361 {
6362 0ULL,
6363 0xfffff80000000000ULL,
6364 0ULL,
6365 0ULL,
6366 0ULL
6367 },
6368 {
6369 -1ULL,
6370 0x286b300000000000ULL,
6371 -1ULL,
6372 -1ULL,
6373 -1ULL
6374 }
6375 #endif
6376 },
6377 { "xor", TILEGX_OPC_XOR, 0xf, 3, TREG_ZERO, 1,
6378 { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
6379 #ifndef DISASM_ONLY
6380 {
6381 0xc00000007ffc0000ULL,
6382 0xfffe000000000000ULL,
6383 0x00000000780c0000ULL,
6384 0x3c06000000000000ULL,
6385 0ULL
6386 },
6387 {
6388 0x0000000052800000ULL,
6389 0x28d6000000000000ULL,
6390 0x00000000500c0000ULL,
6391 0x2c06000000000000ULL,
6392 -1ULL
6393 }
6394 #endif
6395 },
6396 { "xori", TILEGX_OPC_XORI, 0x3, 3, TREG_ZERO, 1,
6397 { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } },
6398 #ifndef DISASM_ONLY
6399 {
6400 0xc00000007ff00000ULL,
6401 0xfff8000000000000ULL,
6402 0ULL,
6403 0ULL,
6404 0ULL
6405 },
6406 {
6407 0x0000000041400000ULL,
6408 0x1968000000000000ULL,
6409 -1ULL,
6410 -1ULL,
6411 -1ULL
6412 }
6413 #endif
6414 },
6415 { NULL, TILEGX_OPC_NONE, 0, 0, TREG_ZERO, 0, { { 0, } },
6416 #ifndef DISASM_ONLY
6417 { 0, }, { 0, }
6418 #endif
6419 }
6420 #else
6421 // this is a pretty hardcore hack for msvc. I don't know why it doesn't like this definition but it really really doesn't!
6422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
6423 #endif
6424 };
6425 #define BITFIELD(start, size) ((start) | (((1 << (size)) - 1) << 6))
6426 #define CHILD(array_index) (TILEGX_OPC_NONE + (array_index))
6427
6428 static const UShort decode_X0_fsm[936] =
6429 {
6430 BITFIELD(22, 9) /* index 0 */,
6431 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6432 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6433 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6434 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6435 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6436 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6437 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6438 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6439 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6440 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6441 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6442 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6443 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6444 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6445 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6446 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6447 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6448 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6449 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6450 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6451 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6452 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6453 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6454 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6455 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6456 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6457 CHILD(513), CHILD(513), CHILD(513), CHILD(513), TILEGX_OPC_ADDXLI,
6458 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6459 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6460 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6461 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6462 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6463 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6464 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6465 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6466 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6467 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6468 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6469 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6470 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6471 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6472 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6473 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_NONE,
6474 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6475 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6476 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6477 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_BFEXTS,
6478 TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTU,
6479 TILEGX_OPC_BFEXTU, TILEGX_OPC_BFEXTU, TILEGX_OPC_BFEXTU, TILEGX_OPC_BFINS,
6480 TILEGX_OPC_BFINS, TILEGX_OPC_BFINS, TILEGX_OPC_BFINS, TILEGX_OPC_MM,
6481 TILEGX_OPC_MM, TILEGX_OPC_MM, TILEGX_OPC_MM, TILEGX_OPC_NONE,
6482 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6483 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6484 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6485 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6486 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6487 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6488 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6489 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(528), CHILD(578),
6490 CHILD(583), CHILD(588), CHILD(593), CHILD(598), TILEGX_OPC_NONE,
6491 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6492 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6493 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6494 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6495 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6496 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6497 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6498 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6499 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6500 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6501 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6502 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6503 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6504 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6505 TILEGX_OPC_NONE, CHILD(603), CHILD(620), CHILD(637), CHILD(654), CHILD(671),
6506 CHILD(703), CHILD(797), CHILD(814), CHILD(831), CHILD(848), CHILD(865),
6507 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6508 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6509 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6510 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6511 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6512 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6513 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6514 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6515 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6516 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6517 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6518 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6519 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6520 TILEGX_OPC_NONE, CHILD(889), TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6521 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6522 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6523 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6524 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6525 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6526 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6527 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6528 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6529 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6530 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6531 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6532 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6533 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6534 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6535 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6536 TILEGX_OPC_NONE, CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6537 CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6538 CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6539 CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6540 CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6541 CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6542 CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6543 CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6544 CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6545 CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6546 CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
6547 BITFIELD(6, 2) /* index 513 */,
6548 TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(518),
6549 BITFIELD(8, 2) /* index 518 */,
6550 TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(523),
6551 BITFIELD(10, 2) /* index 523 */,
6552 TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_MOVELI,
6553 BITFIELD(20, 2) /* index 528 */,
6554 TILEGX_OPC_NONE, CHILD(533), TILEGX_OPC_ADDXI, CHILD(548),
6555 BITFIELD(6, 2) /* index 533 */,
6556 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(538),
6557 BITFIELD(8, 2) /* index 538 */,
6558 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(543),
6559 BITFIELD(10, 2) /* index 543 */,
6560 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
6561 BITFIELD(0, 2) /* index 548 */,
6562 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(553),
6563 BITFIELD(2, 2) /* index 553 */,
6564 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(558),
6565 BITFIELD(4, 2) /* index 558 */,
6566 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(563),
6567 BITFIELD(6, 2) /* index 563 */,
6568 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(568),
6569 BITFIELD(8, 2) /* index 568 */,
6570 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(573),
6571 BITFIELD(10, 2) /* index 573 */,
6572 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
6573 BITFIELD(20, 2) /* index 578 */,
6574 TILEGX_OPC_CMPEQI, TILEGX_OPC_CMPLTSI, TILEGX_OPC_CMPLTUI, TILEGX_OPC_ORI,
6575 BITFIELD(20, 2) /* index 583 */,
6576 TILEGX_OPC_V1ADDI, TILEGX_OPC_V1CMPEQI, TILEGX_OPC_V1CMPLTSI,
6577 TILEGX_OPC_V1CMPLTUI,
6578 BITFIELD(20, 2) /* index 588 */,
6579 TILEGX_OPC_V1MAXUI, TILEGX_OPC_V1MINUI, TILEGX_OPC_V2ADDI,
6580 TILEGX_OPC_V2CMPEQI,
6581 BITFIELD(20, 2) /* index 593 */,
6582 TILEGX_OPC_V2CMPLTSI, TILEGX_OPC_V2CMPLTUI, TILEGX_OPC_V2MAXSI,
6583 TILEGX_OPC_V2MINSI,
6584 BITFIELD(20, 2) /* index 598 */,
6585 TILEGX_OPC_XORI, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6586 BITFIELD(18, 4) /* index 603 */,
6587 TILEGX_OPC_NONE, TILEGX_OPC_ADDXSC, TILEGX_OPC_ADDX, TILEGX_OPC_ADD,
6588 TILEGX_OPC_AND, TILEGX_OPC_CMOVEQZ, TILEGX_OPC_CMOVNEZ, TILEGX_OPC_CMPEQ,
6589 TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
6590 TILEGX_OPC_CMPNE, TILEGX_OPC_CMULAF, TILEGX_OPC_CMULA, TILEGX_OPC_CMULFR,
6591 BITFIELD(18, 4) /* index 620 */,
6592 TILEGX_OPC_CMULF, TILEGX_OPC_CMULHR, TILEGX_OPC_CMULH, TILEGX_OPC_CMUL,
6593 TILEGX_OPC_CRC32_32, TILEGX_OPC_CRC32_8, TILEGX_OPC_DBLALIGN2,
6594 TILEGX_OPC_DBLALIGN4, TILEGX_OPC_DBLALIGN6, TILEGX_OPC_DBLALIGN,
6595 TILEGX_OPC_FDOUBLE_ADDSUB, TILEGX_OPC_FDOUBLE_ADD_FLAGS,
6596 TILEGX_OPC_FDOUBLE_MUL_FLAGS, TILEGX_OPC_FDOUBLE_PACK1,
6597 TILEGX_OPC_FDOUBLE_PACK2, TILEGX_OPC_FDOUBLE_SUB_FLAGS,
6598 BITFIELD(18, 4) /* index 637 */,
6599 TILEGX_OPC_FDOUBLE_UNPACK_MAX, TILEGX_OPC_FDOUBLE_UNPACK_MIN,
6600 TILEGX_OPC_FSINGLE_ADD1, TILEGX_OPC_FSINGLE_ADDSUB2,
6601 TILEGX_OPC_FSINGLE_MUL1, TILEGX_OPC_FSINGLE_MUL2, TILEGX_OPC_FSINGLE_PACK2,
6602 TILEGX_OPC_FSINGLE_SUB1, TILEGX_OPC_MNZ, TILEGX_OPC_MULAX,
6603 TILEGX_OPC_MULA_HS_HS, TILEGX_OPC_MULA_HS_HU, TILEGX_OPC_MULA_HS_LS,
6604 TILEGX_OPC_MULA_HS_LU, TILEGX_OPC_MULA_HU_HU, TILEGX_OPC_MULA_HU_LS,
6605 BITFIELD(18, 4) /* index 654 */,
6606 TILEGX_OPC_MULA_HU_LU, TILEGX_OPC_MULA_LS_LS, TILEGX_OPC_MULA_LS_LU,
6607 TILEGX_OPC_MULA_LU_LU, TILEGX_OPC_MULX, TILEGX_OPC_MUL_HS_HS,
6608 TILEGX_OPC_MUL_HS_HU, TILEGX_OPC_MUL_HS_LS, TILEGX_OPC_MUL_HS_LU,
6609 TILEGX_OPC_MUL_HU_HU, TILEGX_OPC_MUL_HU_LS, TILEGX_OPC_MUL_HU_LU,
6610 TILEGX_OPC_MUL_LS_LS, TILEGX_OPC_MUL_LS_LU, TILEGX_OPC_MUL_LU_LU,
6611 TILEGX_OPC_MZ,
6612 BITFIELD(18, 4) /* index 671 */,
6613 TILEGX_OPC_NOR, CHILD(688), TILEGX_OPC_ROTL, TILEGX_OPC_SHL1ADDX,
6614 TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADDX, TILEGX_OPC_SHL2ADD,
6615 TILEGX_OPC_SHL3ADDX, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHLX, TILEGX_OPC_SHL,
6616 TILEGX_OPC_SHRS, TILEGX_OPC_SHRUX, TILEGX_OPC_SHRU, TILEGX_OPC_SHUFFLEBYTES,
6617 TILEGX_OPC_SUBXSC,
6618 BITFIELD(12, 2) /* index 688 */,
6619 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(693),
6620 BITFIELD(14, 2) /* index 693 */,
6621 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(698),
6622 BITFIELD(16, 2) /* index 698 */,
6623 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
6624 BITFIELD(18, 4) /* index 703 */,
6625 TILEGX_OPC_SUBX, TILEGX_OPC_SUB, CHILD(720), TILEGX_OPC_V1ADDUC,
6626 TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADIFFU, TILEGX_OPC_V1AVGU,
6627 TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLEU,
6628 TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPNE,
6629 TILEGX_OPC_V1DDOTPUSA, TILEGX_OPC_V1DDOTPUS, TILEGX_OPC_V1DOTPA,
6630 BITFIELD(12, 4) /* index 720 */,
6631 TILEGX_OPC_NONE, CHILD(737), CHILD(742), CHILD(747), CHILD(752), CHILD(757),
6632 CHILD(762), CHILD(767), CHILD(772), CHILD(777), CHILD(782), CHILD(787),
6633 CHILD(792), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6634 BITFIELD(16, 2) /* index 737 */,
6635 TILEGX_OPC_CLZ, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6636 BITFIELD(16, 2) /* index 742 */,
6637 TILEGX_OPC_CTZ, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6638 BITFIELD(16, 2) /* index 747 */,
6639 TILEGX_OPC_FNOP, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6640 BITFIELD(16, 2) /* index 752 */,
6641 TILEGX_OPC_FSINGLE_PACK1, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6642 BITFIELD(16, 2) /* index 757 */,
6643 TILEGX_OPC_NOP, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6644 BITFIELD(16, 2) /* index 762 */,
6645 TILEGX_OPC_PCNT, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6646 BITFIELD(16, 2) /* index 767 */,
6647 TILEGX_OPC_REVBITS, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6648 BITFIELD(16, 2) /* index 772 */,
6649 TILEGX_OPC_REVBYTES, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6650 BITFIELD(16, 2) /* index 777 */,
6651 TILEGX_OPC_TBLIDXB0, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6652 BITFIELD(16, 2) /* index 782 */,
6653 TILEGX_OPC_TBLIDXB1, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6654 BITFIELD(16, 2) /* index 787 */,
6655 TILEGX_OPC_TBLIDXB2, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6656 BITFIELD(16, 2) /* index 792 */,
6657 TILEGX_OPC_TBLIDXB3, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6658 BITFIELD(18, 4) /* index 797 */,
6659 TILEGX_OPC_V1DOTPUSA, TILEGX_OPC_V1DOTPUS, TILEGX_OPC_V1DOTP,
6660 TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1MAXU,
6661 TILEGX_OPC_V1MINU, TILEGX_OPC_V1MNZ, TILEGX_OPC_V1MULTU, TILEGX_OPC_V1MULUS,
6662 TILEGX_OPC_V1MULU, TILEGX_OPC_V1MZ, TILEGX_OPC_V1SADAU, TILEGX_OPC_V1SADU,
6663 TILEGX_OPC_V1SHL, TILEGX_OPC_V1SHRS,
6664 BITFIELD(18, 4) /* index 814 */,
6665 TILEGX_OPC_V1SHRU, TILEGX_OPC_V1SUBUC, TILEGX_OPC_V1SUB, TILEGX_OPC_V2ADDSC,
6666 TILEGX_OPC_V2ADD, TILEGX_OPC_V2ADIFFS, TILEGX_OPC_V2AVGS,
6667 TILEGX_OPC_V2CMPEQ, TILEGX_OPC_V2CMPLES, TILEGX_OPC_V2CMPLEU,
6668 TILEGX_OPC_V2CMPLTS, TILEGX_OPC_V2CMPLTU, TILEGX_OPC_V2CMPNE,
6669 TILEGX_OPC_V2DOTPA, TILEGX_OPC_V2DOTP, TILEGX_OPC_V2INT_H,
6670 BITFIELD(18, 4) /* index 831 */,
6671 TILEGX_OPC_V2INT_L, TILEGX_OPC_V2MAXS, TILEGX_OPC_V2MINS, TILEGX_OPC_V2MNZ,
6672 TILEGX_OPC_V2MULFSC, TILEGX_OPC_V2MULS, TILEGX_OPC_V2MULTS, TILEGX_OPC_V2MZ,
6673 TILEGX_OPC_V2PACKH, TILEGX_OPC_V2PACKL, TILEGX_OPC_V2PACKUC,
6674 TILEGX_OPC_V2SADAS, TILEGX_OPC_V2SADAU, TILEGX_OPC_V2SADS,
6675 TILEGX_OPC_V2SADU, TILEGX_OPC_V2SHLSC,
6676 BITFIELD(18, 4) /* index 848 */,
6677 TILEGX_OPC_V2SHL, TILEGX_OPC_V2SHRS, TILEGX_OPC_V2SHRU, TILEGX_OPC_V2SUBSC,
6678 TILEGX_OPC_V2SUB, TILEGX_OPC_V4ADDSC, TILEGX_OPC_V4ADD, TILEGX_OPC_V4INT_H,
6679 TILEGX_OPC_V4INT_L, TILEGX_OPC_V4PACKSC, TILEGX_OPC_V4SHLSC,
6680 TILEGX_OPC_V4SHL, TILEGX_OPC_V4SHRS, TILEGX_OPC_V4SHRU, TILEGX_OPC_V4SUBSC,
6681 TILEGX_OPC_V4SUB,
6682 BITFIELD(18, 3) /* index 865 */,
6683 CHILD(874), CHILD(877), CHILD(880), CHILD(883), CHILD(886), TILEGX_OPC_NONE,
6684 TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6685 BITFIELD(21, 1) /* index 874 */,
6686 TILEGX_OPC_XOR, TILEGX_OPC_NONE,
6687 BITFIELD(21, 1) /* index 877 */,
6688 TILEGX_OPC_V1DDOTPUA, TILEGX_OPC_NONE,
6689 BITFIELD(21, 1) /* index 880 */,
6690 TILEGX_OPC_V1DDOTPU, TILEGX_OPC_NONE,
6691 BITFIELD(21, 1) /* index 883 */,
6692 TILEGX_OPC_V1DOTPUA, TILEGX_OPC_NONE,
6693 BITFIELD(21, 1) /* index 886 */,
6694 TILEGX_OPC_V1DOTPU, TILEGX_OPC_NONE,
6695 BITFIELD(18, 4) /* index 889 */,
6696 TILEGX_OPC_NONE, TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHLXI,
6697 TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI, TILEGX_OPC_SHRUXI, TILEGX_OPC_V1SHLI,
6698 TILEGX_OPC_V1SHRSI, TILEGX_OPC_V1SHRUI, TILEGX_OPC_V2SHLI,
6699 TILEGX_OPC_V2SHRSI, TILEGX_OPC_V2SHRUI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6700 TILEGX_OPC_NONE,
6701 BITFIELD(0, 2) /* index 906 */,
6702 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6703 CHILD(911),
6704 BITFIELD(2, 2) /* index 911 */,
6705 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6706 CHILD(916),
6707 BITFIELD(4, 2) /* index 916 */,
6708 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6709 CHILD(921),
6710 BITFIELD(6, 2) /* index 921 */,
6711 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6712 CHILD(926),
6713 BITFIELD(8, 2) /* index 926 */,
6714 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6715 CHILD(931),
6716 BITFIELD(10, 2) /* index 931 */,
6717 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
6718 TILEGX_OPC_INFOL,
6719 };
6720
6721 static const UShort decode_X1_fsm[1266] =
6722 {
6723 BITFIELD(53, 9) /* index 0 */,
6724 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6725 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6726 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6727 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6728 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6729 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6730 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6731 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6732 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6733 CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
6734 CHILD(513), CHILD(513), CHILD(513), CHILD(513), TILEGX_OPC_ADDXLI,
6735 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6736 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6737 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6738 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6739 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6740 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6741 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6742 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6743 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6744 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6745 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6746 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6747 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6748 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6749 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
6750 TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_NONE,
6751 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6752 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6753 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6754 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6755 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6756 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6757 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6758 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_BEQZT,
6759 TILEGX_OPC_BEQZT, TILEGX_OPC_BEQZ, TILEGX_OPC_BEQZ, TILEGX_OPC_BGEZT,
6760 TILEGX_OPC_BGEZT, TILEGX_OPC_BGEZ, TILEGX_OPC_BGEZ, TILEGX_OPC_BGTZT,
6761 TILEGX_OPC_BGTZT, TILEGX_OPC_BGTZ, TILEGX_OPC_BGTZ, TILEGX_OPC_BLBCT,
6762 TILEGX_OPC_BLBCT, TILEGX_OPC_BLBC, TILEGX_OPC_BLBC, TILEGX_OPC_BLBST,
6763 TILEGX_OPC_BLBST, TILEGX_OPC_BLBS, TILEGX_OPC_BLBS, TILEGX_OPC_BLEZT,
6764 TILEGX_OPC_BLEZT, TILEGX_OPC_BLEZ, TILEGX_OPC_BLEZ, TILEGX_OPC_BLTZT,
6765 TILEGX_OPC_BLTZT, TILEGX_OPC_BLTZ, TILEGX_OPC_BLTZ, TILEGX_OPC_BNEZT,
6766 TILEGX_OPC_BNEZT, TILEGX_OPC_BNEZ, TILEGX_OPC_BNEZ, CHILD(528), CHILD(578),
6767 CHILD(598), CHILD(703), CHILD(723), CHILD(728), CHILD(753), CHILD(758),
6768 CHILD(763), CHILD(768), CHILD(773), CHILD(778), TILEGX_OPC_NONE,
6769 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6770 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6771 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6772 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6773 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6774 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6775 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6776 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6777 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6778 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6779 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6780 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6781 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_JAL,
6782 TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6783 TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6784 TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6785 TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6786 TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6787 TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6788 TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
6789 TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_J, TILEGX_OPC_J,
6790 TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6791 TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6792 TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6793 TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6794 TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6795 TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
6796 CHILD(783), CHILD(800), CHILD(832), CHILD(849), CHILD(1168), CHILD(1185),
6797 CHILD(1202), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6798 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6799 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6800 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6801 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6802 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6803 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6804 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6805 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6806 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6807 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6808 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6809 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6810 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6811 TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1219), TILEGX_OPC_NONE,
6812 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6813 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6814 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6815 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6816 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6817 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6818 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6819 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6820 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6821 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6822 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6823 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6824 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6825 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6826 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6827 TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1236), CHILD(1236), CHILD(1236),
6828 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6829 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6830 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6831 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6832 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6833 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6834 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6835 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6836 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6837 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6838 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6839 CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236), CHILD(1236),
6840 CHILD(1236),
6841 BITFIELD(37, 2) /* index 513 */,
6842 TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(518),
6843 BITFIELD(39, 2) /* index 518 */,
6844 TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(523),
6845 BITFIELD(41, 2) /* index 523 */,
6846 TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_MOVELI,
6847 BITFIELD(51, 2) /* index 528 */,
6848 TILEGX_OPC_NONE, CHILD(533), TILEGX_OPC_ADDXI, CHILD(548),
6849 BITFIELD(37, 2) /* index 533 */,
6850 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(538),
6851 BITFIELD(39, 2) /* index 538 */,
6852 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(543),
6853 BITFIELD(41, 2) /* index 543 */,
6854 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
6855 BITFIELD(31, 2) /* index 548 */,
6856 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(553),
6857 BITFIELD(33, 2) /* index 553 */,
6858 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(558),
6859 BITFIELD(35, 2) /* index 558 */,
6860 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(563),
6861 BITFIELD(37, 2) /* index 563 */,
6862 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(568),
6863 BITFIELD(39, 2) /* index 568 */,
6864 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(573),
6865 BITFIELD(41, 2) /* index 573 */,
6866 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
6867 BITFIELD(51, 2) /* index 578 */,
6868 TILEGX_OPC_CMPEQI, TILEGX_OPC_CMPLTSI, TILEGX_OPC_CMPLTUI, CHILD(583),
6869 BITFIELD(31, 2) /* index 583 */,
6870 TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, CHILD(588),
6871 BITFIELD(33, 2) /* index 588 */,
6872 TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, CHILD(593),
6873 BITFIELD(35, 2) /* index 593 */,
6874 TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD,
6875 TILEGX_OPC_PREFETCH_ADD_L1_FAULT,
6876 BITFIELD(51, 2) /* index 598 */,
6877 CHILD(603), CHILD(618), CHILD(633), CHILD(648),
6878 BITFIELD(31, 2) /* index 603 */,
6879 TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, CHILD(608),
6880 BITFIELD(33, 2) /* index 608 */,
6881 TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, CHILD(613),
6882 BITFIELD(35, 2) /* index 613 */,
6883 TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD,
6884 TILEGX_OPC_PREFETCH_ADD_L1,
6885 BITFIELD(31, 2) /* index 618 */,
6886 TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, CHILD(623),
6887 BITFIELD(33, 2) /* index 623 */,
6888 TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, CHILD(628),
6889 BITFIELD(35, 2) /* index 628 */,
6890 TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD,
6891 TILEGX_OPC_PREFETCH_ADD_L2_FAULT,
6892 BITFIELD(31, 2) /* index 633 */,
6893 TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, CHILD(638),
6894 BITFIELD(33, 2) /* index 638 */,
6895 TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, CHILD(643),
6896 BITFIELD(35, 2) /* index 643 */,
6897 TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD,
6898 TILEGX_OPC_PREFETCH_ADD_L2,
6899 BITFIELD(31, 2) /* index 648 */,
6900 CHILD(653), CHILD(653), CHILD(653), CHILD(673),
6901 BITFIELD(43, 2) /* index 653 */,
6902 CHILD(658), TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
6903 BITFIELD(45, 2) /* index 658 */,
6904 CHILD(663), TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
6905 BITFIELD(47, 2) /* index 663 */,
6906 CHILD(668), TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
6907 BITFIELD(49, 2) /* index 668 */,
6908 TILEGX_OPC_LD4S_TLS, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
6909 TILEGX_OPC_LD4S_ADD,
6910 BITFIELD(33, 2) /* index 673 */,
6911 CHILD(653), CHILD(653), CHILD(653), CHILD(678),
6912 BITFIELD(35, 2) /* index 678 */,
6913 CHILD(653), CHILD(653), CHILD(653), CHILD(683),
6914 BITFIELD(43, 2) /* index 683 */,
6915 CHILD(688), TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6916 TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6917 BITFIELD(45, 2) /* index 688 */,
6918 CHILD(693), TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6919 TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6920 BITFIELD(47, 2) /* index 693 */,
6921 CHILD(698), TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6922 TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6923 BITFIELD(49, 2) /* index 698 */,
6924 TILEGX_OPC_LD4S_TLS, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6925 TILEGX_OPC_PREFETCH_ADD_L3_FAULT, TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
6926 BITFIELD(51, 2) /* index 703 */,
6927 CHILD(708), TILEGX_OPC_LDNT1S_ADD, TILEGX_OPC_LDNT1U_ADD,
6928 TILEGX_OPC_LDNT2S_ADD,
6929 BITFIELD(31, 2) /* index 708 */,
6930 TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(713),
6931 BITFIELD(33, 2) /* index 713 */,
6932 TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(718),
6933 BITFIELD(35, 2) /* index 718 */,
6934 TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD,
6935 TILEGX_OPC_PREFETCH_ADD_L3,
6936 BITFIELD(51, 2) /* index 723 */,
6937 TILEGX_OPC_LDNT2U_ADD, TILEGX_OPC_LDNT4S_ADD, TILEGX_OPC_LDNT4U_ADD,
6938 TILEGX_OPC_LDNT_ADD,
6939 BITFIELD(51, 2) /* index 728 */,
6940 CHILD(733), TILEGX_OPC_LDNA_ADD, TILEGX_OPC_MFSPR, TILEGX_OPC_MTSPR,
6941 BITFIELD(43, 2) /* index 733 */,
6942 CHILD(738), TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
6943 BITFIELD(45, 2) /* index 738 */,
6944 CHILD(743), TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
6945 BITFIELD(47, 2) /* index 743 */,
6946 CHILD(748), TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
6947 BITFIELD(49, 2) /* index 748 */,
6948 TILEGX_OPC_LD_TLS, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD, TILEGX_OPC_LD_ADD,
6949 BITFIELD(51, 2) /* index 753 */,
6950 TILEGX_OPC_ORI, TILEGX_OPC_ST1_ADD, TILEGX_OPC_ST2_ADD, TILEGX_OPC_ST4_ADD,
6951 BITFIELD(51, 2) /* index 758 */,
6952 TILEGX_OPC_STNT1_ADD, TILEGX_OPC_STNT2_ADD, TILEGX_OPC_STNT4_ADD,
6953 TILEGX_OPC_STNT_ADD,
6954 BITFIELD(51, 2) /* index 763 */,
6955 TILEGX_OPC_ST_ADD, TILEGX_OPC_V1ADDI, TILEGX_OPC_V1CMPEQI,
6956 TILEGX_OPC_V1CMPLTSI,
6957 BITFIELD(51, 2) /* index 768 */,
6958 TILEGX_OPC_V1CMPLTUI, TILEGX_OPC_V1MAXUI, TILEGX_OPC_V1MINUI,
6959 TILEGX_OPC_V2ADDI,
6960 BITFIELD(51, 2) /* index 773 */,
6961 TILEGX_OPC_V2CMPEQI, TILEGX_OPC_V2CMPLTSI, TILEGX_OPC_V2CMPLTUI,
6962 TILEGX_OPC_V2MAXSI,
6963 BITFIELD(51, 2) /* index 778 */,
6964 TILEGX_OPC_V2MINSI, TILEGX_OPC_XORI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
6965 BITFIELD(49, 4) /* index 783 */,
6966 TILEGX_OPC_NONE, TILEGX_OPC_ADDXSC, TILEGX_OPC_ADDX, TILEGX_OPC_ADD,
6967 TILEGX_OPC_AND, TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPEXCH4, TILEGX_OPC_CMPEXCH,
6968 TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
6969 TILEGX_OPC_CMPNE, TILEGX_OPC_DBLALIGN2, TILEGX_OPC_DBLALIGN4,
6970 TILEGX_OPC_DBLALIGN6,
6971 BITFIELD(49, 4) /* index 800 */,
6972 TILEGX_OPC_EXCH4, TILEGX_OPC_EXCH, TILEGX_OPC_FETCHADD4,
6973 TILEGX_OPC_FETCHADDGEZ4, TILEGX_OPC_FETCHADDGEZ, TILEGX_OPC_FETCHADD,
6974 TILEGX_OPC_FETCHAND4, TILEGX_OPC_FETCHAND, TILEGX_OPC_FETCHOR4,
6975 TILEGX_OPC_FETCHOR, TILEGX_OPC_MNZ, TILEGX_OPC_MZ, TILEGX_OPC_NOR,
6976 CHILD(817), TILEGX_OPC_ROTL, TILEGX_OPC_SHL1ADDX,
6977 BITFIELD(43, 2) /* index 817 */,
6978 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(822),
6979 BITFIELD(45, 2) /* index 822 */,
6980 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(827),
6981 BITFIELD(47, 2) /* index 827 */,
6982 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
6983 BITFIELD(49, 4) /* index 832 */,
6984 TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADDX, TILEGX_OPC_SHL2ADD,
6985 TILEGX_OPC_SHL3ADDX, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHLX, TILEGX_OPC_SHL,
6986 TILEGX_OPC_SHRS, TILEGX_OPC_SHRUX, TILEGX_OPC_SHRU, TILEGX_OPC_ST1,
6987 TILEGX_OPC_ST2, TILEGX_OPC_ST4, TILEGX_OPC_STNT1, TILEGX_OPC_STNT2,
6988 TILEGX_OPC_STNT4,
6989 BITFIELD(46, 7) /* index 849 */,
6990 TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT,
6991 TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT,
6992 TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST,
6993 TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_SUBXSC,
6994 TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC,
6995 TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBX,
6996 TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX,
6997 TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
6998 TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB,
6999 TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, CHILD(978), CHILD(987),
7000 CHILD(1066), CHILD(1150), CHILD(1159), TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7001 TILEGX_OPC_NONE, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC,
7002 TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC,
7003 TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD,
7004 TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD,
7005 TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
7006 TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
7007 TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
7008 TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES,
7009 TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES,
7010 TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLEU,
7011 TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU,
7012 TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU,
7013 TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
7014 TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
7015 TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
7016 TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU,
7017 TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU,
7018 TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPNE,
7019 TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE,
7020 TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE,
7021 TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
7022 TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
7023 TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
7024 TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
7025 TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
7026 TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
7027 BITFIELD(43, 3) /* index 978 */,
7028 TILEGX_OPC_NONE, TILEGX_OPC_DRAIN, TILEGX_OPC_DTLBPR, TILEGX_OPC_FINV,
7029 TILEGX_OPC_FLUSHWB, TILEGX_OPC_FLUSH, TILEGX_OPC_FNOP, TILEGX_OPC_ICOH,
7030 BITFIELD(43, 3) /* index 987 */,
7031 CHILD(996), TILEGX_OPC_INV, TILEGX_OPC_IRET, TILEGX_OPC_JALRP,
7032 TILEGX_OPC_JALR, TILEGX_OPC_JRP, TILEGX_OPC_JR, CHILD(1051),
7033 BITFIELD(31, 2) /* index 996 */,
7034 CHILD(1001), CHILD(1026), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7035 BITFIELD(33, 2) /* index 1001 */,
7036 TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(1006),
7037 BITFIELD(35, 2) /* index 1006 */,
7038 TILEGX_OPC_ILL, CHILD(1011), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7039 BITFIELD(37, 2) /* index 1011 */,
7040 TILEGX_OPC_ILL, CHILD(1016), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7041 BITFIELD(39, 2) /* index 1016 */,
7042 TILEGX_OPC_ILL, CHILD(1021), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7043 BITFIELD(41, 2) /* index 1021 */,
7044 TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_BPT, TILEGX_OPC_ILL,
7045 BITFIELD(33, 2) /* index 1026 */,
7046 TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(1031),
7047 BITFIELD(35, 2) /* index 1031 */,
7048 TILEGX_OPC_ILL, CHILD(1036), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7049 BITFIELD(37, 2) /* index 1036 */,
7050 TILEGX_OPC_ILL, CHILD(1041), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7051 BITFIELD(39, 2) /* index 1041 */,
7052 TILEGX_OPC_ILL, CHILD(1046), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
7053 BITFIELD(41, 2) /* index 1046 */,
7054 TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_RAISE, TILEGX_OPC_ILL,
7055 BITFIELD(31, 2) /* index 1051 */,
7056 TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(1056),
7057 BITFIELD(33, 2) /* index 1056 */,
7058 TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(1061),
7059 BITFIELD(35, 2) /* index 1061 */,
7060 TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S,
7061 TILEGX_OPC_PREFETCH_L1_FAULT,
7062 BITFIELD(43, 3) /* index 1066 */,
7063 CHILD(1075), CHILD(1090), CHILD(1105), CHILD(1120), CHILD(1135),
7064 TILEGX_OPC_LDNA, TILEGX_OPC_LDNT1S, TILEGX_OPC_LDNT1U,
7065 BITFIELD(31, 2) /* index 1075 */,
7066 TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1080),
7067 BITFIELD(33, 2) /* index 1080 */,
7068 TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1085),
7069 BITFIELD(35, 2) /* index 1085 */,
7070 TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_PREFETCH,
7071 BITFIELD(31, 2) /* index 1090 */,
7072 TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1095),
7073 BITFIELD(33, 2) /* index 1095 */,
7074 TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1100),
7075 BITFIELD(35, 2) /* index 1100 */,
7076 TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S,
7077 TILEGX_OPC_PREFETCH_L2_FAULT,
7078 BITFIELD(31, 2) /* index 1105 */,
7079 TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1110),
7080 BITFIELD(33, 2) /* index 1110 */,
7081 TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1115),
7082 BITFIELD(35, 2) /* index 1115 */,
7083 TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_PREFETCH_L2,
7084 BITFIELD(31, 2) /* index 1120 */,
7085 TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1125),
7086 BITFIELD(33, 2) /* index 1125 */,
7087 TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1130),
7088 BITFIELD(35, 2) /* index 1130 */,
7089 TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S,
7090 TILEGX_OPC_PREFETCH_L3_FAULT,
7091 BITFIELD(31, 2) /* index 1135 */,
7092 TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1140),
7093 BITFIELD(33, 2) /* index 1140 */,
7094 TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1145),
7095 BITFIELD(35, 2) /* index 1145 */,
7096 TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_PREFETCH_L3,
7097 BITFIELD(43, 3) /* index 1150 */,
7098 TILEGX_OPC_LDNT2S, TILEGX_OPC_LDNT2U, TILEGX_OPC_LDNT4S, TILEGX_OPC_LDNT4U,
7099 TILEGX_OPC_LDNT, TILEGX_OPC_LD, TILEGX_OPC_LNK, TILEGX_OPC_MF,
7100 BITFIELD(43, 3) /* index 1159 */,
7101 TILEGX_OPC_NAP, TILEGX_OPC_NOP, TILEGX_OPC_SWINT0, TILEGX_OPC_SWINT1,
7102 TILEGX_OPC_SWINT2, TILEGX_OPC_SWINT3, TILEGX_OPC_WH64, TILEGX_OPC_NONE,
7103 BITFIELD(49, 4) /* index 1168 */,
7104 TILEGX_OPC_V1MAXU, TILEGX_OPC_V1MINU, TILEGX_OPC_V1MNZ, TILEGX_OPC_V1MZ,
7105 TILEGX_OPC_V1SHL, TILEGX_OPC_V1SHRS, TILEGX_OPC_V1SHRU, TILEGX_OPC_V1SUBUC,
7106 TILEGX_OPC_V1SUB, TILEGX_OPC_V2ADDSC, TILEGX_OPC_V2ADD, TILEGX_OPC_V2CMPEQ,
7107 TILEGX_OPC_V2CMPLES, TILEGX_OPC_V2CMPLEU, TILEGX_OPC_V2CMPLTS,
7108 TILEGX_OPC_V2CMPLTU,
7109 BITFIELD(49, 4) /* index 1185 */,
7110 TILEGX_OPC_V2CMPNE, TILEGX_OPC_V2INT_H, TILEGX_OPC_V2INT_L,
7111 TILEGX_OPC_V2MAXS, TILEGX_OPC_V2MINS, TILEGX_OPC_V2MNZ, TILEGX_OPC_V2MZ,
7112 TILEGX_OPC_V2PACKH, TILEGX_OPC_V2PACKL, TILEGX_OPC_V2PACKUC,
7113 TILEGX_OPC_V2SHLSC, TILEGX_OPC_V2SHL, TILEGX_OPC_V2SHRS, TILEGX_OPC_V2SHRU,
7114 TILEGX_OPC_V2SUBSC, TILEGX_OPC_V2SUB,
7115 BITFIELD(49, 4) /* index 1202 */,
7116 TILEGX_OPC_V4ADDSC, TILEGX_OPC_V4ADD, TILEGX_OPC_V4INT_H,
7117 TILEGX_OPC_V4INT_L, TILEGX_OPC_V4PACKSC, TILEGX_OPC_V4SHLSC,
7118 TILEGX_OPC_V4SHL, TILEGX_OPC_V4SHRS, TILEGX_OPC_V4SHRU, TILEGX_OPC_V4SUBSC,
7119 TILEGX_OPC_V4SUB, TILEGX_OPC_XOR, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7120 TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7121 BITFIELD(49, 4) /* index 1219 */,
7122 TILEGX_OPC_NONE, TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHLXI,
7123 TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI, TILEGX_OPC_SHRUXI, TILEGX_OPC_V1SHLI,
7124 TILEGX_OPC_V1SHRSI, TILEGX_OPC_V1SHRUI, TILEGX_OPC_V2SHLI,
7125 TILEGX_OPC_V2SHRSI, TILEGX_OPC_V2SHRUI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7126 TILEGX_OPC_NONE,
7127 BITFIELD(31, 2) /* index 1236 */,
7128 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7129 CHILD(1241),
7130 BITFIELD(33, 2) /* index 1241 */,
7131 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7132 CHILD(1246),
7133 BITFIELD(35, 2) /* index 1246 */,
7134 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7135 CHILD(1251),
7136 BITFIELD(37, 2) /* index 1251 */,
7137 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7138 CHILD(1256),
7139 BITFIELD(39, 2) /* index 1256 */,
7140 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7141 CHILD(1261),
7142 BITFIELD(41, 2) /* index 1261 */,
7143 TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
7144 TILEGX_OPC_INFOL,
7145 };
7146
7147 static const UShort decode_Y0_fsm[178] =
7148 {
7149 BITFIELD(27, 4) /* index 0 */,
7150 CHILD(17), TILEGX_OPC_ADDXI, CHILD(32), TILEGX_OPC_CMPEQI,
7151 TILEGX_OPC_CMPLTSI, CHILD(62), CHILD(67), CHILD(118), CHILD(123),
7152 CHILD(128), CHILD(133), CHILD(153), CHILD(158), CHILD(163), CHILD(168),
7153 CHILD(173),
7154 BITFIELD(6, 2) /* index 17 */,
7155 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(22),
7156 BITFIELD(8, 2) /* index 22 */,
7157 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(27),
7158 BITFIELD(10, 2) /* index 27 */,
7159 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
7160 BITFIELD(0, 2) /* index 32 */,
7161 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(37),
7162 BITFIELD(2, 2) /* index 37 */,
7163 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(42),
7164 BITFIELD(4, 2) /* index 42 */,
7165 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(47),
7166 BITFIELD(6, 2) /* index 47 */,
7167 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(52),
7168 BITFIELD(8, 2) /* index 52 */,
7169 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(57),
7170 BITFIELD(10, 2) /* index 57 */,
7171 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
7172 BITFIELD(18, 2) /* index 62 */,
7173 TILEGX_OPC_ADDX, TILEGX_OPC_ADD, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
7174 BITFIELD(15, 5) /* index 67 */,
7175 TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
7176 TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
7177 TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADD,
7178 TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
7179 TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
7180 TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD,
7181 TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD,
7182 TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, CHILD(100),
7183 CHILD(109), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7184 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7185 BITFIELD(12, 3) /* index 100 */,
7186 TILEGX_OPC_NONE, TILEGX_OPC_CLZ, TILEGX_OPC_CTZ, TILEGX_OPC_FNOP,
7187 TILEGX_OPC_FSINGLE_PACK1, TILEGX_OPC_NOP, TILEGX_OPC_PCNT,
7188 TILEGX_OPC_REVBITS,
7189 BITFIELD(12, 3) /* index 109 */,
7190 TILEGX_OPC_REVBYTES, TILEGX_OPC_TBLIDXB0, TILEGX_OPC_TBLIDXB1,
7191 TILEGX_OPC_TBLIDXB2, TILEGX_OPC_TBLIDXB3, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7192 TILEGX_OPC_NONE,
7193 BITFIELD(18, 2) /* index 118 */,
7194 TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
7195 BITFIELD(18, 2) /* index 123 */,
7196 TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPNE, TILEGX_OPC_MULAX, TILEGX_OPC_MULX,
7197 BITFIELD(18, 2) /* index 128 */,
7198 TILEGX_OPC_CMOVEQZ, TILEGX_OPC_CMOVNEZ, TILEGX_OPC_MNZ, TILEGX_OPC_MZ,
7199 BITFIELD(18, 2) /* index 133 */,
7200 TILEGX_OPC_AND, TILEGX_OPC_NOR, CHILD(138), TILEGX_OPC_XOR,
7201 BITFIELD(12, 2) /* index 138 */,
7202 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(143),
7203 BITFIELD(14, 2) /* index 143 */,
7204 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(148),
7205 BITFIELD(16, 2) /* index 148 */,
7206 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
7207 BITFIELD(18, 2) /* index 153 */,
7208 TILEGX_OPC_ROTL, TILEGX_OPC_SHL, TILEGX_OPC_SHRS, TILEGX_OPC_SHRU,
7209 BITFIELD(18, 2) /* index 158 */,
7210 TILEGX_OPC_NONE, TILEGX_OPC_SHL1ADDX, TILEGX_OPC_SHL2ADDX,
7211 TILEGX_OPC_SHL3ADDX,
7212 BITFIELD(18, 2) /* index 163 */,
7213 TILEGX_OPC_MUL_HS_HS, TILEGX_OPC_MUL_HU_HU, TILEGX_OPC_MUL_LS_LS,
7214 TILEGX_OPC_MUL_LU_LU,
7215 BITFIELD(18, 2) /* index 168 */,
7216 TILEGX_OPC_MULA_HS_HS, TILEGX_OPC_MULA_HU_HU, TILEGX_OPC_MULA_LS_LS,
7217 TILEGX_OPC_MULA_LU_LU,
7218 BITFIELD(18, 2) /* index 173 */,
7219 TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI,
7220 };
7221
7222 static const UShort decode_Y1_fsm[167] =
7223 {
7224 BITFIELD(58, 4) /* index 0 */,
7225 TILEGX_OPC_NONE, CHILD(17), TILEGX_OPC_ADDXI, CHILD(32), TILEGX_OPC_CMPEQI,
7226 TILEGX_OPC_CMPLTSI, CHILD(62), CHILD(67), CHILD(117), CHILD(122),
7227 CHILD(127), CHILD(132), CHILD(152), CHILD(157), CHILD(162), TILEGX_OPC_NONE,
7228 BITFIELD(37, 2) /* index 17 */,
7229 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(22),
7230 BITFIELD(39, 2) /* index 22 */,
7231 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(27),
7232 BITFIELD(41, 2) /* index 27 */,
7233 TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
7234 BITFIELD(31, 2) /* index 32 */,
7235 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(37),
7236 BITFIELD(33, 2) /* index 37 */,
7237 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(42),
7238 BITFIELD(35, 2) /* index 42 */,
7239 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(47),
7240 BITFIELD(37, 2) /* index 47 */,
7241 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(52),
7242 BITFIELD(39, 2) /* index 52 */,
7243 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(57),
7244 BITFIELD(41, 2) /* index 57 */,
7245 TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
7246 BITFIELD(49, 2) /* index 62 */,
7247 TILEGX_OPC_ADDX, TILEGX_OPC_ADD, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
7248 BITFIELD(47, 4) /* index 67 */,
7249 TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
7250 TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
7251 TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL3ADD,
7252 TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, CHILD(84),
7253 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
7254 BITFIELD(43, 3) /* index 84 */,
7255 CHILD(93), CHILD(96), CHILD(99), CHILD(102), CHILD(105), CHILD(108),
7256 CHILD(111), CHILD(114),
7257 BITFIELD(46, 1) /* index 93 */,
7258 TILEGX_OPC_NONE, TILEGX_OPC_FNOP,
7259 BITFIELD(46, 1) /* index 96 */,
7260 TILEGX_OPC_NONE, TILEGX_OPC_ILL,
7261 BITFIELD(46, 1) /* index 99 */,
7262 TILEGX_OPC_NONE, TILEGX_OPC_JALRP,
7263 BITFIELD(46, 1) /* index 102 */,
7264 TILEGX_OPC_NONE, TILEGX_OPC_JALR,
7265 BITFIELD(46, 1) /* index 105 */,
7266 TILEGX_OPC_NONE, TILEGX_OPC_JRP,
7267 BITFIELD(46, 1) /* index 108 */,
7268 TILEGX_OPC_NONE, TILEGX_OPC_JR,
7269 BITFIELD(46, 1) /* index 111 */,
7270 TILEGX_OPC_NONE, TILEGX_OPC_LNK,
7271 BITFIELD(46, 1) /* index 114 */,
7272 TILEGX_OPC_NONE, TILEGX_OPC_NOP,
7273 BITFIELD(49, 2) /* index 117 */,
7274 TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
7275 BITFIELD(49, 2) /* index 122 */,
7276 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPNE,
7277 BITFIELD(49, 2) /* index 127 */,
7278 TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_MNZ, TILEGX_OPC_MZ,
7279 BITFIELD(49, 2) /* index 132 */,
7280 TILEGX_OPC_AND, TILEGX_OPC_NOR, CHILD(137), TILEGX_OPC_XOR,
7281 BITFIELD(43, 2) /* index 137 */,
7282 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(142),
7283 BITFIELD(45, 2) /* index 142 */,
7284 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(147),
7285 BITFIELD(47, 2) /* index 147 */,
7286 TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
7287 BITFIELD(49, 2) /* index 152 */,
7288 TILEGX_OPC_ROTL, TILEGX_OPC_SHL, TILEGX_OPC_SHRS, TILEGX_OPC_SHRU,
7289 BITFIELD(49, 2) /* index 157 */,
7290 TILEGX_OPC_NONE, TILEGX_OPC_SHL1ADDX, TILEGX_OPC_SHL2ADDX,
7291 TILEGX_OPC_SHL3ADDX,
7292 BITFIELD(49, 2) /* index 162 */,
7293 TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI,
7294 };
7295
7296 static const UShort decode_Y2_fsm[118] =
7297 {
7298 BITFIELD(62, 2) /* index 0 */,
7299 TILEGX_OPC_NONE, CHILD(5), CHILD(66), CHILD(109),
7300 BITFIELD(55, 3) /* index 5 */,
7301 CHILD(14), CHILD(14), CHILD(14), CHILD(17), CHILD(40), CHILD(40), CHILD(40),
7302 CHILD(43),
7303 BITFIELD(26, 1) /* index 14 */,
7304 TILEGX_OPC_LD1S, TILEGX_OPC_LD1U,
7305 BITFIELD(26, 1) /* index 17 */,
7306 CHILD(20), CHILD(30),
7307 BITFIELD(51, 2) /* index 20 */,
7308 TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(25),
7309 BITFIELD(53, 2) /* index 25 */,
7310 TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S,
7311 TILEGX_OPC_PREFETCH_L1_FAULT,
7312 BITFIELD(51, 2) /* index 30 */,
7313 TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(35),
7314 BITFIELD(53, 2) /* index 35 */,
7315 TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_PREFETCH,
7316 BITFIELD(26, 1) /* index 40 */,
7317 TILEGX_OPC_LD2S, TILEGX_OPC_LD2U,
7318 BITFIELD(26, 1) /* index 43 */,
7319 CHILD(46), CHILD(56),
7320 BITFIELD(51, 2) /* index 46 */,
7321 TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(51),
7322 BITFIELD(53, 2) /* index 51 */,
7323 TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S,
7324 TILEGX_OPC_PREFETCH_L2_FAULT,
7325 BITFIELD(51, 2) /* index 56 */,
7326 TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(61),
7327 BITFIELD(53, 2) /* index 61 */,
7328 TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_PREFETCH_L2,
7329 BITFIELD(56, 2) /* index 66 */,
7330 CHILD(71), CHILD(74), CHILD(90), CHILD(93),
7331 BITFIELD(26, 1) /* index 71 */,
7332 TILEGX_OPC_NONE, TILEGX_OPC_LD4S,
7333 BITFIELD(26, 1) /* index 74 */,
7334 TILEGX_OPC_NONE, CHILD(77),
7335 BITFIELD(51, 2) /* index 77 */,
7336 TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(82),
7337 BITFIELD(53, 2) /* index 82 */,
7338 TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(87),
7339 BITFIELD(55, 1) /* index 87 */,
7340 TILEGX_OPC_LD4S, TILEGX_OPC_PREFETCH_L3_FAULT,
7341 BITFIELD(26, 1) /* index 90 */,
7342 TILEGX_OPC_LD4U, TILEGX_OPC_LD,
7343 BITFIELD(26, 1) /* index 93 */,
7344 CHILD(96), TILEGX_OPC_LD,
7345 BITFIELD(51, 2) /* index 96 */,
7346 TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(101),
7347 BITFIELD(53, 2) /* index 101 */,
7348 TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(106),
7349 BITFIELD(55, 1) /* index 106 */,
7350 TILEGX_OPC_LD4U, TILEGX_OPC_PREFETCH_L3,
7351 BITFIELD(26, 1) /* index 109 */,
7352 CHILD(112), CHILD(115),
7353 BITFIELD(57, 1) /* index 112 */,
7354 TILEGX_OPC_ST1, TILEGX_OPC_ST4,
7355 BITFIELD(57, 1) /* index 115 */,
7356 TILEGX_OPC_ST2, TILEGX_OPC_ST,
7357 };
7358
7359 #undef BITFIELD
7360 #undef CHILD
7361 const UShort * const
7362 tilegx_bundle_decoder_fsms[TILEGX_NUM_PIPELINE_ENCODINGS] =
7363 {
7364 decode_X0_fsm,
7365 decode_X1_fsm,
7366 decode_Y0_fsm,
7367 decode_Y1_fsm,
7368 decode_Y2_fsm
7369 };
7370 const struct tilegx_operand tilegx_operands[35] =
7371 {
7372 {
7373 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_X0),
7374 8, 1, 0, 0, 0, 0,
7375 create_Imm8_X0, get_Imm8_X0
7376 },
7377 {
7378 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_X1),
7379 8, 1, 0, 0, 0, 0,
7380 create_Imm8_X1, get_Imm8_X1
7381 },
7382 {
7383 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_Y0),
7384 8, 1, 0, 0, 0, 0,
7385 create_Imm8_Y0, get_Imm8_Y0
7386 },
7387 {
7388 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_Y1),
7389 8, 1, 0, 0, 0, 0,
7390 create_Imm8_Y1, get_Imm8_Y1
7391 },
7392 {
7393 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM16_X0_HW0_LAST),
7394 16, 1, 0, 0, 0, 0,
7395 create_Imm16_X0, get_Imm16_X0
7396 },
7397 {
7398 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM16_X1_HW0_LAST),
7399 16, 1, 0, 0, 0, 0,
7400 create_Imm16_X1, get_Imm16_X1
7401 },
7402 {
7403 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7404 6, 0, 0, 1, 0, 0,
7405 create_Dest_X1, get_Dest_X1
7406 },
7407 {
7408 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7409 6, 0, 1, 0, 0, 0,
7410 create_SrcA_X1, get_SrcA_X1
7411 },
7412 {
7413 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7414 6, 0, 0, 1, 0, 0,
7415 create_Dest_X0, get_Dest_X0
7416 },
7417 {
7418 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7419 6, 0, 1, 0, 0, 0,
7420 create_SrcA_X0, get_SrcA_X0
7421 },
7422 {
7423 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7424 6, 0, 0, 1, 0, 0,
7425 create_Dest_Y0, get_Dest_Y0
7426 },
7427 {
7428 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7429 6, 0, 1, 0, 0, 0,
7430 create_SrcA_Y0, get_SrcA_Y0
7431 },
7432 {
7433 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7434 6, 0, 0, 1, 0, 0,
7435 create_Dest_Y1, get_Dest_Y1
7436 },
7437 {
7438 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7439 6, 0, 1, 0, 0, 0,
7440 create_SrcA_Y1, get_SrcA_Y1
7441 },
7442 {
7443 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7444 6, 0, 1, 0, 0, 0,
7445 create_SrcA_Y2, get_SrcA_Y2
7446 },
7447 {
7448 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7449 6, 0, 1, 1, 0, 0,
7450 create_SrcA_X1, get_SrcA_X1
7451 },
7452 {
7453 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7454 6, 0, 1, 0, 0, 0,
7455 create_SrcB_X0, get_SrcB_X0
7456 },
7457 {
7458 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7459 6, 0, 1, 0, 0, 0,
7460 create_SrcB_X1, get_SrcB_X1
7461 },
7462 {
7463 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7464 6, 0, 1, 0, 0, 0,
7465 create_SrcB_Y0, get_SrcB_Y0
7466 },
7467 {
7468 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7469 6, 0, 1, 0, 0, 0,
7470 create_SrcB_Y1, get_SrcB_Y1
7471 },
7472 {
7473 TILEGX_OP_TYPE_ADDRESS, BFD_RELOC(TILEGX_BROFF_X1),
7474 17, 1, 0, 0, 1, TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
7475 create_BrOff_X1, get_BrOff_X1
7476 },
7477 {
7478 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_MMSTART_X0),
7479 6, 0, 0, 0, 0, 0,
7480 create_BFStart_X0, get_BFStart_X0
7481 },
7482 {
7483 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_MMEND_X0),
7484 6, 0, 0, 0, 0, 0,
7485 create_BFEnd_X0, get_BFEnd_X0
7486 },
7487 {
7488 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7489 6, 0, 1, 1, 0, 0,
7490 create_Dest_X0, get_Dest_X0
7491 },
7492 {
7493 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7494 6, 0, 1, 1, 0, 0,
7495 create_Dest_Y0, get_Dest_Y0
7496 },
7497 {
7498 TILEGX_OP_TYPE_ADDRESS, BFD_RELOC(TILEGX_JUMPOFF_X1),
7499 27, 1, 0, 0, 1, TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
7500 create_JumpOff_X1, get_JumpOff_X1
7501 },
7502 {
7503 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7504 6, 0, 0, 1, 0, 0,
7505 create_SrcBDest_Y2, get_SrcBDest_Y2
7506 },
7507 {
7508 TILEGX_OP_TYPE_SPR, BFD_RELOC(TILEGX_MF_IMM14_X1),
7509 14, 0, 0, 0, 0, 0,
7510 create_MF_Imm14_X1, get_MF_Imm14_X1
7511 },
7512 {
7513 TILEGX_OP_TYPE_SPR, BFD_RELOC(TILEGX_MT_IMM14_X1),
7514 14, 0, 0, 0, 0, 0,
7515 create_MT_Imm14_X1, get_MT_Imm14_X1
7516 },
7517 {
7518 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_X0),
7519 6, 0, 0, 0, 0, 0,
7520 create_ShAmt_X0, get_ShAmt_X0
7521 },
7522 {
7523 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_X1),
7524 6, 0, 0, 0, 0, 0,
7525 create_ShAmt_X1, get_ShAmt_X1
7526 },
7527 {
7528 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_Y0),
7529 6, 0, 0, 0, 0, 0,
7530 create_ShAmt_Y0, get_ShAmt_Y0
7531 },
7532 {
7533 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_Y1),
7534 6, 0, 0, 0, 0, 0,
7535 create_ShAmt_Y1, get_ShAmt_Y1
7536 },
7537 {
7538 TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
7539 6, 0, 1, 0, 0, 0,
7540 create_SrcBDest_Y2, get_SrcBDest_Y2
7541 },
7542 {
7543 TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_DEST_IMM8_X1),
7544 8, 1, 0, 0, 0, 0,
7545 create_Dest_Imm8_X1, get_Dest_Imm8_X1
7546 }
7547 };
7548
7549
7550 /* Given a set of bundle bits and a specific pipe, returns which
7551 * instruction the bundle contains in that pipe.
7552 */
7553 const struct tilegx_opcode *
find_opcode(tilegx_bundle_bits bits,tilegx_pipeline pipe)7554 find_opcode ( tilegx_bundle_bits bits, tilegx_pipeline pipe )
7555 {
7556 const UShort *table = tilegx_bundle_decoder_fsms[pipe];
7557 Int index = 0;
7558
7559 while (1)
7560 {
7561 UShort bitspec = table[index];
7562 UInt bitfield =
7563 ((UInt)(bits >> (bitspec & 63))) & (bitspec >> 6);
7564
7565 UShort next = table[index + 1 + bitfield];
7566 if (next <= TILEGX_OPC_NONE)
7567 return &tilegx_opcodes[next];
7568
7569 index = next - TILEGX_OPC_NONE;
7570 }
7571 }
7572
7573
7574 int
parse_insn_tilegx(tilegx_bundle_bits bits,ULong pc,struct tilegx_decoded_instruction decoded[TILEGX_MAX_INSTRUCTIONS_PER_BUNDLE])7575 parse_insn_tilegx ( tilegx_bundle_bits bits,
7576 ULong pc,
7577 struct tilegx_decoded_instruction
7578 decoded[TILEGX_MAX_INSTRUCTIONS_PER_BUNDLE] )
7579 {
7580 Int num_instructions = 0;
7581 Int pipe;
7582
7583 Int min_pipe, max_pipe;
7584 if ((bits & TILEGX_BUNDLE_MODE_MASK) == 0)
7585 {
7586 min_pipe = TILEGX_PIPELINE_X0;
7587 max_pipe = TILEGX_PIPELINE_X1;
7588 }
7589 else
7590 {
7591 min_pipe = TILEGX_PIPELINE_Y0;
7592 max_pipe = TILEGX_PIPELINE_Y2;
7593 }
7594
7595 /* For each pipe, find an instruction that fits. */
7596 for (pipe = min_pipe; pipe <= max_pipe; pipe++)
7597 {
7598 const struct tilegx_opcode *opc;
7599 struct tilegx_decoded_instruction *d;
7600 Int i;
7601
7602 d = &decoded[num_instructions++];
7603 opc = find_opcode (bits, (tilegx_pipeline)pipe);
7604 d->opcode = opc;
7605
7606 /* Decode each operand, sign extending, etc. as appropriate. */
7607 for (i = 0; i < opc->num_operands; i++)
7608 {
7609 const struct tilegx_operand *op =
7610 &tilegx_operands[opc->operands[pipe][i]];
7611 Int raw_opval = op->extract (bits);
7612 Long opval;
7613
7614 if (op->is_signed)
7615 {
7616 /* Sign-extend the operand. */
7617 Int shift = (int)((sizeof(int) * 8) - op->num_bits);
7618 raw_opval = (raw_opval << shift) >> shift;
7619 }
7620
7621 /* Adjust PC-relative scaled branch offsets. */
7622 if (op->type == TILEGX_OP_TYPE_ADDRESS)
7623 opval = (raw_opval * TILEGX_BUNDLE_SIZE_IN_BYTES) + pc;
7624 else
7625 opval = raw_opval;
7626
7627 /* Record the final value. */
7628 d->operands[i] = op;
7629 d->operand_values[i] = opval;
7630 }
7631 }
7632 decoded[num_instructions].opcode = NULL;
7633 return num_instructions;
7634 }
7635
mkTileGxInsn(Int opc,Int argc,...)7636 tilegx_bundle_bits mkTileGxInsn ( Int opc, Int argc, ... )
7637 {
7638 struct tilegx_decoded_instruction decoded;
7639 decoded.opcode = &tilegx_opcodes[opc];
7640 Int i;
7641 va_list argv;
7642
7643 if (decoded.opcode->num_operands != argc)
7644 return -1;
7645
7646 if (opc > TILEGX_OPC_NONE) return 0;
7647
7648 if (decoded.opcode->num_operands > 4)
7649 return -1;
7650
7651 va_start(argv, argc);
7652 for (i = 0 ; i < decoded.opcode->num_operands; i++)
7653 {
7654 decoded.operands[i] = 0;
7655 decoded.operand_values[i] = va_arg(argv, ULong);
7656 }
7657 va_end(argv);
7658
7659 return encode_insn_tilegx(decoded);
7660 }
7661
7662 tilegx_bundle_bits
encode_insn_tilegx(struct tilegx_decoded_instruction decoded)7663 encode_insn_tilegx ( struct tilegx_decoded_instruction decoded )
7664 {
7665 const struct tilegx_opcode *opc =
7666 decoded.opcode;
7667
7668 tilegx_bundle_bits insn = 0;
7669 Int pipeX01 = (opc->pipes & 0x01) ? 0 : 1;
7670 Int op_num = opc->num_operands;
7671
7672 /* Assume either X0 or X1. */
7673 if ((opc->pipes & 3) == 0)
7674 return -1;
7675
7676 /* Insert fnop in other pipe. */
7677 insn = tilegx_opcodes[TILEGX_OPC_FNOP].
7678 fixed_bit_values[pipeX01 ? 0 : 1];
7679
7680 insn |= opc->fixed_bit_values[pipeX01];
7681
7682 Int i;
7683 /* loop for each operand. */
7684 for (i = 0 ; i < op_num; i++)
7685 {
7686 const struct tilegx_operand *opd =
7687 &tilegx_operands[opc->operands[pipeX01][i]];
7688 Long op = decoded.operand_values[i];
7689 decoded.operands[i] = opd;
7690 ULong x = opd->insert(op);
7691 insn |= x;
7692 }
7693
7694 return insn;
7695 }
7696
7697 /*---------------------------------------------------------------*/
7698 /*--- end tilegx_disasm.c ---*/
7699 /*---------------------------------------------------------------*/
7700