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