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