MIPS16/opcodes: Free up `M' operand code
[external/binutils.git] / opcodes / tilepro-opc.c
1 /* TILEPro opcode information.
2
3    Copyright (C) 2011-2018 Free Software Foundation, Inc.
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program; if not, write to the Free Software
17    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
18    MA 02110-1301, USA.  */
19
20 #include "sysdep.h"
21
22 /* This define is BFD_RELOC_##x for real bfd, or -1 for everyone else.  */
23 #define BFD_RELOC(x) BFD_RELOC_##x
24 #include "bfd.h"
25
26 /* Special registers.  */
27 #define TREG_LR 55
28 #define TREG_SN 56
29 #define TREG_ZERO 63
30
31 #if defined(__KERNEL__) || defined(_LIBC)
32 /* FIXME: Rename this. */
33 #include <asm/opcode-tile.h>
34 #define DISASM_ONLY
35 #else
36 #include "opcode/tilepro.h"
37 #endif
38
39 #ifdef __KERNEL__
40 #include <linux/stddef.h>
41 #else
42 #include <stddef.h>
43 #endif
44
45 const struct tilepro_opcode tilepro_opcodes[397] =
46 {
47  { "bpt", TILEPRO_OPC_BPT, 0x2, 0, TREG_ZERO, 0,
48     { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
49 #ifndef DISASM_ONLY
50     {
51       0ULL,
52       0xfbffffff80000000ULL,
53       0ULL,
54       0ULL,
55       0ULL
56     },
57     {
58       -1ULL,
59       0x400b3cae00000000ULL,
60       -1ULL,
61       -1ULL,
62       -1ULL
63     }
64 #endif
65   },
66   { "info", TILEPRO_OPC_INFO, 0xf, 1, TREG_ZERO, 1,
67     { { 0 }, { 1 }, { 2 }, { 3 }, { 0, } },
68 #ifndef DISASM_ONLY
69     {
70       0x800000007ff00fffULL,
71       0xfff807ff80000000ULL,
72       0x8000000078000fffULL,
73       0xf80007ff80000000ULL,
74       0ULL
75     },
76     {
77       0x0000000050100fffULL,
78       0x302007ff80000000ULL,
79       0x8000000050000fffULL,
80       0xc00007ff80000000ULL,
81       -1ULL
82     }
83 #endif
84   },
85   { "infol", TILEPRO_OPC_INFOL, 0x3, 1, TREG_ZERO, 1,
86     { { 4 }, { 5 }, { 0, }, { 0, }, { 0, } },
87 #ifndef DISASM_ONLY
88     {
89       0x8000000070000fffULL,
90       0xf80007ff80000000ULL,
91       0ULL,
92       0ULL,
93       0ULL
94     },
95     {
96       0x0000000030000fffULL,
97       0x200007ff80000000ULL,
98       -1ULL,
99       -1ULL,
100       -1ULL
101     }
102 #endif
103   },
104   { "j", TILEPRO_OPC_J, 0x2, 1, TREG_ZERO, 1,
105     { { 0, }, { 6 }, { 0, }, { 0, }, { 0, } },
106 #ifndef DISASM_ONLY
107     {
108       0ULL,
109       0xf000000000000000ULL,
110       0ULL,
111       0ULL,
112       0ULL
113     },
114     {
115       -1ULL,
116       0x5000000000000000ULL,
117       -1ULL,
118       -1ULL,
119       -1ULL
120     }
121 #endif
122   },
123   { "jal", TILEPRO_OPC_JAL, 0x2, 1, TREG_LR, 1,
124     { { 0, }, { 6 }, { 0, }, { 0, }, { 0, } },
125 #ifndef DISASM_ONLY
126     {
127       0ULL,
128       0xf000000000000000ULL,
129       0ULL,
130       0ULL,
131       0ULL
132     },
133     {
134       -1ULL,
135       0x6000000000000000ULL,
136       -1ULL,
137       -1ULL,
138       -1ULL
139     }
140 #endif
141   },
142   { "lw_tls", TILEPRO_OPC_LW_TLS, 0x2, 3, TREG_ZERO, 1,
143     { { 0, }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
144 #ifndef DISASM_ONLY
145     {
146       0ULL,
147       0xfffff80000000000ULL,
148       0ULL,
149       0ULL,
150       0ULL
151     },
152     {
153       -1ULL,
154       0x30d0000000000000ULL,
155       -1ULL,
156       -1ULL,
157       -1ULL
158     }
159 #endif
160   },
161   { "lw_tls.sn", TILEPRO_OPC_LW_TLS_SN, 0x2, 3, TREG_SN, 1,
162     { { 0, }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
163 #ifndef DISASM_ONLY
164     {
165       0ULL,
166       0xfffff80000000000ULL,
167       0ULL,
168       0ULL,
169       0ULL
170     },
171     {
172       -1ULL,
173       0x34d0000000000000ULL,
174       -1ULL,
175       -1ULL,
176       -1ULL
177     }
178 #endif
179   },
180   { "move", TILEPRO_OPC_MOVE, 0xf, 2, TREG_ZERO, 1,
181     { { 9, 10 }, { 7, 8 }, { 11, 12 }, { 13, 14 }, { 0, } },
182 #ifndef DISASM_ONLY
183     {
184       0x800000007ffff000ULL,
185       0xfffff80000000000ULL,
186       0x80000000780ff000ULL,
187       0xf807f80000000000ULL,
188       0ULL
189     },
190     {
191       0x0000000000cff000ULL,
192       0x0833f80000000000ULL,
193       0x80000000180bf000ULL,
194       0x9805f80000000000ULL,
195       -1ULL
196     }
197 #endif
198   },
199   { "move.sn", TILEPRO_OPC_MOVE_SN, 0x3, 2, TREG_SN, 1,
200     { { 9, 10 }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
201 #ifndef DISASM_ONLY
202     {
203       0x800000007ffff000ULL,
204       0xfffff80000000000ULL,
205       0ULL,
206       0ULL,
207       0ULL
208     },
209     {
210       0x0000000008cff000ULL,
211       0x0c33f80000000000ULL,
212       -1ULL,
213       -1ULL,
214       -1ULL
215     }
216 #endif
217   },
218   { "movei", TILEPRO_OPC_MOVEI, 0xf, 2, TREG_ZERO, 1,
219     { { 9, 0 }, { 7, 1 }, { 11, 2 }, { 13, 3 }, { 0, } },
220 #ifndef DISASM_ONLY
221     {
222       0x800000007ff00fc0ULL,
223       0xfff807e000000000ULL,
224       0x8000000078000fc0ULL,
225       0xf80007e000000000ULL,
226       0ULL
227     },
228     {
229       0x0000000040800fc0ULL,
230       0x305807e000000000ULL,
231       0x8000000058000fc0ULL,
232       0xc80007e000000000ULL,
233       -1ULL
234     }
235 #endif
236   },
237   { "movei.sn", TILEPRO_OPC_MOVEI_SN, 0x3, 2, TREG_SN, 1,
238     { { 9, 0 }, { 7, 1 }, { 0, }, { 0, }, { 0, } },
239 #ifndef DISASM_ONLY
240     {
241       0x800000007ff00fc0ULL,
242       0xfff807e000000000ULL,
243       0ULL,
244       0ULL,
245       0ULL
246     },
247     {
248       0x0000000048800fc0ULL,
249       0x345807e000000000ULL,
250       -1ULL,
251       -1ULL,
252       -1ULL
253     }
254 #endif
255   },
256   { "moveli", TILEPRO_OPC_MOVELI, 0x3, 2, TREG_ZERO, 1,
257     { { 9, 4 }, { 7, 5 }, { 0, }, { 0, }, { 0, } },
258 #ifndef DISASM_ONLY
259     {
260       0x8000000070000fc0ULL,
261       0xf80007e000000000ULL,
262       0ULL,
263       0ULL,
264       0ULL
265     },
266     {
267       0x0000000020000fc0ULL,
268       0x180007e000000000ULL,
269       -1ULL,
270       -1ULL,
271       -1ULL
272     }
273 #endif
274   },
275   { "moveli.sn", TILEPRO_OPC_MOVELI_SN, 0x3, 2, TREG_SN, 1,
276     { { 9, 4 }, { 7, 5 }, { 0, }, { 0, }, { 0, } },
277 #ifndef DISASM_ONLY
278     {
279       0x8000000070000fc0ULL,
280       0xf80007e000000000ULL,
281       0ULL,
282       0ULL,
283       0ULL
284     },
285     {
286       0x0000000010000fc0ULL,
287       0x100007e000000000ULL,
288       -1ULL,
289       -1ULL,
290       -1ULL
291     }
292 #endif
293   },
294   { "movelis", TILEPRO_OPC_MOVELIS, 0x3, 2, TREG_SN, 1,
295     { { 9, 4 }, { 7, 5 }, { 0, }, { 0, }, { 0, } },
296 #ifndef DISASM_ONLY
297     {
298       0x8000000070000fc0ULL,
299       0xf80007e000000000ULL,
300       0ULL,
301       0ULL,
302       0ULL
303     },
304     {
305       0x0000000010000fc0ULL,
306       0x100007e000000000ULL,
307       -1ULL,
308       -1ULL,
309       -1ULL
310     }
311 #endif
312   },
313   { "prefetch", TILEPRO_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1,
314     { { 0, }, { 8 }, { 0, }, { 0, }, { 15 } },
315 #ifndef DISASM_ONLY
316     {
317       0ULL,
318       0xfffff81f80000000ULL,
319       0ULL,
320       0ULL,
321       0x8700000003f00000ULL
322     },
323     {
324       -1ULL,
325       0x400b501f80000000ULL,
326       -1ULL,
327       -1ULL,
328       0x8000000003f00000ULL
329     }
330 #endif
331   },
332   { "raise", TILEPRO_OPC_RAISE, 0x2, 0, TREG_ZERO, 1,
333     { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
334 #ifndef DISASM_ONLY
335     {
336       0ULL,
337       0xfbffffff80000000ULL,
338       0ULL,
339       0ULL,
340       0ULL
341     },
342     {
343       -1ULL,
344       0x400b3cae80000000ULL,
345       -1ULL,
346       -1ULL,
347       -1ULL
348     }
349 #endif
350   },
351   { "add", TILEPRO_OPC_ADD, 0xf, 3, TREG_ZERO, 1,
352     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
353 #ifndef DISASM_ONLY
354     {
355       0x800000007ffc0000ULL,
356       0xfffe000000000000ULL,
357       0x80000000780c0000ULL,
358       0xf806000000000000ULL,
359       0ULL
360     },
361     {
362       0x00000000000c0000ULL,
363       0x0806000000000000ULL,
364       0x8000000008000000ULL,
365       0x8800000000000000ULL,
366       -1ULL
367     }
368 #endif
369   },
370   { "add.sn", TILEPRO_OPC_ADD_SN, 0x3, 3, TREG_SN, 1,
371     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
372 #ifndef DISASM_ONLY
373     {
374       0x800000007ffc0000ULL,
375       0xfffe000000000000ULL,
376       0ULL,
377       0ULL,
378       0ULL
379     },
380     {
381       0x00000000080c0000ULL,
382       0x0c06000000000000ULL,
383       -1ULL,
384       -1ULL,
385       -1ULL
386     }
387 #endif
388   },
389   { "addb", TILEPRO_OPC_ADDB, 0x3, 3, TREG_ZERO, 1,
390     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
391 #ifndef DISASM_ONLY
392     {
393       0x800000007ffc0000ULL,
394       0xfffe000000000000ULL,
395       0ULL,
396       0ULL,
397       0ULL
398     },
399     {
400       0x0000000000040000ULL,
401       0x0802000000000000ULL,
402       -1ULL,
403       -1ULL,
404       -1ULL
405     }
406 #endif
407   },
408   { "addb.sn", TILEPRO_OPC_ADDB_SN, 0x3, 3, TREG_SN, 1,
409     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
410 #ifndef DISASM_ONLY
411     {
412       0x800000007ffc0000ULL,
413       0xfffe000000000000ULL,
414       0ULL,
415       0ULL,
416       0ULL
417     },
418     {
419       0x0000000008040000ULL,
420       0x0c02000000000000ULL,
421       -1ULL,
422       -1ULL,
423       -1ULL
424     }
425 #endif
426   },
427   { "addbs_u", TILEPRO_OPC_ADDBS_U, 0x3, 3, TREG_ZERO, 1,
428     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
429 #ifndef DISASM_ONLY
430     {
431       0x800000007ffc0000ULL,
432       0xfffe000000000000ULL,
433       0ULL,
434       0ULL,
435       0ULL
436     },
437     {
438       0x0000000001880000ULL,
439       0x0888000000000000ULL,
440       -1ULL,
441       -1ULL,
442       -1ULL
443     }
444 #endif
445   },
446   { "addbs_u.sn", TILEPRO_OPC_ADDBS_U_SN, 0x3, 3, TREG_SN, 1,
447     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
448 #ifndef DISASM_ONLY
449     {
450       0x800000007ffc0000ULL,
451       0xfffe000000000000ULL,
452       0ULL,
453       0ULL,
454       0ULL
455     },
456     {
457       0x0000000009880000ULL,
458       0x0c88000000000000ULL,
459       -1ULL,
460       -1ULL,
461       -1ULL
462     }
463 #endif
464   },
465   { "addh", TILEPRO_OPC_ADDH, 0x3, 3, TREG_ZERO, 1,
466     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
467 #ifndef DISASM_ONLY
468     {
469       0x800000007ffc0000ULL,
470       0xfffe000000000000ULL,
471       0ULL,
472       0ULL,
473       0ULL
474     },
475     {
476       0x0000000000080000ULL,
477       0x0804000000000000ULL,
478       -1ULL,
479       -1ULL,
480       -1ULL
481     }
482 #endif
483   },
484   { "addh.sn", TILEPRO_OPC_ADDH_SN, 0x3, 3, TREG_SN, 1,
485     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
486 #ifndef DISASM_ONLY
487     {
488       0x800000007ffc0000ULL,
489       0xfffe000000000000ULL,
490       0ULL,
491       0ULL,
492       0ULL
493     },
494     {
495       0x0000000008080000ULL,
496       0x0c04000000000000ULL,
497       -1ULL,
498       -1ULL,
499       -1ULL
500     }
501 #endif
502   },
503   { "addhs", TILEPRO_OPC_ADDHS, 0x3, 3, TREG_ZERO, 1,
504     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
505 #ifndef DISASM_ONLY
506     {
507       0x800000007ffc0000ULL,
508       0xfffe000000000000ULL,
509       0ULL,
510       0ULL,
511       0ULL
512     },
513     {
514       0x00000000018c0000ULL,
515       0x088a000000000000ULL,
516       -1ULL,
517       -1ULL,
518       -1ULL
519     }
520 #endif
521   },
522   { "addhs.sn", TILEPRO_OPC_ADDHS_SN, 0x3, 3, TREG_SN, 1,
523     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
524 #ifndef DISASM_ONLY
525     {
526       0x800000007ffc0000ULL,
527       0xfffe000000000000ULL,
528       0ULL,
529       0ULL,
530       0ULL
531     },
532     {
533       0x00000000098c0000ULL,
534       0x0c8a000000000000ULL,
535       -1ULL,
536       -1ULL,
537       -1ULL
538     }
539 #endif
540   },
541   { "addi", TILEPRO_OPC_ADDI, 0xf, 3, TREG_ZERO, 1,
542     { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
543 #ifndef DISASM_ONLY
544     {
545       0x800000007ff00000ULL,
546       0xfff8000000000000ULL,
547       0x8000000078000000ULL,
548       0xf800000000000000ULL,
549       0ULL
550     },
551     {
552       0x0000000040300000ULL,
553       0x3018000000000000ULL,
554       0x8000000048000000ULL,
555       0xb800000000000000ULL,
556       -1ULL
557     }
558 #endif
559   },
560   { "addi.sn", TILEPRO_OPC_ADDI_SN, 0x3, 3, TREG_SN, 1,
561     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
562 #ifndef DISASM_ONLY
563     {
564       0x800000007ff00000ULL,
565       0xfff8000000000000ULL,
566       0ULL,
567       0ULL,
568       0ULL
569     },
570     {
571       0x0000000048300000ULL,
572       0x3418000000000000ULL,
573       -1ULL,
574       -1ULL,
575       -1ULL
576     }
577 #endif
578   },
579   { "addib", TILEPRO_OPC_ADDIB, 0x3, 3, TREG_ZERO, 1,
580     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
581 #ifndef DISASM_ONLY
582     {
583       0x800000007ff00000ULL,
584       0xfff8000000000000ULL,
585       0ULL,
586       0ULL,
587       0ULL
588     },
589     {
590       0x0000000040100000ULL,
591       0x3008000000000000ULL,
592       -1ULL,
593       -1ULL,
594       -1ULL
595     }
596 #endif
597   },
598   { "addib.sn", TILEPRO_OPC_ADDIB_SN, 0x3, 3, TREG_SN, 1,
599     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
600 #ifndef DISASM_ONLY
601     {
602       0x800000007ff00000ULL,
603       0xfff8000000000000ULL,
604       0ULL,
605       0ULL,
606       0ULL
607     },
608     {
609       0x0000000048100000ULL,
610       0x3408000000000000ULL,
611       -1ULL,
612       -1ULL,
613       -1ULL
614     }
615 #endif
616   },
617   { "addih", TILEPRO_OPC_ADDIH, 0x3, 3, TREG_ZERO, 1,
618     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
619 #ifndef DISASM_ONLY
620     {
621       0x800000007ff00000ULL,
622       0xfff8000000000000ULL,
623       0ULL,
624       0ULL,
625       0ULL
626     },
627     {
628       0x0000000040200000ULL,
629       0x3010000000000000ULL,
630       -1ULL,
631       -1ULL,
632       -1ULL
633     }
634 #endif
635   },
636   { "addih.sn", TILEPRO_OPC_ADDIH_SN, 0x3, 3, TREG_SN, 1,
637     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
638 #ifndef DISASM_ONLY
639     {
640       0x800000007ff00000ULL,
641       0xfff8000000000000ULL,
642       0ULL,
643       0ULL,
644       0ULL
645     },
646     {
647       0x0000000048200000ULL,
648       0x3410000000000000ULL,
649       -1ULL,
650       -1ULL,
651       -1ULL
652     }
653 #endif
654   },
655   { "addli", TILEPRO_OPC_ADDLI, 0x3, 3, TREG_ZERO, 1,
656     { { 9, 10, 4 }, { 7, 8, 5 }, { 0, }, { 0, }, { 0, } },
657 #ifndef DISASM_ONLY
658     {
659       0x8000000070000000ULL,
660       0xf800000000000000ULL,
661       0ULL,
662       0ULL,
663       0ULL
664     },
665     {
666       0x0000000020000000ULL,
667       0x1800000000000000ULL,
668       -1ULL,
669       -1ULL,
670       -1ULL
671     }
672 #endif
673   },
674   { "addli.sn", TILEPRO_OPC_ADDLI_SN, 0x3, 3, TREG_SN, 1,
675     { { 9, 10, 4 }, { 7, 8, 5 }, { 0, }, { 0, }, { 0, } },
676 #ifndef DISASM_ONLY
677     {
678       0x8000000070000000ULL,
679       0xf800000000000000ULL,
680       0ULL,
681       0ULL,
682       0ULL
683     },
684     {
685       0x0000000010000000ULL,
686       0x1000000000000000ULL,
687       -1ULL,
688       -1ULL,
689       -1ULL
690     }
691 #endif
692   },
693   { "addlis", TILEPRO_OPC_ADDLIS, 0x3, 3, TREG_SN, 1,
694     { { 9, 10, 4 }, { 7, 8, 5 }, { 0, }, { 0, }, { 0, } },
695 #ifndef DISASM_ONLY
696     {
697       0x8000000070000000ULL,
698       0xf800000000000000ULL,
699       0ULL,
700       0ULL,
701       0ULL
702     },
703     {
704       0x0000000010000000ULL,
705       0x1000000000000000ULL,
706       -1ULL,
707       -1ULL,
708       -1ULL
709     }
710 #endif
711   },
712   { "adds", TILEPRO_OPC_ADDS, 0x3, 3, TREG_ZERO, 1,
713     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
714 #ifndef DISASM_ONLY
715     {
716       0x800000007ffc0000ULL,
717       0xfffe000000000000ULL,
718       0ULL,
719       0ULL,
720       0ULL
721     },
722     {
723       0x0000000001800000ULL,
724       0x0884000000000000ULL,
725       -1ULL,
726       -1ULL,
727       -1ULL
728     }
729 #endif
730   },
731   { "adds.sn", TILEPRO_OPC_ADDS_SN, 0x3, 3, TREG_SN, 1,
732     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
733 #ifndef DISASM_ONLY
734     {
735       0x800000007ffc0000ULL,
736       0xfffe000000000000ULL,
737       0ULL,
738       0ULL,
739       0ULL
740     },
741     {
742       0x0000000009800000ULL,
743       0x0c84000000000000ULL,
744       -1ULL,
745       -1ULL,
746       -1ULL
747     }
748 #endif
749   },
750   { "adiffb_u", TILEPRO_OPC_ADIFFB_U, 0x1, 3, TREG_ZERO, 1,
751     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
752 #ifndef DISASM_ONLY
753     {
754       0x800000007ffc0000ULL,
755       0ULL,
756       0ULL,
757       0ULL,
758       0ULL
759     },
760     {
761       0x0000000000100000ULL,
762       -1ULL,
763       -1ULL,
764       -1ULL,
765       -1ULL
766     }
767 #endif
768   },
769   { "adiffb_u.sn", TILEPRO_OPC_ADIFFB_U_SN, 0x1, 3, TREG_SN, 1,
770     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
771 #ifndef DISASM_ONLY
772     {
773       0x800000007ffc0000ULL,
774       0ULL,
775       0ULL,
776       0ULL,
777       0ULL
778     },
779     {
780       0x0000000008100000ULL,
781       -1ULL,
782       -1ULL,
783       -1ULL,
784       -1ULL
785     }
786 #endif
787   },
788   { "adiffh", TILEPRO_OPC_ADIFFH, 0x1, 3, TREG_ZERO, 1,
789     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
790 #ifndef DISASM_ONLY
791     {
792       0x800000007ffc0000ULL,
793       0ULL,
794       0ULL,
795       0ULL,
796       0ULL
797     },
798     {
799       0x0000000000140000ULL,
800       -1ULL,
801       -1ULL,
802       -1ULL,
803       -1ULL
804     }
805 #endif
806   },
807   { "adiffh.sn", TILEPRO_OPC_ADIFFH_SN, 0x1, 3, TREG_SN, 1,
808     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
809 #ifndef DISASM_ONLY
810     {
811       0x800000007ffc0000ULL,
812       0ULL,
813       0ULL,
814       0ULL,
815       0ULL
816     },
817     {
818       0x0000000008140000ULL,
819       -1ULL,
820       -1ULL,
821       -1ULL,
822       -1ULL
823     }
824 #endif
825   },
826   { "and", TILEPRO_OPC_AND, 0xf, 3, TREG_ZERO, 1,
827     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
828 #ifndef DISASM_ONLY
829     {
830       0x800000007ffc0000ULL,
831       0xfffe000000000000ULL,
832       0x80000000780c0000ULL,
833       0xf806000000000000ULL,
834       0ULL
835     },
836     {
837       0x0000000000180000ULL,
838       0x0808000000000000ULL,
839       0x8000000018000000ULL,
840       0x9800000000000000ULL,
841       -1ULL
842     }
843 #endif
844   },
845   { "and.sn", TILEPRO_OPC_AND_SN, 0x3, 3, TREG_SN, 1,
846     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
847 #ifndef DISASM_ONLY
848     {
849       0x800000007ffc0000ULL,
850       0xfffe000000000000ULL,
851       0ULL,
852       0ULL,
853       0ULL
854     },
855     {
856       0x0000000008180000ULL,
857       0x0c08000000000000ULL,
858       -1ULL,
859       -1ULL,
860       -1ULL
861     }
862 #endif
863   },
864   { "andi", TILEPRO_OPC_ANDI, 0xf, 3, TREG_ZERO, 1,
865     { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
866 #ifndef DISASM_ONLY
867     {
868       0x800000007ff00000ULL,
869       0xfff8000000000000ULL,
870       0x8000000078000000ULL,
871       0xf800000000000000ULL,
872       0ULL
873     },
874     {
875       0x0000000050100000ULL,
876       0x3020000000000000ULL,
877       0x8000000050000000ULL,
878       0xc000000000000000ULL,
879       -1ULL
880     }
881 #endif
882   },
883   { "andi.sn", TILEPRO_OPC_ANDI_SN, 0x3, 3, TREG_SN, 1,
884     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
885 #ifndef DISASM_ONLY
886     {
887       0x800000007ff00000ULL,
888       0xfff8000000000000ULL,
889       0ULL,
890       0ULL,
891       0ULL
892     },
893     {
894       0x0000000058100000ULL,
895       0x3420000000000000ULL,
896       -1ULL,
897       -1ULL,
898       -1ULL
899     }
900 #endif
901   },
902   { "auli", TILEPRO_OPC_AULI, 0x3, 3, TREG_ZERO, 1,
903     { { 9, 10, 4 }, { 7, 8, 5 }, { 0, }, { 0, }, { 0, } },
904 #ifndef DISASM_ONLY
905     {
906       0x8000000070000000ULL,
907       0xf800000000000000ULL,
908       0ULL,
909       0ULL,
910       0ULL
911     },
912     {
913       0x0000000030000000ULL,
914       0x2000000000000000ULL,
915       -1ULL,
916       -1ULL,
917       -1ULL
918     }
919 #endif
920   },
921   { "avgb_u", TILEPRO_OPC_AVGB_U, 0x1, 3, TREG_ZERO, 1,
922     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
923 #ifndef DISASM_ONLY
924     {
925       0x800000007ffc0000ULL,
926       0ULL,
927       0ULL,
928       0ULL,
929       0ULL
930     },
931     {
932       0x00000000001c0000ULL,
933       -1ULL,
934       -1ULL,
935       -1ULL,
936       -1ULL
937     }
938 #endif
939   },
940   { "avgb_u.sn", TILEPRO_OPC_AVGB_U_SN, 0x1, 3, TREG_SN, 1,
941     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
942 #ifndef DISASM_ONLY
943     {
944       0x800000007ffc0000ULL,
945       0ULL,
946       0ULL,
947       0ULL,
948       0ULL
949     },
950     {
951       0x00000000081c0000ULL,
952       -1ULL,
953       -1ULL,
954       -1ULL,
955       -1ULL
956     }
957 #endif
958   },
959   { "avgh", TILEPRO_OPC_AVGH, 0x1, 3, TREG_ZERO, 1,
960     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
961 #ifndef DISASM_ONLY
962     {
963       0x800000007ffc0000ULL,
964       0ULL,
965       0ULL,
966       0ULL,
967       0ULL
968     },
969     {
970       0x0000000000200000ULL,
971       -1ULL,
972       -1ULL,
973       -1ULL,
974       -1ULL
975     }
976 #endif
977   },
978   { "avgh.sn", TILEPRO_OPC_AVGH_SN, 0x1, 3, TREG_SN, 1,
979     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
980 #ifndef DISASM_ONLY
981     {
982       0x800000007ffc0000ULL,
983       0ULL,
984       0ULL,
985       0ULL,
986       0ULL
987     },
988     {
989       0x0000000008200000ULL,
990       -1ULL,
991       -1ULL,
992       -1ULL,
993       -1ULL
994     }
995 #endif
996   },
997   { "bbns", TILEPRO_OPC_BBNS, 0x2, 2, TREG_ZERO, 1,
998     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
999 #ifndef DISASM_ONLY
1000     {
1001       0ULL,
1002       0xfc00000780000000ULL,
1003       0ULL,
1004       0ULL,
1005       0ULL
1006     },
1007     {
1008       -1ULL,
1009       0x2800000700000000ULL,
1010       -1ULL,
1011       -1ULL,
1012       -1ULL
1013     }
1014 #endif
1015   },
1016   { "bbns.sn", TILEPRO_OPC_BBNS_SN, 0x2, 2, TREG_SN, 1,
1017     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1018 #ifndef DISASM_ONLY
1019     {
1020       0ULL,
1021       0xfc00000780000000ULL,
1022       0ULL,
1023       0ULL,
1024       0ULL
1025     },
1026     {
1027       -1ULL,
1028       0x2c00000700000000ULL,
1029       -1ULL,
1030       -1ULL,
1031       -1ULL
1032     }
1033 #endif
1034   },
1035   { "bbnst", TILEPRO_OPC_BBNST, 0x2, 2, TREG_ZERO, 1,
1036     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1037 #ifndef DISASM_ONLY
1038     {
1039       0ULL,
1040       0xfc00000780000000ULL,
1041       0ULL,
1042       0ULL,
1043       0ULL
1044     },
1045     {
1046       -1ULL,
1047       0x2800000780000000ULL,
1048       -1ULL,
1049       -1ULL,
1050       -1ULL
1051     }
1052 #endif
1053   },
1054   { "bbnst.sn", TILEPRO_OPC_BBNST_SN, 0x2, 2, TREG_SN, 1,
1055     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1056 #ifndef DISASM_ONLY
1057     {
1058       0ULL,
1059       0xfc00000780000000ULL,
1060       0ULL,
1061       0ULL,
1062       0ULL
1063     },
1064     {
1065       -1ULL,
1066       0x2c00000780000000ULL,
1067       -1ULL,
1068       -1ULL,
1069       -1ULL
1070     }
1071 #endif
1072   },
1073   { "bbs", TILEPRO_OPC_BBS, 0x2, 2, TREG_ZERO, 1,
1074     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1075 #ifndef DISASM_ONLY
1076     {
1077       0ULL,
1078       0xfc00000780000000ULL,
1079       0ULL,
1080       0ULL,
1081       0ULL
1082     },
1083     {
1084       -1ULL,
1085       0x2800000600000000ULL,
1086       -1ULL,
1087       -1ULL,
1088       -1ULL
1089     }
1090 #endif
1091   },
1092   { "bbs.sn", TILEPRO_OPC_BBS_SN, 0x2, 2, TREG_SN, 1,
1093     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1094 #ifndef DISASM_ONLY
1095     {
1096       0ULL,
1097       0xfc00000780000000ULL,
1098       0ULL,
1099       0ULL,
1100       0ULL
1101     },
1102     {
1103       -1ULL,
1104       0x2c00000600000000ULL,
1105       -1ULL,
1106       -1ULL,
1107       -1ULL
1108     }
1109 #endif
1110   },
1111   { "bbst", TILEPRO_OPC_BBST, 0x2, 2, TREG_ZERO, 1,
1112     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1113 #ifndef DISASM_ONLY
1114     {
1115       0ULL,
1116       0xfc00000780000000ULL,
1117       0ULL,
1118       0ULL,
1119       0ULL
1120     },
1121     {
1122       -1ULL,
1123       0x2800000680000000ULL,
1124       -1ULL,
1125       -1ULL,
1126       -1ULL
1127     }
1128 #endif
1129   },
1130   { "bbst.sn", TILEPRO_OPC_BBST_SN, 0x2, 2, TREG_SN, 1,
1131     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1132 #ifndef DISASM_ONLY
1133     {
1134       0ULL,
1135       0xfc00000780000000ULL,
1136       0ULL,
1137       0ULL,
1138       0ULL
1139     },
1140     {
1141       -1ULL,
1142       0x2c00000680000000ULL,
1143       -1ULL,
1144       -1ULL,
1145       -1ULL
1146     }
1147 #endif
1148   },
1149   { "bgez", TILEPRO_OPC_BGEZ, 0x2, 2, TREG_ZERO, 1,
1150     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1151 #ifndef DISASM_ONLY
1152     {
1153       0ULL,
1154       0xfc00000780000000ULL,
1155       0ULL,
1156       0ULL,
1157       0ULL
1158     },
1159     {
1160       -1ULL,
1161       0x2800000300000000ULL,
1162       -1ULL,
1163       -1ULL,
1164       -1ULL
1165     }
1166 #endif
1167   },
1168   { "bgez.sn", TILEPRO_OPC_BGEZ_SN, 0x2, 2, TREG_SN, 1,
1169     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1170 #ifndef DISASM_ONLY
1171     {
1172       0ULL,
1173       0xfc00000780000000ULL,
1174       0ULL,
1175       0ULL,
1176       0ULL
1177     },
1178     {
1179       -1ULL,
1180       0x2c00000300000000ULL,
1181       -1ULL,
1182       -1ULL,
1183       -1ULL
1184     }
1185 #endif
1186   },
1187   { "bgezt", TILEPRO_OPC_BGEZT, 0x2, 2, TREG_ZERO, 1,
1188     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1189 #ifndef DISASM_ONLY
1190     {
1191       0ULL,
1192       0xfc00000780000000ULL,
1193       0ULL,
1194       0ULL,
1195       0ULL
1196     },
1197     {
1198       -1ULL,
1199       0x2800000380000000ULL,
1200       -1ULL,
1201       -1ULL,
1202       -1ULL
1203     }
1204 #endif
1205   },
1206   { "bgezt.sn", TILEPRO_OPC_BGEZT_SN, 0x2, 2, TREG_SN, 1,
1207     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1208 #ifndef DISASM_ONLY
1209     {
1210       0ULL,
1211       0xfc00000780000000ULL,
1212       0ULL,
1213       0ULL,
1214       0ULL
1215     },
1216     {
1217       -1ULL,
1218       0x2c00000380000000ULL,
1219       -1ULL,
1220       -1ULL,
1221       -1ULL
1222     }
1223 #endif
1224   },
1225   { "bgz", TILEPRO_OPC_BGZ, 0x2, 2, TREG_ZERO, 1,
1226     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1227 #ifndef DISASM_ONLY
1228     {
1229       0ULL,
1230       0xfc00000780000000ULL,
1231       0ULL,
1232       0ULL,
1233       0ULL
1234     },
1235     {
1236       -1ULL,
1237       0x2800000200000000ULL,
1238       -1ULL,
1239       -1ULL,
1240       -1ULL
1241     }
1242 #endif
1243   },
1244   { "bgz.sn", TILEPRO_OPC_BGZ_SN, 0x2, 2, TREG_SN, 1,
1245     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1246 #ifndef DISASM_ONLY
1247     {
1248       0ULL,
1249       0xfc00000780000000ULL,
1250       0ULL,
1251       0ULL,
1252       0ULL
1253     },
1254     {
1255       -1ULL,
1256       0x2c00000200000000ULL,
1257       -1ULL,
1258       -1ULL,
1259       -1ULL
1260     }
1261 #endif
1262   },
1263   { "bgzt", TILEPRO_OPC_BGZT, 0x2, 2, TREG_ZERO, 1,
1264     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1265 #ifndef DISASM_ONLY
1266     {
1267       0ULL,
1268       0xfc00000780000000ULL,
1269       0ULL,
1270       0ULL,
1271       0ULL
1272     },
1273     {
1274       -1ULL,
1275       0x2800000280000000ULL,
1276       -1ULL,
1277       -1ULL,
1278       -1ULL
1279     }
1280 #endif
1281   },
1282   { "bgzt.sn", TILEPRO_OPC_BGZT_SN, 0x2, 2, TREG_SN, 1,
1283     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1284 #ifndef DISASM_ONLY
1285     {
1286       0ULL,
1287       0xfc00000780000000ULL,
1288       0ULL,
1289       0ULL,
1290       0ULL
1291     },
1292     {
1293       -1ULL,
1294       0x2c00000280000000ULL,
1295       -1ULL,
1296       -1ULL,
1297       -1ULL
1298     }
1299 #endif
1300   },
1301   { "bitx", TILEPRO_OPC_BITX, 0x5, 2, TREG_ZERO, 1,
1302     { { 9, 10 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
1303 #ifndef DISASM_ONLY
1304     {
1305       0x800000007ffff000ULL,
1306       0ULL,
1307       0x80000000780ff000ULL,
1308       0ULL,
1309       0ULL
1310     },
1311     {
1312       0x0000000070161000ULL,
1313       -1ULL,
1314       0x80000000680a1000ULL,
1315       -1ULL,
1316       -1ULL
1317     }
1318 #endif
1319   },
1320   { "bitx.sn", TILEPRO_OPC_BITX_SN, 0x1, 2, TREG_SN, 1,
1321     { { 9, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
1322 #ifndef DISASM_ONLY
1323     {
1324       0x800000007ffff000ULL,
1325       0ULL,
1326       0ULL,
1327       0ULL,
1328       0ULL
1329     },
1330     {
1331       0x0000000078161000ULL,
1332       -1ULL,
1333       -1ULL,
1334       -1ULL,
1335       -1ULL
1336     }
1337 #endif
1338   },
1339   { "blez", TILEPRO_OPC_BLEZ, 0x2, 2, TREG_ZERO, 1,
1340     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1341 #ifndef DISASM_ONLY
1342     {
1343       0ULL,
1344       0xfc00000780000000ULL,
1345       0ULL,
1346       0ULL,
1347       0ULL
1348     },
1349     {
1350       -1ULL,
1351       0x2800000500000000ULL,
1352       -1ULL,
1353       -1ULL,
1354       -1ULL
1355     }
1356 #endif
1357   },
1358   { "blez.sn", TILEPRO_OPC_BLEZ_SN, 0x2, 2, TREG_SN, 1,
1359     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1360 #ifndef DISASM_ONLY
1361     {
1362       0ULL,
1363       0xfc00000780000000ULL,
1364       0ULL,
1365       0ULL,
1366       0ULL
1367     },
1368     {
1369       -1ULL,
1370       0x2c00000500000000ULL,
1371       -1ULL,
1372       -1ULL,
1373       -1ULL
1374     }
1375 #endif
1376   },
1377   { "blezt", TILEPRO_OPC_BLEZT, 0x2, 2, TREG_ZERO, 1,
1378     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1379 #ifndef DISASM_ONLY
1380     {
1381       0ULL,
1382       0xfc00000780000000ULL,
1383       0ULL,
1384       0ULL,
1385       0ULL
1386     },
1387     {
1388       -1ULL,
1389       0x2800000580000000ULL,
1390       -1ULL,
1391       -1ULL,
1392       -1ULL
1393     }
1394 #endif
1395   },
1396   { "blezt.sn", TILEPRO_OPC_BLEZT_SN, 0x2, 2, TREG_SN, 1,
1397     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1398 #ifndef DISASM_ONLY
1399     {
1400       0ULL,
1401       0xfc00000780000000ULL,
1402       0ULL,
1403       0ULL,
1404       0ULL
1405     },
1406     {
1407       -1ULL,
1408       0x2c00000580000000ULL,
1409       -1ULL,
1410       -1ULL,
1411       -1ULL
1412     }
1413 #endif
1414   },
1415   { "blz", TILEPRO_OPC_BLZ, 0x2, 2, TREG_ZERO, 1,
1416     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1417 #ifndef DISASM_ONLY
1418     {
1419       0ULL,
1420       0xfc00000780000000ULL,
1421       0ULL,
1422       0ULL,
1423       0ULL
1424     },
1425     {
1426       -1ULL,
1427       0x2800000400000000ULL,
1428       -1ULL,
1429       -1ULL,
1430       -1ULL
1431     }
1432 #endif
1433   },
1434   { "blz.sn", TILEPRO_OPC_BLZ_SN, 0x2, 2, TREG_SN, 1,
1435     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1436 #ifndef DISASM_ONLY
1437     {
1438       0ULL,
1439       0xfc00000780000000ULL,
1440       0ULL,
1441       0ULL,
1442       0ULL
1443     },
1444     {
1445       -1ULL,
1446       0x2c00000400000000ULL,
1447       -1ULL,
1448       -1ULL,
1449       -1ULL
1450     }
1451 #endif
1452   },
1453   { "blzt", TILEPRO_OPC_BLZT, 0x2, 2, TREG_ZERO, 1,
1454     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1455 #ifndef DISASM_ONLY
1456     {
1457       0ULL,
1458       0xfc00000780000000ULL,
1459       0ULL,
1460       0ULL,
1461       0ULL
1462     },
1463     {
1464       -1ULL,
1465       0x2800000480000000ULL,
1466       -1ULL,
1467       -1ULL,
1468       -1ULL
1469     }
1470 #endif
1471   },
1472   { "blzt.sn", TILEPRO_OPC_BLZT_SN, 0x2, 2, TREG_SN, 1,
1473     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1474 #ifndef DISASM_ONLY
1475     {
1476       0ULL,
1477       0xfc00000780000000ULL,
1478       0ULL,
1479       0ULL,
1480       0ULL
1481     },
1482     {
1483       -1ULL,
1484       0x2c00000480000000ULL,
1485       -1ULL,
1486       -1ULL,
1487       -1ULL
1488     }
1489 #endif
1490   },
1491   { "bnz", TILEPRO_OPC_BNZ, 0x2, 2, TREG_ZERO, 1,
1492     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1493 #ifndef DISASM_ONLY
1494     {
1495       0ULL,
1496       0xfc00000780000000ULL,
1497       0ULL,
1498       0ULL,
1499       0ULL
1500     },
1501     {
1502       -1ULL,
1503       0x2800000100000000ULL,
1504       -1ULL,
1505       -1ULL,
1506       -1ULL
1507     }
1508 #endif
1509   },
1510   { "bnz.sn", TILEPRO_OPC_BNZ_SN, 0x2, 2, TREG_SN, 1,
1511     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1512 #ifndef DISASM_ONLY
1513     {
1514       0ULL,
1515       0xfc00000780000000ULL,
1516       0ULL,
1517       0ULL,
1518       0ULL
1519     },
1520     {
1521       -1ULL,
1522       0x2c00000100000000ULL,
1523       -1ULL,
1524       -1ULL,
1525       -1ULL
1526     }
1527 #endif
1528   },
1529   { "bnzt", TILEPRO_OPC_BNZT, 0x2, 2, TREG_ZERO, 1,
1530     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1531 #ifndef DISASM_ONLY
1532     {
1533       0ULL,
1534       0xfc00000780000000ULL,
1535       0ULL,
1536       0ULL,
1537       0ULL
1538     },
1539     {
1540       -1ULL,
1541       0x2800000180000000ULL,
1542       -1ULL,
1543       -1ULL,
1544       -1ULL
1545     }
1546 #endif
1547   },
1548   { "bnzt.sn", TILEPRO_OPC_BNZT_SN, 0x2, 2, TREG_SN, 1,
1549     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1550 #ifndef DISASM_ONLY
1551     {
1552       0ULL,
1553       0xfc00000780000000ULL,
1554       0ULL,
1555       0ULL,
1556       0ULL
1557     },
1558     {
1559       -1ULL,
1560       0x2c00000180000000ULL,
1561       -1ULL,
1562       -1ULL,
1563       -1ULL
1564     }
1565 #endif
1566   },
1567   { "bytex", TILEPRO_OPC_BYTEX, 0x5, 2, TREG_ZERO, 1,
1568     { { 9, 10 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
1569 #ifndef DISASM_ONLY
1570     {
1571       0x800000007ffff000ULL,
1572       0ULL,
1573       0x80000000780ff000ULL,
1574       0ULL,
1575       0ULL
1576     },
1577     {
1578       0x0000000070162000ULL,
1579       -1ULL,
1580       0x80000000680a2000ULL,
1581       -1ULL,
1582       -1ULL
1583     }
1584 #endif
1585   },
1586   { "bytex.sn", TILEPRO_OPC_BYTEX_SN, 0x1, 2, TREG_SN, 1,
1587     { { 9, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
1588 #ifndef DISASM_ONLY
1589     {
1590       0x800000007ffff000ULL,
1591       0ULL,
1592       0ULL,
1593       0ULL,
1594       0ULL
1595     },
1596     {
1597       0x0000000078162000ULL,
1598       -1ULL,
1599       -1ULL,
1600       -1ULL,
1601       -1ULL
1602     }
1603 #endif
1604   },
1605   { "bz", TILEPRO_OPC_BZ, 0x2, 2, TREG_ZERO, 1,
1606     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1607 #ifndef DISASM_ONLY
1608     {
1609       0ULL,
1610       0xfc00000780000000ULL,
1611       0ULL,
1612       0ULL,
1613       0ULL
1614     },
1615     {
1616       -1ULL,
1617       0x2800000000000000ULL,
1618       -1ULL,
1619       -1ULL,
1620       -1ULL
1621     }
1622 #endif
1623   },
1624   { "bz.sn", TILEPRO_OPC_BZ_SN, 0x2, 2, TREG_SN, 1,
1625     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1626 #ifndef DISASM_ONLY
1627     {
1628       0ULL,
1629       0xfc00000780000000ULL,
1630       0ULL,
1631       0ULL,
1632       0ULL
1633     },
1634     {
1635       -1ULL,
1636       0x2c00000000000000ULL,
1637       -1ULL,
1638       -1ULL,
1639       -1ULL
1640     }
1641 #endif
1642   },
1643   { "bzt", TILEPRO_OPC_BZT, 0x2, 2, TREG_ZERO, 1,
1644     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1645 #ifndef DISASM_ONLY
1646     {
1647       0ULL,
1648       0xfc00000780000000ULL,
1649       0ULL,
1650       0ULL,
1651       0ULL
1652     },
1653     {
1654       -1ULL,
1655       0x2800000080000000ULL,
1656       -1ULL,
1657       -1ULL,
1658       -1ULL
1659     }
1660 #endif
1661   },
1662   { "bzt.sn", TILEPRO_OPC_BZT_SN, 0x2, 2, TREG_SN, 1,
1663     { { 0, }, { 8, 20 }, { 0, }, { 0, }, { 0, } },
1664 #ifndef DISASM_ONLY
1665     {
1666       0ULL,
1667       0xfc00000780000000ULL,
1668       0ULL,
1669       0ULL,
1670       0ULL
1671     },
1672     {
1673       -1ULL,
1674       0x2c00000080000000ULL,
1675       -1ULL,
1676       -1ULL,
1677       -1ULL
1678     }
1679 #endif
1680   },
1681   { "clz", TILEPRO_OPC_CLZ, 0x5, 2, TREG_ZERO, 1,
1682     { { 9, 10 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
1683 #ifndef DISASM_ONLY
1684     {
1685       0x800000007ffff000ULL,
1686       0ULL,
1687       0x80000000780ff000ULL,
1688       0ULL,
1689       0ULL
1690     },
1691     {
1692       0x0000000070163000ULL,
1693       -1ULL,
1694       0x80000000680a3000ULL,
1695       -1ULL,
1696       -1ULL
1697     }
1698 #endif
1699   },
1700   { "clz.sn", TILEPRO_OPC_CLZ_SN, 0x1, 2, TREG_SN, 1,
1701     { { 9, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
1702 #ifndef DISASM_ONLY
1703     {
1704       0x800000007ffff000ULL,
1705       0ULL,
1706       0ULL,
1707       0ULL,
1708       0ULL
1709     },
1710     {
1711       0x0000000078163000ULL,
1712       -1ULL,
1713       -1ULL,
1714       -1ULL,
1715       -1ULL
1716     }
1717 #endif
1718   },
1719   { "crc32_32", TILEPRO_OPC_CRC32_32, 0x1, 3, TREG_ZERO, 1,
1720     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1721 #ifndef DISASM_ONLY
1722     {
1723       0x800000007ffc0000ULL,
1724       0ULL,
1725       0ULL,
1726       0ULL,
1727       0ULL
1728     },
1729     {
1730       0x0000000000240000ULL,
1731       -1ULL,
1732       -1ULL,
1733       -1ULL,
1734       -1ULL
1735     }
1736 #endif
1737   },
1738   { "crc32_32.sn", TILEPRO_OPC_CRC32_32_SN, 0x1, 3, TREG_SN, 1,
1739     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1740 #ifndef DISASM_ONLY
1741     {
1742       0x800000007ffc0000ULL,
1743       0ULL,
1744       0ULL,
1745       0ULL,
1746       0ULL
1747     },
1748     {
1749       0x0000000008240000ULL,
1750       -1ULL,
1751       -1ULL,
1752       -1ULL,
1753       -1ULL
1754     }
1755 #endif
1756   },
1757   { "crc32_8", TILEPRO_OPC_CRC32_8, 0x1, 3, TREG_ZERO, 1,
1758     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1759 #ifndef DISASM_ONLY
1760     {
1761       0x800000007ffc0000ULL,
1762       0ULL,
1763       0ULL,
1764       0ULL,
1765       0ULL
1766     },
1767     {
1768       0x0000000000280000ULL,
1769       -1ULL,
1770       -1ULL,
1771       -1ULL,
1772       -1ULL
1773     }
1774 #endif
1775   },
1776   { "crc32_8.sn", TILEPRO_OPC_CRC32_8_SN, 0x1, 3, TREG_SN, 1,
1777     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1778 #ifndef DISASM_ONLY
1779     {
1780       0x800000007ffc0000ULL,
1781       0ULL,
1782       0ULL,
1783       0ULL,
1784       0ULL
1785     },
1786     {
1787       0x0000000008280000ULL,
1788       -1ULL,
1789       -1ULL,
1790       -1ULL,
1791       -1ULL
1792     }
1793 #endif
1794   },
1795   { "ctz", TILEPRO_OPC_CTZ, 0x5, 2, TREG_ZERO, 1,
1796     { { 9, 10 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
1797 #ifndef DISASM_ONLY
1798     {
1799       0x800000007ffff000ULL,
1800       0ULL,
1801       0x80000000780ff000ULL,
1802       0ULL,
1803       0ULL
1804     },
1805     {
1806       0x0000000070164000ULL,
1807       -1ULL,
1808       0x80000000680a4000ULL,
1809       -1ULL,
1810       -1ULL
1811     }
1812 #endif
1813   },
1814   { "ctz.sn", TILEPRO_OPC_CTZ_SN, 0x1, 2, TREG_SN, 1,
1815     { { 9, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
1816 #ifndef DISASM_ONLY
1817     {
1818       0x800000007ffff000ULL,
1819       0ULL,
1820       0ULL,
1821       0ULL,
1822       0ULL
1823     },
1824     {
1825       0x0000000078164000ULL,
1826       -1ULL,
1827       -1ULL,
1828       -1ULL,
1829       -1ULL
1830     }
1831 #endif
1832   },
1833   { "drain", TILEPRO_OPC_DRAIN, 0x2, 0, TREG_ZERO, 0,
1834     { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
1835 #ifndef DISASM_ONLY
1836     {
1837       0ULL,
1838       0xfbfff80000000000ULL,
1839       0ULL,
1840       0ULL,
1841       0ULL
1842     },
1843     {
1844       -1ULL,
1845       0x400b080000000000ULL,
1846       -1ULL,
1847       -1ULL,
1848       -1ULL
1849     }
1850 #endif
1851   },
1852   { "dtlbpr", TILEPRO_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1,
1853     { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
1854 #ifndef DISASM_ONLY
1855     {
1856       0ULL,
1857       0xfbfff80000000000ULL,
1858       0ULL,
1859       0ULL,
1860       0ULL
1861     },
1862     {
1863       -1ULL,
1864       0x400b100000000000ULL,
1865       -1ULL,
1866       -1ULL,
1867       -1ULL
1868     }
1869 #endif
1870   },
1871   { "dword_align", TILEPRO_OPC_DWORD_ALIGN, 0x1, 3, TREG_ZERO, 1,
1872     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1873 #ifndef DISASM_ONLY
1874     {
1875       0x800000007ffc0000ULL,
1876       0ULL,
1877       0ULL,
1878       0ULL,
1879       0ULL
1880     },
1881     {
1882       0x00000000017c0000ULL,
1883       -1ULL,
1884       -1ULL,
1885       -1ULL,
1886       -1ULL
1887     }
1888 #endif
1889   },
1890   { "dword_align.sn", TILEPRO_OPC_DWORD_ALIGN_SN, 0x1, 3, TREG_SN, 1,
1891     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
1892 #ifndef DISASM_ONLY
1893     {
1894       0x800000007ffc0000ULL,
1895       0ULL,
1896       0ULL,
1897       0ULL,
1898       0ULL
1899     },
1900     {
1901       0x00000000097c0000ULL,
1902       -1ULL,
1903       -1ULL,
1904       -1ULL,
1905       -1ULL
1906     }
1907 #endif
1908   },
1909   { "finv", TILEPRO_OPC_FINV, 0x2, 1, TREG_ZERO, 1,
1910     { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
1911 #ifndef DISASM_ONLY
1912     {
1913       0ULL,
1914       0xfbfff80000000000ULL,
1915       0ULL,
1916       0ULL,
1917       0ULL
1918     },
1919     {
1920       -1ULL,
1921       0x400b180000000000ULL,
1922       -1ULL,
1923       -1ULL,
1924       -1ULL
1925     }
1926 #endif
1927   },
1928   { "flush", TILEPRO_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1,
1929     { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
1930 #ifndef DISASM_ONLY
1931     {
1932       0ULL,
1933       0xfbfff80000000000ULL,
1934       0ULL,
1935       0ULL,
1936       0ULL
1937     },
1938     {
1939       -1ULL,
1940       0x400b200000000000ULL,
1941       -1ULL,
1942       -1ULL,
1943       -1ULL
1944     }
1945 #endif
1946   },
1947   { "fnop", TILEPRO_OPC_FNOP, 0xf, 0, TREG_ZERO, 1,
1948     { {  }, {  }, {  }, {  }, { 0, } },
1949 #ifndef DISASM_ONLY
1950     {
1951       0x8000000077fff000ULL,
1952       0xfbfff80000000000ULL,
1953       0x80000000780ff000ULL,
1954       0xf807f80000000000ULL,
1955       0ULL
1956     },
1957     {
1958       0x0000000070165000ULL,
1959       0x400b280000000000ULL,
1960       0x80000000680a5000ULL,
1961       0xd805080000000000ULL,
1962       -1ULL
1963     }
1964 #endif
1965   },
1966   { "icoh", TILEPRO_OPC_ICOH, 0x2, 1, TREG_ZERO, 1,
1967     { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
1968 #ifndef DISASM_ONLY
1969     {
1970       0ULL,
1971       0xfbfff80000000000ULL,
1972       0ULL,
1973       0ULL,
1974       0ULL
1975     },
1976     {
1977       -1ULL,
1978       0x400b300000000000ULL,
1979       -1ULL,
1980       -1ULL,
1981       -1ULL
1982     }
1983 #endif
1984   },
1985   { "ill", TILEPRO_OPC_ILL, 0xa, 0, TREG_ZERO, 1,
1986     { { 0, }, {  }, { 0, }, {  }, { 0, } },
1987 #ifndef DISASM_ONLY
1988     {
1989       0ULL,
1990       0xfbfff80000000000ULL,
1991       0ULL,
1992       0xf807f80000000000ULL,
1993       0ULL
1994     },
1995     {
1996       -1ULL,
1997       0x400b380000000000ULL,
1998       -1ULL,
1999       0xd805100000000000ULL,
2000       -1ULL
2001     }
2002 #endif
2003   },
2004   { "inthb", TILEPRO_OPC_INTHB, 0x3, 3, TREG_ZERO, 1,
2005     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2006 #ifndef DISASM_ONLY
2007     {
2008       0x800000007ffc0000ULL,
2009       0xfffe000000000000ULL,
2010       0ULL,
2011       0ULL,
2012       0ULL
2013     },
2014     {
2015       0x00000000002c0000ULL,
2016       0x080a000000000000ULL,
2017       -1ULL,
2018       -1ULL,
2019       -1ULL
2020     }
2021 #endif
2022   },
2023   { "inthb.sn", TILEPRO_OPC_INTHB_SN, 0x3, 3, TREG_SN, 1,
2024     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2025 #ifndef DISASM_ONLY
2026     {
2027       0x800000007ffc0000ULL,
2028       0xfffe000000000000ULL,
2029       0ULL,
2030       0ULL,
2031       0ULL
2032     },
2033     {
2034       0x00000000082c0000ULL,
2035       0x0c0a000000000000ULL,
2036       -1ULL,
2037       -1ULL,
2038       -1ULL
2039     }
2040 #endif
2041   },
2042   { "inthh", TILEPRO_OPC_INTHH, 0x3, 3, TREG_ZERO, 1,
2043     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2044 #ifndef DISASM_ONLY
2045     {
2046       0x800000007ffc0000ULL,
2047       0xfffe000000000000ULL,
2048       0ULL,
2049       0ULL,
2050       0ULL
2051     },
2052     {
2053       0x0000000000300000ULL,
2054       0x080c000000000000ULL,
2055       -1ULL,
2056       -1ULL,
2057       -1ULL
2058     }
2059 #endif
2060   },
2061   { "inthh.sn", TILEPRO_OPC_INTHH_SN, 0x3, 3, TREG_SN, 1,
2062     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2063 #ifndef DISASM_ONLY
2064     {
2065       0x800000007ffc0000ULL,
2066       0xfffe000000000000ULL,
2067       0ULL,
2068       0ULL,
2069       0ULL
2070     },
2071     {
2072       0x0000000008300000ULL,
2073       0x0c0c000000000000ULL,
2074       -1ULL,
2075       -1ULL,
2076       -1ULL
2077     }
2078 #endif
2079   },
2080   { "intlb", TILEPRO_OPC_INTLB, 0x3, 3, TREG_ZERO, 1,
2081     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2082 #ifndef DISASM_ONLY
2083     {
2084       0x800000007ffc0000ULL,
2085       0xfffe000000000000ULL,
2086       0ULL,
2087       0ULL,
2088       0ULL
2089     },
2090     {
2091       0x0000000000340000ULL,
2092       0x080e000000000000ULL,
2093       -1ULL,
2094       -1ULL,
2095       -1ULL
2096     }
2097 #endif
2098   },
2099   { "intlb.sn", TILEPRO_OPC_INTLB_SN, 0x3, 3, TREG_SN, 1,
2100     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2101 #ifndef DISASM_ONLY
2102     {
2103       0x800000007ffc0000ULL,
2104       0xfffe000000000000ULL,
2105       0ULL,
2106       0ULL,
2107       0ULL
2108     },
2109     {
2110       0x0000000008340000ULL,
2111       0x0c0e000000000000ULL,
2112       -1ULL,
2113       -1ULL,
2114       -1ULL
2115     }
2116 #endif
2117   },
2118   { "intlh", TILEPRO_OPC_INTLH, 0x3, 3, TREG_ZERO, 1,
2119     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2120 #ifndef DISASM_ONLY
2121     {
2122       0x800000007ffc0000ULL,
2123       0xfffe000000000000ULL,
2124       0ULL,
2125       0ULL,
2126       0ULL
2127     },
2128     {
2129       0x0000000000380000ULL,
2130       0x0810000000000000ULL,
2131       -1ULL,
2132       -1ULL,
2133       -1ULL
2134     }
2135 #endif
2136   },
2137   { "intlh.sn", TILEPRO_OPC_INTLH_SN, 0x3, 3, TREG_SN, 1,
2138     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2139 #ifndef DISASM_ONLY
2140     {
2141       0x800000007ffc0000ULL,
2142       0xfffe000000000000ULL,
2143       0ULL,
2144       0ULL,
2145       0ULL
2146     },
2147     {
2148       0x0000000008380000ULL,
2149       0x0c10000000000000ULL,
2150       -1ULL,
2151       -1ULL,
2152       -1ULL
2153     }
2154 #endif
2155   },
2156   { "inv", TILEPRO_OPC_INV, 0x2, 1, TREG_ZERO, 1,
2157     { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
2158 #ifndef DISASM_ONLY
2159     {
2160       0ULL,
2161       0xfbfff80000000000ULL,
2162       0ULL,
2163       0ULL,
2164       0ULL
2165     },
2166     {
2167       -1ULL,
2168       0x400b400000000000ULL,
2169       -1ULL,
2170       -1ULL,
2171       -1ULL
2172     }
2173 #endif
2174   },
2175   { "iret", TILEPRO_OPC_IRET, 0x2, 0, TREG_ZERO, 1,
2176     { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
2177 #ifndef DISASM_ONLY
2178     {
2179       0ULL,
2180       0xfbfff80000000000ULL,
2181       0ULL,
2182       0ULL,
2183       0ULL
2184     },
2185     {
2186       -1ULL,
2187       0x400b480000000000ULL,
2188       -1ULL,
2189       -1ULL,
2190       -1ULL
2191     }
2192 #endif
2193   },
2194   { "jalb", TILEPRO_OPC_JALB, 0x2, 1, TREG_LR, 1,
2195     { { 0, }, { 22 }, { 0, }, { 0, }, { 0, } },
2196 #ifndef DISASM_ONLY
2197     {
2198       0ULL,
2199       0xf800000000000000ULL,
2200       0ULL,
2201       0ULL,
2202       0ULL
2203     },
2204     {
2205       -1ULL,
2206       0x6800000000000000ULL,
2207       -1ULL,
2208       -1ULL,
2209       -1ULL
2210     }
2211 #endif
2212   },
2213   { "jalf", TILEPRO_OPC_JALF, 0x2, 1, TREG_LR, 1,
2214     { { 0, }, { 22 }, { 0, }, { 0, }, { 0, } },
2215 #ifndef DISASM_ONLY
2216     {
2217       0ULL,
2218       0xf800000000000000ULL,
2219       0ULL,
2220       0ULL,
2221       0ULL
2222     },
2223     {
2224       -1ULL,
2225       0x6000000000000000ULL,
2226       -1ULL,
2227       -1ULL,
2228       -1ULL
2229     }
2230 #endif
2231   },
2232   { "jalr", TILEPRO_OPC_JALR, 0x2, 1, TREG_LR, 1,
2233     { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
2234 #ifndef DISASM_ONLY
2235     {
2236       0ULL,
2237       0xfbfe000000000000ULL,
2238       0ULL,
2239       0ULL,
2240       0ULL
2241     },
2242     {
2243       -1ULL,
2244       0x0814000000000000ULL,
2245       -1ULL,
2246       -1ULL,
2247       -1ULL
2248     }
2249 #endif
2250   },
2251   { "jalrp", TILEPRO_OPC_JALRP, 0x2, 1, TREG_LR, 1,
2252     { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
2253 #ifndef DISASM_ONLY
2254     {
2255       0ULL,
2256       0xfbfe000000000000ULL,
2257       0ULL,
2258       0ULL,
2259       0ULL
2260     },
2261     {
2262       -1ULL,
2263       0x0812000000000000ULL,
2264       -1ULL,
2265       -1ULL,
2266       -1ULL
2267     }
2268 #endif
2269   },
2270   { "jb", TILEPRO_OPC_JB, 0x2, 1, TREG_ZERO, 1,
2271     { { 0, }, { 22 }, { 0, }, { 0, }, { 0, } },
2272 #ifndef DISASM_ONLY
2273     {
2274       0ULL,
2275       0xf800000000000000ULL,
2276       0ULL,
2277       0ULL,
2278       0ULL
2279     },
2280     {
2281       -1ULL,
2282       0x5800000000000000ULL,
2283       -1ULL,
2284       -1ULL,
2285       -1ULL
2286     }
2287 #endif
2288   },
2289   { "jf", TILEPRO_OPC_JF, 0x2, 1, TREG_ZERO, 1,
2290     { { 0, }, { 22 }, { 0, }, { 0, }, { 0, } },
2291 #ifndef DISASM_ONLY
2292     {
2293       0ULL,
2294       0xf800000000000000ULL,
2295       0ULL,
2296       0ULL,
2297       0ULL
2298     },
2299     {
2300       -1ULL,
2301       0x5000000000000000ULL,
2302       -1ULL,
2303       -1ULL,
2304       -1ULL
2305     }
2306 #endif
2307   },
2308   { "jr", TILEPRO_OPC_JR, 0x2, 1, TREG_ZERO, 1,
2309     { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
2310 #ifndef DISASM_ONLY
2311     {
2312       0ULL,
2313       0xfbfe000000000000ULL,
2314       0ULL,
2315       0ULL,
2316       0ULL
2317     },
2318     {
2319       -1ULL,
2320       0x0818000000000000ULL,
2321       -1ULL,
2322       -1ULL,
2323       -1ULL
2324     }
2325 #endif
2326   },
2327   { "jrp", TILEPRO_OPC_JRP, 0x2, 1, TREG_ZERO, 1,
2328     { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
2329 #ifndef DISASM_ONLY
2330     {
2331       0ULL,
2332       0xfbfe000000000000ULL,
2333       0ULL,
2334       0ULL,
2335       0ULL
2336     },
2337     {
2338       -1ULL,
2339       0x0816000000000000ULL,
2340       -1ULL,
2341       -1ULL,
2342       -1ULL
2343     }
2344 #endif
2345   },
2346   { "lb", TILEPRO_OPC_LB, 0x12, 2, TREG_ZERO, 1,
2347     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 23, 15 } },
2348 #ifndef DISASM_ONLY
2349     {
2350       0ULL,
2351       0xfffff80000000000ULL,
2352       0ULL,
2353       0ULL,
2354       0x8700000000000000ULL
2355     },
2356     {
2357       -1ULL,
2358       0x400b500000000000ULL,
2359       -1ULL,
2360       -1ULL,
2361       0x8000000000000000ULL
2362     }
2363 #endif
2364   },
2365   { "lb.sn", TILEPRO_OPC_LB_SN, 0x2, 2, TREG_SN, 1,
2366     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
2367 #ifndef DISASM_ONLY
2368     {
2369       0ULL,
2370       0xfffff80000000000ULL,
2371       0ULL,
2372       0ULL,
2373       0ULL
2374     },
2375     {
2376       -1ULL,
2377       0x440b500000000000ULL,
2378       -1ULL,
2379       -1ULL,
2380       -1ULL
2381     }
2382 #endif
2383   },
2384   { "lb_u", TILEPRO_OPC_LB_U, 0x12, 2, TREG_ZERO, 1,
2385     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 23, 15 } },
2386 #ifndef DISASM_ONLY
2387     {
2388       0ULL,
2389       0xfffff80000000000ULL,
2390       0ULL,
2391       0ULL,
2392       0x8700000000000000ULL
2393     },
2394     {
2395       -1ULL,
2396       0x400b580000000000ULL,
2397       -1ULL,
2398       -1ULL,
2399       0x8100000000000000ULL
2400     }
2401 #endif
2402   },
2403   { "lb_u.sn", TILEPRO_OPC_LB_U_SN, 0x2, 2, TREG_SN, 1,
2404     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
2405 #ifndef DISASM_ONLY
2406     {
2407       0ULL,
2408       0xfffff80000000000ULL,
2409       0ULL,
2410       0ULL,
2411       0ULL
2412     },
2413     {
2414       -1ULL,
2415       0x440b580000000000ULL,
2416       -1ULL,
2417       -1ULL,
2418       -1ULL
2419     }
2420 #endif
2421   },
2422   { "lbadd", TILEPRO_OPC_LBADD, 0x2, 3, TREG_ZERO, 1,
2423     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2424 #ifndef DISASM_ONLY
2425     {
2426       0ULL,
2427       0xfff8000000000000ULL,
2428       0ULL,
2429       0ULL,
2430       0ULL
2431     },
2432     {
2433       -1ULL,
2434       0x30b0000000000000ULL,
2435       -1ULL,
2436       -1ULL,
2437       -1ULL
2438     }
2439 #endif
2440   },
2441   { "lbadd.sn", TILEPRO_OPC_LBADD_SN, 0x2, 3, TREG_SN, 1,
2442     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2443 #ifndef DISASM_ONLY
2444     {
2445       0ULL,
2446       0xfff8000000000000ULL,
2447       0ULL,
2448       0ULL,
2449       0ULL
2450     },
2451     {
2452       -1ULL,
2453       0x34b0000000000000ULL,
2454       -1ULL,
2455       -1ULL,
2456       -1ULL
2457     }
2458 #endif
2459   },
2460   { "lbadd_u", TILEPRO_OPC_LBADD_U, 0x2, 3, TREG_ZERO, 1,
2461     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2462 #ifndef DISASM_ONLY
2463     {
2464       0ULL,
2465       0xfff8000000000000ULL,
2466       0ULL,
2467       0ULL,
2468       0ULL
2469     },
2470     {
2471       -1ULL,
2472       0x30b8000000000000ULL,
2473       -1ULL,
2474       -1ULL,
2475       -1ULL
2476     }
2477 #endif
2478   },
2479   { "lbadd_u.sn", TILEPRO_OPC_LBADD_U_SN, 0x2, 3, TREG_SN, 1,
2480     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2481 #ifndef DISASM_ONLY
2482     {
2483       0ULL,
2484       0xfff8000000000000ULL,
2485       0ULL,
2486       0ULL,
2487       0ULL
2488     },
2489     {
2490       -1ULL,
2491       0x34b8000000000000ULL,
2492       -1ULL,
2493       -1ULL,
2494       -1ULL
2495     }
2496 #endif
2497   },
2498   { "lh", TILEPRO_OPC_LH, 0x12, 2, TREG_ZERO, 1,
2499     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 23, 15 } },
2500 #ifndef DISASM_ONLY
2501     {
2502       0ULL,
2503       0xfffff80000000000ULL,
2504       0ULL,
2505       0ULL,
2506       0x8700000000000000ULL
2507     },
2508     {
2509       -1ULL,
2510       0x400b600000000000ULL,
2511       -1ULL,
2512       -1ULL,
2513       0x8200000000000000ULL
2514     }
2515 #endif
2516   },
2517   { "lh.sn", TILEPRO_OPC_LH_SN, 0x2, 2, TREG_SN, 1,
2518     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
2519 #ifndef DISASM_ONLY
2520     {
2521       0ULL,
2522       0xfffff80000000000ULL,
2523       0ULL,
2524       0ULL,
2525       0ULL
2526     },
2527     {
2528       -1ULL,
2529       0x440b600000000000ULL,
2530       -1ULL,
2531       -1ULL,
2532       -1ULL
2533     }
2534 #endif
2535   },
2536   { "lh_u", TILEPRO_OPC_LH_U, 0x12, 2, TREG_ZERO, 1,
2537     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 23, 15 } },
2538 #ifndef DISASM_ONLY
2539     {
2540       0ULL,
2541       0xfffff80000000000ULL,
2542       0ULL,
2543       0ULL,
2544       0x8700000000000000ULL
2545     },
2546     {
2547       -1ULL,
2548       0x400b680000000000ULL,
2549       -1ULL,
2550       -1ULL,
2551       0x8300000000000000ULL
2552     }
2553 #endif
2554   },
2555   { "lh_u.sn", TILEPRO_OPC_LH_U_SN, 0x2, 2, TREG_SN, 1,
2556     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
2557 #ifndef DISASM_ONLY
2558     {
2559       0ULL,
2560       0xfffff80000000000ULL,
2561       0ULL,
2562       0ULL,
2563       0ULL
2564     },
2565     {
2566       -1ULL,
2567       0x440b680000000000ULL,
2568       -1ULL,
2569       -1ULL,
2570       -1ULL
2571     }
2572 #endif
2573   },
2574   { "lhadd", TILEPRO_OPC_LHADD, 0x2, 3, TREG_ZERO, 1,
2575     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2576 #ifndef DISASM_ONLY
2577     {
2578       0ULL,
2579       0xfff8000000000000ULL,
2580       0ULL,
2581       0ULL,
2582       0ULL
2583     },
2584     {
2585       -1ULL,
2586       0x30c0000000000000ULL,
2587       -1ULL,
2588       -1ULL,
2589       -1ULL
2590     }
2591 #endif
2592   },
2593   { "lhadd.sn", TILEPRO_OPC_LHADD_SN, 0x2, 3, TREG_SN, 1,
2594     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2595 #ifndef DISASM_ONLY
2596     {
2597       0ULL,
2598       0xfff8000000000000ULL,
2599       0ULL,
2600       0ULL,
2601       0ULL
2602     },
2603     {
2604       -1ULL,
2605       0x34c0000000000000ULL,
2606       -1ULL,
2607       -1ULL,
2608       -1ULL
2609     }
2610 #endif
2611   },
2612   { "lhadd_u", TILEPRO_OPC_LHADD_U, 0x2, 3, TREG_ZERO, 1,
2613     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2614 #ifndef DISASM_ONLY
2615     {
2616       0ULL,
2617       0xfff8000000000000ULL,
2618       0ULL,
2619       0ULL,
2620       0ULL
2621     },
2622     {
2623       -1ULL,
2624       0x30c8000000000000ULL,
2625       -1ULL,
2626       -1ULL,
2627       -1ULL
2628     }
2629 #endif
2630   },
2631   { "lhadd_u.sn", TILEPRO_OPC_LHADD_U_SN, 0x2, 3, TREG_SN, 1,
2632     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2633 #ifndef DISASM_ONLY
2634     {
2635       0ULL,
2636       0xfff8000000000000ULL,
2637       0ULL,
2638       0ULL,
2639       0ULL
2640     },
2641     {
2642       -1ULL,
2643       0x34c8000000000000ULL,
2644       -1ULL,
2645       -1ULL,
2646       -1ULL
2647     }
2648 #endif
2649   },
2650   { "lnk", TILEPRO_OPC_LNK, 0x2, 1, TREG_ZERO, 1,
2651     { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
2652 #ifndef DISASM_ONLY
2653     {
2654       0ULL,
2655       0xfffe000000000000ULL,
2656       0ULL,
2657       0ULL,
2658       0ULL
2659     },
2660     {
2661       -1ULL,
2662       0x081a000000000000ULL,
2663       -1ULL,
2664       -1ULL,
2665       -1ULL
2666     }
2667 #endif
2668   },
2669   { "lnk.sn", TILEPRO_OPC_LNK_SN, 0x2, 1, TREG_SN, 1,
2670     { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } },
2671 #ifndef DISASM_ONLY
2672     {
2673       0ULL,
2674       0xfffe000000000000ULL,
2675       0ULL,
2676       0ULL,
2677       0ULL
2678     },
2679     {
2680       -1ULL,
2681       0x0c1a000000000000ULL,
2682       -1ULL,
2683       -1ULL,
2684       -1ULL
2685     }
2686 #endif
2687   },
2688   { "lw", TILEPRO_OPC_LW, 0x12, 2, TREG_ZERO, 1,
2689     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 23, 15 } },
2690 #ifndef DISASM_ONLY
2691     {
2692       0ULL,
2693       0xfffff80000000000ULL,
2694       0ULL,
2695       0ULL,
2696       0x8700000000000000ULL
2697     },
2698     {
2699       -1ULL,
2700       0x400b700000000000ULL,
2701       -1ULL,
2702       -1ULL,
2703       0x8400000000000000ULL
2704     }
2705 #endif
2706   },
2707   { "lw.sn", TILEPRO_OPC_LW_SN, 0x2, 2, TREG_SN, 1,
2708     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
2709 #ifndef DISASM_ONLY
2710     {
2711       0ULL,
2712       0xfffff80000000000ULL,
2713       0ULL,
2714       0ULL,
2715       0ULL
2716     },
2717     {
2718       -1ULL,
2719       0x440b700000000000ULL,
2720       -1ULL,
2721       -1ULL,
2722       -1ULL
2723     }
2724 #endif
2725   },
2726   { "lw_na", TILEPRO_OPC_LW_NA, 0x2, 2, TREG_ZERO, 1,
2727     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
2728 #ifndef DISASM_ONLY
2729     {
2730       0ULL,
2731       0xfffff80000000000ULL,
2732       0ULL,
2733       0ULL,
2734       0ULL
2735     },
2736     {
2737       -1ULL,
2738       0x400bc00000000000ULL,
2739       -1ULL,
2740       -1ULL,
2741       -1ULL
2742     }
2743 #endif
2744   },
2745   { "lw_na.sn", TILEPRO_OPC_LW_NA_SN, 0x2, 2, TREG_SN, 1,
2746     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
2747 #ifndef DISASM_ONLY
2748     {
2749       0ULL,
2750       0xfffff80000000000ULL,
2751       0ULL,
2752       0ULL,
2753       0ULL
2754     },
2755     {
2756       -1ULL,
2757       0x440bc00000000000ULL,
2758       -1ULL,
2759       -1ULL,
2760       -1ULL
2761     }
2762 #endif
2763   },
2764   { "lwadd", TILEPRO_OPC_LWADD, 0x2, 3, TREG_ZERO, 1,
2765     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2766 #ifndef DISASM_ONLY
2767     {
2768       0ULL,
2769       0xfff8000000000000ULL,
2770       0ULL,
2771       0ULL,
2772       0ULL
2773     },
2774     {
2775       -1ULL,
2776       0x30d0000000000000ULL,
2777       -1ULL,
2778       -1ULL,
2779       -1ULL
2780     }
2781 #endif
2782   },
2783   { "lwadd.sn", TILEPRO_OPC_LWADD_SN, 0x2, 3, TREG_SN, 1,
2784     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2785 #ifndef DISASM_ONLY
2786     {
2787       0ULL,
2788       0xfff8000000000000ULL,
2789       0ULL,
2790       0ULL,
2791       0ULL
2792     },
2793     {
2794       -1ULL,
2795       0x34d0000000000000ULL,
2796       -1ULL,
2797       -1ULL,
2798       -1ULL
2799     }
2800 #endif
2801   },
2802   { "lwadd_na", TILEPRO_OPC_LWADD_NA, 0x2, 3, TREG_ZERO, 1,
2803     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2804 #ifndef DISASM_ONLY
2805     {
2806       0ULL,
2807       0xfff8000000000000ULL,
2808       0ULL,
2809       0ULL,
2810       0ULL
2811     },
2812     {
2813       -1ULL,
2814       0x30d8000000000000ULL,
2815       -1ULL,
2816       -1ULL,
2817       -1ULL
2818     }
2819 #endif
2820   },
2821   { "lwadd_na.sn", TILEPRO_OPC_LWADD_NA_SN, 0x2, 3, TREG_SN, 1,
2822     { { 0, }, { 7, 24, 1 }, { 0, }, { 0, }, { 0, } },
2823 #ifndef DISASM_ONLY
2824     {
2825       0ULL,
2826       0xfff8000000000000ULL,
2827       0ULL,
2828       0ULL,
2829       0ULL
2830     },
2831     {
2832       -1ULL,
2833       0x34d8000000000000ULL,
2834       -1ULL,
2835       -1ULL,
2836       -1ULL
2837     }
2838 #endif
2839   },
2840   { "maxb_u", TILEPRO_OPC_MAXB_U, 0x3, 3, TREG_ZERO, 1,
2841     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2842 #ifndef DISASM_ONLY
2843     {
2844       0x800000007ffc0000ULL,
2845       0xfffe000000000000ULL,
2846       0ULL,
2847       0ULL,
2848       0ULL
2849     },
2850     {
2851       0x00000000003c0000ULL,
2852       0x081c000000000000ULL,
2853       -1ULL,
2854       -1ULL,
2855       -1ULL
2856     }
2857 #endif
2858   },
2859   { "maxb_u.sn", TILEPRO_OPC_MAXB_U_SN, 0x3, 3, TREG_SN, 1,
2860     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2861 #ifndef DISASM_ONLY
2862     {
2863       0x800000007ffc0000ULL,
2864       0xfffe000000000000ULL,
2865       0ULL,
2866       0ULL,
2867       0ULL
2868     },
2869     {
2870       0x00000000083c0000ULL,
2871       0x0c1c000000000000ULL,
2872       -1ULL,
2873       -1ULL,
2874       -1ULL
2875     }
2876 #endif
2877   },
2878   { "maxh", TILEPRO_OPC_MAXH, 0x3, 3, TREG_ZERO, 1,
2879     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2880 #ifndef DISASM_ONLY
2881     {
2882       0x800000007ffc0000ULL,
2883       0xfffe000000000000ULL,
2884       0ULL,
2885       0ULL,
2886       0ULL
2887     },
2888     {
2889       0x0000000000400000ULL,
2890       0x081e000000000000ULL,
2891       -1ULL,
2892       -1ULL,
2893       -1ULL
2894     }
2895 #endif
2896   },
2897   { "maxh.sn", TILEPRO_OPC_MAXH_SN, 0x3, 3, TREG_SN, 1,
2898     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
2899 #ifndef DISASM_ONLY
2900     {
2901       0x800000007ffc0000ULL,
2902       0xfffe000000000000ULL,
2903       0ULL,
2904       0ULL,
2905       0ULL
2906     },
2907     {
2908       0x0000000008400000ULL,
2909       0x0c1e000000000000ULL,
2910       -1ULL,
2911       -1ULL,
2912       -1ULL
2913     }
2914 #endif
2915   },
2916   { "maxib_u", TILEPRO_OPC_MAXIB_U, 0x3, 3, TREG_ZERO, 1,
2917     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
2918 #ifndef DISASM_ONLY
2919     {
2920       0x800000007ff00000ULL,
2921       0xfff8000000000000ULL,
2922       0ULL,
2923       0ULL,
2924       0ULL
2925     },
2926     {
2927       0x0000000040400000ULL,
2928       0x3028000000000000ULL,
2929       -1ULL,
2930       -1ULL,
2931       -1ULL
2932     }
2933 #endif
2934   },
2935   { "maxib_u.sn", TILEPRO_OPC_MAXIB_U_SN, 0x3, 3, TREG_SN, 1,
2936     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
2937 #ifndef DISASM_ONLY
2938     {
2939       0x800000007ff00000ULL,
2940       0xfff8000000000000ULL,
2941       0ULL,
2942       0ULL,
2943       0ULL
2944     },
2945     {
2946       0x0000000048400000ULL,
2947       0x3428000000000000ULL,
2948       -1ULL,
2949       -1ULL,
2950       -1ULL
2951     }
2952 #endif
2953   },
2954   { "maxih", TILEPRO_OPC_MAXIH, 0x3, 3, TREG_ZERO, 1,
2955     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
2956 #ifndef DISASM_ONLY
2957     {
2958       0x800000007ff00000ULL,
2959       0xfff8000000000000ULL,
2960       0ULL,
2961       0ULL,
2962       0ULL
2963     },
2964     {
2965       0x0000000040500000ULL,
2966       0x3030000000000000ULL,
2967       -1ULL,
2968       -1ULL,
2969       -1ULL
2970     }
2971 #endif
2972   },
2973   { "maxih.sn", TILEPRO_OPC_MAXIH_SN, 0x3, 3, TREG_SN, 1,
2974     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
2975 #ifndef DISASM_ONLY
2976     {
2977       0x800000007ff00000ULL,
2978       0xfff8000000000000ULL,
2979       0ULL,
2980       0ULL,
2981       0ULL
2982     },
2983     {
2984       0x0000000048500000ULL,
2985       0x3430000000000000ULL,
2986       -1ULL,
2987       -1ULL,
2988       -1ULL
2989     }
2990 #endif
2991   },
2992   { "mf", TILEPRO_OPC_MF, 0x2, 0, TREG_ZERO, 1,
2993     { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
2994 #ifndef DISASM_ONLY
2995     {
2996       0ULL,
2997       0xfbfff80000000000ULL,
2998       0ULL,
2999       0ULL,
3000       0ULL
3001     },
3002     {
3003       -1ULL,
3004       0x400b780000000000ULL,
3005       -1ULL,
3006       -1ULL,
3007       -1ULL
3008     }
3009 #endif
3010   },
3011   { "mfspr", TILEPRO_OPC_MFSPR, 0x2, 2, TREG_ZERO, 1,
3012     { { 0, }, { 7, 25 }, { 0, }, { 0, }, { 0, } },
3013 #ifndef DISASM_ONLY
3014     {
3015       0ULL,
3016       0xfbf8000000000000ULL,
3017       0ULL,
3018       0ULL,
3019       0ULL
3020     },
3021     {
3022       -1ULL,
3023       0x3038000000000000ULL,
3024       -1ULL,
3025       -1ULL,
3026       -1ULL
3027     }
3028 #endif
3029   },
3030   { "minb_u", TILEPRO_OPC_MINB_U, 0x3, 3, TREG_ZERO, 1,
3031     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
3032 #ifndef DISASM_ONLY
3033     {
3034       0x800000007ffc0000ULL,
3035       0xfffe000000000000ULL,
3036       0ULL,
3037       0ULL,
3038       0ULL
3039     },
3040     {
3041       0x0000000000440000ULL,
3042       0x0820000000000000ULL,
3043       -1ULL,
3044       -1ULL,
3045       -1ULL
3046     }
3047 #endif
3048   },
3049   { "minb_u.sn", TILEPRO_OPC_MINB_U_SN, 0x3, 3, TREG_SN, 1,
3050     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
3051 #ifndef DISASM_ONLY
3052     {
3053       0x800000007ffc0000ULL,
3054       0xfffe000000000000ULL,
3055       0ULL,
3056       0ULL,
3057       0ULL
3058     },
3059     {
3060       0x0000000008440000ULL,
3061       0x0c20000000000000ULL,
3062       -1ULL,
3063       -1ULL,
3064       -1ULL
3065     }
3066 #endif
3067   },
3068   { "minh", TILEPRO_OPC_MINH, 0x3, 3, TREG_ZERO, 1,
3069     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
3070 #ifndef DISASM_ONLY
3071     {
3072       0x800000007ffc0000ULL,
3073       0xfffe000000000000ULL,
3074       0ULL,
3075       0ULL,
3076       0ULL
3077     },
3078     {
3079       0x0000000000480000ULL,
3080       0x0822000000000000ULL,
3081       -1ULL,
3082       -1ULL,
3083       -1ULL
3084     }
3085 #endif
3086   },
3087   { "minh.sn", TILEPRO_OPC_MINH_SN, 0x3, 3, TREG_SN, 1,
3088     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
3089 #ifndef DISASM_ONLY
3090     {
3091       0x800000007ffc0000ULL,
3092       0xfffe000000000000ULL,
3093       0ULL,
3094       0ULL,
3095       0ULL
3096     },
3097     {
3098       0x0000000008480000ULL,
3099       0x0c22000000000000ULL,
3100       -1ULL,
3101       -1ULL,
3102       -1ULL
3103     }
3104 #endif
3105   },
3106   { "minib_u", TILEPRO_OPC_MINIB_U, 0x3, 3, TREG_ZERO, 1,
3107     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
3108 #ifndef DISASM_ONLY
3109     {
3110       0x800000007ff00000ULL,
3111       0xfff8000000000000ULL,
3112       0ULL,
3113       0ULL,
3114       0ULL
3115     },
3116     {
3117       0x0000000040600000ULL,
3118       0x3040000000000000ULL,
3119       -1ULL,
3120       -1ULL,
3121       -1ULL
3122     }
3123 #endif
3124   },
3125   { "minib_u.sn", TILEPRO_OPC_MINIB_U_SN, 0x3, 3, TREG_SN, 1,
3126     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
3127 #ifndef DISASM_ONLY
3128     {
3129       0x800000007ff00000ULL,
3130       0xfff8000000000000ULL,
3131       0ULL,
3132       0ULL,
3133       0ULL
3134     },
3135     {
3136       0x0000000048600000ULL,
3137       0x3440000000000000ULL,
3138       -1ULL,
3139       -1ULL,
3140       -1ULL
3141     }
3142 #endif
3143   },
3144   { "minih", TILEPRO_OPC_MINIH, 0x3, 3, TREG_ZERO, 1,
3145     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
3146 #ifndef DISASM_ONLY
3147     {
3148       0x800000007ff00000ULL,
3149       0xfff8000000000000ULL,
3150       0ULL,
3151       0ULL,
3152       0ULL
3153     },
3154     {
3155       0x0000000040700000ULL,
3156       0x3048000000000000ULL,
3157       -1ULL,
3158       -1ULL,
3159       -1ULL
3160     }
3161 #endif
3162   },
3163   { "minih.sn", TILEPRO_OPC_MINIH_SN, 0x3, 3, TREG_SN, 1,
3164     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
3165 #ifndef DISASM_ONLY
3166     {
3167       0x800000007ff00000ULL,
3168       0xfff8000000000000ULL,
3169       0ULL,
3170       0ULL,
3171       0ULL
3172     },
3173     {
3174       0x0000000048700000ULL,
3175       0x3448000000000000ULL,
3176       -1ULL,
3177       -1ULL,
3178       -1ULL
3179     }
3180 #endif
3181   },
3182   { "mm", TILEPRO_OPC_MM, 0x3, 5, TREG_ZERO, 1,
3183     { { 9, 10, 16, 26, 27 }, { 7, 8, 17, 28, 29 }, { 0, }, { 0, }, { 0, } },
3184 #ifndef DISASM_ONLY
3185     {
3186       0x8000000070000000ULL,
3187       0xf800000000000000ULL,
3188       0ULL,
3189       0ULL,
3190       0ULL
3191     },
3192     {
3193       0x0000000060000000ULL,
3194       0x3800000000000000ULL,
3195       -1ULL,
3196       -1ULL,
3197       -1ULL
3198     }
3199 #endif
3200   },
3201   { "mnz", TILEPRO_OPC_MNZ, 0xf, 3, TREG_ZERO, 1,
3202     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
3203 #ifndef DISASM_ONLY
3204     {
3205       0x800000007ffc0000ULL,
3206       0xfffe000000000000ULL,
3207       0x80000000780c0000ULL,
3208       0xf806000000000000ULL,
3209       0ULL
3210     },
3211     {
3212       0x0000000000540000ULL,
3213       0x0828000000000000ULL,
3214       0x8000000010000000ULL,
3215       0x9002000000000000ULL,
3216       -1ULL
3217     }
3218 #endif
3219   },
3220   { "mnz.sn", TILEPRO_OPC_MNZ_SN, 0x3, 3, TREG_SN, 1,
3221     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
3222 #ifndef DISASM_ONLY
3223     {
3224       0x800000007ffc0000ULL,
3225       0xfffe000000000000ULL,
3226       0ULL,
3227       0ULL,
3228       0ULL
3229     },
3230     {
3231       0x0000000008540000ULL,
3232       0x0c28000000000000ULL,
3233       -1ULL,
3234       -1ULL,
3235       -1ULL
3236     }
3237 #endif
3238   },
3239   { "mnzb", TILEPRO_OPC_MNZB, 0x3, 3, TREG_ZERO, 1,
3240     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
3241 #ifndef DISASM_ONLY
3242     {
3243       0x800000007ffc0000ULL,
3244       0xfffe000000000000ULL,
3245       0ULL,
3246       0ULL,
3247       0ULL
3248     },
3249     {
3250       0x00000000004c0000ULL,
3251       0x0824000000000000ULL,
3252       -1ULL,
3253       -1ULL,
3254       -1ULL
3255     }
3256 #endif
3257   },
3258   { "mnzb.sn", TILEPRO_OPC_MNZB_SN, 0x3, 3, TREG_SN, 1,
3259     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
3260 #ifndef DISASM_ONLY
3261     {
3262       0x800000007ffc0000ULL,
3263       0xfffe000000000000ULL,
3264       0ULL,
3265       0ULL,
3266       0ULL
3267     },
3268     {
3269       0x00000000084c0000ULL,
3270       0x0c24000000000000ULL,
3271       -1ULL,
3272       -1ULL,
3273       -1ULL
3274     }
3275 #endif
3276   },
3277   { "mnzh", TILEPRO_OPC_MNZH, 0x3, 3, TREG_ZERO, 1,
3278     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
3279 #ifndef DISASM_ONLY
3280     {
3281       0x800000007ffc0000ULL,
3282       0xfffe000000000000ULL,
3283       0ULL,
3284       0ULL,
3285       0ULL
3286     },
3287     {
3288       0x0000000000500000ULL,
3289       0x0826000000000000ULL,
3290       -1ULL,
3291       -1ULL,
3292       -1ULL
3293     }
3294 #endif
3295   },
3296   { "mnzh.sn", TILEPRO_OPC_MNZH_SN, 0x3, 3, TREG_SN, 1,
3297     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
3298 #ifndef DISASM_ONLY
3299     {
3300       0x800000007ffc0000ULL,
3301       0xfffe000000000000ULL,
3302       0ULL,
3303       0ULL,
3304       0ULL
3305     },
3306     {
3307       0x0000000008500000ULL,
3308       0x0c26000000000000ULL,
3309       -1ULL,
3310       -1ULL,
3311       -1ULL
3312     }
3313 #endif
3314   },
3315   { "mtspr", TILEPRO_OPC_MTSPR, 0x2, 2, TREG_ZERO, 1,
3316     { { 0, }, { 30, 8 }, { 0, }, { 0, }, { 0, } },
3317 #ifndef DISASM_ONLY
3318     {
3319       0ULL,
3320       0xfbf8000000000000ULL,
3321       0ULL,
3322       0ULL,
3323       0ULL
3324     },
3325     {
3326       -1ULL,
3327       0x3050000000000000ULL,
3328       -1ULL,
3329       -1ULL,
3330       -1ULL
3331     }
3332 #endif
3333   },
3334   { "mulhh_ss", TILEPRO_OPC_MULHH_SS, 0x5, 3, TREG_ZERO, 1,
3335     { { 9, 10, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
3336 #ifndef DISASM_ONLY
3337     {
3338       0x800000007ffc0000ULL,
3339       0ULL,
3340       0x80000000780c0000ULL,
3341       0ULL,
3342       0ULL
3343     },
3344     {
3345       0x0000000000680000ULL,
3346       -1ULL,
3347       0x8000000038000000ULL,
3348       -1ULL,
3349       -1ULL
3350     }
3351 #endif
3352   },
3353   { "mulhh_ss.sn", TILEPRO_OPC_MULHH_SS_SN, 0x1, 3, TREG_SN, 1,
3354     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3355 #ifndef DISASM_ONLY
3356     {
3357       0x800000007ffc0000ULL,
3358       0ULL,
3359       0ULL,
3360       0ULL,
3361       0ULL
3362     },
3363     {
3364       0x0000000008680000ULL,
3365       -1ULL,
3366       -1ULL,
3367       -1ULL,
3368       -1ULL
3369     }
3370 #endif
3371   },
3372   { "mulhh_su", TILEPRO_OPC_MULHH_SU, 0x1, 3, TREG_ZERO, 1,
3373     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3374 #ifndef DISASM_ONLY
3375     {
3376       0x800000007ffc0000ULL,
3377       0ULL,
3378       0ULL,
3379       0ULL,
3380       0ULL
3381     },
3382     {
3383       0x00000000006c0000ULL,
3384       -1ULL,
3385       -1ULL,
3386       -1ULL,
3387       -1ULL
3388     }
3389 #endif
3390   },
3391   { "mulhh_su.sn", TILEPRO_OPC_MULHH_SU_SN, 0x1, 3, TREG_SN, 1,
3392     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3393 #ifndef DISASM_ONLY
3394     {
3395       0x800000007ffc0000ULL,
3396       0ULL,
3397       0ULL,
3398       0ULL,
3399       0ULL
3400     },
3401     {
3402       0x00000000086c0000ULL,
3403       -1ULL,
3404       -1ULL,
3405       -1ULL,
3406       -1ULL
3407     }
3408 #endif
3409   },
3410   { "mulhh_uu", TILEPRO_OPC_MULHH_UU, 0x5, 3, TREG_ZERO, 1,
3411     { { 9, 10, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
3412 #ifndef DISASM_ONLY
3413     {
3414       0x800000007ffc0000ULL,
3415       0ULL,
3416       0x80000000780c0000ULL,
3417       0ULL,
3418       0ULL
3419     },
3420     {
3421       0x0000000000700000ULL,
3422       -1ULL,
3423       0x8000000038040000ULL,
3424       -1ULL,
3425       -1ULL
3426     }
3427 #endif
3428   },
3429   { "mulhh_uu.sn", TILEPRO_OPC_MULHH_UU_SN, 0x1, 3, TREG_SN, 1,
3430     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3431 #ifndef DISASM_ONLY
3432     {
3433       0x800000007ffc0000ULL,
3434       0ULL,
3435       0ULL,
3436       0ULL,
3437       0ULL
3438     },
3439     {
3440       0x0000000008700000ULL,
3441       -1ULL,
3442       -1ULL,
3443       -1ULL,
3444       -1ULL
3445     }
3446 #endif
3447   },
3448   { "mulhha_ss", TILEPRO_OPC_MULHHA_SS, 0x5, 3, TREG_ZERO, 1,
3449     { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
3450 #ifndef DISASM_ONLY
3451     {
3452       0x800000007ffc0000ULL,
3453       0ULL,
3454       0x80000000780c0000ULL,
3455       0ULL,
3456       0ULL
3457     },
3458     {
3459       0x0000000000580000ULL,
3460       -1ULL,
3461       0x8000000040000000ULL,
3462       -1ULL,
3463       -1ULL
3464     }
3465 #endif
3466   },
3467   { "mulhha_ss.sn", TILEPRO_OPC_MULHHA_SS_SN, 0x1, 3, TREG_SN, 1,
3468     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3469 #ifndef DISASM_ONLY
3470     {
3471       0x800000007ffc0000ULL,
3472       0ULL,
3473       0ULL,
3474       0ULL,
3475       0ULL
3476     },
3477     {
3478       0x0000000008580000ULL,
3479       -1ULL,
3480       -1ULL,
3481       -1ULL,
3482       -1ULL
3483     }
3484 #endif
3485   },
3486   { "mulhha_su", TILEPRO_OPC_MULHHA_SU, 0x1, 3, TREG_ZERO, 1,
3487     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3488 #ifndef DISASM_ONLY
3489     {
3490       0x800000007ffc0000ULL,
3491       0ULL,
3492       0ULL,
3493       0ULL,
3494       0ULL
3495     },
3496     {
3497       0x00000000005c0000ULL,
3498       -1ULL,
3499       -1ULL,
3500       -1ULL,
3501       -1ULL
3502     }
3503 #endif
3504   },
3505   { "mulhha_su.sn", TILEPRO_OPC_MULHHA_SU_SN, 0x1, 3, TREG_SN, 1,
3506     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3507 #ifndef DISASM_ONLY
3508     {
3509       0x800000007ffc0000ULL,
3510       0ULL,
3511       0ULL,
3512       0ULL,
3513       0ULL
3514     },
3515     {
3516       0x00000000085c0000ULL,
3517       -1ULL,
3518       -1ULL,
3519       -1ULL,
3520       -1ULL
3521     }
3522 #endif
3523   },
3524   { "mulhha_uu", TILEPRO_OPC_MULHHA_UU, 0x5, 3, TREG_ZERO, 1,
3525     { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
3526 #ifndef DISASM_ONLY
3527     {
3528       0x800000007ffc0000ULL,
3529       0ULL,
3530       0x80000000780c0000ULL,
3531       0ULL,
3532       0ULL
3533     },
3534     {
3535       0x0000000000600000ULL,
3536       -1ULL,
3537       0x8000000040040000ULL,
3538       -1ULL,
3539       -1ULL
3540     }
3541 #endif
3542   },
3543   { "mulhha_uu.sn", TILEPRO_OPC_MULHHA_UU_SN, 0x1, 3, TREG_SN, 1,
3544     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3545 #ifndef DISASM_ONLY
3546     {
3547       0x800000007ffc0000ULL,
3548       0ULL,
3549       0ULL,
3550       0ULL,
3551       0ULL
3552     },
3553     {
3554       0x0000000008600000ULL,
3555       -1ULL,
3556       -1ULL,
3557       -1ULL,
3558       -1ULL
3559     }
3560 #endif
3561   },
3562   { "mulhhsa_uu", TILEPRO_OPC_MULHHSA_UU, 0x1, 3, TREG_ZERO, 1,
3563     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3564 #ifndef DISASM_ONLY
3565     {
3566       0x800000007ffc0000ULL,
3567       0ULL,
3568       0ULL,
3569       0ULL,
3570       0ULL
3571     },
3572     {
3573       0x0000000000640000ULL,
3574       -1ULL,
3575       -1ULL,
3576       -1ULL,
3577       -1ULL
3578     }
3579 #endif
3580   },
3581   { "mulhhsa_uu.sn", TILEPRO_OPC_MULHHSA_UU_SN, 0x1, 3, TREG_SN, 1,
3582     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3583 #ifndef DISASM_ONLY
3584     {
3585       0x800000007ffc0000ULL,
3586       0ULL,
3587       0ULL,
3588       0ULL,
3589       0ULL
3590     },
3591     {
3592       0x0000000008640000ULL,
3593       -1ULL,
3594       -1ULL,
3595       -1ULL,
3596       -1ULL
3597     }
3598 #endif
3599   },
3600   { "mulhl_ss", TILEPRO_OPC_MULHL_SS, 0x1, 3, TREG_ZERO, 1,
3601     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3602 #ifndef DISASM_ONLY
3603     {
3604       0x800000007ffc0000ULL,
3605       0ULL,
3606       0ULL,
3607       0ULL,
3608       0ULL
3609     },
3610     {
3611       0x0000000000880000ULL,
3612       -1ULL,
3613       -1ULL,
3614       -1ULL,
3615       -1ULL
3616     }
3617 #endif
3618   },
3619   { "mulhl_ss.sn", TILEPRO_OPC_MULHL_SS_SN, 0x1, 3, TREG_SN, 1,
3620     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3621 #ifndef DISASM_ONLY
3622     {
3623       0x800000007ffc0000ULL,
3624       0ULL,
3625       0ULL,
3626       0ULL,
3627       0ULL
3628     },
3629     {
3630       0x0000000008880000ULL,
3631       -1ULL,
3632       -1ULL,
3633       -1ULL,
3634       -1ULL
3635     }
3636 #endif
3637   },
3638   { "mulhl_su", TILEPRO_OPC_MULHL_SU, 0x1, 3, TREG_ZERO, 1,
3639     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3640 #ifndef DISASM_ONLY
3641     {
3642       0x800000007ffc0000ULL,
3643       0ULL,
3644       0ULL,
3645       0ULL,
3646       0ULL
3647     },
3648     {
3649       0x00000000008c0000ULL,
3650       -1ULL,
3651       -1ULL,
3652       -1ULL,
3653       -1ULL
3654     }
3655 #endif
3656   },
3657   { "mulhl_su.sn", TILEPRO_OPC_MULHL_SU_SN, 0x1, 3, TREG_SN, 1,
3658     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3659 #ifndef DISASM_ONLY
3660     {
3661       0x800000007ffc0000ULL,
3662       0ULL,
3663       0ULL,
3664       0ULL,
3665       0ULL
3666     },
3667     {
3668       0x00000000088c0000ULL,
3669       -1ULL,
3670       -1ULL,
3671       -1ULL,
3672       -1ULL
3673     }
3674 #endif
3675   },
3676   { "mulhl_us", TILEPRO_OPC_MULHL_US, 0x1, 3, TREG_ZERO, 1,
3677     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3678 #ifndef DISASM_ONLY
3679     {
3680       0x800000007ffc0000ULL,
3681       0ULL,
3682       0ULL,
3683       0ULL,
3684       0ULL
3685     },
3686     {
3687       0x0000000000900000ULL,
3688       -1ULL,
3689       -1ULL,
3690       -1ULL,
3691       -1ULL
3692     }
3693 #endif
3694   },
3695   { "mulhl_us.sn", TILEPRO_OPC_MULHL_US_SN, 0x1, 3, TREG_SN, 1,
3696     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3697 #ifndef DISASM_ONLY
3698     {
3699       0x800000007ffc0000ULL,
3700       0ULL,
3701       0ULL,
3702       0ULL,
3703       0ULL
3704     },
3705     {
3706       0x0000000008900000ULL,
3707       -1ULL,
3708       -1ULL,
3709       -1ULL,
3710       -1ULL
3711     }
3712 #endif
3713   },
3714   { "mulhl_uu", TILEPRO_OPC_MULHL_UU, 0x1, 3, TREG_ZERO, 1,
3715     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3716 #ifndef DISASM_ONLY
3717     {
3718       0x800000007ffc0000ULL,
3719       0ULL,
3720       0ULL,
3721       0ULL,
3722       0ULL
3723     },
3724     {
3725       0x0000000000940000ULL,
3726       -1ULL,
3727       -1ULL,
3728       -1ULL,
3729       -1ULL
3730     }
3731 #endif
3732   },
3733   { "mulhl_uu.sn", TILEPRO_OPC_MULHL_UU_SN, 0x1, 3, TREG_SN, 1,
3734     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3735 #ifndef DISASM_ONLY
3736     {
3737       0x800000007ffc0000ULL,
3738       0ULL,
3739       0ULL,
3740       0ULL,
3741       0ULL
3742     },
3743     {
3744       0x0000000008940000ULL,
3745       -1ULL,
3746       -1ULL,
3747       -1ULL,
3748       -1ULL
3749     }
3750 #endif
3751   },
3752   { "mulhla_ss", TILEPRO_OPC_MULHLA_SS, 0x1, 3, TREG_ZERO, 1,
3753     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3754 #ifndef DISASM_ONLY
3755     {
3756       0x800000007ffc0000ULL,
3757       0ULL,
3758       0ULL,
3759       0ULL,
3760       0ULL
3761     },
3762     {
3763       0x0000000000740000ULL,
3764       -1ULL,
3765       -1ULL,
3766       -1ULL,
3767       -1ULL
3768     }
3769 #endif
3770   },
3771   { "mulhla_ss.sn", TILEPRO_OPC_MULHLA_SS_SN, 0x1, 3, TREG_SN, 1,
3772     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3773 #ifndef DISASM_ONLY
3774     {
3775       0x800000007ffc0000ULL,
3776       0ULL,
3777       0ULL,
3778       0ULL,
3779       0ULL
3780     },
3781     {
3782       0x0000000008740000ULL,
3783       -1ULL,
3784       -1ULL,
3785       -1ULL,
3786       -1ULL
3787     }
3788 #endif
3789   },
3790   { "mulhla_su", TILEPRO_OPC_MULHLA_SU, 0x1, 3, TREG_ZERO, 1,
3791     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3792 #ifndef DISASM_ONLY
3793     {
3794       0x800000007ffc0000ULL,
3795       0ULL,
3796       0ULL,
3797       0ULL,
3798       0ULL
3799     },
3800     {
3801       0x0000000000780000ULL,
3802       -1ULL,
3803       -1ULL,
3804       -1ULL,
3805       -1ULL
3806     }
3807 #endif
3808   },
3809   { "mulhla_su.sn", TILEPRO_OPC_MULHLA_SU_SN, 0x1, 3, TREG_SN, 1,
3810     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3811 #ifndef DISASM_ONLY
3812     {
3813       0x800000007ffc0000ULL,
3814       0ULL,
3815       0ULL,
3816       0ULL,
3817       0ULL
3818     },
3819     {
3820       0x0000000008780000ULL,
3821       -1ULL,
3822       -1ULL,
3823       -1ULL,
3824       -1ULL
3825     }
3826 #endif
3827   },
3828   { "mulhla_us", TILEPRO_OPC_MULHLA_US, 0x1, 3, TREG_ZERO, 1,
3829     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3830 #ifndef DISASM_ONLY
3831     {
3832       0x800000007ffc0000ULL,
3833       0ULL,
3834       0ULL,
3835       0ULL,
3836       0ULL
3837     },
3838     {
3839       0x00000000007c0000ULL,
3840       -1ULL,
3841       -1ULL,
3842       -1ULL,
3843       -1ULL
3844     }
3845 #endif
3846   },
3847   { "mulhla_us.sn", TILEPRO_OPC_MULHLA_US_SN, 0x1, 3, TREG_SN, 1,
3848     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3849 #ifndef DISASM_ONLY
3850     {
3851       0x800000007ffc0000ULL,
3852       0ULL,
3853       0ULL,
3854       0ULL,
3855       0ULL
3856     },
3857     {
3858       0x00000000087c0000ULL,
3859       -1ULL,
3860       -1ULL,
3861       -1ULL,
3862       -1ULL
3863     }
3864 #endif
3865   },
3866   { "mulhla_uu", TILEPRO_OPC_MULHLA_UU, 0x1, 3, TREG_ZERO, 1,
3867     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3868 #ifndef DISASM_ONLY
3869     {
3870       0x800000007ffc0000ULL,
3871       0ULL,
3872       0ULL,
3873       0ULL,
3874       0ULL
3875     },
3876     {
3877       0x0000000000800000ULL,
3878       -1ULL,
3879       -1ULL,
3880       -1ULL,
3881       -1ULL
3882     }
3883 #endif
3884   },
3885   { "mulhla_uu.sn", TILEPRO_OPC_MULHLA_UU_SN, 0x1, 3, TREG_SN, 1,
3886     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3887 #ifndef DISASM_ONLY
3888     {
3889       0x800000007ffc0000ULL,
3890       0ULL,
3891       0ULL,
3892       0ULL,
3893       0ULL
3894     },
3895     {
3896       0x0000000008800000ULL,
3897       -1ULL,
3898       -1ULL,
3899       -1ULL,
3900       -1ULL
3901     }
3902 #endif
3903   },
3904   { "mulhlsa_uu", TILEPRO_OPC_MULHLSA_UU, 0x5, 3, TREG_ZERO, 1,
3905     { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
3906 #ifndef DISASM_ONLY
3907     {
3908       0x800000007ffc0000ULL,
3909       0ULL,
3910       0x80000000780c0000ULL,
3911       0ULL,
3912       0ULL
3913     },
3914     {
3915       0x0000000000840000ULL,
3916       -1ULL,
3917       0x8000000030000000ULL,
3918       -1ULL,
3919       -1ULL
3920     }
3921 #endif
3922   },
3923   { "mulhlsa_uu.sn", TILEPRO_OPC_MULHLSA_UU_SN, 0x1, 3, TREG_SN, 1,
3924     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3925 #ifndef DISASM_ONLY
3926     {
3927       0x800000007ffc0000ULL,
3928       0ULL,
3929       0ULL,
3930       0ULL,
3931       0ULL
3932     },
3933     {
3934       0x0000000008840000ULL,
3935       -1ULL,
3936       -1ULL,
3937       -1ULL,
3938       -1ULL
3939     }
3940 #endif
3941   },
3942   { "mulll_ss", TILEPRO_OPC_MULLL_SS, 0x5, 3, TREG_ZERO, 1,
3943     { { 9, 10, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
3944 #ifndef DISASM_ONLY
3945     {
3946       0x800000007ffc0000ULL,
3947       0ULL,
3948       0x80000000780c0000ULL,
3949       0ULL,
3950       0ULL
3951     },
3952     {
3953       0x0000000000a80000ULL,
3954       -1ULL,
3955       0x8000000038080000ULL,
3956       -1ULL,
3957       -1ULL
3958     }
3959 #endif
3960   },
3961   { "mulll_ss.sn", TILEPRO_OPC_MULLL_SS_SN, 0x1, 3, TREG_SN, 1,
3962     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3963 #ifndef DISASM_ONLY
3964     {
3965       0x800000007ffc0000ULL,
3966       0ULL,
3967       0ULL,
3968       0ULL,
3969       0ULL
3970     },
3971     {
3972       0x0000000008a80000ULL,
3973       -1ULL,
3974       -1ULL,
3975       -1ULL,
3976       -1ULL
3977     }
3978 #endif
3979   },
3980   { "mulll_su", TILEPRO_OPC_MULLL_SU, 0x1, 3, TREG_ZERO, 1,
3981     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
3982 #ifndef DISASM_ONLY
3983     {
3984       0x800000007ffc0000ULL,
3985       0ULL,
3986       0ULL,
3987       0ULL,
3988       0ULL
3989     },
3990     {
3991       0x0000000000ac0000ULL,
3992       -1ULL,
3993       -1ULL,
3994       -1ULL,
3995       -1ULL
3996     }
3997 #endif
3998   },
3999   { "mulll_su.sn", TILEPRO_OPC_MULLL_SU_SN, 0x1, 3, TREG_SN, 1,
4000     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4001 #ifndef DISASM_ONLY
4002     {
4003       0x800000007ffc0000ULL,
4004       0ULL,
4005       0ULL,
4006       0ULL,
4007       0ULL
4008     },
4009     {
4010       0x0000000008ac0000ULL,
4011       -1ULL,
4012       -1ULL,
4013       -1ULL,
4014       -1ULL
4015     }
4016 #endif
4017   },
4018   { "mulll_uu", TILEPRO_OPC_MULLL_UU, 0x5, 3, TREG_ZERO, 1,
4019     { { 9, 10, 16 }, { 0, }, { 11, 12, 18 }, { 0, }, { 0, } },
4020 #ifndef DISASM_ONLY
4021     {
4022       0x800000007ffc0000ULL,
4023       0ULL,
4024       0x80000000780c0000ULL,
4025       0ULL,
4026       0ULL
4027     },
4028     {
4029       0x0000000000b00000ULL,
4030       -1ULL,
4031       0x80000000380c0000ULL,
4032       -1ULL,
4033       -1ULL
4034     }
4035 #endif
4036   },
4037   { "mulll_uu.sn", TILEPRO_OPC_MULLL_UU_SN, 0x1, 3, TREG_SN, 1,
4038     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4039 #ifndef DISASM_ONLY
4040     {
4041       0x800000007ffc0000ULL,
4042       0ULL,
4043       0ULL,
4044       0ULL,
4045       0ULL
4046     },
4047     {
4048       0x0000000008b00000ULL,
4049       -1ULL,
4050       -1ULL,
4051       -1ULL,
4052       -1ULL
4053     }
4054 #endif
4055   },
4056   { "mullla_ss", TILEPRO_OPC_MULLLA_SS, 0x5, 3, TREG_ZERO, 1,
4057     { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
4058 #ifndef DISASM_ONLY
4059     {
4060       0x800000007ffc0000ULL,
4061       0ULL,
4062       0x80000000780c0000ULL,
4063       0ULL,
4064       0ULL
4065     },
4066     {
4067       0x0000000000980000ULL,
4068       -1ULL,
4069       0x8000000040080000ULL,
4070       -1ULL,
4071       -1ULL
4072     }
4073 #endif
4074   },
4075   { "mullla_ss.sn", TILEPRO_OPC_MULLLA_SS_SN, 0x1, 3, TREG_SN, 1,
4076     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4077 #ifndef DISASM_ONLY
4078     {
4079       0x800000007ffc0000ULL,
4080       0ULL,
4081       0ULL,
4082       0ULL,
4083       0ULL
4084     },
4085     {
4086       0x0000000008980000ULL,
4087       -1ULL,
4088       -1ULL,
4089       -1ULL,
4090       -1ULL
4091     }
4092 #endif
4093   },
4094   { "mullla_su", TILEPRO_OPC_MULLLA_SU, 0x1, 3, TREG_ZERO, 1,
4095     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4096 #ifndef DISASM_ONLY
4097     {
4098       0x800000007ffc0000ULL,
4099       0ULL,
4100       0ULL,
4101       0ULL,
4102       0ULL
4103     },
4104     {
4105       0x00000000009c0000ULL,
4106       -1ULL,
4107       -1ULL,
4108       -1ULL,
4109       -1ULL
4110     }
4111 #endif
4112   },
4113   { "mullla_su.sn", TILEPRO_OPC_MULLLA_SU_SN, 0x1, 3, TREG_SN, 1,
4114     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4115 #ifndef DISASM_ONLY
4116     {
4117       0x800000007ffc0000ULL,
4118       0ULL,
4119       0ULL,
4120       0ULL,
4121       0ULL
4122     },
4123     {
4124       0x00000000089c0000ULL,
4125       -1ULL,
4126       -1ULL,
4127       -1ULL,
4128       -1ULL
4129     }
4130 #endif
4131   },
4132   { "mullla_uu", TILEPRO_OPC_MULLLA_UU, 0x5, 3, TREG_ZERO, 1,
4133     { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
4134 #ifndef DISASM_ONLY
4135     {
4136       0x800000007ffc0000ULL,
4137       0ULL,
4138       0x80000000780c0000ULL,
4139       0ULL,
4140       0ULL
4141     },
4142     {
4143       0x0000000000a00000ULL,
4144       -1ULL,
4145       0x80000000400c0000ULL,
4146       -1ULL,
4147       -1ULL
4148     }
4149 #endif
4150   },
4151   { "mullla_uu.sn", TILEPRO_OPC_MULLLA_UU_SN, 0x1, 3, TREG_SN, 1,
4152     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4153 #ifndef DISASM_ONLY
4154     {
4155       0x800000007ffc0000ULL,
4156       0ULL,
4157       0ULL,
4158       0ULL,
4159       0ULL
4160     },
4161     {
4162       0x0000000008a00000ULL,
4163       -1ULL,
4164       -1ULL,
4165       -1ULL,
4166       -1ULL
4167     }
4168 #endif
4169   },
4170   { "mulllsa_uu", TILEPRO_OPC_MULLLSA_UU, 0x1, 3, TREG_ZERO, 1,
4171     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4172 #ifndef DISASM_ONLY
4173     {
4174       0x800000007ffc0000ULL,
4175       0ULL,
4176       0ULL,
4177       0ULL,
4178       0ULL
4179     },
4180     {
4181       0x0000000000a40000ULL,
4182       -1ULL,
4183       -1ULL,
4184       -1ULL,
4185       -1ULL
4186     }
4187 #endif
4188   },
4189   { "mulllsa_uu.sn", TILEPRO_OPC_MULLLSA_UU_SN, 0x1, 3, TREG_SN, 1,
4190     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4191 #ifndef DISASM_ONLY
4192     {
4193       0x800000007ffc0000ULL,
4194       0ULL,
4195       0ULL,
4196       0ULL,
4197       0ULL
4198     },
4199     {
4200       0x0000000008a40000ULL,
4201       -1ULL,
4202       -1ULL,
4203       -1ULL,
4204       -1ULL
4205     }
4206 #endif
4207   },
4208   { "mvnz", TILEPRO_OPC_MVNZ, 0x5, 3, TREG_ZERO, 1,
4209     { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
4210 #ifndef DISASM_ONLY
4211     {
4212       0x800000007ffc0000ULL,
4213       0ULL,
4214       0x80000000780c0000ULL,
4215       0ULL,
4216       0ULL
4217     },
4218     {
4219       0x0000000000b40000ULL,
4220       -1ULL,
4221       0x8000000010040000ULL,
4222       -1ULL,
4223       -1ULL
4224     }
4225 #endif
4226   },
4227   { "mvnz.sn", TILEPRO_OPC_MVNZ_SN, 0x1, 3, TREG_SN, 1,
4228     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4229 #ifndef DISASM_ONLY
4230     {
4231       0x800000007ffc0000ULL,
4232       0ULL,
4233       0ULL,
4234       0ULL,
4235       0ULL
4236     },
4237     {
4238       0x0000000008b40000ULL,
4239       -1ULL,
4240       -1ULL,
4241       -1ULL,
4242       -1ULL
4243     }
4244 #endif
4245   },
4246   { "mvz", TILEPRO_OPC_MVZ, 0x5, 3, TREG_ZERO, 1,
4247     { { 21, 10, 16 }, { 0, }, { 31, 12, 18 }, { 0, }, { 0, } },
4248 #ifndef DISASM_ONLY
4249     {
4250       0x800000007ffc0000ULL,
4251       0ULL,
4252       0x80000000780c0000ULL,
4253       0ULL,
4254       0ULL
4255     },
4256     {
4257       0x0000000000b80000ULL,
4258       -1ULL,
4259       0x8000000010080000ULL,
4260       -1ULL,
4261       -1ULL
4262     }
4263 #endif
4264   },
4265   { "mvz.sn", TILEPRO_OPC_MVZ_SN, 0x1, 3, TREG_SN, 1,
4266     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4267 #ifndef DISASM_ONLY
4268     {
4269       0x800000007ffc0000ULL,
4270       0ULL,
4271       0ULL,
4272       0ULL,
4273       0ULL
4274     },
4275     {
4276       0x0000000008b80000ULL,
4277       -1ULL,
4278       -1ULL,
4279       -1ULL,
4280       -1ULL
4281     }
4282 #endif
4283   },
4284   { "mz", TILEPRO_OPC_MZ, 0xf, 3, TREG_ZERO, 1,
4285     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
4286 #ifndef DISASM_ONLY
4287     {
4288       0x800000007ffc0000ULL,
4289       0xfffe000000000000ULL,
4290       0x80000000780c0000ULL,
4291       0xf806000000000000ULL,
4292       0ULL
4293     },
4294     {
4295       0x0000000000c40000ULL,
4296       0x082e000000000000ULL,
4297       0x80000000100c0000ULL,
4298       0x9004000000000000ULL,
4299       -1ULL
4300     }
4301 #endif
4302   },
4303   { "mz.sn", TILEPRO_OPC_MZ_SN, 0x3, 3, TREG_SN, 1,
4304     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4305 #ifndef DISASM_ONLY
4306     {
4307       0x800000007ffc0000ULL,
4308       0xfffe000000000000ULL,
4309       0ULL,
4310       0ULL,
4311       0ULL
4312     },
4313     {
4314       0x0000000008c40000ULL,
4315       0x0c2e000000000000ULL,
4316       -1ULL,
4317       -1ULL,
4318       -1ULL
4319     }
4320 #endif
4321   },
4322   { "mzb", TILEPRO_OPC_MZB, 0x3, 3, TREG_ZERO, 1,
4323     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4324 #ifndef DISASM_ONLY
4325     {
4326       0x800000007ffc0000ULL,
4327       0xfffe000000000000ULL,
4328       0ULL,
4329       0ULL,
4330       0ULL
4331     },
4332     {
4333       0x0000000000bc0000ULL,
4334       0x082a000000000000ULL,
4335       -1ULL,
4336       -1ULL,
4337       -1ULL
4338     }
4339 #endif
4340   },
4341   { "mzb.sn", TILEPRO_OPC_MZB_SN, 0x3, 3, TREG_SN, 1,
4342     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4343 #ifndef DISASM_ONLY
4344     {
4345       0x800000007ffc0000ULL,
4346       0xfffe000000000000ULL,
4347       0ULL,
4348       0ULL,
4349       0ULL
4350     },
4351     {
4352       0x0000000008bc0000ULL,
4353       0x0c2a000000000000ULL,
4354       -1ULL,
4355       -1ULL,
4356       -1ULL
4357     }
4358 #endif
4359   },
4360   { "mzh", TILEPRO_OPC_MZH, 0x3, 3, TREG_ZERO, 1,
4361     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4362 #ifndef DISASM_ONLY
4363     {
4364       0x800000007ffc0000ULL,
4365       0xfffe000000000000ULL,
4366       0ULL,
4367       0ULL,
4368       0ULL
4369     },
4370     {
4371       0x0000000000c00000ULL,
4372       0x082c000000000000ULL,
4373       -1ULL,
4374       -1ULL,
4375       -1ULL
4376     }
4377 #endif
4378   },
4379   { "mzh.sn", TILEPRO_OPC_MZH_SN, 0x3, 3, TREG_SN, 1,
4380     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4381 #ifndef DISASM_ONLY
4382     {
4383       0x800000007ffc0000ULL,
4384       0xfffe000000000000ULL,
4385       0ULL,
4386       0ULL,
4387       0ULL
4388     },
4389     {
4390       0x0000000008c00000ULL,
4391       0x0c2c000000000000ULL,
4392       -1ULL,
4393       -1ULL,
4394       -1ULL
4395     }
4396 #endif
4397   },
4398   { "nap", TILEPRO_OPC_NAP, 0x2, 0, TREG_ZERO, 0,
4399     { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
4400 #ifndef DISASM_ONLY
4401     {
4402       0ULL,
4403       0xfbfff80000000000ULL,
4404       0ULL,
4405       0ULL,
4406       0ULL
4407     },
4408     {
4409       -1ULL,
4410       0x400b800000000000ULL,
4411       -1ULL,
4412       -1ULL,
4413       -1ULL
4414     }
4415 #endif
4416   },
4417   { "nop", TILEPRO_OPC_NOP, 0xf, 0, TREG_ZERO, 1,
4418     { {  }, {  }, {  }, {  }, { 0, } },
4419 #ifndef DISASM_ONLY
4420     {
4421       0x8000000077fff000ULL,
4422       0xfbfff80000000000ULL,
4423       0x80000000780ff000ULL,
4424       0xf807f80000000000ULL,
4425       0ULL
4426     },
4427     {
4428       0x0000000070166000ULL,
4429       0x400b880000000000ULL,
4430       0x80000000680a6000ULL,
4431       0xd805180000000000ULL,
4432       -1ULL
4433     }
4434 #endif
4435   },
4436   { "nor", TILEPRO_OPC_NOR, 0xf, 3, TREG_ZERO, 1,
4437     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
4438 #ifndef DISASM_ONLY
4439     {
4440       0x800000007ffc0000ULL,
4441       0xfffe000000000000ULL,
4442       0x80000000780c0000ULL,
4443       0xf806000000000000ULL,
4444       0ULL
4445     },
4446     {
4447       0x0000000000c80000ULL,
4448       0x0830000000000000ULL,
4449       0x8000000018040000ULL,
4450       0x9802000000000000ULL,
4451       -1ULL
4452     }
4453 #endif
4454   },
4455   { "nor.sn", TILEPRO_OPC_NOR_SN, 0x3, 3, TREG_SN, 1,
4456     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4457 #ifndef DISASM_ONLY
4458     {
4459       0x800000007ffc0000ULL,
4460       0xfffe000000000000ULL,
4461       0ULL,
4462       0ULL,
4463       0ULL
4464     },
4465     {
4466       0x0000000008c80000ULL,
4467       0x0c30000000000000ULL,
4468       -1ULL,
4469       -1ULL,
4470       -1ULL
4471     }
4472 #endif
4473   },
4474   { "or", TILEPRO_OPC_OR, 0xf, 3, TREG_ZERO, 1,
4475     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
4476 #ifndef DISASM_ONLY
4477     {
4478       0x800000007ffc0000ULL,
4479       0xfffe000000000000ULL,
4480       0x80000000780c0000ULL,
4481       0xf806000000000000ULL,
4482       0ULL
4483     },
4484     {
4485       0x0000000000cc0000ULL,
4486       0x0832000000000000ULL,
4487       0x8000000018080000ULL,
4488       0x9804000000000000ULL,
4489       -1ULL
4490     }
4491 #endif
4492   },
4493   { "or.sn", TILEPRO_OPC_OR_SN, 0x3, 3, TREG_SN, 1,
4494     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4495 #ifndef DISASM_ONLY
4496     {
4497       0x800000007ffc0000ULL,
4498       0xfffe000000000000ULL,
4499       0ULL,
4500       0ULL,
4501       0ULL
4502     },
4503     {
4504       0x0000000008cc0000ULL,
4505       0x0c32000000000000ULL,
4506       -1ULL,
4507       -1ULL,
4508       -1ULL
4509     }
4510 #endif
4511   },
4512   { "ori", TILEPRO_OPC_ORI, 0xf, 3, TREG_ZERO, 1,
4513     { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
4514 #ifndef DISASM_ONLY
4515     {
4516       0x800000007ff00000ULL,
4517       0xfff8000000000000ULL,
4518       0x8000000078000000ULL,
4519       0xf800000000000000ULL,
4520       0ULL
4521     },
4522     {
4523       0x0000000040800000ULL,
4524       0x3058000000000000ULL,
4525       0x8000000058000000ULL,
4526       0xc800000000000000ULL,
4527       -1ULL
4528     }
4529 #endif
4530   },
4531   { "ori.sn", TILEPRO_OPC_ORI_SN, 0x3, 3, TREG_SN, 1,
4532     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
4533 #ifndef DISASM_ONLY
4534     {
4535       0x800000007ff00000ULL,
4536       0xfff8000000000000ULL,
4537       0ULL,
4538       0ULL,
4539       0ULL
4540     },
4541     {
4542       0x0000000048800000ULL,
4543       0x3458000000000000ULL,
4544       -1ULL,
4545       -1ULL,
4546       -1ULL
4547     }
4548 #endif
4549   },
4550   { "packbs_u", TILEPRO_OPC_PACKBS_U, 0x3, 3, TREG_ZERO, 1,
4551     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4552 #ifndef DISASM_ONLY
4553     {
4554       0x800000007ffc0000ULL,
4555       0xfffe000000000000ULL,
4556       0ULL,
4557       0ULL,
4558       0ULL
4559     },
4560     {
4561       0x00000000019c0000ULL,
4562       0x0892000000000000ULL,
4563       -1ULL,
4564       -1ULL,
4565       -1ULL
4566     }
4567 #endif
4568   },
4569   { "packbs_u.sn", TILEPRO_OPC_PACKBS_U_SN, 0x3, 3, TREG_SN, 1,
4570     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4571 #ifndef DISASM_ONLY
4572     {
4573       0x800000007ffc0000ULL,
4574       0xfffe000000000000ULL,
4575       0ULL,
4576       0ULL,
4577       0ULL
4578     },
4579     {
4580       0x00000000099c0000ULL,
4581       0x0c92000000000000ULL,
4582       -1ULL,
4583       -1ULL,
4584       -1ULL
4585     }
4586 #endif
4587   },
4588   { "packhb", TILEPRO_OPC_PACKHB, 0x3, 3, TREG_ZERO, 1,
4589     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4590 #ifndef DISASM_ONLY
4591     {
4592       0x800000007ffc0000ULL,
4593       0xfffe000000000000ULL,
4594       0ULL,
4595       0ULL,
4596       0ULL
4597     },
4598     {
4599       0x0000000000d00000ULL,
4600       0x0834000000000000ULL,
4601       -1ULL,
4602       -1ULL,
4603       -1ULL
4604     }
4605 #endif
4606   },
4607   { "packhb.sn", TILEPRO_OPC_PACKHB_SN, 0x3, 3, TREG_SN, 1,
4608     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4609 #ifndef DISASM_ONLY
4610     {
4611       0x800000007ffc0000ULL,
4612       0xfffe000000000000ULL,
4613       0ULL,
4614       0ULL,
4615       0ULL
4616     },
4617     {
4618       0x0000000008d00000ULL,
4619       0x0c34000000000000ULL,
4620       -1ULL,
4621       -1ULL,
4622       -1ULL
4623     }
4624 #endif
4625   },
4626   { "packhs", TILEPRO_OPC_PACKHS, 0x3, 3, TREG_ZERO, 1,
4627     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4628 #ifndef DISASM_ONLY
4629     {
4630       0x800000007ffc0000ULL,
4631       0xfffe000000000000ULL,
4632       0ULL,
4633       0ULL,
4634       0ULL
4635     },
4636     {
4637       0x0000000001980000ULL,
4638       0x0890000000000000ULL,
4639       -1ULL,
4640       -1ULL,
4641       -1ULL
4642     }
4643 #endif
4644   },
4645   { "packhs.sn", TILEPRO_OPC_PACKHS_SN, 0x3, 3, TREG_SN, 1,
4646     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4647 #ifndef DISASM_ONLY
4648     {
4649       0x800000007ffc0000ULL,
4650       0xfffe000000000000ULL,
4651       0ULL,
4652       0ULL,
4653       0ULL
4654     },
4655     {
4656       0x0000000009980000ULL,
4657       0x0c90000000000000ULL,
4658       -1ULL,
4659       -1ULL,
4660       -1ULL
4661     }
4662 #endif
4663   },
4664   { "packlb", TILEPRO_OPC_PACKLB, 0x3, 3, TREG_ZERO, 1,
4665     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4666 #ifndef DISASM_ONLY
4667     {
4668       0x800000007ffc0000ULL,
4669       0xfffe000000000000ULL,
4670       0ULL,
4671       0ULL,
4672       0ULL
4673     },
4674     {
4675       0x0000000000d40000ULL,
4676       0x0836000000000000ULL,
4677       -1ULL,
4678       -1ULL,
4679       -1ULL
4680     }
4681 #endif
4682   },
4683   { "packlb.sn", TILEPRO_OPC_PACKLB_SN, 0x3, 3, TREG_SN, 1,
4684     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4685 #ifndef DISASM_ONLY
4686     {
4687       0x800000007ffc0000ULL,
4688       0xfffe000000000000ULL,
4689       0ULL,
4690       0ULL,
4691       0ULL
4692     },
4693     {
4694       0x0000000008d40000ULL,
4695       0x0c36000000000000ULL,
4696       -1ULL,
4697       -1ULL,
4698       -1ULL
4699     }
4700 #endif
4701   },
4702   { "pcnt", TILEPRO_OPC_PCNT, 0x5, 2, TREG_ZERO, 1,
4703     { { 9, 10 }, { 0, }, { 11, 12 }, { 0, }, { 0, } },
4704 #ifndef DISASM_ONLY
4705     {
4706       0x800000007ffff000ULL,
4707       0ULL,
4708       0x80000000780ff000ULL,
4709       0ULL,
4710       0ULL
4711     },
4712     {
4713       0x0000000070167000ULL,
4714       -1ULL,
4715       0x80000000680a7000ULL,
4716       -1ULL,
4717       -1ULL
4718     }
4719 #endif
4720   },
4721   { "pcnt.sn", TILEPRO_OPC_PCNT_SN, 0x1, 2, TREG_SN, 1,
4722     { { 9, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
4723 #ifndef DISASM_ONLY
4724     {
4725       0x800000007ffff000ULL,
4726       0ULL,
4727       0ULL,
4728       0ULL,
4729       0ULL
4730     },
4731     {
4732       0x0000000078167000ULL,
4733       -1ULL,
4734       -1ULL,
4735       -1ULL,
4736       -1ULL
4737     }
4738 #endif
4739   },
4740   { "rl", TILEPRO_OPC_RL, 0xf, 3, TREG_ZERO, 1,
4741     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
4742 #ifndef DISASM_ONLY
4743     {
4744       0x800000007ffc0000ULL,
4745       0xfffe000000000000ULL,
4746       0x80000000780c0000ULL,
4747       0xf806000000000000ULL,
4748       0ULL
4749     },
4750     {
4751       0x0000000000d80000ULL,
4752       0x0838000000000000ULL,
4753       0x8000000020000000ULL,
4754       0xa000000000000000ULL,
4755       -1ULL
4756     }
4757 #endif
4758   },
4759   { "rl.sn", TILEPRO_OPC_RL_SN, 0x3, 3, TREG_SN, 1,
4760     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4761 #ifndef DISASM_ONLY
4762     {
4763       0x800000007ffc0000ULL,
4764       0xfffe000000000000ULL,
4765       0ULL,
4766       0ULL,
4767       0ULL
4768     },
4769     {
4770       0x0000000008d80000ULL,
4771       0x0c38000000000000ULL,
4772       -1ULL,
4773       -1ULL,
4774       -1ULL
4775     }
4776 #endif
4777   },
4778   { "rli", TILEPRO_OPC_RLI, 0xf, 3, TREG_ZERO, 1,
4779     { { 9, 10, 32 }, { 7, 8, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
4780 #ifndef DISASM_ONLY
4781     {
4782       0x800000007ffe0000ULL,
4783       0xffff000000000000ULL,
4784       0x80000000780e0000ULL,
4785       0xf807000000000000ULL,
4786       0ULL
4787     },
4788     {
4789       0x0000000070020000ULL,
4790       0x4001000000000000ULL,
4791       0x8000000068020000ULL,
4792       0xd801000000000000ULL,
4793       -1ULL
4794     }
4795 #endif
4796   },
4797   { "rli.sn", TILEPRO_OPC_RLI_SN, 0x3, 3, TREG_SN, 1,
4798     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
4799 #ifndef DISASM_ONLY
4800     {
4801       0x800000007ffe0000ULL,
4802       0xffff000000000000ULL,
4803       0ULL,
4804       0ULL,
4805       0ULL
4806     },
4807     {
4808       0x0000000078020000ULL,
4809       0x4401000000000000ULL,
4810       -1ULL,
4811       -1ULL,
4812       -1ULL
4813     }
4814 #endif
4815   },
4816   { "s1a", TILEPRO_OPC_S1A, 0xf, 3, TREG_ZERO, 1,
4817     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
4818 #ifndef DISASM_ONLY
4819     {
4820       0x800000007ffc0000ULL,
4821       0xfffe000000000000ULL,
4822       0x80000000780c0000ULL,
4823       0xf806000000000000ULL,
4824       0ULL
4825     },
4826     {
4827       0x0000000000dc0000ULL,
4828       0x083a000000000000ULL,
4829       0x8000000008040000ULL,
4830       0x8802000000000000ULL,
4831       -1ULL
4832     }
4833 #endif
4834   },
4835   { "s1a.sn", TILEPRO_OPC_S1A_SN, 0x3, 3, TREG_SN, 1,
4836     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4837 #ifndef DISASM_ONLY
4838     {
4839       0x800000007ffc0000ULL,
4840       0xfffe000000000000ULL,
4841       0ULL,
4842       0ULL,
4843       0ULL
4844     },
4845     {
4846       0x0000000008dc0000ULL,
4847       0x0c3a000000000000ULL,
4848       -1ULL,
4849       -1ULL,
4850       -1ULL
4851     }
4852 #endif
4853   },
4854   { "s2a", TILEPRO_OPC_S2A, 0xf, 3, TREG_ZERO, 1,
4855     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
4856 #ifndef DISASM_ONLY
4857     {
4858       0x800000007ffc0000ULL,
4859       0xfffe000000000000ULL,
4860       0x80000000780c0000ULL,
4861       0xf806000000000000ULL,
4862       0ULL
4863     },
4864     {
4865       0x0000000000e00000ULL,
4866       0x083c000000000000ULL,
4867       0x8000000008080000ULL,
4868       0x8804000000000000ULL,
4869       -1ULL
4870     }
4871 #endif
4872   },
4873   { "s2a.sn", TILEPRO_OPC_S2A_SN, 0x3, 3, TREG_SN, 1,
4874     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4875 #ifndef DISASM_ONLY
4876     {
4877       0x800000007ffc0000ULL,
4878       0xfffe000000000000ULL,
4879       0ULL,
4880       0ULL,
4881       0ULL
4882     },
4883     {
4884       0x0000000008e00000ULL,
4885       0x0c3c000000000000ULL,
4886       -1ULL,
4887       -1ULL,
4888       -1ULL
4889     }
4890 #endif
4891   },
4892   { "s3a", TILEPRO_OPC_S3A, 0xf, 3, TREG_ZERO, 1,
4893     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
4894 #ifndef DISASM_ONLY
4895     {
4896       0x800000007ffc0000ULL,
4897       0xfffe000000000000ULL,
4898       0x80000000780c0000ULL,
4899       0xf806000000000000ULL,
4900       0ULL
4901     },
4902     {
4903       0x0000000000e40000ULL,
4904       0x083e000000000000ULL,
4905       0x8000000030040000ULL,
4906       0xb002000000000000ULL,
4907       -1ULL
4908     }
4909 #endif
4910   },
4911   { "s3a.sn", TILEPRO_OPC_S3A_SN, 0x3, 3, TREG_SN, 1,
4912     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
4913 #ifndef DISASM_ONLY
4914     {
4915       0x800000007ffc0000ULL,
4916       0xfffe000000000000ULL,
4917       0ULL,
4918       0ULL,
4919       0ULL
4920     },
4921     {
4922       0x0000000008e40000ULL,
4923       0x0c3e000000000000ULL,
4924       -1ULL,
4925       -1ULL,
4926       -1ULL
4927     }
4928 #endif
4929   },
4930   { "sadab_u", TILEPRO_OPC_SADAB_U, 0x1, 3, TREG_ZERO, 1,
4931     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4932 #ifndef DISASM_ONLY
4933     {
4934       0x800000007ffc0000ULL,
4935       0ULL,
4936       0ULL,
4937       0ULL,
4938       0ULL
4939     },
4940     {
4941       0x0000000000e80000ULL,
4942       -1ULL,
4943       -1ULL,
4944       -1ULL,
4945       -1ULL
4946     }
4947 #endif
4948   },
4949   { "sadab_u.sn", TILEPRO_OPC_SADAB_U_SN, 0x1, 3, TREG_SN, 1,
4950     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4951 #ifndef DISASM_ONLY
4952     {
4953       0x800000007ffc0000ULL,
4954       0ULL,
4955       0ULL,
4956       0ULL,
4957       0ULL
4958     },
4959     {
4960       0x0000000008e80000ULL,
4961       -1ULL,
4962       -1ULL,
4963       -1ULL,
4964       -1ULL
4965     }
4966 #endif
4967   },
4968   { "sadah", TILEPRO_OPC_SADAH, 0x1, 3, TREG_ZERO, 1,
4969     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4970 #ifndef DISASM_ONLY
4971     {
4972       0x800000007ffc0000ULL,
4973       0ULL,
4974       0ULL,
4975       0ULL,
4976       0ULL
4977     },
4978     {
4979       0x0000000000ec0000ULL,
4980       -1ULL,
4981       -1ULL,
4982       -1ULL,
4983       -1ULL
4984     }
4985 #endif
4986   },
4987   { "sadah.sn", TILEPRO_OPC_SADAH_SN, 0x1, 3, TREG_SN, 1,
4988     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
4989 #ifndef DISASM_ONLY
4990     {
4991       0x800000007ffc0000ULL,
4992       0ULL,
4993       0ULL,
4994       0ULL,
4995       0ULL
4996     },
4997     {
4998       0x0000000008ec0000ULL,
4999       -1ULL,
5000       -1ULL,
5001       -1ULL,
5002       -1ULL
5003     }
5004 #endif
5005   },
5006   { "sadah_u", TILEPRO_OPC_SADAH_U, 0x1, 3, TREG_ZERO, 1,
5007     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5008 #ifndef DISASM_ONLY
5009     {
5010       0x800000007ffc0000ULL,
5011       0ULL,
5012       0ULL,
5013       0ULL,
5014       0ULL
5015     },
5016     {
5017       0x0000000000f00000ULL,
5018       -1ULL,
5019       -1ULL,
5020       -1ULL,
5021       -1ULL
5022     }
5023 #endif
5024   },
5025   { "sadah_u.sn", TILEPRO_OPC_SADAH_U_SN, 0x1, 3, TREG_SN, 1,
5026     { { 21, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5027 #ifndef DISASM_ONLY
5028     {
5029       0x800000007ffc0000ULL,
5030       0ULL,
5031       0ULL,
5032       0ULL,
5033       0ULL
5034     },
5035     {
5036       0x0000000008f00000ULL,
5037       -1ULL,
5038       -1ULL,
5039       -1ULL,
5040       -1ULL
5041     }
5042 #endif
5043   },
5044   { "sadb_u", TILEPRO_OPC_SADB_U, 0x1, 3, TREG_ZERO, 1,
5045     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5046 #ifndef DISASM_ONLY
5047     {
5048       0x800000007ffc0000ULL,
5049       0ULL,
5050       0ULL,
5051       0ULL,
5052       0ULL
5053     },
5054     {
5055       0x0000000000f40000ULL,
5056       -1ULL,
5057       -1ULL,
5058       -1ULL,
5059       -1ULL
5060     }
5061 #endif
5062   },
5063   { "sadb_u.sn", TILEPRO_OPC_SADB_U_SN, 0x1, 3, TREG_SN, 1,
5064     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5065 #ifndef DISASM_ONLY
5066     {
5067       0x800000007ffc0000ULL,
5068       0ULL,
5069       0ULL,
5070       0ULL,
5071       0ULL
5072     },
5073     {
5074       0x0000000008f40000ULL,
5075       -1ULL,
5076       -1ULL,
5077       -1ULL,
5078       -1ULL
5079     }
5080 #endif
5081   },
5082   { "sadh", TILEPRO_OPC_SADH, 0x1, 3, TREG_ZERO, 1,
5083     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5084 #ifndef DISASM_ONLY
5085     {
5086       0x800000007ffc0000ULL,
5087       0ULL,
5088       0ULL,
5089       0ULL,
5090       0ULL
5091     },
5092     {
5093       0x0000000000f80000ULL,
5094       -1ULL,
5095       -1ULL,
5096       -1ULL,
5097       -1ULL
5098     }
5099 #endif
5100   },
5101   { "sadh.sn", TILEPRO_OPC_SADH_SN, 0x1, 3, TREG_SN, 1,
5102     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5103 #ifndef DISASM_ONLY
5104     {
5105       0x800000007ffc0000ULL,
5106       0ULL,
5107       0ULL,
5108       0ULL,
5109       0ULL
5110     },
5111     {
5112       0x0000000008f80000ULL,
5113       -1ULL,
5114       -1ULL,
5115       -1ULL,
5116       -1ULL
5117     }
5118 #endif
5119   },
5120   { "sadh_u", TILEPRO_OPC_SADH_U, 0x1, 3, TREG_ZERO, 1,
5121     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5122 #ifndef DISASM_ONLY
5123     {
5124       0x800000007ffc0000ULL,
5125       0ULL,
5126       0ULL,
5127       0ULL,
5128       0ULL
5129     },
5130     {
5131       0x0000000000fc0000ULL,
5132       -1ULL,
5133       -1ULL,
5134       -1ULL,
5135       -1ULL
5136     }
5137 #endif
5138   },
5139   { "sadh_u.sn", TILEPRO_OPC_SADH_U_SN, 0x1, 3, TREG_SN, 1,
5140     { { 9, 10, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
5141 #ifndef DISASM_ONLY
5142     {
5143       0x800000007ffc0000ULL,
5144       0ULL,
5145       0ULL,
5146       0ULL,
5147       0ULL
5148     },
5149     {
5150       0x0000000008fc0000ULL,
5151       -1ULL,
5152       -1ULL,
5153       -1ULL,
5154       -1ULL
5155     }
5156 #endif
5157   },
5158   { "sb", TILEPRO_OPC_SB, 0x12, 2, TREG_ZERO, 1,
5159     { { 0, }, { 8, 17 }, { 0, }, { 0, }, { 15, 36 } },
5160 #ifndef DISASM_ONLY
5161     {
5162       0ULL,
5163       0xfbfe000000000000ULL,
5164       0ULL,
5165       0ULL,
5166       0x8700000000000000ULL
5167     },
5168     {
5169       -1ULL,
5170       0x0840000000000000ULL,
5171       -1ULL,
5172       -1ULL,
5173       0x8500000000000000ULL
5174     }
5175 #endif
5176   },
5177   { "sbadd", TILEPRO_OPC_SBADD, 0x2, 3, TREG_ZERO, 1,
5178     { { 0, }, { 24, 17, 37 }, { 0, }, { 0, }, { 0, } },
5179 #ifndef DISASM_ONLY
5180     {
5181       0ULL,
5182       0xfbf8000000000000ULL,
5183       0ULL,
5184       0ULL,
5185       0ULL
5186     },
5187     {
5188       -1ULL,
5189       0x30e0000000000000ULL,
5190       -1ULL,
5191       -1ULL,
5192       -1ULL
5193     }
5194 #endif
5195   },
5196   { "seq", TILEPRO_OPC_SEQ, 0xf, 3, TREG_ZERO, 1,
5197     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
5198 #ifndef DISASM_ONLY
5199     {
5200       0x800000007ffc0000ULL,
5201       0xfffe000000000000ULL,
5202       0x80000000780c0000ULL,
5203       0xf806000000000000ULL,
5204       0ULL
5205     },
5206     {
5207       0x0000000001080000ULL,
5208       0x0846000000000000ULL,
5209       0x8000000030080000ULL,
5210       0xb004000000000000ULL,
5211       -1ULL
5212     }
5213 #endif
5214   },
5215   { "seq.sn", TILEPRO_OPC_SEQ_SN, 0x3, 3, TREG_SN, 1,
5216     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5217 #ifndef DISASM_ONLY
5218     {
5219       0x800000007ffc0000ULL,
5220       0xfffe000000000000ULL,
5221       0ULL,
5222       0ULL,
5223       0ULL
5224     },
5225     {
5226       0x0000000009080000ULL,
5227       0x0c46000000000000ULL,
5228       -1ULL,
5229       -1ULL,
5230       -1ULL
5231     }
5232 #endif
5233   },
5234   { "seqb", TILEPRO_OPC_SEQB, 0x3, 3, TREG_ZERO, 1,
5235     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5236 #ifndef DISASM_ONLY
5237     {
5238       0x800000007ffc0000ULL,
5239       0xfffe000000000000ULL,
5240       0ULL,
5241       0ULL,
5242       0ULL
5243     },
5244     {
5245       0x0000000001000000ULL,
5246       0x0842000000000000ULL,
5247       -1ULL,
5248       -1ULL,
5249       -1ULL
5250     }
5251 #endif
5252   },
5253   { "seqb.sn", TILEPRO_OPC_SEQB_SN, 0x3, 3, TREG_SN, 1,
5254     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5255 #ifndef DISASM_ONLY
5256     {
5257       0x800000007ffc0000ULL,
5258       0xfffe000000000000ULL,
5259       0ULL,
5260       0ULL,
5261       0ULL
5262     },
5263     {
5264       0x0000000009000000ULL,
5265       0x0c42000000000000ULL,
5266       -1ULL,
5267       -1ULL,
5268       -1ULL
5269     }
5270 #endif
5271   },
5272   { "seqh", TILEPRO_OPC_SEQH, 0x3, 3, TREG_ZERO, 1,
5273     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5274 #ifndef DISASM_ONLY
5275     {
5276       0x800000007ffc0000ULL,
5277       0xfffe000000000000ULL,
5278       0ULL,
5279       0ULL,
5280       0ULL
5281     },
5282     {
5283       0x0000000001040000ULL,
5284       0x0844000000000000ULL,
5285       -1ULL,
5286       -1ULL,
5287       -1ULL
5288     }
5289 #endif
5290   },
5291   { "seqh.sn", TILEPRO_OPC_SEQH_SN, 0x3, 3, TREG_SN, 1,
5292     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5293 #ifndef DISASM_ONLY
5294     {
5295       0x800000007ffc0000ULL,
5296       0xfffe000000000000ULL,
5297       0ULL,
5298       0ULL,
5299       0ULL
5300     },
5301     {
5302       0x0000000009040000ULL,
5303       0x0c44000000000000ULL,
5304       -1ULL,
5305       -1ULL,
5306       -1ULL
5307     }
5308 #endif
5309   },
5310   { "seqi", TILEPRO_OPC_SEQI, 0xf, 3, TREG_ZERO, 1,
5311     { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
5312 #ifndef DISASM_ONLY
5313     {
5314       0x800000007ff00000ULL,
5315       0xfff8000000000000ULL,
5316       0x8000000078000000ULL,
5317       0xf800000000000000ULL,
5318       0ULL
5319     },
5320     {
5321       0x0000000040b00000ULL,
5322       0x3070000000000000ULL,
5323       0x8000000060000000ULL,
5324       0xd000000000000000ULL,
5325       -1ULL
5326     }
5327 #endif
5328   },
5329   { "seqi.sn", TILEPRO_OPC_SEQI_SN, 0x3, 3, TREG_SN, 1,
5330     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
5331 #ifndef DISASM_ONLY
5332     {
5333       0x800000007ff00000ULL,
5334       0xfff8000000000000ULL,
5335       0ULL,
5336       0ULL,
5337       0ULL
5338     },
5339     {
5340       0x0000000048b00000ULL,
5341       0x3470000000000000ULL,
5342       -1ULL,
5343       -1ULL,
5344       -1ULL
5345     }
5346 #endif
5347   },
5348   { "seqib", TILEPRO_OPC_SEQIB, 0x3, 3, TREG_ZERO, 1,
5349     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
5350 #ifndef DISASM_ONLY
5351     {
5352       0x800000007ff00000ULL,
5353       0xfff8000000000000ULL,
5354       0ULL,
5355       0ULL,
5356       0ULL
5357     },
5358     {
5359       0x0000000040900000ULL,
5360       0x3060000000000000ULL,
5361       -1ULL,
5362       -1ULL,
5363       -1ULL
5364     }
5365 #endif
5366   },
5367   { "seqib.sn", TILEPRO_OPC_SEQIB_SN, 0x3, 3, TREG_SN, 1,
5368     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
5369 #ifndef DISASM_ONLY
5370     {
5371       0x800000007ff00000ULL,
5372       0xfff8000000000000ULL,
5373       0ULL,
5374       0ULL,
5375       0ULL
5376     },
5377     {
5378       0x0000000048900000ULL,
5379       0x3460000000000000ULL,
5380       -1ULL,
5381       -1ULL,
5382       -1ULL
5383     }
5384 #endif
5385   },
5386   { "seqih", TILEPRO_OPC_SEQIH, 0x3, 3, TREG_ZERO, 1,
5387     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
5388 #ifndef DISASM_ONLY
5389     {
5390       0x800000007ff00000ULL,
5391       0xfff8000000000000ULL,
5392       0ULL,
5393       0ULL,
5394       0ULL
5395     },
5396     {
5397       0x0000000040a00000ULL,
5398       0x3068000000000000ULL,
5399       -1ULL,
5400       -1ULL,
5401       -1ULL
5402     }
5403 #endif
5404   },
5405   { "seqih.sn", TILEPRO_OPC_SEQIH_SN, 0x3, 3, TREG_SN, 1,
5406     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
5407 #ifndef DISASM_ONLY
5408     {
5409       0x800000007ff00000ULL,
5410       0xfff8000000000000ULL,
5411       0ULL,
5412       0ULL,
5413       0ULL
5414     },
5415     {
5416       0x0000000048a00000ULL,
5417       0x3468000000000000ULL,
5418       -1ULL,
5419       -1ULL,
5420       -1ULL
5421     }
5422 #endif
5423   },
5424   { "sh", TILEPRO_OPC_SH, 0x12, 2, TREG_ZERO, 1,
5425     { { 0, }, { 8, 17 }, { 0, }, { 0, }, { 15, 36 } },
5426 #ifndef DISASM_ONLY
5427     {
5428       0ULL,
5429       0xfbfe000000000000ULL,
5430       0ULL,
5431       0ULL,
5432       0x8700000000000000ULL
5433     },
5434     {
5435       -1ULL,
5436       0x0854000000000000ULL,
5437       -1ULL,
5438       -1ULL,
5439       0x8600000000000000ULL
5440     }
5441 #endif
5442   },
5443   { "shadd", TILEPRO_OPC_SHADD, 0x2, 3, TREG_ZERO, 1,
5444     { { 0, }, { 24, 17, 37 }, { 0, }, { 0, }, { 0, } },
5445 #ifndef DISASM_ONLY
5446     {
5447       0ULL,
5448       0xfbf8000000000000ULL,
5449       0ULL,
5450       0ULL,
5451       0ULL
5452     },
5453     {
5454       -1ULL,
5455       0x30e8000000000000ULL,
5456       -1ULL,
5457       -1ULL,
5458       -1ULL
5459     }
5460 #endif
5461   },
5462   { "shl", TILEPRO_OPC_SHL, 0xf, 3, TREG_ZERO, 1,
5463     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
5464 #ifndef DISASM_ONLY
5465     {
5466       0x800000007ffc0000ULL,
5467       0xfffe000000000000ULL,
5468       0x80000000780c0000ULL,
5469       0xf806000000000000ULL,
5470       0ULL
5471     },
5472     {
5473       0x0000000001140000ULL,
5474       0x084c000000000000ULL,
5475       0x8000000020040000ULL,
5476       0xa002000000000000ULL,
5477       -1ULL
5478     }
5479 #endif
5480   },
5481   { "shl.sn", TILEPRO_OPC_SHL_SN, 0x3, 3, TREG_SN, 1,
5482     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5483 #ifndef DISASM_ONLY
5484     {
5485       0x800000007ffc0000ULL,
5486       0xfffe000000000000ULL,
5487       0ULL,
5488       0ULL,
5489       0ULL
5490     },
5491     {
5492       0x0000000009140000ULL,
5493       0x0c4c000000000000ULL,
5494       -1ULL,
5495       -1ULL,
5496       -1ULL
5497     }
5498 #endif
5499   },
5500   { "shlb", TILEPRO_OPC_SHLB, 0x3, 3, TREG_ZERO, 1,
5501     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5502 #ifndef DISASM_ONLY
5503     {
5504       0x800000007ffc0000ULL,
5505       0xfffe000000000000ULL,
5506       0ULL,
5507       0ULL,
5508       0ULL
5509     },
5510     {
5511       0x00000000010c0000ULL,
5512       0x0848000000000000ULL,
5513       -1ULL,
5514       -1ULL,
5515       -1ULL
5516     }
5517 #endif
5518   },
5519   { "shlb.sn", TILEPRO_OPC_SHLB_SN, 0x3, 3, TREG_SN, 1,
5520     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5521 #ifndef DISASM_ONLY
5522     {
5523       0x800000007ffc0000ULL,
5524       0xfffe000000000000ULL,
5525       0ULL,
5526       0ULL,
5527       0ULL
5528     },
5529     {
5530       0x00000000090c0000ULL,
5531       0x0c48000000000000ULL,
5532       -1ULL,
5533       -1ULL,
5534       -1ULL
5535     }
5536 #endif
5537   },
5538   { "shlh", TILEPRO_OPC_SHLH, 0x3, 3, TREG_ZERO, 1,
5539     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5540 #ifndef DISASM_ONLY
5541     {
5542       0x800000007ffc0000ULL,
5543       0xfffe000000000000ULL,
5544       0ULL,
5545       0ULL,
5546       0ULL
5547     },
5548     {
5549       0x0000000001100000ULL,
5550       0x084a000000000000ULL,
5551       -1ULL,
5552       -1ULL,
5553       -1ULL
5554     }
5555 #endif
5556   },
5557   { "shlh.sn", TILEPRO_OPC_SHLH_SN, 0x3, 3, TREG_SN, 1,
5558     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5559 #ifndef DISASM_ONLY
5560     {
5561       0x800000007ffc0000ULL,
5562       0xfffe000000000000ULL,
5563       0ULL,
5564       0ULL,
5565       0ULL
5566     },
5567     {
5568       0x0000000009100000ULL,
5569       0x0c4a000000000000ULL,
5570       -1ULL,
5571       -1ULL,
5572       -1ULL
5573     }
5574 #endif
5575   },
5576   { "shli", TILEPRO_OPC_SHLI, 0xf, 3, TREG_ZERO, 1,
5577     { { 9, 10, 32 }, { 7, 8, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
5578 #ifndef DISASM_ONLY
5579     {
5580       0x800000007ffe0000ULL,
5581       0xffff000000000000ULL,
5582       0x80000000780e0000ULL,
5583       0xf807000000000000ULL,
5584       0ULL
5585     },
5586     {
5587       0x0000000070080000ULL,
5588       0x4004000000000000ULL,
5589       0x8000000068040000ULL,
5590       0xd802000000000000ULL,
5591       -1ULL
5592     }
5593 #endif
5594   },
5595   { "shli.sn", TILEPRO_OPC_SHLI_SN, 0x3, 3, TREG_SN, 1,
5596     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
5597 #ifndef DISASM_ONLY
5598     {
5599       0x800000007ffe0000ULL,
5600       0xffff000000000000ULL,
5601       0ULL,
5602       0ULL,
5603       0ULL
5604     },
5605     {
5606       0x0000000078080000ULL,
5607       0x4404000000000000ULL,
5608       -1ULL,
5609       -1ULL,
5610       -1ULL
5611     }
5612 #endif
5613   },
5614   { "shlib", TILEPRO_OPC_SHLIB, 0x3, 3, TREG_ZERO, 1,
5615     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
5616 #ifndef DISASM_ONLY
5617     {
5618       0x800000007ffe0000ULL,
5619       0xffff000000000000ULL,
5620       0ULL,
5621       0ULL,
5622       0ULL
5623     },
5624     {
5625       0x0000000070040000ULL,
5626       0x4002000000000000ULL,
5627       -1ULL,
5628       -1ULL,
5629       -1ULL
5630     }
5631 #endif
5632   },
5633   { "shlib.sn", TILEPRO_OPC_SHLIB_SN, 0x3, 3, TREG_SN, 1,
5634     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
5635 #ifndef DISASM_ONLY
5636     {
5637       0x800000007ffe0000ULL,
5638       0xffff000000000000ULL,
5639       0ULL,
5640       0ULL,
5641       0ULL
5642     },
5643     {
5644       0x0000000078040000ULL,
5645       0x4402000000000000ULL,
5646       -1ULL,
5647       -1ULL,
5648       -1ULL
5649     }
5650 #endif
5651   },
5652   { "shlih", TILEPRO_OPC_SHLIH, 0x3, 3, TREG_ZERO, 1,
5653     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
5654 #ifndef DISASM_ONLY
5655     {
5656       0x800000007ffe0000ULL,
5657       0xffff000000000000ULL,
5658       0ULL,
5659       0ULL,
5660       0ULL
5661     },
5662     {
5663       0x0000000070060000ULL,
5664       0x4003000000000000ULL,
5665       -1ULL,
5666       -1ULL,
5667       -1ULL
5668     }
5669 #endif
5670   },
5671   { "shlih.sn", TILEPRO_OPC_SHLIH_SN, 0x3, 3, TREG_SN, 1,
5672     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
5673 #ifndef DISASM_ONLY
5674     {
5675       0x800000007ffe0000ULL,
5676       0xffff000000000000ULL,
5677       0ULL,
5678       0ULL,
5679       0ULL
5680     },
5681     {
5682       0x0000000078060000ULL,
5683       0x4403000000000000ULL,
5684       -1ULL,
5685       -1ULL,
5686       -1ULL
5687     }
5688 #endif
5689   },
5690   { "shr", TILEPRO_OPC_SHR, 0xf, 3, TREG_ZERO, 1,
5691     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
5692 #ifndef DISASM_ONLY
5693     {
5694       0x800000007ffc0000ULL,
5695       0xfffe000000000000ULL,
5696       0x80000000780c0000ULL,
5697       0xf806000000000000ULL,
5698       0ULL
5699     },
5700     {
5701       0x0000000001200000ULL,
5702       0x0852000000000000ULL,
5703       0x8000000020080000ULL,
5704       0xa004000000000000ULL,
5705       -1ULL
5706     }
5707 #endif
5708   },
5709   { "shr.sn", TILEPRO_OPC_SHR_SN, 0x3, 3, TREG_SN, 1,
5710     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5711 #ifndef DISASM_ONLY
5712     {
5713       0x800000007ffc0000ULL,
5714       0xfffe000000000000ULL,
5715       0ULL,
5716       0ULL,
5717       0ULL
5718     },
5719     {
5720       0x0000000009200000ULL,
5721       0x0c52000000000000ULL,
5722       -1ULL,
5723       -1ULL,
5724       -1ULL
5725     }
5726 #endif
5727   },
5728   { "shrb", TILEPRO_OPC_SHRB, 0x3, 3, TREG_ZERO, 1,
5729     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5730 #ifndef DISASM_ONLY
5731     {
5732       0x800000007ffc0000ULL,
5733       0xfffe000000000000ULL,
5734       0ULL,
5735       0ULL,
5736       0ULL
5737     },
5738     {
5739       0x0000000001180000ULL,
5740       0x084e000000000000ULL,
5741       -1ULL,
5742       -1ULL,
5743       -1ULL
5744     }
5745 #endif
5746   },
5747   { "shrb.sn", TILEPRO_OPC_SHRB_SN, 0x3, 3, TREG_SN, 1,
5748     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5749 #ifndef DISASM_ONLY
5750     {
5751       0x800000007ffc0000ULL,
5752       0xfffe000000000000ULL,
5753       0ULL,
5754       0ULL,
5755       0ULL
5756     },
5757     {
5758       0x0000000009180000ULL,
5759       0x0c4e000000000000ULL,
5760       -1ULL,
5761       -1ULL,
5762       -1ULL
5763     }
5764 #endif
5765   },
5766   { "shrh", TILEPRO_OPC_SHRH, 0x3, 3, TREG_ZERO, 1,
5767     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5768 #ifndef DISASM_ONLY
5769     {
5770       0x800000007ffc0000ULL,
5771       0xfffe000000000000ULL,
5772       0ULL,
5773       0ULL,
5774       0ULL
5775     },
5776     {
5777       0x00000000011c0000ULL,
5778       0x0850000000000000ULL,
5779       -1ULL,
5780       -1ULL,
5781       -1ULL
5782     }
5783 #endif
5784   },
5785   { "shrh.sn", TILEPRO_OPC_SHRH_SN, 0x3, 3, TREG_SN, 1,
5786     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5787 #ifndef DISASM_ONLY
5788     {
5789       0x800000007ffc0000ULL,
5790       0xfffe000000000000ULL,
5791       0ULL,
5792       0ULL,
5793       0ULL
5794     },
5795     {
5796       0x00000000091c0000ULL,
5797       0x0c50000000000000ULL,
5798       -1ULL,
5799       -1ULL,
5800       -1ULL
5801     }
5802 #endif
5803   },
5804   { "shri", TILEPRO_OPC_SHRI, 0xf, 3, TREG_ZERO, 1,
5805     { { 9, 10, 32 }, { 7, 8, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
5806 #ifndef DISASM_ONLY
5807     {
5808       0x800000007ffe0000ULL,
5809       0xffff000000000000ULL,
5810       0x80000000780e0000ULL,
5811       0xf807000000000000ULL,
5812       0ULL
5813     },
5814     {
5815       0x00000000700e0000ULL,
5816       0x4007000000000000ULL,
5817       0x8000000068060000ULL,
5818       0xd803000000000000ULL,
5819       -1ULL
5820     }
5821 #endif
5822   },
5823   { "shri.sn", TILEPRO_OPC_SHRI_SN, 0x3, 3, TREG_SN, 1,
5824     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
5825 #ifndef DISASM_ONLY
5826     {
5827       0x800000007ffe0000ULL,
5828       0xffff000000000000ULL,
5829       0ULL,
5830       0ULL,
5831       0ULL
5832     },
5833     {
5834       0x00000000780e0000ULL,
5835       0x4407000000000000ULL,
5836       -1ULL,
5837       -1ULL,
5838       -1ULL
5839     }
5840 #endif
5841   },
5842   { "shrib", TILEPRO_OPC_SHRIB, 0x3, 3, TREG_ZERO, 1,
5843     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
5844 #ifndef DISASM_ONLY
5845     {
5846       0x800000007ffe0000ULL,
5847       0xffff000000000000ULL,
5848       0ULL,
5849       0ULL,
5850       0ULL
5851     },
5852     {
5853       0x00000000700a0000ULL,
5854       0x4005000000000000ULL,
5855       -1ULL,
5856       -1ULL,
5857       -1ULL
5858     }
5859 #endif
5860   },
5861   { "shrib.sn", TILEPRO_OPC_SHRIB_SN, 0x3, 3, TREG_SN, 1,
5862     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
5863 #ifndef DISASM_ONLY
5864     {
5865       0x800000007ffe0000ULL,
5866       0xffff000000000000ULL,
5867       0ULL,
5868       0ULL,
5869       0ULL
5870     },
5871     {
5872       0x00000000780a0000ULL,
5873       0x4405000000000000ULL,
5874       -1ULL,
5875       -1ULL,
5876       -1ULL
5877     }
5878 #endif
5879   },
5880   { "shrih", TILEPRO_OPC_SHRIH, 0x3, 3, TREG_ZERO, 1,
5881     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
5882 #ifndef DISASM_ONLY
5883     {
5884       0x800000007ffe0000ULL,
5885       0xffff000000000000ULL,
5886       0ULL,
5887       0ULL,
5888       0ULL
5889     },
5890     {
5891       0x00000000700c0000ULL,
5892       0x4006000000000000ULL,
5893       -1ULL,
5894       -1ULL,
5895       -1ULL
5896     }
5897 #endif
5898   },
5899   { "shrih.sn", TILEPRO_OPC_SHRIH_SN, 0x3, 3, TREG_SN, 1,
5900     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
5901 #ifndef DISASM_ONLY
5902     {
5903       0x800000007ffe0000ULL,
5904       0xffff000000000000ULL,
5905       0ULL,
5906       0ULL,
5907       0ULL
5908     },
5909     {
5910       0x00000000780c0000ULL,
5911       0x4406000000000000ULL,
5912       -1ULL,
5913       -1ULL,
5914       -1ULL
5915     }
5916 #endif
5917   },
5918   { "slt", TILEPRO_OPC_SLT, 0xf, 3, TREG_ZERO, 1,
5919     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
5920 #ifndef DISASM_ONLY
5921     {
5922       0x800000007ffc0000ULL,
5923       0xfffe000000000000ULL,
5924       0x80000000780c0000ULL,
5925       0xf806000000000000ULL,
5926       0ULL
5927     },
5928     {
5929       0x00000000014c0000ULL,
5930       0x086a000000000000ULL,
5931       0x8000000028080000ULL,
5932       0xa804000000000000ULL,
5933       -1ULL
5934     }
5935 #endif
5936   },
5937   { "slt.sn", TILEPRO_OPC_SLT_SN, 0x3, 3, TREG_SN, 1,
5938     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5939 #ifndef DISASM_ONLY
5940     {
5941       0x800000007ffc0000ULL,
5942       0xfffe000000000000ULL,
5943       0ULL,
5944       0ULL,
5945       0ULL
5946     },
5947     {
5948       0x00000000094c0000ULL,
5949       0x0c6a000000000000ULL,
5950       -1ULL,
5951       -1ULL,
5952       -1ULL
5953     }
5954 #endif
5955   },
5956   { "slt_u", TILEPRO_OPC_SLT_U, 0xf, 3, TREG_ZERO, 1,
5957     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
5958 #ifndef DISASM_ONLY
5959     {
5960       0x800000007ffc0000ULL,
5961       0xfffe000000000000ULL,
5962       0x80000000780c0000ULL,
5963       0xf806000000000000ULL,
5964       0ULL
5965     },
5966     {
5967       0x0000000001500000ULL,
5968       0x086c000000000000ULL,
5969       0x80000000280c0000ULL,
5970       0xa806000000000000ULL,
5971       -1ULL
5972     }
5973 #endif
5974   },
5975   { "slt_u.sn", TILEPRO_OPC_SLT_U_SN, 0x3, 3, TREG_SN, 1,
5976     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5977 #ifndef DISASM_ONLY
5978     {
5979       0x800000007ffc0000ULL,
5980       0xfffe000000000000ULL,
5981       0ULL,
5982       0ULL,
5983       0ULL
5984     },
5985     {
5986       0x0000000009500000ULL,
5987       0x0c6c000000000000ULL,
5988       -1ULL,
5989       -1ULL,
5990       -1ULL
5991     }
5992 #endif
5993   },
5994   { "sltb", TILEPRO_OPC_SLTB, 0x3, 3, TREG_ZERO, 1,
5995     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
5996 #ifndef DISASM_ONLY
5997     {
5998       0x800000007ffc0000ULL,
5999       0xfffe000000000000ULL,
6000       0ULL,
6001       0ULL,
6002       0ULL
6003     },
6004     {
6005       0x0000000001240000ULL,
6006       0x0856000000000000ULL,
6007       -1ULL,
6008       -1ULL,
6009       -1ULL
6010     }
6011 #endif
6012   },
6013   { "sltb.sn", TILEPRO_OPC_SLTB_SN, 0x3, 3, TREG_SN, 1,
6014     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6015 #ifndef DISASM_ONLY
6016     {
6017       0x800000007ffc0000ULL,
6018       0xfffe000000000000ULL,
6019       0ULL,
6020       0ULL,
6021       0ULL
6022     },
6023     {
6024       0x0000000009240000ULL,
6025       0x0c56000000000000ULL,
6026       -1ULL,
6027       -1ULL,
6028       -1ULL
6029     }
6030 #endif
6031   },
6032   { "sltb_u", TILEPRO_OPC_SLTB_U, 0x3, 3, TREG_ZERO, 1,
6033     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6034 #ifndef DISASM_ONLY
6035     {
6036       0x800000007ffc0000ULL,
6037       0xfffe000000000000ULL,
6038       0ULL,
6039       0ULL,
6040       0ULL
6041     },
6042     {
6043       0x0000000001280000ULL,
6044       0x0858000000000000ULL,
6045       -1ULL,
6046       -1ULL,
6047       -1ULL
6048     }
6049 #endif
6050   },
6051   { "sltb_u.sn", TILEPRO_OPC_SLTB_U_SN, 0x3, 3, TREG_SN, 1,
6052     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6053 #ifndef DISASM_ONLY
6054     {
6055       0x800000007ffc0000ULL,
6056       0xfffe000000000000ULL,
6057       0ULL,
6058       0ULL,
6059       0ULL
6060     },
6061     {
6062       0x0000000009280000ULL,
6063       0x0c58000000000000ULL,
6064       -1ULL,
6065       -1ULL,
6066       -1ULL
6067     }
6068 #endif
6069   },
6070   { "slte", TILEPRO_OPC_SLTE, 0xf, 3, TREG_ZERO, 1,
6071     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
6072 #ifndef DISASM_ONLY
6073     {
6074       0x800000007ffc0000ULL,
6075       0xfffe000000000000ULL,
6076       0x80000000780c0000ULL,
6077       0xf806000000000000ULL,
6078       0ULL
6079     },
6080     {
6081       0x00000000013c0000ULL,
6082       0x0862000000000000ULL,
6083       0x8000000028000000ULL,
6084       0xa800000000000000ULL,
6085       -1ULL
6086     }
6087 #endif
6088   },
6089   { "slte.sn", TILEPRO_OPC_SLTE_SN, 0x3, 3, TREG_SN, 1,
6090     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6091 #ifndef DISASM_ONLY
6092     {
6093       0x800000007ffc0000ULL,
6094       0xfffe000000000000ULL,
6095       0ULL,
6096       0ULL,
6097       0ULL
6098     },
6099     {
6100       0x00000000093c0000ULL,
6101       0x0c62000000000000ULL,
6102       -1ULL,
6103       -1ULL,
6104       -1ULL
6105     }
6106 #endif
6107   },
6108   { "slte_u", TILEPRO_OPC_SLTE_U, 0xf, 3, TREG_ZERO, 1,
6109     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
6110 #ifndef DISASM_ONLY
6111     {
6112       0x800000007ffc0000ULL,
6113       0xfffe000000000000ULL,
6114       0x80000000780c0000ULL,
6115       0xf806000000000000ULL,
6116       0ULL
6117     },
6118     {
6119       0x0000000001400000ULL,
6120       0x0864000000000000ULL,
6121       0x8000000028040000ULL,
6122       0xa802000000000000ULL,
6123       -1ULL
6124     }
6125 #endif
6126   },
6127   { "slte_u.sn", TILEPRO_OPC_SLTE_U_SN, 0x3, 3, TREG_SN, 1,
6128     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6129 #ifndef DISASM_ONLY
6130     {
6131       0x800000007ffc0000ULL,
6132       0xfffe000000000000ULL,
6133       0ULL,
6134       0ULL,
6135       0ULL
6136     },
6137     {
6138       0x0000000009400000ULL,
6139       0x0c64000000000000ULL,
6140       -1ULL,
6141       -1ULL,
6142       -1ULL
6143     }
6144 #endif
6145   },
6146   { "slteb", TILEPRO_OPC_SLTEB, 0x3, 3, TREG_ZERO, 1,
6147     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6148 #ifndef DISASM_ONLY
6149     {
6150       0x800000007ffc0000ULL,
6151       0xfffe000000000000ULL,
6152       0ULL,
6153       0ULL,
6154       0ULL
6155     },
6156     {
6157       0x00000000012c0000ULL,
6158       0x085a000000000000ULL,
6159       -1ULL,
6160       -1ULL,
6161       -1ULL
6162     }
6163 #endif
6164   },
6165   { "slteb.sn", TILEPRO_OPC_SLTEB_SN, 0x3, 3, TREG_SN, 1,
6166     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6167 #ifndef DISASM_ONLY
6168     {
6169       0x800000007ffc0000ULL,
6170       0xfffe000000000000ULL,
6171       0ULL,
6172       0ULL,
6173       0ULL
6174     },
6175     {
6176       0x00000000092c0000ULL,
6177       0x0c5a000000000000ULL,
6178       -1ULL,
6179       -1ULL,
6180       -1ULL
6181     }
6182 #endif
6183   },
6184   { "slteb_u", TILEPRO_OPC_SLTEB_U, 0x3, 3, TREG_ZERO, 1,
6185     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6186 #ifndef DISASM_ONLY
6187     {
6188       0x800000007ffc0000ULL,
6189       0xfffe000000000000ULL,
6190       0ULL,
6191       0ULL,
6192       0ULL
6193     },
6194     {
6195       0x0000000001300000ULL,
6196       0x085c000000000000ULL,
6197       -1ULL,
6198       -1ULL,
6199       -1ULL
6200     }
6201 #endif
6202   },
6203   { "slteb_u.sn", TILEPRO_OPC_SLTEB_U_SN, 0x3, 3, TREG_SN, 1,
6204     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6205 #ifndef DISASM_ONLY
6206     {
6207       0x800000007ffc0000ULL,
6208       0xfffe000000000000ULL,
6209       0ULL,
6210       0ULL,
6211       0ULL
6212     },
6213     {
6214       0x0000000009300000ULL,
6215       0x0c5c000000000000ULL,
6216       -1ULL,
6217       -1ULL,
6218       -1ULL
6219     }
6220 #endif
6221   },
6222   { "slteh", TILEPRO_OPC_SLTEH, 0x3, 3, TREG_ZERO, 1,
6223     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6224 #ifndef DISASM_ONLY
6225     {
6226       0x800000007ffc0000ULL,
6227       0xfffe000000000000ULL,
6228       0ULL,
6229       0ULL,
6230       0ULL
6231     },
6232     {
6233       0x0000000001340000ULL,
6234       0x085e000000000000ULL,
6235       -1ULL,
6236       -1ULL,
6237       -1ULL
6238     }
6239 #endif
6240   },
6241   { "slteh.sn", TILEPRO_OPC_SLTEH_SN, 0x3, 3, TREG_SN, 1,
6242     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6243 #ifndef DISASM_ONLY
6244     {
6245       0x800000007ffc0000ULL,
6246       0xfffe000000000000ULL,
6247       0ULL,
6248       0ULL,
6249       0ULL
6250     },
6251     {
6252       0x0000000009340000ULL,
6253       0x0c5e000000000000ULL,
6254       -1ULL,
6255       -1ULL,
6256       -1ULL
6257     }
6258 #endif
6259   },
6260   { "slteh_u", TILEPRO_OPC_SLTEH_U, 0x3, 3, TREG_ZERO, 1,
6261     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6262 #ifndef DISASM_ONLY
6263     {
6264       0x800000007ffc0000ULL,
6265       0xfffe000000000000ULL,
6266       0ULL,
6267       0ULL,
6268       0ULL
6269     },
6270     {
6271       0x0000000001380000ULL,
6272       0x0860000000000000ULL,
6273       -1ULL,
6274       -1ULL,
6275       -1ULL
6276     }
6277 #endif
6278   },
6279   { "slteh_u.sn", TILEPRO_OPC_SLTEH_U_SN, 0x3, 3, TREG_SN, 1,
6280     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6281 #ifndef DISASM_ONLY
6282     {
6283       0x800000007ffc0000ULL,
6284       0xfffe000000000000ULL,
6285       0ULL,
6286       0ULL,
6287       0ULL
6288     },
6289     {
6290       0x0000000009380000ULL,
6291       0x0c60000000000000ULL,
6292       -1ULL,
6293       -1ULL,
6294       -1ULL
6295     }
6296 #endif
6297   },
6298   { "slth", TILEPRO_OPC_SLTH, 0x3, 3, TREG_ZERO, 1,
6299     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6300 #ifndef DISASM_ONLY
6301     {
6302       0x800000007ffc0000ULL,
6303       0xfffe000000000000ULL,
6304       0ULL,
6305       0ULL,
6306       0ULL
6307     },
6308     {
6309       0x0000000001440000ULL,
6310       0x0866000000000000ULL,
6311       -1ULL,
6312       -1ULL,
6313       -1ULL
6314     }
6315 #endif
6316   },
6317   { "slth.sn", TILEPRO_OPC_SLTH_SN, 0x3, 3, TREG_SN, 1,
6318     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6319 #ifndef DISASM_ONLY
6320     {
6321       0x800000007ffc0000ULL,
6322       0xfffe000000000000ULL,
6323       0ULL,
6324       0ULL,
6325       0ULL
6326     },
6327     {
6328       0x0000000009440000ULL,
6329       0x0c66000000000000ULL,
6330       -1ULL,
6331       -1ULL,
6332       -1ULL
6333     }
6334 #endif
6335   },
6336   { "slth_u", TILEPRO_OPC_SLTH_U, 0x3, 3, TREG_ZERO, 1,
6337     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6338 #ifndef DISASM_ONLY
6339     {
6340       0x800000007ffc0000ULL,
6341       0xfffe000000000000ULL,
6342       0ULL,
6343       0ULL,
6344       0ULL
6345     },
6346     {
6347       0x0000000001480000ULL,
6348       0x0868000000000000ULL,
6349       -1ULL,
6350       -1ULL,
6351       -1ULL
6352     }
6353 #endif
6354   },
6355   { "slth_u.sn", TILEPRO_OPC_SLTH_U_SN, 0x3, 3, TREG_SN, 1,
6356     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6357 #ifndef DISASM_ONLY
6358     {
6359       0x800000007ffc0000ULL,
6360       0xfffe000000000000ULL,
6361       0ULL,
6362       0ULL,
6363       0ULL
6364     },
6365     {
6366       0x0000000009480000ULL,
6367       0x0c68000000000000ULL,
6368       -1ULL,
6369       -1ULL,
6370       -1ULL
6371     }
6372 #endif
6373   },
6374   { "slti", TILEPRO_OPC_SLTI, 0xf, 3, TREG_ZERO, 1,
6375     { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
6376 #ifndef DISASM_ONLY
6377     {
6378       0x800000007ff00000ULL,
6379       0xfff8000000000000ULL,
6380       0x8000000078000000ULL,
6381       0xf800000000000000ULL,
6382       0ULL
6383     },
6384     {
6385       0x0000000041000000ULL,
6386       0x3098000000000000ULL,
6387       0x8000000070000000ULL,
6388       0xe000000000000000ULL,
6389       -1ULL
6390     }
6391 #endif
6392   },
6393   { "slti.sn", TILEPRO_OPC_SLTI_SN, 0x3, 3, TREG_SN, 1,
6394     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
6395 #ifndef DISASM_ONLY
6396     {
6397       0x800000007ff00000ULL,
6398       0xfff8000000000000ULL,
6399       0ULL,
6400       0ULL,
6401       0ULL
6402     },
6403     {
6404       0x0000000049000000ULL,
6405       0x3498000000000000ULL,
6406       -1ULL,
6407       -1ULL,
6408       -1ULL
6409     }
6410 #endif
6411   },
6412   { "slti_u", TILEPRO_OPC_SLTI_U, 0xf, 3, TREG_ZERO, 1,
6413     { { 9, 10, 0 }, { 7, 8, 1 }, { 11, 12, 2 }, { 13, 14, 3 }, { 0, } },
6414 #ifndef DISASM_ONLY
6415     {
6416       0x800000007ff00000ULL,
6417       0xfff8000000000000ULL,
6418       0x8000000078000000ULL,
6419       0xf800000000000000ULL,
6420       0ULL
6421     },
6422     {
6423       0x0000000041100000ULL,
6424       0x30a0000000000000ULL,
6425       0x8000000078000000ULL,
6426       0xe800000000000000ULL,
6427       -1ULL
6428     }
6429 #endif
6430   },
6431   { "slti_u.sn", TILEPRO_OPC_SLTI_U_SN, 0x3, 3, TREG_SN, 1,
6432     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
6433 #ifndef DISASM_ONLY
6434     {
6435       0x800000007ff00000ULL,
6436       0xfff8000000000000ULL,
6437       0ULL,
6438       0ULL,
6439       0ULL
6440     },
6441     {
6442       0x0000000049100000ULL,
6443       0x34a0000000000000ULL,
6444       -1ULL,
6445       -1ULL,
6446       -1ULL
6447     }
6448 #endif
6449   },
6450   { "sltib", TILEPRO_OPC_SLTIB, 0x3, 3, TREG_ZERO, 1,
6451     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
6452 #ifndef DISASM_ONLY
6453     {
6454       0x800000007ff00000ULL,
6455       0xfff8000000000000ULL,
6456       0ULL,
6457       0ULL,
6458       0ULL
6459     },
6460     {
6461       0x0000000040c00000ULL,
6462       0x3078000000000000ULL,
6463       -1ULL,
6464       -1ULL,
6465       -1ULL
6466     }
6467 #endif
6468   },
6469   { "sltib.sn", TILEPRO_OPC_SLTIB_SN, 0x3, 3, TREG_SN, 1,
6470     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
6471 #ifndef DISASM_ONLY
6472     {
6473       0x800000007ff00000ULL,
6474       0xfff8000000000000ULL,
6475       0ULL,
6476       0ULL,
6477       0ULL
6478     },
6479     {
6480       0x0000000048c00000ULL,
6481       0x3478000000000000ULL,
6482       -1ULL,
6483       -1ULL,
6484       -1ULL
6485     }
6486 #endif
6487   },
6488   { "sltib_u", TILEPRO_OPC_SLTIB_U, 0x3, 3, TREG_ZERO, 1,
6489     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
6490 #ifndef DISASM_ONLY
6491     {
6492       0x800000007ff00000ULL,
6493       0xfff8000000000000ULL,
6494       0ULL,
6495       0ULL,
6496       0ULL
6497     },
6498     {
6499       0x0000000040d00000ULL,
6500       0x3080000000000000ULL,
6501       -1ULL,
6502       -1ULL,
6503       -1ULL
6504     }
6505 #endif
6506   },
6507   { "sltib_u.sn", TILEPRO_OPC_SLTIB_U_SN, 0x3, 3, TREG_SN, 1,
6508     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
6509 #ifndef DISASM_ONLY
6510     {
6511       0x800000007ff00000ULL,
6512       0xfff8000000000000ULL,
6513       0ULL,
6514       0ULL,
6515       0ULL
6516     },
6517     {
6518       0x0000000048d00000ULL,
6519       0x3480000000000000ULL,
6520       -1ULL,
6521       -1ULL,
6522       -1ULL
6523     }
6524 #endif
6525   },
6526   { "sltih", TILEPRO_OPC_SLTIH, 0x3, 3, TREG_ZERO, 1,
6527     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
6528 #ifndef DISASM_ONLY
6529     {
6530       0x800000007ff00000ULL,
6531       0xfff8000000000000ULL,
6532       0ULL,
6533       0ULL,
6534       0ULL
6535     },
6536     {
6537       0x0000000040e00000ULL,
6538       0x3088000000000000ULL,
6539       -1ULL,
6540       -1ULL,
6541       -1ULL
6542     }
6543 #endif
6544   },
6545   { "sltih.sn", TILEPRO_OPC_SLTIH_SN, 0x3, 3, TREG_SN, 1,
6546     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
6547 #ifndef DISASM_ONLY
6548     {
6549       0x800000007ff00000ULL,
6550       0xfff8000000000000ULL,
6551       0ULL,
6552       0ULL,
6553       0ULL
6554     },
6555     {
6556       0x0000000048e00000ULL,
6557       0x3488000000000000ULL,
6558       -1ULL,
6559       -1ULL,
6560       -1ULL
6561     }
6562 #endif
6563   },
6564   { "sltih_u", TILEPRO_OPC_SLTIH_U, 0x3, 3, TREG_ZERO, 1,
6565     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
6566 #ifndef DISASM_ONLY
6567     {
6568       0x800000007ff00000ULL,
6569       0xfff8000000000000ULL,
6570       0ULL,
6571       0ULL,
6572       0ULL
6573     },
6574     {
6575       0x0000000040f00000ULL,
6576       0x3090000000000000ULL,
6577       -1ULL,
6578       -1ULL,
6579       -1ULL
6580     }
6581 #endif
6582   },
6583   { "sltih_u.sn", TILEPRO_OPC_SLTIH_U_SN, 0x3, 3, TREG_SN, 1,
6584     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
6585 #ifndef DISASM_ONLY
6586     {
6587       0x800000007ff00000ULL,
6588       0xfff8000000000000ULL,
6589       0ULL,
6590       0ULL,
6591       0ULL
6592     },
6593     {
6594       0x0000000048f00000ULL,
6595       0x3490000000000000ULL,
6596       -1ULL,
6597       -1ULL,
6598       -1ULL
6599     }
6600 #endif
6601   },
6602   { "sne", TILEPRO_OPC_SNE, 0xf, 3, TREG_ZERO, 1,
6603     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
6604 #ifndef DISASM_ONLY
6605     {
6606       0x800000007ffc0000ULL,
6607       0xfffe000000000000ULL,
6608       0x80000000780c0000ULL,
6609       0xf806000000000000ULL,
6610       0ULL
6611     },
6612     {
6613       0x00000000015c0000ULL,
6614       0x0872000000000000ULL,
6615       0x80000000300c0000ULL,
6616       0xb006000000000000ULL,
6617       -1ULL
6618     }
6619 #endif
6620   },
6621   { "sne.sn", TILEPRO_OPC_SNE_SN, 0x3, 3, TREG_SN, 1,
6622     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6623 #ifndef DISASM_ONLY
6624     {
6625       0x800000007ffc0000ULL,
6626       0xfffe000000000000ULL,
6627       0ULL,
6628       0ULL,
6629       0ULL
6630     },
6631     {
6632       0x00000000095c0000ULL,
6633       0x0c72000000000000ULL,
6634       -1ULL,
6635       -1ULL,
6636       -1ULL
6637     }
6638 #endif
6639   },
6640   { "sneb", TILEPRO_OPC_SNEB, 0x3, 3, TREG_ZERO, 1,
6641     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6642 #ifndef DISASM_ONLY
6643     {
6644       0x800000007ffc0000ULL,
6645       0xfffe000000000000ULL,
6646       0ULL,
6647       0ULL,
6648       0ULL
6649     },
6650     {
6651       0x0000000001540000ULL,
6652       0x086e000000000000ULL,
6653       -1ULL,
6654       -1ULL,
6655       -1ULL
6656     }
6657 #endif
6658   },
6659   { "sneb.sn", TILEPRO_OPC_SNEB_SN, 0x3, 3, TREG_SN, 1,
6660     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6661 #ifndef DISASM_ONLY
6662     {
6663       0x800000007ffc0000ULL,
6664       0xfffe000000000000ULL,
6665       0ULL,
6666       0ULL,
6667       0ULL
6668     },
6669     {
6670       0x0000000009540000ULL,
6671       0x0c6e000000000000ULL,
6672       -1ULL,
6673       -1ULL,
6674       -1ULL
6675     }
6676 #endif
6677   },
6678   { "sneh", TILEPRO_OPC_SNEH, 0x3, 3, TREG_ZERO, 1,
6679     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6680 #ifndef DISASM_ONLY
6681     {
6682       0x800000007ffc0000ULL,
6683       0xfffe000000000000ULL,
6684       0ULL,
6685       0ULL,
6686       0ULL
6687     },
6688     {
6689       0x0000000001580000ULL,
6690       0x0870000000000000ULL,
6691       -1ULL,
6692       -1ULL,
6693       -1ULL
6694     }
6695 #endif
6696   },
6697   { "sneh.sn", TILEPRO_OPC_SNEH_SN, 0x3, 3, TREG_SN, 1,
6698     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6699 #ifndef DISASM_ONLY
6700     {
6701       0x800000007ffc0000ULL,
6702       0xfffe000000000000ULL,
6703       0ULL,
6704       0ULL,
6705       0ULL
6706     },
6707     {
6708       0x0000000009580000ULL,
6709       0x0c70000000000000ULL,
6710       -1ULL,
6711       -1ULL,
6712       -1ULL
6713     }
6714 #endif
6715   },
6716   { "sra", TILEPRO_OPC_SRA, 0xf, 3, TREG_ZERO, 1,
6717     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
6718 #ifndef DISASM_ONLY
6719     {
6720       0x800000007ffc0000ULL,
6721       0xfffe000000000000ULL,
6722       0x80000000780c0000ULL,
6723       0xf806000000000000ULL,
6724       0ULL
6725     },
6726     {
6727       0x0000000001680000ULL,
6728       0x0878000000000000ULL,
6729       0x80000000200c0000ULL,
6730       0xa006000000000000ULL,
6731       -1ULL
6732     }
6733 #endif
6734   },
6735   { "sra.sn", TILEPRO_OPC_SRA_SN, 0x3, 3, TREG_SN, 1,
6736     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6737 #ifndef DISASM_ONLY
6738     {
6739       0x800000007ffc0000ULL,
6740       0xfffe000000000000ULL,
6741       0ULL,
6742       0ULL,
6743       0ULL
6744     },
6745     {
6746       0x0000000009680000ULL,
6747       0x0c78000000000000ULL,
6748       -1ULL,
6749       -1ULL,
6750       -1ULL
6751     }
6752 #endif
6753   },
6754   { "srab", TILEPRO_OPC_SRAB, 0x3, 3, TREG_ZERO, 1,
6755     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6756 #ifndef DISASM_ONLY
6757     {
6758       0x800000007ffc0000ULL,
6759       0xfffe000000000000ULL,
6760       0ULL,
6761       0ULL,
6762       0ULL
6763     },
6764     {
6765       0x0000000001600000ULL,
6766       0x0874000000000000ULL,
6767       -1ULL,
6768       -1ULL,
6769       -1ULL
6770     }
6771 #endif
6772   },
6773   { "srab.sn", TILEPRO_OPC_SRAB_SN, 0x3, 3, TREG_SN, 1,
6774     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6775 #ifndef DISASM_ONLY
6776     {
6777       0x800000007ffc0000ULL,
6778       0xfffe000000000000ULL,
6779       0ULL,
6780       0ULL,
6781       0ULL
6782     },
6783     {
6784       0x0000000009600000ULL,
6785       0x0c74000000000000ULL,
6786       -1ULL,
6787       -1ULL,
6788       -1ULL
6789     }
6790 #endif
6791   },
6792   { "srah", TILEPRO_OPC_SRAH, 0x3, 3, TREG_ZERO, 1,
6793     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6794 #ifndef DISASM_ONLY
6795     {
6796       0x800000007ffc0000ULL,
6797       0xfffe000000000000ULL,
6798       0ULL,
6799       0ULL,
6800       0ULL
6801     },
6802     {
6803       0x0000000001640000ULL,
6804       0x0876000000000000ULL,
6805       -1ULL,
6806       -1ULL,
6807       -1ULL
6808     }
6809 #endif
6810   },
6811   { "srah.sn", TILEPRO_OPC_SRAH_SN, 0x3, 3, TREG_SN, 1,
6812     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6813 #ifndef DISASM_ONLY
6814     {
6815       0x800000007ffc0000ULL,
6816       0xfffe000000000000ULL,
6817       0ULL,
6818       0ULL,
6819       0ULL
6820     },
6821     {
6822       0x0000000009640000ULL,
6823       0x0c76000000000000ULL,
6824       -1ULL,
6825       -1ULL,
6826       -1ULL
6827     }
6828 #endif
6829   },
6830   { "srai", TILEPRO_OPC_SRAI, 0xf, 3, TREG_ZERO, 1,
6831     { { 9, 10, 32 }, { 7, 8, 33 }, { 11, 12, 34 }, { 13, 14, 35 }, { 0, } },
6832 #ifndef DISASM_ONLY
6833     {
6834       0x800000007ffe0000ULL,
6835       0xffff000000000000ULL,
6836       0x80000000780e0000ULL,
6837       0xf807000000000000ULL,
6838       0ULL
6839     },
6840     {
6841       0x0000000070140000ULL,
6842       0x400a000000000000ULL,
6843       0x8000000068080000ULL,
6844       0xd804000000000000ULL,
6845       -1ULL
6846     }
6847 #endif
6848   },
6849   { "srai.sn", TILEPRO_OPC_SRAI_SN, 0x3, 3, TREG_SN, 1,
6850     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
6851 #ifndef DISASM_ONLY
6852     {
6853       0x800000007ffe0000ULL,
6854       0xffff000000000000ULL,
6855       0ULL,
6856       0ULL,
6857       0ULL
6858     },
6859     {
6860       0x0000000078140000ULL,
6861       0x440a000000000000ULL,
6862       -1ULL,
6863       -1ULL,
6864       -1ULL
6865     }
6866 #endif
6867   },
6868   { "sraib", TILEPRO_OPC_SRAIB, 0x3, 3, TREG_ZERO, 1,
6869     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
6870 #ifndef DISASM_ONLY
6871     {
6872       0x800000007ffe0000ULL,
6873       0xffff000000000000ULL,
6874       0ULL,
6875       0ULL,
6876       0ULL
6877     },
6878     {
6879       0x0000000070100000ULL,
6880       0x4008000000000000ULL,
6881       -1ULL,
6882       -1ULL,
6883       -1ULL
6884     }
6885 #endif
6886   },
6887   { "sraib.sn", TILEPRO_OPC_SRAIB_SN, 0x3, 3, TREG_SN, 1,
6888     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
6889 #ifndef DISASM_ONLY
6890     {
6891       0x800000007ffe0000ULL,
6892       0xffff000000000000ULL,
6893       0ULL,
6894       0ULL,
6895       0ULL
6896     },
6897     {
6898       0x0000000078100000ULL,
6899       0x4408000000000000ULL,
6900       -1ULL,
6901       -1ULL,
6902       -1ULL
6903     }
6904 #endif
6905   },
6906   { "sraih", TILEPRO_OPC_SRAIH, 0x3, 3, TREG_ZERO, 1,
6907     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
6908 #ifndef DISASM_ONLY
6909     {
6910       0x800000007ffe0000ULL,
6911       0xffff000000000000ULL,
6912       0ULL,
6913       0ULL,
6914       0ULL
6915     },
6916     {
6917       0x0000000070120000ULL,
6918       0x4009000000000000ULL,
6919       -1ULL,
6920       -1ULL,
6921       -1ULL
6922     }
6923 #endif
6924   },
6925   { "sraih.sn", TILEPRO_OPC_SRAIH_SN, 0x3, 3, TREG_SN, 1,
6926     { { 9, 10, 32 }, { 7, 8, 33 }, { 0, }, { 0, }, { 0, } },
6927 #ifndef DISASM_ONLY
6928     {
6929       0x800000007ffe0000ULL,
6930       0xffff000000000000ULL,
6931       0ULL,
6932       0ULL,
6933       0ULL
6934     },
6935     {
6936       0x0000000078120000ULL,
6937       0x4409000000000000ULL,
6938       -1ULL,
6939       -1ULL,
6940       -1ULL
6941     }
6942 #endif
6943   },
6944   { "sub", TILEPRO_OPC_SUB, 0xf, 3, TREG_ZERO, 1,
6945     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
6946 #ifndef DISASM_ONLY
6947     {
6948       0x800000007ffc0000ULL,
6949       0xfffe000000000000ULL,
6950       0x80000000780c0000ULL,
6951       0xf806000000000000ULL,
6952       0ULL
6953     },
6954     {
6955       0x0000000001740000ULL,
6956       0x087e000000000000ULL,
6957       0x80000000080c0000ULL,
6958       0x8806000000000000ULL,
6959       -1ULL
6960     }
6961 #endif
6962   },
6963   { "sub.sn", TILEPRO_OPC_SUB_SN, 0x3, 3, TREG_SN, 1,
6964     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6965 #ifndef DISASM_ONLY
6966     {
6967       0x800000007ffc0000ULL,
6968       0xfffe000000000000ULL,
6969       0ULL,
6970       0ULL,
6971       0ULL
6972     },
6973     {
6974       0x0000000009740000ULL,
6975       0x0c7e000000000000ULL,
6976       -1ULL,
6977       -1ULL,
6978       -1ULL
6979     }
6980 #endif
6981   },
6982   { "subb", TILEPRO_OPC_SUBB, 0x3, 3, TREG_ZERO, 1,
6983     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
6984 #ifndef DISASM_ONLY
6985     {
6986       0x800000007ffc0000ULL,
6987       0xfffe000000000000ULL,
6988       0ULL,
6989       0ULL,
6990       0ULL
6991     },
6992     {
6993       0x00000000016c0000ULL,
6994       0x087a000000000000ULL,
6995       -1ULL,
6996       -1ULL,
6997       -1ULL
6998     }
6999 #endif
7000   },
7001   { "subb.sn", TILEPRO_OPC_SUBB_SN, 0x3, 3, TREG_SN, 1,
7002     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
7003 #ifndef DISASM_ONLY
7004     {
7005       0x800000007ffc0000ULL,
7006       0xfffe000000000000ULL,
7007       0ULL,
7008       0ULL,
7009       0ULL
7010     },
7011     {
7012       0x00000000096c0000ULL,
7013       0x0c7a000000000000ULL,
7014       -1ULL,
7015       -1ULL,
7016       -1ULL
7017     }
7018 #endif
7019   },
7020   { "subbs_u", TILEPRO_OPC_SUBBS_U, 0x3, 3, TREG_ZERO, 1,
7021     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
7022 #ifndef DISASM_ONLY
7023     {
7024       0x800000007ffc0000ULL,
7025       0xfffe000000000000ULL,
7026       0ULL,
7027       0ULL,
7028       0ULL
7029     },
7030     {
7031       0x0000000001900000ULL,
7032       0x088c000000000000ULL,
7033       -1ULL,
7034       -1ULL,
7035       -1ULL
7036     }
7037 #endif
7038   },
7039   { "subbs_u.sn", TILEPRO_OPC_SUBBS_U_SN, 0x3, 3, TREG_SN, 1,
7040     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
7041 #ifndef DISASM_ONLY
7042     {
7043       0x800000007ffc0000ULL,
7044       0xfffe000000000000ULL,
7045       0ULL,
7046       0ULL,
7047       0ULL
7048     },
7049     {
7050       0x0000000009900000ULL,
7051       0x0c8c000000000000ULL,
7052       -1ULL,
7053       -1ULL,
7054       -1ULL
7055     }
7056 #endif
7057   },
7058   { "subh", TILEPRO_OPC_SUBH, 0x3, 3, TREG_ZERO, 1,
7059     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
7060 #ifndef DISASM_ONLY
7061     {
7062       0x800000007ffc0000ULL,
7063       0xfffe000000000000ULL,
7064       0ULL,
7065       0ULL,
7066       0ULL
7067     },
7068     {
7069       0x0000000001700000ULL,
7070       0x087c000000000000ULL,
7071       -1ULL,
7072       -1ULL,
7073       -1ULL
7074     }
7075 #endif
7076   },
7077   { "subh.sn", TILEPRO_OPC_SUBH_SN, 0x3, 3, TREG_SN, 1,
7078     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
7079 #ifndef DISASM_ONLY
7080     {
7081       0x800000007ffc0000ULL,
7082       0xfffe000000000000ULL,
7083       0ULL,
7084       0ULL,
7085       0ULL
7086     },
7087     {
7088       0x0000000009700000ULL,
7089       0x0c7c000000000000ULL,
7090       -1ULL,
7091       -1ULL,
7092       -1ULL
7093     }
7094 #endif
7095   },
7096   { "subhs", TILEPRO_OPC_SUBHS, 0x3, 3, TREG_ZERO, 1,
7097     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
7098 #ifndef DISASM_ONLY
7099     {
7100       0x800000007ffc0000ULL,
7101       0xfffe000000000000ULL,
7102       0ULL,
7103       0ULL,
7104       0ULL
7105     },
7106     {
7107       0x0000000001940000ULL,
7108       0x088e000000000000ULL,
7109       -1ULL,
7110       -1ULL,
7111       -1ULL
7112     }
7113 #endif
7114   },
7115   { "subhs.sn", TILEPRO_OPC_SUBHS_SN, 0x3, 3, TREG_SN, 1,
7116     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
7117 #ifndef DISASM_ONLY
7118     {
7119       0x800000007ffc0000ULL,
7120       0xfffe000000000000ULL,
7121       0ULL,
7122       0ULL,
7123       0ULL
7124     },
7125     {
7126       0x0000000009940000ULL,
7127       0x0c8e000000000000ULL,
7128       -1ULL,
7129       -1ULL,
7130       -1ULL
7131     }
7132 #endif
7133   },
7134   { "subs", TILEPRO_OPC_SUBS, 0x3, 3, TREG_ZERO, 1,
7135     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
7136 #ifndef DISASM_ONLY
7137     {
7138       0x800000007ffc0000ULL,
7139       0xfffe000000000000ULL,
7140       0ULL,
7141       0ULL,
7142       0ULL
7143     },
7144     {
7145       0x0000000001840000ULL,
7146       0x0886000000000000ULL,
7147       -1ULL,
7148       -1ULL,
7149       -1ULL
7150     }
7151 #endif
7152   },
7153   { "subs.sn", TILEPRO_OPC_SUBS_SN, 0x3, 3, TREG_SN, 1,
7154     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
7155 #ifndef DISASM_ONLY
7156     {
7157       0x800000007ffc0000ULL,
7158       0xfffe000000000000ULL,
7159       0ULL,
7160       0ULL,
7161       0ULL
7162     },
7163     {
7164       0x0000000009840000ULL,
7165       0x0c86000000000000ULL,
7166       -1ULL,
7167       -1ULL,
7168       -1ULL
7169     }
7170 #endif
7171   },
7172   { "sw", TILEPRO_OPC_SW, 0x12, 2, TREG_ZERO, 1,
7173     { { 0, }, { 8, 17 }, { 0, }, { 0, }, { 15, 36 } },
7174 #ifndef DISASM_ONLY
7175     {
7176       0ULL,
7177       0xfbfe000000000000ULL,
7178       0ULL,
7179       0ULL,
7180       0x8700000000000000ULL
7181     },
7182     {
7183       -1ULL,
7184       0x0880000000000000ULL,
7185       -1ULL,
7186       -1ULL,
7187       0x8700000000000000ULL
7188     }
7189 #endif
7190   },
7191   { "swadd", TILEPRO_OPC_SWADD, 0x2, 3, TREG_ZERO, 1,
7192     { { 0, }, { 24, 17, 37 }, { 0, }, { 0, }, { 0, } },
7193 #ifndef DISASM_ONLY
7194     {
7195       0ULL,
7196       0xfbf8000000000000ULL,
7197       0ULL,
7198       0ULL,
7199       0ULL
7200     },
7201     {
7202       -1ULL,
7203       0x30f0000000000000ULL,
7204       -1ULL,
7205       -1ULL,
7206       -1ULL
7207     }
7208 #endif
7209   },
7210   { "swint0", TILEPRO_OPC_SWINT0, 0x2, 0, TREG_ZERO, 0,
7211     { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
7212 #ifndef DISASM_ONLY
7213     {
7214       0ULL,
7215       0xfbfff80000000000ULL,
7216       0ULL,
7217       0ULL,
7218       0ULL
7219     },
7220     {
7221       -1ULL,
7222       0x400b900000000000ULL,
7223       -1ULL,
7224       -1ULL,
7225       -1ULL
7226     }
7227 #endif
7228   },
7229   { "swint1", TILEPRO_OPC_SWINT1, 0x2, 0, TREG_ZERO, 0,
7230     { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
7231 #ifndef DISASM_ONLY
7232     {
7233       0ULL,
7234       0xfbfff80000000000ULL,
7235       0ULL,
7236       0ULL,
7237       0ULL
7238     },
7239     {
7240       -1ULL,
7241       0x400b980000000000ULL,
7242       -1ULL,
7243       -1ULL,
7244       -1ULL
7245     }
7246 #endif
7247   },
7248   { "swint2", TILEPRO_OPC_SWINT2, 0x2, 0, TREG_ZERO, 0,
7249     { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
7250 #ifndef DISASM_ONLY
7251     {
7252       0ULL,
7253       0xfbfff80000000000ULL,
7254       0ULL,
7255       0ULL,
7256       0ULL
7257     },
7258     {
7259       -1ULL,
7260       0x400ba00000000000ULL,
7261       -1ULL,
7262       -1ULL,
7263       -1ULL
7264     }
7265 #endif
7266   },
7267   { "swint3", TILEPRO_OPC_SWINT3, 0x2, 0, TREG_ZERO, 0,
7268     { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
7269 #ifndef DISASM_ONLY
7270     {
7271       0ULL,
7272       0xfbfff80000000000ULL,
7273       0ULL,
7274       0ULL,
7275       0ULL
7276     },
7277     {
7278       -1ULL,
7279       0x400ba80000000000ULL,
7280       -1ULL,
7281       -1ULL,
7282       -1ULL
7283     }
7284 #endif
7285   },
7286   { "tblidxb0", TILEPRO_OPC_TBLIDXB0, 0x5, 2, TREG_ZERO, 1,
7287     { { 21, 10 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
7288 #ifndef DISASM_ONLY
7289     {
7290       0x800000007ffff000ULL,
7291       0ULL,
7292       0x80000000780ff000ULL,
7293       0ULL,
7294       0ULL
7295     },
7296     {
7297       0x0000000070168000ULL,
7298       -1ULL,
7299       0x80000000680a8000ULL,
7300       -1ULL,
7301       -1ULL
7302     }
7303 #endif
7304   },
7305   { "tblidxb0.sn", TILEPRO_OPC_TBLIDXB0_SN, 0x1, 2, TREG_SN, 1,
7306     { { 21, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
7307 #ifndef DISASM_ONLY
7308     {
7309       0x800000007ffff000ULL,
7310       0ULL,
7311       0ULL,
7312       0ULL,
7313       0ULL
7314     },
7315     {
7316       0x0000000078168000ULL,
7317       -1ULL,
7318       -1ULL,
7319       -1ULL,
7320       -1ULL
7321     }
7322 #endif
7323   },
7324   { "tblidxb1", TILEPRO_OPC_TBLIDXB1, 0x5, 2, TREG_ZERO, 1,
7325     { { 21, 10 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
7326 #ifndef DISASM_ONLY
7327     {
7328       0x800000007ffff000ULL,
7329       0ULL,
7330       0x80000000780ff000ULL,
7331       0ULL,
7332       0ULL
7333     },
7334     {
7335       0x0000000070169000ULL,
7336       -1ULL,
7337       0x80000000680a9000ULL,
7338       -1ULL,
7339       -1ULL
7340     }
7341 #endif
7342   },
7343   { "tblidxb1.sn", TILEPRO_OPC_TBLIDXB1_SN, 0x1, 2, TREG_SN, 1,
7344     { { 21, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
7345 #ifndef DISASM_ONLY
7346     {
7347       0x800000007ffff000ULL,
7348       0ULL,
7349       0ULL,
7350       0ULL,
7351       0ULL
7352     },
7353     {
7354       0x0000000078169000ULL,
7355       -1ULL,
7356       -1ULL,
7357       -1ULL,
7358       -1ULL
7359     }
7360 #endif
7361   },
7362   { "tblidxb2", TILEPRO_OPC_TBLIDXB2, 0x5, 2, TREG_ZERO, 1,
7363     { { 21, 10 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
7364 #ifndef DISASM_ONLY
7365     {
7366       0x800000007ffff000ULL,
7367       0ULL,
7368       0x80000000780ff000ULL,
7369       0ULL,
7370       0ULL
7371     },
7372     {
7373       0x000000007016a000ULL,
7374       -1ULL,
7375       0x80000000680aa000ULL,
7376       -1ULL,
7377       -1ULL
7378     }
7379 #endif
7380   },
7381   { "tblidxb2.sn", TILEPRO_OPC_TBLIDXB2_SN, 0x1, 2, TREG_SN, 1,
7382     { { 21, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
7383 #ifndef DISASM_ONLY
7384     {
7385       0x800000007ffff000ULL,
7386       0ULL,
7387       0ULL,
7388       0ULL,
7389       0ULL
7390     },
7391     {
7392       0x000000007816a000ULL,
7393       -1ULL,
7394       -1ULL,
7395       -1ULL,
7396       -1ULL
7397     }
7398 #endif
7399   },
7400   { "tblidxb3", TILEPRO_OPC_TBLIDXB3, 0x5, 2, TREG_ZERO, 1,
7401     { { 21, 10 }, { 0, }, { 31, 12 }, { 0, }, { 0, } },
7402 #ifndef DISASM_ONLY
7403     {
7404       0x800000007ffff000ULL,
7405       0ULL,
7406       0x80000000780ff000ULL,
7407       0ULL,
7408       0ULL
7409     },
7410     {
7411       0x000000007016b000ULL,
7412       -1ULL,
7413       0x80000000680ab000ULL,
7414       -1ULL,
7415       -1ULL
7416     }
7417 #endif
7418   },
7419   { "tblidxb3.sn", TILEPRO_OPC_TBLIDXB3_SN, 0x1, 2, TREG_SN, 1,
7420     { { 21, 10 }, { 0, }, { 0, }, { 0, }, { 0, } },
7421 #ifndef DISASM_ONLY
7422     {
7423       0x800000007ffff000ULL,
7424       0ULL,
7425       0ULL,
7426       0ULL,
7427       0ULL
7428     },
7429     {
7430       0x000000007816b000ULL,
7431       -1ULL,
7432       -1ULL,
7433       -1ULL,
7434       -1ULL
7435     }
7436 #endif
7437   },
7438   { "tns", TILEPRO_OPC_TNS, 0x2, 2, TREG_ZERO, 1,
7439     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
7440 #ifndef DISASM_ONLY
7441     {
7442       0ULL,
7443       0xfffff80000000000ULL,
7444       0ULL,
7445       0ULL,
7446       0ULL
7447     },
7448     {
7449       -1ULL,
7450       0x400bb00000000000ULL,
7451       -1ULL,
7452       -1ULL,
7453       -1ULL
7454     }
7455 #endif
7456   },
7457   { "tns.sn", TILEPRO_OPC_TNS_SN, 0x2, 2, TREG_SN, 1,
7458     { { 0, }, { 7, 8 }, { 0, }, { 0, }, { 0, } },
7459 #ifndef DISASM_ONLY
7460     {
7461       0ULL,
7462       0xfffff80000000000ULL,
7463       0ULL,
7464       0ULL,
7465       0ULL
7466     },
7467     {
7468       -1ULL,
7469       0x440bb00000000000ULL,
7470       -1ULL,
7471       -1ULL,
7472       -1ULL
7473     }
7474 #endif
7475   },
7476   { "wh64", TILEPRO_OPC_WH64, 0x2, 1, TREG_ZERO, 1,
7477     { { 0, }, { 8 }, { 0, }, { 0, }, { 0, } },
7478 #ifndef DISASM_ONLY
7479     {
7480       0ULL,
7481       0xfbfff80000000000ULL,
7482       0ULL,
7483       0ULL,
7484       0ULL
7485     },
7486     {
7487       -1ULL,
7488       0x400bb80000000000ULL,
7489       -1ULL,
7490       -1ULL,
7491       -1ULL
7492     }
7493 #endif
7494   },
7495   { "xor", TILEPRO_OPC_XOR, 0xf, 3, TREG_ZERO, 1,
7496     { { 9, 10, 16 }, { 7, 8, 17 }, { 11, 12, 18 }, { 13, 14, 19 }, { 0, } },
7497 #ifndef DISASM_ONLY
7498     {
7499       0x800000007ffc0000ULL,
7500       0xfffe000000000000ULL,
7501       0x80000000780c0000ULL,
7502       0xf806000000000000ULL,
7503       0ULL
7504     },
7505     {
7506       0x0000000001780000ULL,
7507       0x0882000000000000ULL,
7508       0x80000000180c0000ULL,
7509       0x9806000000000000ULL,
7510       -1ULL
7511     }
7512 #endif
7513   },
7514   { "xor.sn", TILEPRO_OPC_XOR_SN, 0x3, 3, TREG_SN, 1,
7515     { { 9, 10, 16 }, { 7, 8, 17 }, { 0, }, { 0, }, { 0, } },
7516 #ifndef DISASM_ONLY
7517     {
7518       0x800000007ffc0000ULL,
7519       0xfffe000000000000ULL,
7520       0ULL,
7521       0ULL,
7522       0ULL
7523     },
7524     {
7525       0x0000000009780000ULL,
7526       0x0c82000000000000ULL,
7527       -1ULL,
7528       -1ULL,
7529       -1ULL
7530     }
7531 #endif
7532   },
7533   { "xori", TILEPRO_OPC_XORI, 0x3, 3, TREG_ZERO, 1,
7534     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
7535 #ifndef DISASM_ONLY
7536     {
7537       0x800000007ff00000ULL,
7538       0xfff8000000000000ULL,
7539       0ULL,
7540       0ULL,
7541       0ULL
7542     },
7543     {
7544       0x0000000050200000ULL,
7545       0x30a8000000000000ULL,
7546       -1ULL,
7547       -1ULL,
7548       -1ULL
7549     }
7550 #endif
7551   },
7552   { "xori.sn", TILEPRO_OPC_XORI_SN, 0x3, 3, TREG_SN, 1,
7553     { { 9, 10, 0 }, { 7, 8, 1 }, { 0, }, { 0, }, { 0, } },
7554 #ifndef DISASM_ONLY
7555     {
7556       0x800000007ff00000ULL,
7557       0xfff8000000000000ULL,
7558       0ULL,
7559       0ULL,
7560       0ULL
7561     },
7562     {
7563       0x0000000058200000ULL,
7564       0x34a8000000000000ULL,
7565       -1ULL,
7566       -1ULL,
7567       -1ULL
7568     }
7569 #endif
7570   },
7571   { NULL, TILEPRO_OPC_NONE, 0, 0, TREG_ZERO, 0, { { 0, } },
7572 #ifndef DISASM_ONLY
7573     { 0, }, { 0, }
7574 #endif
7575   }
7576 };
7577
7578 #define BITFIELD(start, size) ((start) | (((1 << (size)) - 1) << 6))
7579 #define CHILD(array_index) (TILEPRO_OPC_NONE + (array_index))
7580
7581 static const unsigned short decode_X0_fsm[1153] =
7582 {
7583   BITFIELD(22, 9) /* index 0 */,
7584   CHILD(513), CHILD(530), CHILD(547), CHILD(564), CHILD(596), CHILD(613),
7585   CHILD(630), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7586   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7587   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7588   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7589   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7590   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7591   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(663), CHILD(680), CHILD(697),
7592   CHILD(714), CHILD(746), CHILD(763), CHILD(780), TILEPRO_OPC_NONE,
7593   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7594   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7595   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7596   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7597   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7598   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7599   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
7600   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
7601   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
7602   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
7603   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
7604   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
7605   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
7606   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
7607   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
7608   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(813),
7609   CHILD(813), CHILD(813), CHILD(813), CHILD(813), CHILD(828), CHILD(828),
7610   CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
7611   CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
7612   CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
7613   CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
7614   CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
7615   CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
7616   CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
7617   CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
7618   CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
7619   CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828), CHILD(828),
7620   CHILD(828), CHILD(828), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7621   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7622   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7623   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7624   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7625   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7626   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7627   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7628   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7629   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7630   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
7631   CHILD(873), CHILD(878), CHILD(883), CHILD(903), CHILD(908),
7632   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7633   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7634   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7635   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7636   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7637   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7638   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(913),
7639   CHILD(918), CHILD(923), CHILD(943), CHILD(948), TILEPRO_OPC_NONE,
7640   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7641   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7642   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7643   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7644   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7645   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7646   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(953), TILEPRO_OPC_NONE,
7647   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7648   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7649   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7650   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7651   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7652   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7653   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7654   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(988), TILEPRO_OPC_NONE,
7655   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7656   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7657   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7658   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7659   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7660   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7661   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7662   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7663   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7664   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7665   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7666   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7667   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7668   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7669   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7670   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7671   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7672   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7673   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7674   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7675   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7676   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7677   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
7678   TILEPRO_OPC_MM, TILEPRO_OPC_MM, CHILD(993), TILEPRO_OPC_NONE,
7679   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7680   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7681   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7682   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7683   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7684   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7685   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7686   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(1076), TILEPRO_OPC_NONE,
7687   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7688   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7689   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7690   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7691   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7692   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7693   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7694   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7695   BITFIELD(18, 4) /* index 513 */,
7696   TILEPRO_OPC_NONE, TILEPRO_OPC_ADDB, TILEPRO_OPC_ADDH, TILEPRO_OPC_ADD,
7697   TILEPRO_OPC_ADIFFB_U, TILEPRO_OPC_ADIFFH, TILEPRO_OPC_AND,
7698   TILEPRO_OPC_AVGB_U, TILEPRO_OPC_AVGH, TILEPRO_OPC_CRC32_32,
7699   TILEPRO_OPC_CRC32_8, TILEPRO_OPC_INTHB, TILEPRO_OPC_INTHH,
7700   TILEPRO_OPC_INTLB, TILEPRO_OPC_INTLH, TILEPRO_OPC_MAXB_U,
7701   BITFIELD(18, 4) /* index 530 */,
7702   TILEPRO_OPC_MAXH, TILEPRO_OPC_MINB_U, TILEPRO_OPC_MINH, TILEPRO_OPC_MNZB,
7703   TILEPRO_OPC_MNZH, TILEPRO_OPC_MNZ, TILEPRO_OPC_MULHHA_SS,
7704   TILEPRO_OPC_MULHHA_SU, TILEPRO_OPC_MULHHA_UU, TILEPRO_OPC_MULHHSA_UU,
7705   TILEPRO_OPC_MULHH_SS, TILEPRO_OPC_MULHH_SU, TILEPRO_OPC_MULHH_UU,
7706   TILEPRO_OPC_MULHLA_SS, TILEPRO_OPC_MULHLA_SU, TILEPRO_OPC_MULHLA_US,
7707   BITFIELD(18, 4) /* index 547 */,
7708   TILEPRO_OPC_MULHLA_UU, TILEPRO_OPC_MULHLSA_UU, TILEPRO_OPC_MULHL_SS,
7709   TILEPRO_OPC_MULHL_SU, TILEPRO_OPC_MULHL_US, TILEPRO_OPC_MULHL_UU,
7710   TILEPRO_OPC_MULLLA_SS, TILEPRO_OPC_MULLLA_SU, TILEPRO_OPC_MULLLA_UU,
7711   TILEPRO_OPC_MULLLSA_UU, TILEPRO_OPC_MULLL_SS, TILEPRO_OPC_MULLL_SU,
7712   TILEPRO_OPC_MULLL_UU, TILEPRO_OPC_MVNZ, TILEPRO_OPC_MVZ, TILEPRO_OPC_MZB,
7713   BITFIELD(18, 4) /* index 564 */,
7714   TILEPRO_OPC_MZH, TILEPRO_OPC_MZ, TILEPRO_OPC_NOR, CHILD(581),
7715   TILEPRO_OPC_PACKHB, TILEPRO_OPC_PACKLB, TILEPRO_OPC_RL, TILEPRO_OPC_S1A,
7716   TILEPRO_OPC_S2A, TILEPRO_OPC_S3A, TILEPRO_OPC_SADAB_U, TILEPRO_OPC_SADAH,
7717   TILEPRO_OPC_SADAH_U, TILEPRO_OPC_SADB_U, TILEPRO_OPC_SADH,
7718   TILEPRO_OPC_SADH_U,
7719   BITFIELD(12, 2) /* index 581 */,
7720   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, CHILD(586),
7721   BITFIELD(14, 2) /* index 586 */,
7722   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, CHILD(591),
7723   BITFIELD(16, 2) /* index 591 */,
7724   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_MOVE,
7725   BITFIELD(18, 4) /* index 596 */,
7726   TILEPRO_OPC_SEQB, TILEPRO_OPC_SEQH, TILEPRO_OPC_SEQ, TILEPRO_OPC_SHLB,
7727   TILEPRO_OPC_SHLH, TILEPRO_OPC_SHL, TILEPRO_OPC_SHRB, TILEPRO_OPC_SHRH,
7728   TILEPRO_OPC_SHR, TILEPRO_OPC_SLTB, TILEPRO_OPC_SLTB_U, TILEPRO_OPC_SLTEB,
7729   TILEPRO_OPC_SLTEB_U, TILEPRO_OPC_SLTEH, TILEPRO_OPC_SLTEH_U,
7730   TILEPRO_OPC_SLTE,
7731   BITFIELD(18, 4) /* index 613 */,
7732   TILEPRO_OPC_SLTE_U, TILEPRO_OPC_SLTH, TILEPRO_OPC_SLTH_U, TILEPRO_OPC_SLT,
7733   TILEPRO_OPC_SLT_U, TILEPRO_OPC_SNEB, TILEPRO_OPC_SNEH, TILEPRO_OPC_SNE,
7734   TILEPRO_OPC_SRAB, TILEPRO_OPC_SRAH, TILEPRO_OPC_SRA, TILEPRO_OPC_SUBB,
7735   TILEPRO_OPC_SUBH, TILEPRO_OPC_SUB, TILEPRO_OPC_XOR, TILEPRO_OPC_DWORD_ALIGN,
7736   BITFIELD(18, 3) /* index 630 */,
7737   CHILD(639), CHILD(642), CHILD(645), CHILD(648), CHILD(651), CHILD(654),
7738   CHILD(657), CHILD(660),
7739   BITFIELD(21, 1) /* index 639 */,
7740   TILEPRO_OPC_ADDS, TILEPRO_OPC_NONE,
7741   BITFIELD(21, 1) /* index 642 */,
7742   TILEPRO_OPC_SUBS, TILEPRO_OPC_NONE,
7743   BITFIELD(21, 1) /* index 645 */,
7744   TILEPRO_OPC_ADDBS_U, TILEPRO_OPC_NONE,
7745   BITFIELD(21, 1) /* index 648 */,
7746   TILEPRO_OPC_ADDHS, TILEPRO_OPC_NONE,
7747   BITFIELD(21, 1) /* index 651 */,
7748   TILEPRO_OPC_SUBBS_U, TILEPRO_OPC_NONE,
7749   BITFIELD(21, 1) /* index 654 */,
7750   TILEPRO_OPC_SUBHS, TILEPRO_OPC_NONE,
7751   BITFIELD(21, 1) /* index 657 */,
7752   TILEPRO_OPC_PACKHS, TILEPRO_OPC_NONE,
7753   BITFIELD(21, 1) /* index 660 */,
7754   TILEPRO_OPC_PACKBS_U, TILEPRO_OPC_NONE,
7755   BITFIELD(18, 4) /* index 663 */,
7756   TILEPRO_OPC_NONE, TILEPRO_OPC_ADDB_SN, TILEPRO_OPC_ADDH_SN,
7757   TILEPRO_OPC_ADD_SN, TILEPRO_OPC_ADIFFB_U_SN, TILEPRO_OPC_ADIFFH_SN,
7758   TILEPRO_OPC_AND_SN, TILEPRO_OPC_AVGB_U_SN, TILEPRO_OPC_AVGH_SN,
7759   TILEPRO_OPC_CRC32_32_SN, TILEPRO_OPC_CRC32_8_SN, TILEPRO_OPC_INTHB_SN,
7760   TILEPRO_OPC_INTHH_SN, TILEPRO_OPC_INTLB_SN, TILEPRO_OPC_INTLH_SN,
7761   TILEPRO_OPC_MAXB_U_SN,
7762   BITFIELD(18, 4) /* index 680 */,
7763   TILEPRO_OPC_MAXH_SN, TILEPRO_OPC_MINB_U_SN, TILEPRO_OPC_MINH_SN,
7764   TILEPRO_OPC_MNZB_SN, TILEPRO_OPC_MNZH_SN, TILEPRO_OPC_MNZ_SN,
7765   TILEPRO_OPC_MULHHA_SS_SN, TILEPRO_OPC_MULHHA_SU_SN,
7766   TILEPRO_OPC_MULHHA_UU_SN, TILEPRO_OPC_MULHHSA_UU_SN,
7767   TILEPRO_OPC_MULHH_SS_SN, TILEPRO_OPC_MULHH_SU_SN, TILEPRO_OPC_MULHH_UU_SN,
7768   TILEPRO_OPC_MULHLA_SS_SN, TILEPRO_OPC_MULHLA_SU_SN,
7769   TILEPRO_OPC_MULHLA_US_SN,
7770   BITFIELD(18, 4) /* index 697 */,
7771   TILEPRO_OPC_MULHLA_UU_SN, TILEPRO_OPC_MULHLSA_UU_SN,
7772   TILEPRO_OPC_MULHL_SS_SN, TILEPRO_OPC_MULHL_SU_SN, TILEPRO_OPC_MULHL_US_SN,
7773   TILEPRO_OPC_MULHL_UU_SN, TILEPRO_OPC_MULLLA_SS_SN, TILEPRO_OPC_MULLLA_SU_SN,
7774   TILEPRO_OPC_MULLLA_UU_SN, TILEPRO_OPC_MULLLSA_UU_SN,
7775   TILEPRO_OPC_MULLL_SS_SN, TILEPRO_OPC_MULLL_SU_SN, TILEPRO_OPC_MULLL_UU_SN,
7776   TILEPRO_OPC_MVNZ_SN, TILEPRO_OPC_MVZ_SN, TILEPRO_OPC_MZB_SN,
7777   BITFIELD(18, 4) /* index 714 */,
7778   TILEPRO_OPC_MZH_SN, TILEPRO_OPC_MZ_SN, TILEPRO_OPC_NOR_SN, CHILD(731),
7779   TILEPRO_OPC_PACKHB_SN, TILEPRO_OPC_PACKLB_SN, TILEPRO_OPC_RL_SN,
7780   TILEPRO_OPC_S1A_SN, TILEPRO_OPC_S2A_SN, TILEPRO_OPC_S3A_SN,
7781   TILEPRO_OPC_SADAB_U_SN, TILEPRO_OPC_SADAH_SN, TILEPRO_OPC_SADAH_U_SN,
7782   TILEPRO_OPC_SADB_U_SN, TILEPRO_OPC_SADH_SN, TILEPRO_OPC_SADH_U_SN,
7783   BITFIELD(12, 2) /* index 731 */,
7784   TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN, CHILD(736),
7785   BITFIELD(14, 2) /* index 736 */,
7786   TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN, CHILD(741),
7787   BITFIELD(16, 2) /* index 741 */,
7788   TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN,
7789   TILEPRO_OPC_MOVE_SN,
7790   BITFIELD(18, 4) /* index 746 */,
7791   TILEPRO_OPC_SEQB_SN, TILEPRO_OPC_SEQH_SN, TILEPRO_OPC_SEQ_SN,
7792   TILEPRO_OPC_SHLB_SN, TILEPRO_OPC_SHLH_SN, TILEPRO_OPC_SHL_SN,
7793   TILEPRO_OPC_SHRB_SN, TILEPRO_OPC_SHRH_SN, TILEPRO_OPC_SHR_SN,
7794   TILEPRO_OPC_SLTB_SN, TILEPRO_OPC_SLTB_U_SN, TILEPRO_OPC_SLTEB_SN,
7795   TILEPRO_OPC_SLTEB_U_SN, TILEPRO_OPC_SLTEH_SN, TILEPRO_OPC_SLTEH_U_SN,
7796   TILEPRO_OPC_SLTE_SN,
7797   BITFIELD(18, 4) /* index 763 */,
7798   TILEPRO_OPC_SLTE_U_SN, TILEPRO_OPC_SLTH_SN, TILEPRO_OPC_SLTH_U_SN,
7799   TILEPRO_OPC_SLT_SN, TILEPRO_OPC_SLT_U_SN, TILEPRO_OPC_SNEB_SN,
7800   TILEPRO_OPC_SNEH_SN, TILEPRO_OPC_SNE_SN, TILEPRO_OPC_SRAB_SN,
7801   TILEPRO_OPC_SRAH_SN, TILEPRO_OPC_SRA_SN, TILEPRO_OPC_SUBB_SN,
7802   TILEPRO_OPC_SUBH_SN, TILEPRO_OPC_SUB_SN, TILEPRO_OPC_XOR_SN,
7803   TILEPRO_OPC_DWORD_ALIGN_SN,
7804   BITFIELD(18, 3) /* index 780 */,
7805   CHILD(789), CHILD(792), CHILD(795), CHILD(798), CHILD(801), CHILD(804),
7806   CHILD(807), CHILD(810),
7807   BITFIELD(21, 1) /* index 789 */,
7808   TILEPRO_OPC_ADDS_SN, TILEPRO_OPC_NONE,
7809   BITFIELD(21, 1) /* index 792 */,
7810   TILEPRO_OPC_SUBS_SN, TILEPRO_OPC_NONE,
7811   BITFIELD(21, 1) /* index 795 */,
7812   TILEPRO_OPC_ADDBS_U_SN, TILEPRO_OPC_NONE,
7813   BITFIELD(21, 1) /* index 798 */,
7814   TILEPRO_OPC_ADDHS_SN, TILEPRO_OPC_NONE,
7815   BITFIELD(21, 1) /* index 801 */,
7816   TILEPRO_OPC_SUBBS_U_SN, TILEPRO_OPC_NONE,
7817   BITFIELD(21, 1) /* index 804 */,
7818   TILEPRO_OPC_SUBHS_SN, TILEPRO_OPC_NONE,
7819   BITFIELD(21, 1) /* index 807 */,
7820   TILEPRO_OPC_PACKHS_SN, TILEPRO_OPC_NONE,
7821   BITFIELD(21, 1) /* index 810 */,
7822   TILEPRO_OPC_PACKBS_U_SN, TILEPRO_OPC_NONE,
7823   BITFIELD(6, 2) /* index 813 */,
7824   TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN,
7825   CHILD(818),
7826   BITFIELD(8, 2) /* index 818 */,
7827   TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN,
7828   CHILD(823),
7829   BITFIELD(10, 2) /* index 823 */,
7830   TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN,
7831   TILEPRO_OPC_MOVELI_SN,
7832   BITFIELD(6, 2) /* index 828 */,
7833   TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, CHILD(833),
7834   BITFIELD(8, 2) /* index 833 */,
7835   TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, CHILD(838),
7836   BITFIELD(10, 2) /* index 838 */,
7837   TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, TILEPRO_OPC_MOVELI,
7838   BITFIELD(0, 2) /* index 843 */,
7839   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, CHILD(848),
7840   BITFIELD(2, 2) /* index 848 */,
7841   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, CHILD(853),
7842   BITFIELD(4, 2) /* index 853 */,
7843   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, CHILD(858),
7844   BITFIELD(6, 2) /* index 858 */,
7845   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, CHILD(863),
7846   BITFIELD(8, 2) /* index 863 */,
7847   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, CHILD(868),
7848   BITFIELD(10, 2) /* index 868 */,
7849   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_INFOL,
7850   BITFIELD(20, 2) /* index 873 */,
7851   TILEPRO_OPC_NONE, TILEPRO_OPC_ADDIB, TILEPRO_OPC_ADDIH, TILEPRO_OPC_ADDI,
7852   BITFIELD(20, 2) /* index 878 */,
7853   TILEPRO_OPC_MAXIB_U, TILEPRO_OPC_MAXIH, TILEPRO_OPC_MINIB_U,
7854   TILEPRO_OPC_MINIH,
7855   BITFIELD(20, 2) /* index 883 */,
7856   CHILD(888), TILEPRO_OPC_SEQIB, TILEPRO_OPC_SEQIH, TILEPRO_OPC_SEQI,
7857   BITFIELD(6, 2) /* index 888 */,
7858   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, CHILD(893),
7859   BITFIELD(8, 2) /* index 893 */,
7860   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, CHILD(898),
7861   BITFIELD(10, 2) /* index 898 */,
7862   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_MOVEI,
7863   BITFIELD(20, 2) /* index 903 */,
7864   TILEPRO_OPC_SLTIB, TILEPRO_OPC_SLTIB_U, TILEPRO_OPC_SLTIH,
7865   TILEPRO_OPC_SLTIH_U,
7866   BITFIELD(20, 2) /* index 908 */,
7867   TILEPRO_OPC_SLTI, TILEPRO_OPC_SLTI_U, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7868   BITFIELD(20, 2) /* index 913 */,
7869   TILEPRO_OPC_NONE, TILEPRO_OPC_ADDIB_SN, TILEPRO_OPC_ADDIH_SN,
7870   TILEPRO_OPC_ADDI_SN,
7871   BITFIELD(20, 2) /* index 918 */,
7872   TILEPRO_OPC_MAXIB_U_SN, TILEPRO_OPC_MAXIH_SN, TILEPRO_OPC_MINIB_U_SN,
7873   TILEPRO_OPC_MINIH_SN,
7874   BITFIELD(20, 2) /* index 923 */,
7875   CHILD(928), TILEPRO_OPC_SEQIB_SN, TILEPRO_OPC_SEQIH_SN, TILEPRO_OPC_SEQI_SN,
7876   BITFIELD(6, 2) /* index 928 */,
7877   TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, CHILD(933),
7878   BITFIELD(8, 2) /* index 933 */,
7879   TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, CHILD(938),
7880   BITFIELD(10, 2) /* index 938 */,
7881   TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN,
7882   TILEPRO_OPC_MOVEI_SN,
7883   BITFIELD(20, 2) /* index 943 */,
7884   TILEPRO_OPC_SLTIB_SN, TILEPRO_OPC_SLTIB_U_SN, TILEPRO_OPC_SLTIH_SN,
7885   TILEPRO_OPC_SLTIH_U_SN,
7886   BITFIELD(20, 2) /* index 948 */,
7887   TILEPRO_OPC_SLTI_SN, TILEPRO_OPC_SLTI_U_SN, TILEPRO_OPC_NONE,
7888   TILEPRO_OPC_NONE,
7889   BITFIELD(20, 2) /* index 953 */,
7890   TILEPRO_OPC_NONE, CHILD(958), TILEPRO_OPC_XORI, TILEPRO_OPC_NONE,
7891   BITFIELD(0, 2) /* index 958 */,
7892   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(963),
7893   BITFIELD(2, 2) /* index 963 */,
7894   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(968),
7895   BITFIELD(4, 2) /* index 968 */,
7896   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(973),
7897   BITFIELD(6, 2) /* index 973 */,
7898   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(978),
7899   BITFIELD(8, 2) /* index 978 */,
7900   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(983),
7901   BITFIELD(10, 2) /* index 983 */,
7902   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_INFO,
7903   BITFIELD(20, 2) /* index 988 */,
7904   TILEPRO_OPC_NONE, TILEPRO_OPC_ANDI_SN, TILEPRO_OPC_XORI_SN,
7905   TILEPRO_OPC_NONE,
7906   BITFIELD(17, 5) /* index 993 */,
7907   TILEPRO_OPC_NONE, TILEPRO_OPC_RLI, TILEPRO_OPC_SHLIB, TILEPRO_OPC_SHLIH,
7908   TILEPRO_OPC_SHLI, TILEPRO_OPC_SHRIB, TILEPRO_OPC_SHRIH, TILEPRO_OPC_SHRI,
7909   TILEPRO_OPC_SRAIB, TILEPRO_OPC_SRAIH, TILEPRO_OPC_SRAI, CHILD(1026),
7910   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7911   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7912   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7913   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7914   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7915   BITFIELD(12, 4) /* index 1026 */,
7916   TILEPRO_OPC_NONE, CHILD(1043), CHILD(1046), CHILD(1049), CHILD(1052),
7917   CHILD(1055), CHILD(1058), CHILD(1061), CHILD(1064), CHILD(1067),
7918   CHILD(1070), CHILD(1073), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7919   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7920   BITFIELD(16, 1) /* index 1043 */,
7921   TILEPRO_OPC_BITX, TILEPRO_OPC_NONE,
7922   BITFIELD(16, 1) /* index 1046 */,
7923   TILEPRO_OPC_BYTEX, TILEPRO_OPC_NONE,
7924   BITFIELD(16, 1) /* index 1049 */,
7925   TILEPRO_OPC_CLZ, TILEPRO_OPC_NONE,
7926   BITFIELD(16, 1) /* index 1052 */,
7927   TILEPRO_OPC_CTZ, TILEPRO_OPC_NONE,
7928   BITFIELD(16, 1) /* index 1055 */,
7929   TILEPRO_OPC_FNOP, TILEPRO_OPC_NONE,
7930   BITFIELD(16, 1) /* index 1058 */,
7931   TILEPRO_OPC_NOP, TILEPRO_OPC_NONE,
7932   BITFIELD(16, 1) /* index 1061 */,
7933   TILEPRO_OPC_PCNT, TILEPRO_OPC_NONE,
7934   BITFIELD(16, 1) /* index 1064 */,
7935   TILEPRO_OPC_TBLIDXB0, TILEPRO_OPC_NONE,
7936   BITFIELD(16, 1) /* index 1067 */,
7937   TILEPRO_OPC_TBLIDXB1, TILEPRO_OPC_NONE,
7938   BITFIELD(16, 1) /* index 1070 */,
7939   TILEPRO_OPC_TBLIDXB2, TILEPRO_OPC_NONE,
7940   BITFIELD(16, 1) /* index 1073 */,
7941   TILEPRO_OPC_TBLIDXB3, TILEPRO_OPC_NONE,
7942   BITFIELD(17, 5) /* index 1076 */,
7943   TILEPRO_OPC_NONE, TILEPRO_OPC_RLI_SN, TILEPRO_OPC_SHLIB_SN,
7944   TILEPRO_OPC_SHLIH_SN, TILEPRO_OPC_SHLI_SN, TILEPRO_OPC_SHRIB_SN,
7945   TILEPRO_OPC_SHRIH_SN, TILEPRO_OPC_SHRI_SN, TILEPRO_OPC_SRAIB_SN,
7946   TILEPRO_OPC_SRAIH_SN, TILEPRO_OPC_SRAI_SN, CHILD(1109), TILEPRO_OPC_NONE,
7947   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7948   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7949   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7950   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7951   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7952   BITFIELD(12, 4) /* index 1109 */,
7953   TILEPRO_OPC_NONE, CHILD(1126), CHILD(1129), CHILD(1132), CHILD(1135),
7954   CHILD(1055), CHILD(1058), CHILD(1138), CHILD(1141), CHILD(1144),
7955   CHILD(1147), CHILD(1150), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7956   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7957   BITFIELD(16, 1) /* index 1126 */,
7958   TILEPRO_OPC_BITX_SN, TILEPRO_OPC_NONE,
7959   BITFIELD(16, 1) /* index 1129 */,
7960   TILEPRO_OPC_BYTEX_SN, TILEPRO_OPC_NONE,
7961   BITFIELD(16, 1) /* index 1132 */,
7962   TILEPRO_OPC_CLZ_SN, TILEPRO_OPC_NONE,
7963   BITFIELD(16, 1) /* index 1135 */,
7964   TILEPRO_OPC_CTZ_SN, TILEPRO_OPC_NONE,
7965   BITFIELD(16, 1) /* index 1138 */,
7966   TILEPRO_OPC_PCNT_SN, TILEPRO_OPC_NONE,
7967   BITFIELD(16, 1) /* index 1141 */,
7968   TILEPRO_OPC_TBLIDXB0_SN, TILEPRO_OPC_NONE,
7969   BITFIELD(16, 1) /* index 1144 */,
7970   TILEPRO_OPC_TBLIDXB1_SN, TILEPRO_OPC_NONE,
7971   BITFIELD(16, 1) /* index 1147 */,
7972   TILEPRO_OPC_TBLIDXB2_SN, TILEPRO_OPC_NONE,
7973   BITFIELD(16, 1) /* index 1150 */,
7974   TILEPRO_OPC_TBLIDXB3_SN, TILEPRO_OPC_NONE,
7975 };
7976
7977 static const unsigned short decode_X1_fsm[1580] =
7978 {
7979   BITFIELD(54, 9) /* index 0 */,
7980   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7981   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7982   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7983   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7984   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7985   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7986   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7987   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7988   CHILD(513), CHILD(561), CHILD(594), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7989   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7990   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7991   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(641),
7992   CHILD(689), CHILD(722), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7993   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7994   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
7995   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(766),
7996   CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766),
7997   CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766),
7998   CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766),
7999   CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766),
8000   CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766), CHILD(766),
8001   CHILD(766), CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781),
8002   CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781),
8003   CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781),
8004   CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781),
8005   CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781), CHILD(781),
8006   CHILD(781), CHILD(781), CHILD(781), CHILD(796), CHILD(796), CHILD(796),
8007   CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796),
8008   CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796),
8009   CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796),
8010   CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796),
8011   CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(796), CHILD(826),
8012   CHILD(826), CHILD(826), CHILD(826), CHILD(826), CHILD(826), CHILD(826),
8013   CHILD(826), CHILD(826), CHILD(826), CHILD(826), CHILD(826), CHILD(826),
8014   CHILD(826), CHILD(826), CHILD(826), CHILD(843), CHILD(843), CHILD(843),
8015   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
8016   CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843), CHILD(843),
8017   CHILD(843), CHILD(860), CHILD(899), CHILD(923), CHILD(932),
8018   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8019   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8020   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8021   CHILD(961), CHILD(970), CHILD(994), CHILD(1003), TILEPRO_OPC_NONE,
8022   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8023   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8024   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_MM,
8025   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
8026   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
8027   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
8028   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
8029   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
8030   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
8031   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM,
8032   TILEPRO_OPC_MM, TILEPRO_OPC_MM, TILEPRO_OPC_MM, CHILD(1032),
8033   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8034   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8035   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8036   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, CHILD(1374),
8037   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8038   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8039   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8040   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8041   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8042   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8043   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8044   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8045   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8046   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8047   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8048   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_J,
8049   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8050   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8051   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8052   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8053   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8054   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8055   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8056   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8057   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8058   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8059   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8060   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J,
8061   TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_J, TILEPRO_OPC_JAL,
8062   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8063   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8064   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8065   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8066   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8067   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8068   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8069   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8070   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8071   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8072   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8073   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8074   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8075   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8076   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL,
8077   TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_JAL, TILEPRO_OPC_NONE,
8078   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8079   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8080   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8081   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8082   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8083   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8084   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8085   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8086   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8087   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8088   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8089   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8090   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8091   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8092   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8093   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8094   BITFIELD(49, 5) /* index 513 */,
8095   TILEPRO_OPC_NONE, TILEPRO_OPC_ADDB, TILEPRO_OPC_ADDH, TILEPRO_OPC_ADD,
8096   TILEPRO_OPC_AND, TILEPRO_OPC_INTHB, TILEPRO_OPC_INTHH, TILEPRO_OPC_INTLB,
8097   TILEPRO_OPC_INTLH, TILEPRO_OPC_JALRP, TILEPRO_OPC_JALR, TILEPRO_OPC_JRP,
8098   TILEPRO_OPC_JR, TILEPRO_OPC_LNK, TILEPRO_OPC_MAXB_U, TILEPRO_OPC_MAXH,
8099   TILEPRO_OPC_MINB_U, TILEPRO_OPC_MINH, TILEPRO_OPC_MNZB, TILEPRO_OPC_MNZH,
8100   TILEPRO_OPC_MNZ, TILEPRO_OPC_MZB, TILEPRO_OPC_MZH, TILEPRO_OPC_MZ,
8101   TILEPRO_OPC_NOR, CHILD(546), TILEPRO_OPC_PACKHB, TILEPRO_OPC_PACKLB,
8102   TILEPRO_OPC_RL, TILEPRO_OPC_S1A, TILEPRO_OPC_S2A, TILEPRO_OPC_S3A,
8103   BITFIELD(43, 2) /* index 546 */,
8104   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, CHILD(551),
8105   BITFIELD(45, 2) /* index 551 */,
8106   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, CHILD(556),
8107   BITFIELD(47, 2) /* index 556 */,
8108   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_MOVE,
8109   BITFIELD(49, 5) /* index 561 */,
8110   TILEPRO_OPC_SB, TILEPRO_OPC_SEQB, TILEPRO_OPC_SEQH, TILEPRO_OPC_SEQ,
8111   TILEPRO_OPC_SHLB, TILEPRO_OPC_SHLH, TILEPRO_OPC_SHL, TILEPRO_OPC_SHRB,
8112   TILEPRO_OPC_SHRH, TILEPRO_OPC_SHR, TILEPRO_OPC_SH, TILEPRO_OPC_SLTB,
8113   TILEPRO_OPC_SLTB_U, TILEPRO_OPC_SLTEB, TILEPRO_OPC_SLTEB_U,
8114   TILEPRO_OPC_SLTEH, TILEPRO_OPC_SLTEH_U, TILEPRO_OPC_SLTE,
8115   TILEPRO_OPC_SLTE_U, TILEPRO_OPC_SLTH, TILEPRO_OPC_SLTH_U, TILEPRO_OPC_SLT,
8116   TILEPRO_OPC_SLT_U, TILEPRO_OPC_SNEB, TILEPRO_OPC_SNEH, TILEPRO_OPC_SNE,
8117   TILEPRO_OPC_SRAB, TILEPRO_OPC_SRAH, TILEPRO_OPC_SRA, TILEPRO_OPC_SUBB,
8118   TILEPRO_OPC_SUBH, TILEPRO_OPC_SUB,
8119   BITFIELD(49, 4) /* index 594 */,
8120   CHILD(611), CHILD(614), CHILD(617), CHILD(620), CHILD(623), CHILD(626),
8121   CHILD(629), CHILD(632), CHILD(635), CHILD(638), TILEPRO_OPC_NONE,
8122   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8123   TILEPRO_OPC_NONE,
8124   BITFIELD(53, 1) /* index 611 */,
8125   TILEPRO_OPC_SW, TILEPRO_OPC_NONE,
8126   BITFIELD(53, 1) /* index 614 */,
8127   TILEPRO_OPC_XOR, TILEPRO_OPC_NONE,
8128   BITFIELD(53, 1) /* index 617 */,
8129   TILEPRO_OPC_ADDS, TILEPRO_OPC_NONE,
8130   BITFIELD(53, 1) /* index 620 */,
8131   TILEPRO_OPC_SUBS, TILEPRO_OPC_NONE,
8132   BITFIELD(53, 1) /* index 623 */,
8133   TILEPRO_OPC_ADDBS_U, TILEPRO_OPC_NONE,
8134   BITFIELD(53, 1) /* index 626 */,
8135   TILEPRO_OPC_ADDHS, TILEPRO_OPC_NONE,
8136   BITFIELD(53, 1) /* index 629 */,
8137   TILEPRO_OPC_SUBBS_U, TILEPRO_OPC_NONE,
8138   BITFIELD(53, 1) /* index 632 */,
8139   TILEPRO_OPC_SUBHS, TILEPRO_OPC_NONE,
8140   BITFIELD(53, 1) /* index 635 */,
8141   TILEPRO_OPC_PACKHS, TILEPRO_OPC_NONE,
8142   BITFIELD(53, 1) /* index 638 */,
8143   TILEPRO_OPC_PACKBS_U, TILEPRO_OPC_NONE,
8144   BITFIELD(49, 5) /* index 641 */,
8145   TILEPRO_OPC_NONE, TILEPRO_OPC_ADDB_SN, TILEPRO_OPC_ADDH_SN,
8146   TILEPRO_OPC_ADD_SN, TILEPRO_OPC_AND_SN, TILEPRO_OPC_INTHB_SN,
8147   TILEPRO_OPC_INTHH_SN, TILEPRO_OPC_INTLB_SN, TILEPRO_OPC_INTLH_SN,
8148   TILEPRO_OPC_JALRP, TILEPRO_OPC_JALR, TILEPRO_OPC_JRP, TILEPRO_OPC_JR,
8149   TILEPRO_OPC_LNK_SN, TILEPRO_OPC_MAXB_U_SN, TILEPRO_OPC_MAXH_SN,
8150   TILEPRO_OPC_MINB_U_SN, TILEPRO_OPC_MINH_SN, TILEPRO_OPC_MNZB_SN,
8151   TILEPRO_OPC_MNZH_SN, TILEPRO_OPC_MNZ_SN, TILEPRO_OPC_MZB_SN,
8152   TILEPRO_OPC_MZH_SN, TILEPRO_OPC_MZ_SN, TILEPRO_OPC_NOR_SN, CHILD(674),
8153   TILEPRO_OPC_PACKHB_SN, TILEPRO_OPC_PACKLB_SN, TILEPRO_OPC_RL_SN,
8154   TILEPRO_OPC_S1A_SN, TILEPRO_OPC_S2A_SN, TILEPRO_OPC_S3A_SN,
8155   BITFIELD(43, 2) /* index 674 */,
8156   TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN, CHILD(679),
8157   BITFIELD(45, 2) /* index 679 */,
8158   TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN, CHILD(684),
8159   BITFIELD(47, 2) /* index 684 */,
8160   TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN, TILEPRO_OPC_OR_SN,
8161   TILEPRO_OPC_MOVE_SN,
8162   BITFIELD(49, 5) /* index 689 */,
8163   TILEPRO_OPC_SB, TILEPRO_OPC_SEQB_SN, TILEPRO_OPC_SEQH_SN,
8164   TILEPRO_OPC_SEQ_SN, TILEPRO_OPC_SHLB_SN, TILEPRO_OPC_SHLH_SN,
8165   TILEPRO_OPC_SHL_SN, TILEPRO_OPC_SHRB_SN, TILEPRO_OPC_SHRH_SN,
8166   TILEPRO_OPC_SHR_SN, TILEPRO_OPC_SH, TILEPRO_OPC_SLTB_SN,
8167   TILEPRO_OPC_SLTB_U_SN, TILEPRO_OPC_SLTEB_SN, TILEPRO_OPC_SLTEB_U_SN,
8168   TILEPRO_OPC_SLTEH_SN, TILEPRO_OPC_SLTEH_U_SN, TILEPRO_OPC_SLTE_SN,
8169   TILEPRO_OPC_SLTE_U_SN, TILEPRO_OPC_SLTH_SN, TILEPRO_OPC_SLTH_U_SN,
8170   TILEPRO_OPC_SLT_SN, TILEPRO_OPC_SLT_U_SN, TILEPRO_OPC_SNEB_SN,
8171   TILEPRO_OPC_SNEH_SN, TILEPRO_OPC_SNE_SN, TILEPRO_OPC_SRAB_SN,
8172   TILEPRO_OPC_SRAH_SN, TILEPRO_OPC_SRA_SN, TILEPRO_OPC_SUBB_SN,
8173   TILEPRO_OPC_SUBH_SN, TILEPRO_OPC_SUB_SN,
8174   BITFIELD(49, 4) /* index 722 */,
8175   CHILD(611), CHILD(739), CHILD(742), CHILD(745), CHILD(748), CHILD(751),
8176   CHILD(754), CHILD(757), CHILD(760), CHILD(763), TILEPRO_OPC_NONE,
8177   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8178   TILEPRO_OPC_NONE,
8179   BITFIELD(53, 1) /* index 739 */,
8180   TILEPRO_OPC_XOR_SN, TILEPRO_OPC_NONE,
8181   BITFIELD(53, 1) /* index 742 */,
8182   TILEPRO_OPC_ADDS_SN, TILEPRO_OPC_NONE,
8183   BITFIELD(53, 1) /* index 745 */,
8184   TILEPRO_OPC_SUBS_SN, TILEPRO_OPC_NONE,
8185   BITFIELD(53, 1) /* index 748 */,
8186   TILEPRO_OPC_ADDBS_U_SN, TILEPRO_OPC_NONE,
8187   BITFIELD(53, 1) /* index 751 */,
8188   TILEPRO_OPC_ADDHS_SN, TILEPRO_OPC_NONE,
8189   BITFIELD(53, 1) /* index 754 */,
8190   TILEPRO_OPC_SUBBS_U_SN, TILEPRO_OPC_NONE,
8191   BITFIELD(53, 1) /* index 757 */,
8192   TILEPRO_OPC_SUBHS_SN, TILEPRO_OPC_NONE,
8193   BITFIELD(53, 1) /* index 760 */,
8194   TILEPRO_OPC_PACKHS_SN, TILEPRO_OPC_NONE,
8195   BITFIELD(53, 1) /* index 763 */,
8196   TILEPRO_OPC_PACKBS_U_SN, TILEPRO_OPC_NONE,
8197   BITFIELD(37, 2) /* index 766 */,
8198   TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN,
8199   CHILD(771),
8200   BITFIELD(39, 2) /* index 771 */,
8201   TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN,
8202   CHILD(776),
8203   BITFIELD(41, 2) /* index 776 */,
8204   TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN, TILEPRO_OPC_ADDLI_SN,
8205   TILEPRO_OPC_MOVELI_SN,
8206   BITFIELD(37, 2) /* index 781 */,
8207   TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, CHILD(786),
8208   BITFIELD(39, 2) /* index 786 */,
8209   TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, CHILD(791),
8210   BITFIELD(41, 2) /* index 791 */,
8211   TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, TILEPRO_OPC_ADDLI, TILEPRO_OPC_MOVELI,
8212   BITFIELD(31, 2) /* index 796 */,
8213   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, CHILD(801),
8214   BITFIELD(33, 2) /* index 801 */,
8215   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, CHILD(806),
8216   BITFIELD(35, 2) /* index 806 */,
8217   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, CHILD(811),
8218   BITFIELD(37, 2) /* index 811 */,
8219   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, CHILD(816),
8220   BITFIELD(39, 2) /* index 816 */,
8221   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, CHILD(821),
8222   BITFIELD(41, 2) /* index 821 */,
8223   TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_AULI, TILEPRO_OPC_INFOL,
8224   BITFIELD(31, 4) /* index 826 */,
8225   TILEPRO_OPC_BZ, TILEPRO_OPC_BZT, TILEPRO_OPC_BNZ, TILEPRO_OPC_BNZT,
8226   TILEPRO_OPC_BGZ, TILEPRO_OPC_BGZT, TILEPRO_OPC_BGEZ, TILEPRO_OPC_BGEZT,
8227   TILEPRO_OPC_BLZ, TILEPRO_OPC_BLZT, TILEPRO_OPC_BLEZ, TILEPRO_OPC_BLEZT,
8228   TILEPRO_OPC_BBS, TILEPRO_OPC_BBST, TILEPRO_OPC_BBNS, TILEPRO_OPC_BBNST,
8229   BITFIELD(31, 4) /* index 843 */,
8230   TILEPRO_OPC_BZ_SN, TILEPRO_OPC_BZT_SN, TILEPRO_OPC_BNZ_SN,
8231   TILEPRO_OPC_BNZT_SN, TILEPRO_OPC_BGZ_SN, TILEPRO_OPC_BGZT_SN,
8232   TILEPRO_OPC_BGEZ_SN, TILEPRO_OPC_BGEZT_SN, TILEPRO_OPC_BLZ_SN,
8233   TILEPRO_OPC_BLZT_SN, TILEPRO_OPC_BLEZ_SN, TILEPRO_OPC_BLEZT_SN,
8234   TILEPRO_OPC_BBS_SN, TILEPRO_OPC_BBST_SN, TILEPRO_OPC_BBNS_SN,
8235   TILEPRO_OPC_BBNST_SN,
8236   BITFIELD(51, 3) /* index 860 */,
8237   TILEPRO_OPC_NONE, TILEPRO_OPC_ADDIB, TILEPRO_OPC_ADDIH, TILEPRO_OPC_ADDI,
8238   CHILD(869), TILEPRO_OPC_MAXIB_U, TILEPRO_OPC_MAXIH, TILEPRO_OPC_MFSPR,
8239   BITFIELD(31, 2) /* index 869 */,
8240   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(874),
8241   BITFIELD(33, 2) /* index 874 */,
8242   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(879),
8243   BITFIELD(35, 2) /* index 879 */,
8244   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(884),
8245   BITFIELD(37, 2) /* index 884 */,
8246   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(889),
8247   BITFIELD(39, 2) /* index 889 */,
8248   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(894),
8249   BITFIELD(41, 2) /* index 894 */,
8250   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_INFO,
8251   BITFIELD(51, 3) /* index 899 */,
8252   TILEPRO_OPC_MINIB_U, TILEPRO_OPC_MINIH, TILEPRO_OPC_MTSPR, CHILD(908),
8253   TILEPRO_OPC_SEQIB, TILEPRO_OPC_SEQIH, TILEPRO_OPC_SEQI, TILEPRO_OPC_SLTIB,
8254   BITFIELD(37, 2) /* index 908 */,
8255   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, CHILD(913),
8256   BITFIELD(39, 2) /* index 913 */,
8257   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, CHILD(918),
8258   BITFIELD(41, 2) /* index 918 */,
8259   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_MOVEI,
8260   BITFIELD(51, 3) /* index 923 */,
8261   TILEPRO_OPC_SLTIB_U, TILEPRO_OPC_SLTIH, TILEPRO_OPC_SLTIH_U,
8262   TILEPRO_OPC_SLTI, TILEPRO_OPC_SLTI_U, TILEPRO_OPC_XORI, TILEPRO_OPC_LBADD,
8263   TILEPRO_OPC_LBADD_U,
8264   BITFIELD(51, 3) /* index 932 */,
8265   TILEPRO_OPC_LHADD, TILEPRO_OPC_LHADD_U, CHILD(941), TILEPRO_OPC_LWADD_NA,
8266   TILEPRO_OPC_SBADD, TILEPRO_OPC_SHADD, TILEPRO_OPC_SWADD, TILEPRO_OPC_NONE,
8267   BITFIELD(43, 2) /* index 941 */,
8268   CHILD(946), TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD,
8269   BITFIELD(45, 2) /* index 946 */,
8270   CHILD(951), TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD,
8271   BITFIELD(47, 2) /* index 951 */,
8272   CHILD(956), TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD,
8273   BITFIELD(49, 2) /* index 956 */,
8274   TILEPRO_OPC_LW_TLS, TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD, TILEPRO_OPC_LWADD,
8275   BITFIELD(51, 3) /* index 961 */,
8276   TILEPRO_OPC_NONE, TILEPRO_OPC_ADDIB_SN, TILEPRO_OPC_ADDIH_SN,
8277   TILEPRO_OPC_ADDI_SN, TILEPRO_OPC_ANDI_SN, TILEPRO_OPC_MAXIB_U_SN,
8278   TILEPRO_OPC_MAXIH_SN, TILEPRO_OPC_MFSPR,
8279   BITFIELD(51, 3) /* index 970 */,
8280   TILEPRO_OPC_MINIB_U_SN, TILEPRO_OPC_MINIH_SN, TILEPRO_OPC_MTSPR, CHILD(979),
8281   TILEPRO_OPC_SEQIB_SN, TILEPRO_OPC_SEQIH_SN, TILEPRO_OPC_SEQI_SN,
8282   TILEPRO_OPC_SLTIB_SN,
8283   BITFIELD(37, 2) /* index 979 */,
8284   TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, CHILD(984),
8285   BITFIELD(39, 2) /* index 984 */,
8286   TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, CHILD(989),
8287   BITFIELD(41, 2) /* index 989 */,
8288   TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN, TILEPRO_OPC_ORI_SN,
8289   TILEPRO_OPC_MOVEI_SN,
8290   BITFIELD(51, 3) /* index 994 */,
8291   TILEPRO_OPC_SLTIB_U_SN, TILEPRO_OPC_SLTIH_SN, TILEPRO_OPC_SLTIH_U_SN,
8292   TILEPRO_OPC_SLTI_SN, TILEPRO_OPC_SLTI_U_SN, TILEPRO_OPC_XORI_SN,
8293   TILEPRO_OPC_LBADD_SN, TILEPRO_OPC_LBADD_U_SN,
8294   BITFIELD(51, 3) /* index 1003 */,
8295   TILEPRO_OPC_LHADD_SN, TILEPRO_OPC_LHADD_U_SN, CHILD(1012),
8296   TILEPRO_OPC_LWADD_NA_SN, TILEPRO_OPC_SBADD, TILEPRO_OPC_SHADD,
8297   TILEPRO_OPC_SWADD, TILEPRO_OPC_NONE,
8298   BITFIELD(43, 2) /* index 1012 */,
8299   CHILD(1017), TILEPRO_OPC_LWADD_SN, TILEPRO_OPC_LWADD_SN,
8300   TILEPRO_OPC_LWADD_SN,
8301   BITFIELD(45, 2) /* index 1017 */,
8302   CHILD(1022), TILEPRO_OPC_LWADD_SN, TILEPRO_OPC_LWADD_SN,
8303   TILEPRO_OPC_LWADD_SN,
8304   BITFIELD(47, 2) /* index 1022 */,
8305   CHILD(1027), TILEPRO_OPC_LWADD_SN, TILEPRO_OPC_LWADD_SN,
8306   TILEPRO_OPC_LWADD_SN,
8307   BITFIELD(49, 2) /* index 1027 */,
8308   TILEPRO_OPC_LW_TLS_SN, TILEPRO_OPC_LWADD_SN, TILEPRO_OPC_LWADD_SN,
8309   TILEPRO_OPC_LWADD_SN,
8310   BITFIELD(46, 7) /* index 1032 */,
8311   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8312   CHILD(1161), CHILD(1161), CHILD(1161), CHILD(1161), CHILD(1164),
8313   CHILD(1164), CHILD(1164), CHILD(1164), CHILD(1167), CHILD(1167),
8314   CHILD(1167), CHILD(1167), CHILD(1170), CHILD(1170), CHILD(1170),
8315   CHILD(1170), CHILD(1173), CHILD(1173), CHILD(1173), CHILD(1173),
8316   CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1179),
8317   CHILD(1179), CHILD(1179), CHILD(1179), CHILD(1182), CHILD(1182),
8318   CHILD(1182), CHILD(1182), CHILD(1185), CHILD(1185), CHILD(1185),
8319   CHILD(1185), CHILD(1188), CHILD(1188), CHILD(1188), CHILD(1188),
8320   CHILD(1191), CHILD(1282), CHILD(1330), CHILD(1363), TILEPRO_OPC_NONE,
8321   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8322   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8323   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8324   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8325   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8326   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8327   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8328   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8329   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8330   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8331   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8332   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8333   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8334   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8335   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8336   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8337   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8338   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8339   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8340   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8341   BITFIELD(53, 1) /* index 1161 */,
8342   TILEPRO_OPC_RLI, TILEPRO_OPC_NONE,
8343   BITFIELD(53, 1) /* index 1164 */,
8344   TILEPRO_OPC_SHLIB, TILEPRO_OPC_NONE,
8345   BITFIELD(53, 1) /* index 1167 */,
8346   TILEPRO_OPC_SHLIH, TILEPRO_OPC_NONE,
8347   BITFIELD(53, 1) /* index 1170 */,
8348   TILEPRO_OPC_SHLI, TILEPRO_OPC_NONE,
8349   BITFIELD(53, 1) /* index 1173 */,
8350   TILEPRO_OPC_SHRIB, TILEPRO_OPC_NONE,
8351   BITFIELD(53, 1) /* index 1176 */,
8352   TILEPRO_OPC_SHRIH, TILEPRO_OPC_NONE,
8353   BITFIELD(53, 1) /* index 1179 */,
8354   TILEPRO_OPC_SHRI, TILEPRO_OPC_NONE,
8355   BITFIELD(53, 1) /* index 1182 */,
8356   TILEPRO_OPC_SRAIB, TILEPRO_OPC_NONE,
8357   BITFIELD(53, 1) /* index 1185 */,
8358   TILEPRO_OPC_SRAIH, TILEPRO_OPC_NONE,
8359   BITFIELD(53, 1) /* index 1188 */,
8360   TILEPRO_OPC_SRAI, TILEPRO_OPC_NONE,
8361   BITFIELD(43, 3) /* index 1191 */,
8362   TILEPRO_OPC_NONE, CHILD(1200), CHILD(1203), CHILD(1206), CHILD(1209),
8363   CHILD(1212), CHILD(1215), CHILD(1218),
8364   BITFIELD(53, 1) /* index 1200 */,
8365   TILEPRO_OPC_DRAIN, TILEPRO_OPC_NONE,
8366   BITFIELD(53, 1) /* index 1203 */,
8367   TILEPRO_OPC_DTLBPR, TILEPRO_OPC_NONE,
8368   BITFIELD(53, 1) /* index 1206 */,
8369   TILEPRO_OPC_FINV, TILEPRO_OPC_NONE,
8370   BITFIELD(53, 1) /* index 1209 */,
8371   TILEPRO_OPC_FLUSH, TILEPRO_OPC_NONE,
8372   BITFIELD(53, 1) /* index 1212 */,
8373   TILEPRO_OPC_FNOP, TILEPRO_OPC_NONE,
8374   BITFIELD(53, 1) /* index 1215 */,
8375   TILEPRO_OPC_ICOH, TILEPRO_OPC_NONE,
8376   BITFIELD(31, 2) /* index 1218 */,
8377   CHILD(1223), CHILD(1251), CHILD(1279), CHILD(1279),
8378   BITFIELD(53, 1) /* index 1223 */,
8379   CHILD(1226), TILEPRO_OPC_NONE,
8380   BITFIELD(33, 2) /* index 1226 */,
8381   TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, CHILD(1231),
8382   BITFIELD(35, 2) /* index 1231 */,
8383   TILEPRO_OPC_ILL, CHILD(1236), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
8384   BITFIELD(37, 2) /* index 1236 */,
8385   TILEPRO_OPC_ILL, CHILD(1241), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
8386   BITFIELD(39, 2) /* index 1241 */,
8387   TILEPRO_OPC_ILL, CHILD(1246), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
8388   BITFIELD(41, 2) /* index 1246 */,
8389   TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, TILEPRO_OPC_BPT, TILEPRO_OPC_ILL,
8390   BITFIELD(53, 1) /* index 1251 */,
8391   CHILD(1254), TILEPRO_OPC_NONE,
8392   BITFIELD(33, 2) /* index 1254 */,
8393   TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, CHILD(1259),
8394   BITFIELD(35, 2) /* index 1259 */,
8395   TILEPRO_OPC_ILL, CHILD(1264), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
8396   BITFIELD(37, 2) /* index 1264 */,
8397   TILEPRO_OPC_ILL, CHILD(1269), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
8398   BITFIELD(39, 2) /* index 1269 */,
8399   TILEPRO_OPC_ILL, CHILD(1274), TILEPRO_OPC_ILL, TILEPRO_OPC_ILL,
8400   BITFIELD(41, 2) /* index 1274 */,
8401   TILEPRO_OPC_ILL, TILEPRO_OPC_ILL, TILEPRO_OPC_RAISE, TILEPRO_OPC_ILL,
8402   BITFIELD(53, 1) /* index 1279 */,
8403   TILEPRO_OPC_ILL, TILEPRO_OPC_NONE,
8404   BITFIELD(43, 3) /* index 1282 */,
8405   CHILD(1291), CHILD(1294), CHILD(1297), CHILD(1315), CHILD(1318),
8406   CHILD(1321), CHILD(1324), CHILD(1327),
8407   BITFIELD(53, 1) /* index 1291 */,
8408   TILEPRO_OPC_INV, TILEPRO_OPC_NONE,
8409   BITFIELD(53, 1) /* index 1294 */,
8410   TILEPRO_OPC_IRET, TILEPRO_OPC_NONE,
8411   BITFIELD(53, 1) /* index 1297 */,
8412   CHILD(1300), TILEPRO_OPC_NONE,
8413   BITFIELD(31, 2) /* index 1300 */,
8414   TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, CHILD(1305),
8415   BITFIELD(33, 2) /* index 1305 */,
8416   TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, CHILD(1310),
8417   BITFIELD(35, 2) /* index 1310 */,
8418   TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_PREFETCH,
8419   BITFIELD(53, 1) /* index 1315 */,
8420   TILEPRO_OPC_LB_U, TILEPRO_OPC_NONE,
8421   BITFIELD(53, 1) /* index 1318 */,
8422   TILEPRO_OPC_LH, TILEPRO_OPC_NONE,
8423   BITFIELD(53, 1) /* index 1321 */,
8424   TILEPRO_OPC_LH_U, TILEPRO_OPC_NONE,
8425   BITFIELD(53, 1) /* index 1324 */,
8426   TILEPRO_OPC_LW, TILEPRO_OPC_NONE,
8427   BITFIELD(53, 1) /* index 1327 */,
8428   TILEPRO_OPC_MF, TILEPRO_OPC_NONE,
8429   BITFIELD(43, 3) /* index 1330 */,
8430   CHILD(1339), CHILD(1342), CHILD(1345), CHILD(1348), CHILD(1351),
8431   CHILD(1354), CHILD(1357), CHILD(1360),
8432   BITFIELD(53, 1) /* index 1339 */,
8433   TILEPRO_OPC_NAP, TILEPRO_OPC_NONE,
8434   BITFIELD(53, 1) /* index 1342 */,
8435   TILEPRO_OPC_NOP, TILEPRO_OPC_NONE,
8436   BITFIELD(53, 1) /* index 1345 */,
8437   TILEPRO_OPC_SWINT0, TILEPRO_OPC_NONE,
8438   BITFIELD(53, 1) /* index 1348 */,
8439   TILEPRO_OPC_SWINT1, TILEPRO_OPC_NONE,
8440   BITFIELD(53, 1) /* index 1351 */,
8441   TILEPRO_OPC_SWINT2, TILEPRO_OPC_NONE,
8442   BITFIELD(53, 1) /* index 1354 */,
8443   TILEPRO_OPC_SWINT3, TILEPRO_OPC_NONE,
8444   BITFIELD(53, 1) /* index 1357 */,
8445   TILEPRO_OPC_TNS, TILEPRO_OPC_NONE,
8446   BITFIELD(53, 1) /* index 1360 */,
8447   TILEPRO_OPC_WH64, TILEPRO_OPC_NONE,
8448   BITFIELD(43, 2) /* index 1363 */,
8449   CHILD(1368), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8450   BITFIELD(45, 1) /* index 1368 */,
8451   CHILD(1371), TILEPRO_OPC_NONE,
8452   BITFIELD(53, 1) /* index 1371 */,
8453   TILEPRO_OPC_LW_NA, TILEPRO_OPC_NONE,
8454   BITFIELD(46, 7) /* index 1374 */,
8455   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8456   CHILD(1503), CHILD(1503), CHILD(1503), CHILD(1503), CHILD(1506),
8457   CHILD(1506), CHILD(1506), CHILD(1506), CHILD(1509), CHILD(1509),
8458   CHILD(1509), CHILD(1509), CHILD(1512), CHILD(1512), CHILD(1512),
8459   CHILD(1512), CHILD(1515), CHILD(1515), CHILD(1515), CHILD(1515),
8460   CHILD(1518), CHILD(1518), CHILD(1518), CHILD(1518), CHILD(1521),
8461   CHILD(1521), CHILD(1521), CHILD(1521), CHILD(1524), CHILD(1524),
8462   CHILD(1524), CHILD(1524), CHILD(1527), CHILD(1527), CHILD(1527),
8463   CHILD(1527), CHILD(1530), CHILD(1530), CHILD(1530), CHILD(1530),
8464   CHILD(1191), CHILD(1533), CHILD(1557), CHILD(1569), TILEPRO_OPC_NONE,
8465   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8466   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8467   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8468   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8469   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8470   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8471   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8472   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8473   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8474   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8475   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8476   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8477   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8478   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8479   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8480   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8481   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8482   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8483   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8484   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8485   BITFIELD(53, 1) /* index 1503 */,
8486   TILEPRO_OPC_RLI_SN, TILEPRO_OPC_NONE,
8487   BITFIELD(53, 1) /* index 1506 */,
8488   TILEPRO_OPC_SHLIB_SN, TILEPRO_OPC_NONE,
8489   BITFIELD(53, 1) /* index 1509 */,
8490   TILEPRO_OPC_SHLIH_SN, TILEPRO_OPC_NONE,
8491   BITFIELD(53, 1) /* index 1512 */,
8492   TILEPRO_OPC_SHLI_SN, TILEPRO_OPC_NONE,
8493   BITFIELD(53, 1) /* index 1515 */,
8494   TILEPRO_OPC_SHRIB_SN, TILEPRO_OPC_NONE,
8495   BITFIELD(53, 1) /* index 1518 */,
8496   TILEPRO_OPC_SHRIH_SN, TILEPRO_OPC_NONE,
8497   BITFIELD(53, 1) /* index 1521 */,
8498   TILEPRO_OPC_SHRI_SN, TILEPRO_OPC_NONE,
8499   BITFIELD(53, 1) /* index 1524 */,
8500   TILEPRO_OPC_SRAIB_SN, TILEPRO_OPC_NONE,
8501   BITFIELD(53, 1) /* index 1527 */,
8502   TILEPRO_OPC_SRAIH_SN, TILEPRO_OPC_NONE,
8503   BITFIELD(53, 1) /* index 1530 */,
8504   TILEPRO_OPC_SRAI_SN, TILEPRO_OPC_NONE,
8505   BITFIELD(43, 3) /* index 1533 */,
8506   CHILD(1291), CHILD(1294), CHILD(1542), CHILD(1545), CHILD(1548),
8507   CHILD(1551), CHILD(1554), CHILD(1327),
8508   BITFIELD(53, 1) /* index 1542 */,
8509   TILEPRO_OPC_LB_SN, TILEPRO_OPC_NONE,
8510   BITFIELD(53, 1) /* index 1545 */,
8511   TILEPRO_OPC_LB_U_SN, TILEPRO_OPC_NONE,
8512   BITFIELD(53, 1) /* index 1548 */,
8513   TILEPRO_OPC_LH_SN, TILEPRO_OPC_NONE,
8514   BITFIELD(53, 1) /* index 1551 */,
8515   TILEPRO_OPC_LH_U_SN, TILEPRO_OPC_NONE,
8516   BITFIELD(53, 1) /* index 1554 */,
8517   TILEPRO_OPC_LW_SN, TILEPRO_OPC_NONE,
8518   BITFIELD(43, 3) /* index 1557 */,
8519   CHILD(1339), CHILD(1342), CHILD(1345), CHILD(1348), CHILD(1351),
8520   CHILD(1354), CHILD(1566), CHILD(1360),
8521   BITFIELD(53, 1) /* index 1566 */,
8522   TILEPRO_OPC_TNS_SN, TILEPRO_OPC_NONE,
8523   BITFIELD(43, 2) /* index 1569 */,
8524   CHILD(1574), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8525   BITFIELD(45, 1) /* index 1574 */,
8526   CHILD(1577), TILEPRO_OPC_NONE,
8527   BITFIELD(53, 1) /* index 1577 */,
8528   TILEPRO_OPC_LW_NA_SN, TILEPRO_OPC_NONE,
8529 };
8530
8531 static const unsigned short decode_Y0_fsm[168] =
8532 {
8533   BITFIELD(27, 4) /* index 0 */,
8534   TILEPRO_OPC_NONE, CHILD(17), CHILD(22), CHILD(27), CHILD(47), CHILD(52),
8535   CHILD(57), CHILD(62), CHILD(67), TILEPRO_OPC_ADDI, CHILD(72), CHILD(102),
8536   TILEPRO_OPC_SEQI, CHILD(117), TILEPRO_OPC_SLTI, TILEPRO_OPC_SLTI_U,
8537   BITFIELD(18, 2) /* index 17 */,
8538   TILEPRO_OPC_ADD, TILEPRO_OPC_S1A, TILEPRO_OPC_S2A, TILEPRO_OPC_SUB,
8539   BITFIELD(18, 2) /* index 22 */,
8540   TILEPRO_OPC_MNZ, TILEPRO_OPC_MVNZ, TILEPRO_OPC_MVZ, TILEPRO_OPC_MZ,
8541   BITFIELD(18, 2) /* index 27 */,
8542   TILEPRO_OPC_AND, TILEPRO_OPC_NOR, CHILD(32), TILEPRO_OPC_XOR,
8543   BITFIELD(12, 2) /* index 32 */,
8544   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, CHILD(37),
8545   BITFIELD(14, 2) /* index 37 */,
8546   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, CHILD(42),
8547   BITFIELD(16, 2) /* index 42 */,
8548   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_MOVE,
8549   BITFIELD(18, 2) /* index 47 */,
8550   TILEPRO_OPC_RL, TILEPRO_OPC_SHL, TILEPRO_OPC_SHR, TILEPRO_OPC_SRA,
8551   BITFIELD(18, 2) /* index 52 */,
8552   TILEPRO_OPC_SLTE, TILEPRO_OPC_SLTE_U, TILEPRO_OPC_SLT, TILEPRO_OPC_SLT_U,
8553   BITFIELD(18, 2) /* index 57 */,
8554   TILEPRO_OPC_MULHLSA_UU, TILEPRO_OPC_S3A, TILEPRO_OPC_SEQ, TILEPRO_OPC_SNE,
8555   BITFIELD(18, 2) /* index 62 */,
8556   TILEPRO_OPC_MULHH_SS, TILEPRO_OPC_MULHH_UU, TILEPRO_OPC_MULLL_SS,
8557   TILEPRO_OPC_MULLL_UU,
8558   BITFIELD(18, 2) /* index 67 */,
8559   TILEPRO_OPC_MULHHA_SS, TILEPRO_OPC_MULHHA_UU, TILEPRO_OPC_MULLLA_SS,
8560   TILEPRO_OPC_MULLLA_UU,
8561   BITFIELD(0, 2) /* index 72 */,
8562   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(77),
8563   BITFIELD(2, 2) /* index 77 */,
8564   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(82),
8565   BITFIELD(4, 2) /* index 82 */,
8566   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(87),
8567   BITFIELD(6, 2) /* index 87 */,
8568   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(92),
8569   BITFIELD(8, 2) /* index 92 */,
8570   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(97),
8571   BITFIELD(10, 2) /* index 97 */,
8572   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_INFO,
8573   BITFIELD(6, 2) /* index 102 */,
8574   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, CHILD(107),
8575   BITFIELD(8, 2) /* index 107 */,
8576   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, CHILD(112),
8577   BITFIELD(10, 2) /* index 112 */,
8578   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_MOVEI,
8579   BITFIELD(15, 5) /* index 117 */,
8580   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8581   TILEPRO_OPC_RLI, TILEPRO_OPC_RLI, TILEPRO_OPC_RLI, TILEPRO_OPC_RLI,
8582   TILEPRO_OPC_SHLI, TILEPRO_OPC_SHLI, TILEPRO_OPC_SHLI, TILEPRO_OPC_SHLI,
8583   TILEPRO_OPC_SHRI, TILEPRO_OPC_SHRI, TILEPRO_OPC_SHRI, TILEPRO_OPC_SHRI,
8584   TILEPRO_OPC_SRAI, TILEPRO_OPC_SRAI, TILEPRO_OPC_SRAI, TILEPRO_OPC_SRAI,
8585   CHILD(150), CHILD(159), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8586   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8587   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8588   BITFIELD(12, 3) /* index 150 */,
8589   TILEPRO_OPC_NONE, TILEPRO_OPC_BITX, TILEPRO_OPC_BYTEX, TILEPRO_OPC_CLZ,
8590   TILEPRO_OPC_CTZ, TILEPRO_OPC_FNOP, TILEPRO_OPC_NOP, TILEPRO_OPC_PCNT,
8591   BITFIELD(12, 3) /* index 159 */,
8592   TILEPRO_OPC_TBLIDXB0, TILEPRO_OPC_TBLIDXB1, TILEPRO_OPC_TBLIDXB2,
8593   TILEPRO_OPC_TBLIDXB3, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8594   TILEPRO_OPC_NONE,
8595 };
8596
8597 static const unsigned short decode_Y1_fsm[140] =
8598 {
8599   BITFIELD(59, 4) /* index 0 */,
8600   TILEPRO_OPC_NONE, CHILD(17), CHILD(22), CHILD(27), CHILD(47), CHILD(52),
8601   CHILD(57), TILEPRO_OPC_ADDI, CHILD(62), CHILD(92), TILEPRO_OPC_SEQI,
8602   CHILD(107), TILEPRO_OPC_SLTI, TILEPRO_OPC_SLTI_U, TILEPRO_OPC_NONE,
8603   TILEPRO_OPC_NONE,
8604   BITFIELD(49, 2) /* index 17 */,
8605   TILEPRO_OPC_ADD, TILEPRO_OPC_S1A, TILEPRO_OPC_S2A, TILEPRO_OPC_SUB,
8606   BITFIELD(49, 2) /* index 22 */,
8607   TILEPRO_OPC_NONE, TILEPRO_OPC_MNZ, TILEPRO_OPC_MZ, TILEPRO_OPC_NONE,
8608   BITFIELD(49, 2) /* index 27 */,
8609   TILEPRO_OPC_AND, TILEPRO_OPC_NOR, CHILD(32), TILEPRO_OPC_XOR,
8610   BITFIELD(43, 2) /* index 32 */,
8611   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, CHILD(37),
8612   BITFIELD(45, 2) /* index 37 */,
8613   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, CHILD(42),
8614   BITFIELD(47, 2) /* index 42 */,
8615   TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_OR, TILEPRO_OPC_MOVE,
8616   BITFIELD(49, 2) /* index 47 */,
8617   TILEPRO_OPC_RL, TILEPRO_OPC_SHL, TILEPRO_OPC_SHR, TILEPRO_OPC_SRA,
8618   BITFIELD(49, 2) /* index 52 */,
8619   TILEPRO_OPC_SLTE, TILEPRO_OPC_SLTE_U, TILEPRO_OPC_SLT, TILEPRO_OPC_SLT_U,
8620   BITFIELD(49, 2) /* index 57 */,
8621   TILEPRO_OPC_NONE, TILEPRO_OPC_S3A, TILEPRO_OPC_SEQ, TILEPRO_OPC_SNE,
8622   BITFIELD(31, 2) /* index 62 */,
8623   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(67),
8624   BITFIELD(33, 2) /* index 67 */,
8625   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(72),
8626   BITFIELD(35, 2) /* index 72 */,
8627   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(77),
8628   BITFIELD(37, 2) /* index 77 */,
8629   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(82),
8630   BITFIELD(39, 2) /* index 82 */,
8631   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, CHILD(87),
8632   BITFIELD(41, 2) /* index 87 */,
8633   TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_ANDI, TILEPRO_OPC_INFO,
8634   BITFIELD(37, 2) /* index 92 */,
8635   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, CHILD(97),
8636   BITFIELD(39, 2) /* index 97 */,
8637   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, CHILD(102),
8638   BITFIELD(41, 2) /* index 102 */,
8639   TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_ORI, TILEPRO_OPC_MOVEI,
8640   BITFIELD(48, 3) /* index 107 */,
8641   TILEPRO_OPC_NONE, TILEPRO_OPC_RLI, TILEPRO_OPC_SHLI, TILEPRO_OPC_SHRI,
8642   TILEPRO_OPC_SRAI, CHILD(116), TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8643   BITFIELD(43, 3) /* index 116 */,
8644   TILEPRO_OPC_NONE, CHILD(125), CHILD(130), CHILD(135), TILEPRO_OPC_NONE,
8645   TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8646   BITFIELD(46, 2) /* index 125 */,
8647   TILEPRO_OPC_FNOP, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8648   BITFIELD(46, 2) /* index 130 */,
8649   TILEPRO_OPC_ILL, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8650   BITFIELD(46, 2) /* index 135 */,
8651   TILEPRO_OPC_NOP, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE, TILEPRO_OPC_NONE,
8652 };
8653
8654 static const unsigned short decode_Y2_fsm[24] =
8655 {
8656   BITFIELD(56, 3) /* index 0 */,
8657   CHILD(9), TILEPRO_OPC_LB_U, TILEPRO_OPC_LH, TILEPRO_OPC_LH_U,
8658   TILEPRO_OPC_LW, TILEPRO_OPC_SB, TILEPRO_OPC_SH, TILEPRO_OPC_SW,
8659   BITFIELD(20, 2) /* index 9 */,
8660   TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, CHILD(14),
8661   BITFIELD(22, 2) /* index 14 */,
8662   TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, CHILD(19),
8663   BITFIELD(24, 2) /* index 19 */,
8664   TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_LB, TILEPRO_OPC_PREFETCH,
8665 };
8666
8667 #undef BITFIELD
8668 #undef CHILD
8669
8670 const unsigned short * const
8671 tilepro_bundle_decoder_fsms[TILEPRO_NUM_PIPELINE_ENCODINGS] =
8672 {
8673   decode_X0_fsm,
8674   decode_X1_fsm,
8675   decode_Y0_fsm,
8676   decode_Y1_fsm,
8677   decode_Y2_fsm
8678 };
8679
8680 #ifndef DISASM_ONLY
8681 const struct tilepro_sn_opcode tilepro_sn_opcodes[23] =
8682 {
8683  { "bz", TILEPRO_SN_OPC_BZ,
8684     1 /* num_operands */,
8685     /* operands */
8686     { 38 },
8687     /* fixed_bit_mask */
8688     0xfc00,
8689     /* fixed_bit_value */
8690     0xe000
8691   },
8692   { "bnz", TILEPRO_SN_OPC_BNZ,
8693     1 /* num_operands */,
8694     /* operands */
8695     { 38 },
8696     /* fixed_bit_mask */
8697     0xfc00,
8698     /* fixed_bit_value */
8699     0xe400
8700   },
8701   { "jrr", TILEPRO_SN_OPC_JRR,
8702     1 /* num_operands */,
8703     /* operands */
8704     { 39 },
8705     /* fixed_bit_mask */
8706     0xff00,
8707     /* fixed_bit_value */
8708     0x0600
8709   },
8710   { "fnop", TILEPRO_SN_OPC_FNOP,
8711     0 /* num_operands */,
8712     /* operands */
8713     { 0, },
8714     /* fixed_bit_mask */
8715     0xffff,
8716     /* fixed_bit_value */
8717     0x0003
8718   },
8719   { "blz", TILEPRO_SN_OPC_BLZ,
8720     1 /* num_operands */,
8721     /* operands */
8722     { 38 },
8723     /* fixed_bit_mask */
8724     0xfc00,
8725     /* fixed_bit_value */
8726     0xf000
8727   },
8728   { "nop", TILEPRO_SN_OPC_NOP,
8729     0 /* num_operands */,
8730     /* operands */
8731     { 0, },
8732     /* fixed_bit_mask */
8733     0xffff,
8734     /* fixed_bit_value */
8735     0x0002
8736   },
8737   { "movei", TILEPRO_SN_OPC_MOVEI,
8738     1 /* num_operands */,
8739     /* operands */
8740     { 40 },
8741     /* fixed_bit_mask */
8742     0xff00,
8743     /* fixed_bit_value */
8744     0x0400
8745   },
8746   { "move", TILEPRO_SN_OPC_MOVE,
8747     2 /* num_operands */,
8748     /* operands */
8749     { 41, 42 },
8750     /* fixed_bit_mask */
8751     0xfff0,
8752     /* fixed_bit_value */
8753     0x0080
8754   },
8755   { "bgez", TILEPRO_SN_OPC_BGEZ,
8756     1 /* num_operands */,
8757     /* operands */
8758     { 38 },
8759     /* fixed_bit_mask */
8760     0xfc00,
8761     /* fixed_bit_value */
8762     0xf400
8763   },
8764   { "jr", TILEPRO_SN_OPC_JR,
8765     1 /* num_operands */,
8766     /* operands */
8767     { 42 },
8768     /* fixed_bit_mask */
8769     0xfff0,
8770     /* fixed_bit_value */
8771     0x0040
8772   },
8773   { "blez", TILEPRO_SN_OPC_BLEZ,
8774     1 /* num_operands */,
8775     /* operands */
8776     { 38 },
8777     /* fixed_bit_mask */
8778     0xfc00,
8779     /* fixed_bit_value */
8780     0xec00
8781   },
8782   { "bbns", TILEPRO_SN_OPC_BBNS,
8783     1 /* num_operands */,
8784     /* operands */
8785     { 38 },
8786     /* fixed_bit_mask */
8787     0xfc00,
8788     /* fixed_bit_value */
8789     0xfc00
8790   },
8791   { "jalrr", TILEPRO_SN_OPC_JALRR,
8792     1 /* num_operands */,
8793     /* operands */
8794     { 39 },
8795     /* fixed_bit_mask */
8796     0xff00,
8797     /* fixed_bit_value */
8798     0x0700
8799   },
8800   { "bpt", TILEPRO_SN_OPC_BPT,
8801     0 /* num_operands */,
8802     /* operands */
8803     { 0, },
8804     /* fixed_bit_mask */
8805     0xffff,
8806     /* fixed_bit_value */
8807     0x0001
8808   },
8809   { "jalr", TILEPRO_SN_OPC_JALR,
8810     1 /* num_operands */,
8811     /* operands */
8812     { 42 },
8813     /* fixed_bit_mask */
8814     0xfff0,
8815     /* fixed_bit_value */
8816     0x0050
8817   },
8818   { "shr1", TILEPRO_SN_OPC_SHR1,
8819     2 /* num_operands */,
8820     /* operands */
8821     { 41, 42 },
8822     /* fixed_bit_mask */
8823     0xfff0,
8824     /* fixed_bit_value */
8825     0x0090
8826   },
8827   { "bgz", TILEPRO_SN_OPC_BGZ,
8828     1 /* num_operands */,
8829     /* operands */
8830     { 38 },
8831     /* fixed_bit_mask */
8832     0xfc00,
8833     /* fixed_bit_value */
8834     0xe800
8835   },
8836   { "bbs", TILEPRO_SN_OPC_BBS,
8837     1 /* num_operands */,
8838     /* operands */
8839     { 38 },
8840     /* fixed_bit_mask */
8841     0xfc00,
8842     /* fixed_bit_value */
8843     0xf800
8844   },
8845   { "shl8ii", TILEPRO_SN_OPC_SHL8II,
8846     1 /* num_operands */,
8847     /* operands */
8848     { 39 },
8849     /* fixed_bit_mask */
8850     0xff00,
8851     /* fixed_bit_value */
8852     0x0300
8853   },
8854   { "addi", TILEPRO_SN_OPC_ADDI,
8855     1 /* num_operands */,
8856     /* operands */
8857     { 40 },
8858     /* fixed_bit_mask */
8859     0xff00,
8860     /* fixed_bit_value */
8861     0x0500
8862   },
8863   { "halt", TILEPRO_SN_OPC_HALT,
8864     0 /* num_operands */,
8865     /* operands */
8866     { 0, },
8867     /* fixed_bit_mask */
8868     0xffff,
8869     /* fixed_bit_value */
8870     0x0000
8871   },
8872   { "route", TILEPRO_SN_OPC_ROUTE, 0, { 0, }, 0, 0,
8873   },
8874   { 0, TILEPRO_SN_OPC_NONE, 0, { 0, }, 0, 0,
8875   }
8876 };
8877
8878 const unsigned char tilepro_sn_route_encode[6 * 6 * 6] =
8879 {
8880   0xdf,
8881   0xde,
8882   0xdd,
8883   0xdc,
8884   0xdb,
8885   0xda,
8886   0xb9,
8887   0xb8,
8888   0xa1,
8889   0xa0,
8890   0x11,
8891   0x10,
8892   0x9f,
8893   0x9e,
8894   0x9d,
8895   0x9c,
8896   0x9b,
8897   0x9a,
8898   0x79,
8899   0x78,
8900   0x61,
8901   0x60,
8902   0xb,
8903   0xa,
8904   0x5f,
8905   0x5e,
8906   0x5d,
8907   0x5c,
8908   0x5b,
8909   0x5a,
8910   0x1f,
8911   0x1e,
8912   0x1d,
8913   0x1c,
8914   0x1b,
8915   0x1a,
8916   0xd7,
8917   0xd6,
8918   0xd5,
8919   0xd4,
8920   0xd3,
8921   0xd2,
8922   0xa7,
8923   0xa6,
8924   0xb1,
8925   0xb0,
8926   0x13,
8927   0x12,
8928   0x97,
8929   0x96,
8930   0x95,
8931   0x94,
8932   0x93,
8933   0x92,
8934   0x67,
8935   0x66,
8936   0x71,
8937   0x70,
8938   0x9,
8939   0x8,
8940   0x57,
8941   0x56,
8942   0x55,
8943   0x54,
8944   0x53,
8945   0x52,
8946   0x17,
8947   0x16,
8948   0x15,
8949   0x14,
8950   0x19,
8951   0x18,
8952   0xcf,
8953   0xce,
8954   0xcd,
8955   0xcc,
8956   0xcb,
8957   0xca,
8958   0xaf,
8959   0xae,
8960   0xad,
8961   0xac,
8962   0xab,
8963   0xaa,
8964   0x8f,
8965   0x8e,
8966   0x8d,
8967   0x8c,
8968   0x8b,
8969   0x8a,
8970   0x6f,
8971   0x6e,
8972   0x6d,
8973   0x6c,
8974   0x6b,
8975   0x6a,
8976   0x4f,
8977   0x4e,
8978   0x4d,
8979   0x4c,
8980   0x4b,
8981   0x4a,
8982   0x2f,
8983   0x2e,
8984   0x2d,
8985   0x2c,
8986   0x2b,
8987   0x2a,
8988   0xc9,
8989   0xc8,
8990   0xc5,
8991   0xc4,
8992   0xc3,
8993   0xc2,
8994   0xa9,
8995   0xa8,
8996   0xa5,
8997   0xa4,
8998   0xa3,
8999   0xa2,
9000   0x89,
9001   0x88,
9002   0x85,
9003   0x84,
9004   0x83,
9005   0x82,
9006   0x69,
9007   0x68,
9008   0x65,
9009   0x64,
9010   0x63,
9011   0x62,
9012   0x47,
9013   0x46,
9014   0x45,
9015   0x44,
9016   0x43,
9017   0x42,
9018   0x27,
9019   0x26,
9020   0x25,
9021   0x24,
9022   0x23,
9023   0x22,
9024   0xd9,
9025   0xd8,
9026   0xc1,
9027   0xc0,
9028   0x3b,
9029   0x3a,
9030   0xbf,
9031   0xbe,
9032   0xbd,
9033   0xbc,
9034   0xbb,
9035   0xba,
9036   0x99,
9037   0x98,
9038   0x81,
9039   0x80,
9040   0x31,
9041   0x30,
9042   0x7f,
9043   0x7e,
9044   0x7d,
9045   0x7c,
9046   0x7b,
9047   0x7a,
9048   0x59,
9049   0x58,
9050   0x3d,
9051   0x3c,
9052   0x49,
9053   0x48,
9054   0xf,
9055   0xe,
9056   0xd,
9057   0xc,
9058   0x29,
9059   0x28,
9060   0xc7,
9061   0xc6,
9062   0xd1,
9063   0xd0,
9064   0x39,
9065   0x38,
9066   0xb7,
9067   0xb6,
9068   0xb5,
9069   0xb4,
9070   0xb3,
9071   0xb2,
9072   0x87,
9073   0x86,
9074   0x91,
9075   0x90,
9076   0x33,
9077   0x32,
9078   0x77,
9079   0x76,
9080   0x75,
9081   0x74,
9082   0x73,
9083   0x72,
9084   0x3f,
9085   0x3e,
9086   0x51,
9087   0x50,
9088   0x41,
9089   0x40,
9090   0x37,
9091   0x36,
9092   0x35,
9093   0x34,
9094   0x21,
9095   0x20
9096 };
9097
9098 const signed char tilepro_sn_route_decode[256][3] =
9099 {
9100   { -1, -1, -1 },
9101   { -1, -1, -1 },
9102   { -1, -1, -1 },
9103   { -1, -1, -1 },
9104   { -1, -1, -1 },
9105   { -1, -1, -1 },
9106   { -1, -1, -1 },
9107   { -1, -1, -1 },
9108   { 5, 3, 1 },
9109   { 4, 3, 1 },
9110   { 5, 3, 0 },
9111   { 4, 3, 0 },
9112   { 3, 5, 4 },
9113   { 2, 5, 4 },
9114   { 1, 5, 4 },
9115   { 0, 5, 4 },
9116   { 5, 1, 0 },
9117   { 4, 1, 0 },
9118   { 5, 1, 1 },
9119   { 4, 1, 1 },
9120   { 3, 5, 1 },
9121   { 2, 5, 1 },
9122   { 1, 5, 1 },
9123   { 0, 5, 1 },
9124   { 5, 5, 1 },
9125   { 4, 5, 1 },
9126   { 5, 5, 0 },
9127   { 4, 5, 0 },
9128   { 3, 5, 0 },
9129   { 2, 5, 0 },
9130   { 1, 5, 0 },
9131   { 0, 5, 0 },
9132   { 5, 5, 5 },
9133   { 4, 5, 5 },
9134   { 5, 5, 3 },
9135   { 4, 5, 3 },
9136   { 3, 5, 3 },
9137   { 2, 5, 3 },
9138   { 1, 5, 3 },
9139   { 0, 5, 3 },
9140   { 5, 5, 4 },
9141   { 4, 5, 4 },
9142   { 5, 5, 2 },
9143   { 4, 5, 2 },
9144   { 3, 5, 2 },
9145   { 2, 5, 2 },
9146   { 1, 5, 2 },
9147   { 0, 5, 2 },
9148   { 5, 2, 4 },
9149   { 4, 2, 4 },
9150   { 5, 2, 5 },
9151   { 4, 2, 5 },
9152   { 3, 5, 5 },
9153   { 2, 5, 5 },
9154   { 1, 5, 5 },
9155   { 0, 5, 5 },
9156   { 5, 0, 5 },
9157   { 4, 0, 5 },
9158   { 5, 0, 4 },
9159   { 4, 0, 4 },
9160   { 3, 4, 4 },
9161   { 2, 4, 4 },
9162   { 1, 4, 5 },
9163   { 0, 4, 5 },
9164   { 5, 4, 5 },
9165   { 4, 4, 5 },
9166   { 5, 4, 3 },
9167   { 4, 4, 3 },
9168   { 3, 4, 3 },
9169   { 2, 4, 3 },
9170   { 1, 4, 3 },
9171   { 0, 4, 3 },
9172   { 5, 4, 4 },
9173   { 4, 4, 4 },
9174   { 5, 4, 2 },
9175   { 4, 4, 2 },
9176   { 3, 4, 2 },
9177   { 2, 4, 2 },
9178   { 1, 4, 2 },
9179   { 0, 4, 2 },
9180   { 3, 4, 5 },
9181   { 2, 4, 5 },
9182   { 5, 4, 1 },
9183   { 4, 4, 1 },
9184   { 3, 4, 1 },
9185   { 2, 4, 1 },
9186   { 1, 4, 1 },
9187   { 0, 4, 1 },
9188   { 1, 4, 4 },
9189   { 0, 4, 4 },
9190   { 5, 4, 0 },
9191   { 4, 4, 0 },
9192   { 3, 4, 0 },
9193   { 2, 4, 0 },
9194   { 1, 4, 0 },
9195   { 0, 4, 0 },
9196   { 3, 3, 0 },
9197   { 2, 3, 0 },
9198   { 5, 3, 3 },
9199   { 4, 3, 3 },
9200   { 3, 3, 3 },
9201   { 2, 3, 3 },
9202   { 1, 3, 1 },
9203   { 0, 3, 1 },
9204   { 1, 3, 3 },
9205   { 0, 3, 3 },
9206   { 5, 3, 2 },
9207   { 4, 3, 2 },
9208   { 3, 3, 2 },
9209   { 2, 3, 2 },
9210   { 1, 3, 2 },
9211   { 0, 3, 2 },
9212   { 3, 3, 1 },
9213   { 2, 3, 1 },
9214   { 5, 3, 5 },
9215   { 4, 3, 5 },
9216   { 3, 3, 5 },
9217   { 2, 3, 5 },
9218   { 1, 3, 5 },
9219   { 0, 3, 5 },
9220   { 1, 3, 0 },
9221   { 0, 3, 0 },
9222   { 5, 3, 4 },
9223   { 4, 3, 4 },
9224   { 3, 3, 4 },
9225   { 2, 3, 4 },
9226   { 1, 3, 4 },
9227   { 0, 3, 4 },
9228   { 3, 2, 4 },
9229   { 2, 2, 4 },
9230   { 5, 2, 3 },
9231   { 4, 2, 3 },
9232   { 3, 2, 3 },
9233   { 2, 2, 3 },
9234   { 1, 2, 5 },
9235   { 0, 2, 5 },
9236   { 1, 2, 3 },
9237   { 0, 2, 3 },
9238   { 5, 2, 2 },
9239   { 4, 2, 2 },
9240   { 3, 2, 2 },
9241   { 2, 2, 2 },
9242   { 1, 2, 2 },
9243   { 0, 2, 2 },
9244   { 3, 2, 5 },
9245   { 2, 2, 5 },
9246   { 5, 2, 1 },
9247   { 4, 2, 1 },
9248   { 3, 2, 1 },
9249   { 2, 2, 1 },
9250   { 1, 2, 1 },
9251   { 0, 2, 1 },
9252   { 1, 2, 4 },
9253   { 0, 2, 4 },
9254   { 5, 2, 0 },
9255   { 4, 2, 0 },
9256   { 3, 2, 0 },
9257   { 2, 2, 0 },
9258   { 1, 2, 0 },
9259   { 0, 2, 0 },
9260   { 3, 1, 0 },
9261   { 2, 1, 0 },
9262   { 5, 1, 3 },
9263   { 4, 1, 3 },
9264   { 3, 1, 3 },
9265   { 2, 1, 3 },
9266   { 1, 1, 1 },
9267   { 0, 1, 1 },
9268   { 1, 1, 3 },
9269   { 0, 1, 3 },
9270   { 5, 1, 2 },
9271   { 4, 1, 2 },
9272   { 3, 1, 2 },
9273   { 2, 1, 2 },
9274   { 1, 1, 2 },
9275   { 0, 1, 2 },
9276   { 3, 1, 1 },
9277   { 2, 1, 1 },
9278   { 5, 1, 5 },
9279   { 4, 1, 5 },
9280   { 3, 1, 5 },
9281   { 2, 1, 5 },
9282   { 1, 1, 5 },
9283   { 0, 1, 5 },
9284   { 1, 1, 0 },
9285   { 0, 1, 0 },
9286   { 5, 1, 4 },
9287   { 4, 1, 4 },
9288   { 3, 1, 4 },
9289   { 2, 1, 4 },
9290   { 1, 1, 4 },
9291   { 0, 1, 4 },
9292   { 3, 0, 4 },
9293   { 2, 0, 4 },
9294   { 5, 0, 3 },
9295   { 4, 0, 3 },
9296   { 3, 0, 3 },
9297   { 2, 0, 3 },
9298   { 1, 0, 5 },
9299   { 0, 0, 5 },
9300   { 1, 0, 3 },
9301   { 0, 0, 3 },
9302   { 5, 0, 2 },
9303   { 4, 0, 2 },
9304   { 3, 0, 2 },
9305   { 2, 0, 2 },
9306   { 1, 0, 2 },
9307   { 0, 0, 2 },
9308   { 3, 0, 5 },
9309   { 2, 0, 5 },
9310   { 5, 0, 1 },
9311   { 4, 0, 1 },
9312   { 3, 0, 1 },
9313   { 2, 0, 1 },
9314   { 1, 0, 1 },
9315   { 0, 0, 1 },
9316   { 1, 0, 4 },
9317   { 0, 0, 4 },
9318   { 5, 0, 0 },
9319   { 4, 0, 0 },
9320   { 3, 0, 0 },
9321   { 2, 0, 0 },
9322   { 1, 0, 0 },
9323   { 0, 0, 0 },
9324   { -1, -1, -1 },
9325   { -1, -1, -1 },
9326   { -1, -1, -1 },
9327   { -1, -1, -1 },
9328   { -1, -1, -1 },
9329   { -1, -1, -1 },
9330   { -1, -1, -1 },
9331   { -1, -1, -1 },
9332   { -1, -1, -1 },
9333   { -1, -1, -1 },
9334   { -1, -1, -1 },
9335   { -1, -1, -1 },
9336   { -1, -1, -1 },
9337   { -1, -1, -1 },
9338   { -1, -1, -1 },
9339   { -1, -1, -1 },
9340   { -1, -1, -1 },
9341   { -1, -1, -1 },
9342   { -1, -1, -1 },
9343   { -1, -1, -1 },
9344   { -1, -1, -1 },
9345   { -1, -1, -1 },
9346   { -1, -1, -1 },
9347   { -1, -1, -1 },
9348   { -1, -1, -1 },
9349   { -1, -1, -1 },
9350   { -1, -1, -1 },
9351   { -1, -1, -1 },
9352   { -1, -1, -1 },
9353   { -1, -1, -1 },
9354   { -1, -1, -1 },
9355   { -1, -1, -1 }
9356 };
9357
9358 const char tilepro_sn_direction_names[6][5] =
9359 {
9360   "w",
9361   "c",
9362   "acc",
9363   "n",
9364   "e",
9365   "s"
9366 };
9367
9368 const signed char tilepro_sn_dest_map[6][6] =
9369 {
9370   { -1, 3, 4, 5, 1, 2 } /* val -> w */,
9371   { -1, 3, 4, 5, 0, 2 } /* val -> c */,
9372   { -1, 3, 4, 5, 0, 1 } /* val -> acc */,
9373   { -1, 4, 5, 0, 1, 2 } /* val -> n */,
9374   { -1, 3, 5, 0, 1, 2 } /* val -> e */,
9375   { -1, 3, 4, 0, 1, 2 } /* val -> s */
9376 };
9377 #endif /* DISASM_ONLY */
9378
9379 const struct tilepro_operand tilepro_operands[43] =
9380 {
9381   {
9382     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM8_X0),
9383     8, 1, 0, 0, 0, 0,
9384     create_Imm8_X0, get_Imm8_X0
9385   },
9386   {
9387     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM8_X1),
9388     8, 1, 0, 0, 0, 0,
9389     create_Imm8_X1, get_Imm8_X1
9390   },
9391   {
9392     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM8_Y0),
9393     8, 1, 0, 0, 0, 0,
9394     create_Imm8_Y0, get_Imm8_Y0
9395   },
9396   {
9397     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM8_Y1),
9398     8, 1, 0, 0, 0, 0,
9399     create_Imm8_Y1, get_Imm8_Y1
9400   },
9401   {
9402     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM16_X0),
9403     16, 1, 0, 0, 0, 0,
9404     create_Imm16_X0, get_Imm16_X0
9405   },
9406   {
9407     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_IMM16_X1),
9408     16, 1, 0, 0, 0, 0,
9409     create_Imm16_X1, get_Imm16_X1
9410   },
9411   {
9412     TILEPRO_OP_TYPE_ADDRESS, BFD_RELOC(TILEPRO_JOFFLONG_X1),
9413     29, 1, 0, 0, 1, TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
9414     create_JOffLong_X1, get_JOffLong_X1
9415   },
9416   {
9417     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9418     6, 0, 0, 1, 0, 0,
9419     create_Dest_X1, get_Dest_X1
9420   },
9421   {
9422     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9423     6, 0, 1, 0, 0, 0,
9424     create_SrcA_X1, get_SrcA_X1
9425   },
9426   {
9427     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9428     6, 0, 0, 1, 0, 0,
9429     create_Dest_X0, get_Dest_X0
9430   },
9431   {
9432     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9433     6, 0, 1, 0, 0, 0,
9434     create_SrcA_X0, get_SrcA_X0
9435   },
9436   {
9437     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9438     6, 0, 0, 1, 0, 0,
9439     create_Dest_Y0, get_Dest_Y0
9440   },
9441   {
9442     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9443     6, 0, 1, 0, 0, 0,
9444     create_SrcA_Y0, get_SrcA_Y0
9445   },
9446   {
9447     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9448     6, 0, 0, 1, 0, 0,
9449     create_Dest_Y1, get_Dest_Y1
9450   },
9451   {
9452     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9453     6, 0, 1, 0, 0, 0,
9454     create_SrcA_Y1, get_SrcA_Y1
9455   },
9456   {
9457     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9458     6, 0, 1, 0, 0, 0,
9459     create_SrcA_Y2, get_SrcA_Y2
9460   },
9461   {
9462     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9463     6, 0, 1, 0, 0, 0,
9464     create_SrcB_X0, get_SrcB_X0
9465   },
9466   {
9467     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9468     6, 0, 1, 0, 0, 0,
9469     create_SrcB_X1, get_SrcB_X1
9470   },
9471   {
9472     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9473     6, 0, 1, 0, 0, 0,
9474     create_SrcB_Y0, get_SrcB_Y0
9475   },
9476   {
9477     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9478     6, 0, 1, 0, 0, 0,
9479     create_SrcB_Y1, get_SrcB_Y1
9480   },
9481   {
9482     TILEPRO_OP_TYPE_ADDRESS, BFD_RELOC(TILEPRO_BROFF_X1),
9483     17, 1, 0, 0, 1, TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
9484     create_BrOff_X1, get_BrOff_X1
9485   },
9486   {
9487     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9488     6, 0, 1, 1, 0, 0,
9489     create_Dest_X0, get_Dest_X0
9490   },
9491   {
9492     TILEPRO_OP_TYPE_ADDRESS, BFD_RELOC(NONE),
9493     28, 1, 0, 0, 1, TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
9494     create_JOff_X1, get_JOff_X1
9495   },
9496   {
9497     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9498     6, 0, 0, 1, 0, 0,
9499     create_SrcBDest_Y2, get_SrcBDest_Y2
9500   },
9501   {
9502     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9503     6, 0, 1, 1, 0, 0,
9504     create_SrcA_X1, get_SrcA_X1
9505   },
9506   {
9507     TILEPRO_OP_TYPE_SPR, BFD_RELOC(TILEPRO_MF_IMM15_X1),
9508     15, 0, 0, 0, 0, 0,
9509     create_MF_Imm15_X1, get_MF_Imm15_X1
9510   },
9511   {
9512     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_MMSTART_X0),
9513     5, 0, 0, 0, 0, 0,
9514     create_MMStart_X0, get_MMStart_X0
9515   },
9516   {
9517     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_MMEND_X0),
9518     5, 0, 0, 0, 0, 0,
9519     create_MMEnd_X0, get_MMEnd_X0
9520   },
9521   {
9522     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_MMSTART_X1),
9523     5, 0, 0, 0, 0, 0,
9524     create_MMStart_X1, get_MMStart_X1
9525   },
9526   {
9527     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_MMEND_X1),
9528     5, 0, 0, 0, 0, 0,
9529     create_MMEnd_X1, get_MMEnd_X1
9530   },
9531   {
9532     TILEPRO_OP_TYPE_SPR, BFD_RELOC(TILEPRO_MT_IMM15_X1),
9533     15, 0, 0, 0, 0, 0,
9534     create_MT_Imm15_X1, get_MT_Imm15_X1
9535   },
9536   {
9537     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9538     6, 0, 1, 1, 0, 0,
9539     create_Dest_Y0, get_Dest_Y0
9540   },
9541   {
9542     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_SHAMT_X0),
9543     5, 0, 0, 0, 0, 0,
9544     create_ShAmt_X0, get_ShAmt_X0
9545   },
9546   {
9547     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_SHAMT_X1),
9548     5, 0, 0, 0, 0, 0,
9549     create_ShAmt_X1, get_ShAmt_X1
9550   },
9551   {
9552     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_SHAMT_Y0),
9553     5, 0, 0, 0, 0, 0,
9554     create_ShAmt_Y0, get_ShAmt_Y0
9555   },
9556   {
9557     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_SHAMT_Y1),
9558     5, 0, 0, 0, 0, 0,
9559     create_ShAmt_Y1, get_ShAmt_Y1
9560   },
9561   {
9562     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9563     6, 0, 1, 0, 0, 0,
9564     create_SrcBDest_Y2, get_SrcBDest_Y2
9565   },
9566   {
9567     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEPRO_DEST_IMM8_X1),
9568     8, 1, 0, 0, 0, 0,
9569     create_Dest_Imm8_X1, get_Dest_Imm8_X1
9570   },
9571   {
9572     TILEPRO_OP_TYPE_ADDRESS, BFD_RELOC(NONE),
9573     10, 1, 0, 0, 1, TILEPRO_LOG2_SN_INSTRUCTION_SIZE_IN_BYTES,
9574     create_BrOff_SN, get_BrOff_SN
9575   },
9576   {
9577     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(NONE),
9578     8, 0, 0, 0, 0, 0,
9579     create_Imm8_SN, get_Imm8_SN
9580   },
9581   {
9582     TILEPRO_OP_TYPE_IMMEDIATE, BFD_RELOC(NONE),
9583     8, 1, 0, 0, 0, 0,
9584     create_Imm8_SN, get_Imm8_SN
9585   },
9586   {
9587     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9588     2, 0, 0, 1, 0, 0,
9589     create_Dest_SN, get_Dest_SN
9590   },
9591   {
9592     TILEPRO_OP_TYPE_REGISTER, BFD_RELOC(NONE),
9593     2, 0, 1, 0, 0, 0,
9594     create_Src_SN, get_Src_SN
9595   }
9596 };
9597
9598 #ifndef DISASM_ONLY
9599 const struct tilepro_spr tilepro_sprs[] =
9600 {
9601   { 0, "MPL_ITLB_MISS_SET_0" },
9602   { 1, "MPL_ITLB_MISS_SET_1" },
9603   { 2, "MPL_ITLB_MISS_SET_2" },
9604   { 3, "MPL_ITLB_MISS_SET_3" },
9605   { 4, "MPL_ITLB_MISS" },
9606   { 256, "ITLB_CURRENT_0" },
9607   { 257, "ITLB_CURRENT_1" },
9608   { 258, "ITLB_CURRENT_2" },
9609   { 259, "ITLB_CURRENT_3" },
9610   { 260, "ITLB_INDEX" },
9611   { 261, "ITLB_MATCH_0" },
9612   { 262, "ITLB_PR" },
9613   { 263, "NUMBER_ITLB" },
9614   { 264, "REPLACEMENT_ITLB" },
9615   { 265, "WIRED_ITLB" },
9616   { 266, "ITLB_PERF" },
9617   { 512, "MPL_MEM_ERROR_SET_0" },
9618   { 513, "MPL_MEM_ERROR_SET_1" },
9619   { 514, "MPL_MEM_ERROR_SET_2" },
9620   { 515, "MPL_MEM_ERROR_SET_3" },
9621   { 516, "MPL_MEM_ERROR" },
9622   { 517, "L1_I_ERROR" },
9623   { 518, "MEM_ERROR_CBOX_ADDR" },
9624   { 519, "MEM_ERROR_CBOX_STATUS" },
9625   { 520, "MEM_ERROR_ENABLE" },
9626   { 521, "MEM_ERROR_MBOX_ADDR" },
9627   { 522, "MEM_ERROR_MBOX_STATUS" },
9628   { 523, "SNIC_ERROR_LOG_STATUS" },
9629   { 524, "SNIC_ERROR_LOG_VA" },
9630   { 525, "XDN_DEMUX_ERROR" },
9631   { 1024, "MPL_ILL_SET_0" },
9632   { 1025, "MPL_ILL_SET_1" },
9633   { 1026, "MPL_ILL_SET_2" },
9634   { 1027, "MPL_ILL_SET_3" },
9635   { 1028, "MPL_ILL" },
9636   { 1536, "MPL_GPV_SET_0" },
9637   { 1537, "MPL_GPV_SET_1" },
9638   { 1538, "MPL_GPV_SET_2" },
9639   { 1539, "MPL_GPV_SET_3" },
9640   { 1540, "MPL_GPV" },
9641   { 1541, "GPV_REASON" },
9642   { 2048, "MPL_SN_ACCESS_SET_0" },
9643   { 2049, "MPL_SN_ACCESS_SET_1" },
9644   { 2050, "MPL_SN_ACCESS_SET_2" },
9645   { 2051, "MPL_SN_ACCESS_SET_3" },
9646   { 2052, "MPL_SN_ACCESS" },
9647   { 2053, "SNCTL" },
9648   { 2054, "SNFIFO_DATA" },
9649   { 2055, "SNFIFO_SEL" },
9650   { 2056, "SNIC_INVADDR" },
9651   { 2057, "SNISTATE" },
9652   { 2058, "SNOSTATE" },
9653   { 2059, "SNPC" },
9654   { 2060, "SNSTATIC" },
9655   { 2304, "SN_DATA_AVAIL" },
9656   { 2560, "MPL_IDN_ACCESS_SET_0" },
9657   { 2561, "MPL_IDN_ACCESS_SET_1" },
9658   { 2562, "MPL_IDN_ACCESS_SET_2" },
9659   { 2563, "MPL_IDN_ACCESS_SET_3" },
9660   { 2564, "MPL_IDN_ACCESS" },
9661   { 2565, "IDN_DEMUX_CA_COUNT" },
9662   { 2566, "IDN_DEMUX_COUNT_0" },
9663   { 2567, "IDN_DEMUX_COUNT_1" },
9664   { 2568, "IDN_DEMUX_CTL" },
9665   { 2569, "IDN_DEMUX_CURR_TAG" },
9666   { 2570, "IDN_DEMUX_QUEUE_SEL" },
9667   { 2571, "IDN_DEMUX_STATUS" },
9668   { 2572, "IDN_DEMUX_WRITE_FIFO" },
9669   { 2573, "IDN_DEMUX_WRITE_QUEUE" },
9670   { 2574, "IDN_PENDING" },
9671   { 2575, "IDN_SP_FIFO_DATA" },
9672   { 2576, "IDN_SP_FIFO_SEL" },
9673   { 2577, "IDN_SP_FREEZE" },
9674   { 2578, "IDN_SP_STATE" },
9675   { 2579, "IDN_TAG_0" },
9676   { 2580, "IDN_TAG_1" },
9677   { 2581, "IDN_TAG_VALID" },
9678   { 2582, "IDN_TILE_COORD" },
9679   { 2816, "IDN_CA_DATA" },
9680   { 2817, "IDN_CA_REM" },
9681   { 2818, "IDN_CA_TAG" },
9682   { 2819, "IDN_DATA_AVAIL" },
9683   { 3072, "MPL_UDN_ACCESS_SET_0" },
9684   { 3073, "MPL_UDN_ACCESS_SET_1" },
9685   { 3074, "MPL_UDN_ACCESS_SET_2" },
9686   { 3075, "MPL_UDN_ACCESS_SET_3" },
9687   { 3076, "MPL_UDN_ACCESS" },
9688   { 3077, "UDN_DEMUX_CA_COUNT" },
9689   { 3078, "UDN_DEMUX_COUNT_0" },
9690   { 3079, "UDN_DEMUX_COUNT_1" },
9691   { 3080, "UDN_DEMUX_COUNT_2" },
9692   { 3081, "UDN_DEMUX_COUNT_3" },
9693   { 3082, "UDN_DEMUX_CTL" },
9694   { 3083, "UDN_DEMUX_CURR_TAG" },
9695   { 3084, "UDN_DEMUX_QUEUE_SEL" },
9696   { 3085, "UDN_DEMUX_STATUS" },
9697   { 3086, "UDN_DEMUX_WRITE_FIFO" },
9698   { 3087, "UDN_DEMUX_WRITE_QUEUE" },
9699   { 3088, "UDN_PENDING" },
9700   { 3089, "UDN_SP_FIFO_DATA" },
9701   { 3090, "UDN_SP_FIFO_SEL" },
9702   { 3091, "UDN_SP_FREEZE" },
9703   { 3092, "UDN_SP_STATE" },
9704   { 3093, "UDN_TAG_0" },
9705   { 3094, "UDN_TAG_1" },
9706   { 3095, "UDN_TAG_2" },
9707   { 3096, "UDN_TAG_3" },
9708   { 3097, "UDN_TAG_VALID" },
9709   { 3098, "UDN_TILE_COORD" },
9710   { 3328, "UDN_CA_DATA" },
9711   { 3329, "UDN_CA_REM" },
9712   { 3330, "UDN_CA_TAG" },
9713   { 3331, "UDN_DATA_AVAIL" },
9714   { 3584, "MPL_IDN_REFILL_SET_0" },
9715   { 3585, "MPL_IDN_REFILL_SET_1" },
9716   { 3586, "MPL_IDN_REFILL_SET_2" },
9717   { 3587, "MPL_IDN_REFILL_SET_3" },
9718   { 3588, "MPL_IDN_REFILL" },
9719   { 3589, "IDN_REFILL_EN" },
9720   { 4096, "MPL_UDN_REFILL_SET_0" },
9721   { 4097, "MPL_UDN_REFILL_SET_1" },
9722   { 4098, "MPL_UDN_REFILL_SET_2" },
9723   { 4099, "MPL_UDN_REFILL_SET_3" },
9724   { 4100, "MPL_UDN_REFILL" },
9725   { 4101, "UDN_REFILL_EN" },
9726   { 4608, "MPL_IDN_COMPLETE_SET_0" },
9727   { 4609, "MPL_IDN_COMPLETE_SET_1" },
9728   { 4610, "MPL_IDN_COMPLETE_SET_2" },
9729   { 4611, "MPL_IDN_COMPLETE_SET_3" },
9730   { 4612, "MPL_IDN_COMPLETE" },
9731   { 4613, "IDN_REMAINING" },
9732   { 5120, "MPL_UDN_COMPLETE_SET_0" },
9733   { 5121, "MPL_UDN_COMPLETE_SET_1" },
9734   { 5122, "MPL_UDN_COMPLETE_SET_2" },
9735   { 5123, "MPL_UDN_COMPLETE_SET_3" },
9736   { 5124, "MPL_UDN_COMPLETE" },
9737   { 5125, "UDN_REMAINING" },
9738   { 5632, "MPL_SWINT_3_SET_0" },
9739   { 5633, "MPL_SWINT_3_SET_1" },
9740   { 5634, "MPL_SWINT_3_SET_2" },
9741   { 5635, "MPL_SWINT_3_SET_3" },
9742   { 5636, "MPL_SWINT_3" },
9743   { 6144, "MPL_SWINT_2_SET_0" },
9744   { 6145, "MPL_SWINT_2_SET_1" },
9745   { 6146, "MPL_SWINT_2_SET_2" },
9746   { 6147, "MPL_SWINT_2_SET_3" },
9747   { 6148, "MPL_SWINT_2" },
9748   { 6656, "MPL_SWINT_1_SET_0" },
9749   { 6657, "MPL_SWINT_1_SET_1" },
9750   { 6658, "MPL_SWINT_1_SET_2" },
9751   { 6659, "MPL_SWINT_1_SET_3" },
9752   { 6660, "MPL_SWINT_1" },
9753   { 7168, "MPL_SWINT_0_SET_0" },
9754   { 7169, "MPL_SWINT_0_SET_1" },
9755   { 7170, "MPL_SWINT_0_SET_2" },
9756   { 7171, "MPL_SWINT_0_SET_3" },
9757   { 7172, "MPL_SWINT_0" },
9758   { 7680, "MPL_UNALIGN_DATA_SET_0" },
9759   { 7681, "MPL_UNALIGN_DATA_SET_1" },
9760   { 7682, "MPL_UNALIGN_DATA_SET_2" },
9761   { 7683, "MPL_UNALIGN_DATA_SET_3" },
9762   { 7684, "MPL_UNALIGN_DATA" },
9763   { 8192, "MPL_DTLB_MISS_SET_0" },
9764   { 8193, "MPL_DTLB_MISS_SET_1" },
9765   { 8194, "MPL_DTLB_MISS_SET_2" },
9766   { 8195, "MPL_DTLB_MISS_SET_3" },
9767   { 8196, "MPL_DTLB_MISS" },
9768   { 8448, "AER_0" },
9769   { 8449, "AER_1" },
9770   { 8450, "DTLB_BAD_ADDR" },
9771   { 8451, "DTLB_BAD_ADDR_REASON" },
9772   { 8452, "DTLB_CURRENT_0" },
9773   { 8453, "DTLB_CURRENT_1" },
9774   { 8454, "DTLB_CURRENT_2" },
9775   { 8455, "DTLB_CURRENT_3" },
9776   { 8456, "DTLB_INDEX" },
9777   { 8457, "DTLB_MATCH_0" },
9778   { 8458, "NUMBER_DTLB" },
9779   { 8459, "PHYSICAL_MEMORY_MODE" },
9780   { 8460, "REPLACEMENT_DTLB" },
9781   { 8461, "WIRED_DTLB" },
9782   { 8462, "CACHE_RED_WAY_OVERRIDDEN" },
9783   { 8463, "DTLB_PERF" },
9784   { 8704, "MPL_DTLB_ACCESS_SET_0" },
9785   { 8705, "MPL_DTLB_ACCESS_SET_1" },
9786   { 8706, "MPL_DTLB_ACCESS_SET_2" },
9787   { 8707, "MPL_DTLB_ACCESS_SET_3" },
9788   { 8708, "MPL_DTLB_ACCESS" },
9789   { 9216, "MPL_DMATLB_MISS_SET_0" },
9790   { 9217, "MPL_DMATLB_MISS_SET_1" },
9791   { 9218, "MPL_DMATLB_MISS_SET_2" },
9792   { 9219, "MPL_DMATLB_MISS_SET_3" },
9793   { 9220, "MPL_DMATLB_MISS" },
9794   { 9472, "DMA_BAD_ADDR" },
9795   { 9473, "DMA_STATUS" },
9796   { 9728, "MPL_DMATLB_ACCESS_SET_0" },
9797   { 9729, "MPL_DMATLB_ACCESS_SET_1" },
9798   { 9730, "MPL_DMATLB_ACCESS_SET_2" },
9799   { 9731, "MPL_DMATLB_ACCESS_SET_3" },
9800   { 9732, "MPL_DMATLB_ACCESS" },
9801   { 10240, "MPL_SNITLB_MISS_SET_0" },
9802   { 10241, "MPL_SNITLB_MISS_SET_1" },
9803   { 10242, "MPL_SNITLB_MISS_SET_2" },
9804   { 10243, "MPL_SNITLB_MISS_SET_3" },
9805   { 10244, "MPL_SNITLB_MISS" },
9806   { 10245, "NUMBER_SNITLB" },
9807   { 10246, "REPLACEMENT_SNITLB" },
9808   { 10247, "SNITLB_CURRENT_0" },
9809   { 10248, "SNITLB_CURRENT_1" },
9810   { 10249, "SNITLB_CURRENT_2" },
9811   { 10250, "SNITLB_CURRENT_3" },
9812   { 10251, "SNITLB_INDEX" },
9813   { 10252, "SNITLB_MATCH_0" },
9814   { 10253, "SNITLB_PR" },
9815   { 10254, "WIRED_SNITLB" },
9816   { 10255, "SNITLB_STATUS" },
9817   { 10752, "MPL_SN_NOTIFY_SET_0" },
9818   { 10753, "MPL_SN_NOTIFY_SET_1" },
9819   { 10754, "MPL_SN_NOTIFY_SET_2" },
9820   { 10755, "MPL_SN_NOTIFY_SET_3" },
9821   { 10756, "MPL_SN_NOTIFY" },
9822   { 10757, "SN_NOTIFY_STATUS" },
9823   { 11264, "MPL_SN_FIREWALL_SET_0" },
9824   { 11265, "MPL_SN_FIREWALL_SET_1" },
9825   { 11266, "MPL_SN_FIREWALL_SET_2" },
9826   { 11267, "MPL_SN_FIREWALL_SET_3" },
9827   { 11268, "MPL_SN_FIREWALL" },
9828   { 11269, "SN_DIRECTION_PROTECT" },
9829   { 11776, "MPL_IDN_FIREWALL_SET_0" },
9830   { 11777, "MPL_IDN_FIREWALL_SET_1" },
9831   { 11778, "MPL_IDN_FIREWALL_SET_2" },
9832   { 11779, "MPL_IDN_FIREWALL_SET_3" },
9833   { 11780, "MPL_IDN_FIREWALL" },
9834   { 11781, "IDN_DIRECTION_PROTECT" },
9835   { 12288, "MPL_UDN_FIREWALL_SET_0" },
9836   { 12289, "MPL_UDN_FIREWALL_SET_1" },
9837   { 12290, "MPL_UDN_FIREWALL_SET_2" },
9838   { 12291, "MPL_UDN_FIREWALL_SET_3" },
9839   { 12292, "MPL_UDN_FIREWALL" },
9840   { 12293, "UDN_DIRECTION_PROTECT" },
9841   { 12800, "MPL_TILE_TIMER_SET_0" },
9842   { 12801, "MPL_TILE_TIMER_SET_1" },
9843   { 12802, "MPL_TILE_TIMER_SET_2" },
9844   { 12803, "MPL_TILE_TIMER_SET_3" },
9845   { 12804, "MPL_TILE_TIMER" },
9846   { 12805, "TILE_TIMER_CONTROL" },
9847   { 13312, "MPL_IDN_TIMER_SET_0" },
9848   { 13313, "MPL_IDN_TIMER_SET_1" },
9849   { 13314, "MPL_IDN_TIMER_SET_2" },
9850   { 13315, "MPL_IDN_TIMER_SET_3" },
9851   { 13316, "MPL_IDN_TIMER" },
9852   { 13317, "IDN_DEADLOCK_COUNT" },
9853   { 13318, "IDN_DEADLOCK_TIMEOUT" },
9854   { 13824, "MPL_UDN_TIMER_SET_0" },
9855   { 13825, "MPL_UDN_TIMER_SET_1" },
9856   { 13826, "MPL_UDN_TIMER_SET_2" },
9857   { 13827, "MPL_UDN_TIMER_SET_3" },
9858   { 13828, "MPL_UDN_TIMER" },
9859   { 13829, "UDN_DEADLOCK_COUNT" },
9860   { 13830, "UDN_DEADLOCK_TIMEOUT" },
9861   { 14336, "MPL_DMA_NOTIFY_SET_0" },
9862   { 14337, "MPL_DMA_NOTIFY_SET_1" },
9863   { 14338, "MPL_DMA_NOTIFY_SET_2" },
9864   { 14339, "MPL_DMA_NOTIFY_SET_3" },
9865   { 14340, "MPL_DMA_NOTIFY" },
9866   { 14592, "DMA_BYTE" },
9867   { 14593, "DMA_CHUNK_SIZE" },
9868   { 14594, "DMA_CTR" },
9869   { 14595, "DMA_DST_ADDR" },
9870   { 14596, "DMA_DST_CHUNK_ADDR" },
9871   { 14597, "DMA_SRC_ADDR" },
9872   { 14598, "DMA_SRC_CHUNK_ADDR" },
9873   { 14599, "DMA_STRIDE" },
9874   { 14600, "DMA_USER_STATUS" },
9875   { 14848, "MPL_IDN_CA_SET_0" },
9876   { 14849, "MPL_IDN_CA_SET_1" },
9877   { 14850, "MPL_IDN_CA_SET_2" },
9878   { 14851, "MPL_IDN_CA_SET_3" },
9879   { 14852, "MPL_IDN_CA" },
9880   { 15360, "MPL_UDN_CA_SET_0" },
9881   { 15361, "MPL_UDN_CA_SET_1" },
9882   { 15362, "MPL_UDN_CA_SET_2" },
9883   { 15363, "MPL_UDN_CA_SET_3" },
9884   { 15364, "MPL_UDN_CA" },
9885   { 15872, "MPL_IDN_AVAIL_SET_0" },
9886   { 15873, "MPL_IDN_AVAIL_SET_1" },
9887   { 15874, "MPL_IDN_AVAIL_SET_2" },
9888   { 15875, "MPL_IDN_AVAIL_SET_3" },
9889   { 15876, "MPL_IDN_AVAIL" },
9890   { 15877, "IDN_AVAIL_EN" },
9891   { 16384, "MPL_UDN_AVAIL_SET_0" },
9892   { 16385, "MPL_UDN_AVAIL_SET_1" },
9893   { 16386, "MPL_UDN_AVAIL_SET_2" },
9894   { 16387, "MPL_UDN_AVAIL_SET_3" },
9895   { 16388, "MPL_UDN_AVAIL" },
9896   { 16389, "UDN_AVAIL_EN" },
9897   { 16896, "MPL_PERF_COUNT_SET_0" },
9898   { 16897, "MPL_PERF_COUNT_SET_1" },
9899   { 16898, "MPL_PERF_COUNT_SET_2" },
9900   { 16899, "MPL_PERF_COUNT_SET_3" },
9901   { 16900, "MPL_PERF_COUNT" },
9902   { 16901, "PERF_COUNT_0" },
9903   { 16902, "PERF_COUNT_1" },
9904   { 16903, "PERF_COUNT_CTL" },
9905   { 16904, "PERF_COUNT_STS" },
9906   { 16905, "WATCH_CTL" },
9907   { 16906, "WATCH_MASK" },
9908   { 16907, "WATCH_VAL" },
9909   { 16912, "PERF_COUNT_DN_CTL" },
9910   { 17408, "MPL_INTCTRL_3_SET_0" },
9911   { 17409, "MPL_INTCTRL_3_SET_1" },
9912   { 17410, "MPL_INTCTRL_3_SET_2" },
9913   { 17411, "MPL_INTCTRL_3_SET_3" },
9914   { 17412, "MPL_INTCTRL_3" },
9915   { 17413, "EX_CONTEXT_3_0" },
9916   { 17414, "EX_CONTEXT_3_1" },
9917   { 17415, "INTERRUPT_MASK_3_0" },
9918   { 17416, "INTERRUPT_MASK_3_1" },
9919   { 17417, "INTERRUPT_MASK_RESET_3_0" },
9920   { 17418, "INTERRUPT_MASK_RESET_3_1" },
9921   { 17419, "INTERRUPT_MASK_SET_3_0" },
9922   { 17420, "INTERRUPT_MASK_SET_3_1" },
9923   { 17432, "INTCTRL_3_STATUS" },
9924   { 17664, "SYSTEM_SAVE_3_0" },
9925   { 17665, "SYSTEM_SAVE_3_1" },
9926   { 17666, "SYSTEM_SAVE_3_2" },
9927   { 17667, "SYSTEM_SAVE_3_3" },
9928   { 17920, "MPL_INTCTRL_2_SET_0" },
9929   { 17921, "MPL_INTCTRL_2_SET_1" },
9930   { 17922, "MPL_INTCTRL_2_SET_2" },
9931   { 17923, "MPL_INTCTRL_2_SET_3" },
9932   { 17924, "MPL_INTCTRL_2" },
9933   { 17925, "EX_CONTEXT_2_0" },
9934   { 17926, "EX_CONTEXT_2_1" },
9935   { 17927, "INTCTRL_2_STATUS" },
9936   { 17928, "INTERRUPT_MASK_2_0" },
9937   { 17929, "INTERRUPT_MASK_2_1" },
9938   { 17930, "INTERRUPT_MASK_RESET_2_0" },
9939   { 17931, "INTERRUPT_MASK_RESET_2_1" },
9940   { 17932, "INTERRUPT_MASK_SET_2_0" },
9941   { 17933, "INTERRUPT_MASK_SET_2_1" },
9942   { 18176, "SYSTEM_SAVE_2_0" },
9943   { 18177, "SYSTEM_SAVE_2_1" },
9944   { 18178, "SYSTEM_SAVE_2_2" },
9945   { 18179, "SYSTEM_SAVE_2_3" },
9946   { 18432, "MPL_INTCTRL_1_SET_0" },
9947   { 18433, "MPL_INTCTRL_1_SET_1" },
9948   { 18434, "MPL_INTCTRL_1_SET_2" },
9949   { 18435, "MPL_INTCTRL_1_SET_3" },
9950   { 18436, "MPL_INTCTRL_1" },
9951   { 18437, "EX_CONTEXT_1_0" },
9952   { 18438, "EX_CONTEXT_1_1" },
9953   { 18439, "INTCTRL_1_STATUS" },
9954   { 18440, "INTCTRL_3_STATUS_REV0" },
9955   { 18441, "INTERRUPT_MASK_1_0" },
9956   { 18442, "INTERRUPT_MASK_1_1" },
9957   { 18443, "INTERRUPT_MASK_RESET_1_0" },
9958   { 18444, "INTERRUPT_MASK_RESET_1_1" },
9959   { 18445, "INTERRUPT_MASK_SET_1_0" },
9960   { 18446, "INTERRUPT_MASK_SET_1_1" },
9961   { 18688, "SYSTEM_SAVE_1_0" },
9962   { 18689, "SYSTEM_SAVE_1_1" },
9963   { 18690, "SYSTEM_SAVE_1_2" },
9964   { 18691, "SYSTEM_SAVE_1_3" },
9965   { 18944, "MPL_INTCTRL_0_SET_0" },
9966   { 18945, "MPL_INTCTRL_0_SET_1" },
9967   { 18946, "MPL_INTCTRL_0_SET_2" },
9968   { 18947, "MPL_INTCTRL_0_SET_3" },
9969   { 18948, "MPL_INTCTRL_0" },
9970   { 18949, "EX_CONTEXT_0_0" },
9971   { 18950, "EX_CONTEXT_0_1" },
9972   { 18951, "INTCTRL_0_STATUS" },
9973   { 18952, "INTERRUPT_MASK_0_0" },
9974   { 18953, "INTERRUPT_MASK_0_1" },
9975   { 18954, "INTERRUPT_MASK_RESET_0_0" },
9976   { 18955, "INTERRUPT_MASK_RESET_0_1" },
9977   { 18956, "INTERRUPT_MASK_SET_0_0" },
9978   { 18957, "INTERRUPT_MASK_SET_0_1" },
9979   { 19200, "SYSTEM_SAVE_0_0" },
9980   { 19201, "SYSTEM_SAVE_0_1" },
9981   { 19202, "SYSTEM_SAVE_0_2" },
9982   { 19203, "SYSTEM_SAVE_0_3" },
9983   { 19456, "MPL_BOOT_ACCESS_SET_0" },
9984   { 19457, "MPL_BOOT_ACCESS_SET_1" },
9985   { 19458, "MPL_BOOT_ACCESS_SET_2" },
9986   { 19459, "MPL_BOOT_ACCESS_SET_3" },
9987   { 19460, "MPL_BOOT_ACCESS" },
9988   { 19461, "CBOX_CACHEASRAM_CONFIG" },
9989   { 19462, "CBOX_CACHE_CONFIG" },
9990   { 19463, "CBOX_MMAP_0" },
9991   { 19464, "CBOX_MMAP_1" },
9992   { 19465, "CBOX_MMAP_2" },
9993   { 19466, "CBOX_MMAP_3" },
9994   { 19467, "CBOX_MSR" },
9995   { 19468, "CBOX_SRC_ID" },
9996   { 19469, "CYCLE_HIGH_MODIFY" },
9997   { 19470, "CYCLE_LOW_MODIFY" },
9998   { 19471, "DIAG_BCST_CTL" },
9999   { 19472, "DIAG_BCST_MASK" },
10000   { 19473, "DIAG_BCST_TRIGGER" },
10001   { 19474, "DIAG_MUX_CTL" },
10002   { 19475, "DIAG_TRACE_CTL" },
10003   { 19476, "DIAG_TRACE_STS" },
10004   { 19477, "IDN_DEMUX_BUF_THRESH" },
10005   { 19478, "SBOX_CONFIG" },
10006   { 19479, "TILE_COORD" },
10007   { 19480, "UDN_DEMUX_BUF_THRESH" },
10008   { 19481, "CBOX_HOME_MAP_ADDR" },
10009   { 19482, "CBOX_HOME_MAP_DATA" },
10010   { 19483, "CBOX_MSR1" },
10011   { 19484, "BIG_ENDIAN_CONFIG" },
10012   { 19485, "MEM_STRIPE_CONFIG" },
10013   { 19486, "DIAG_TRACE_WAY" },
10014   { 19487, "VDN_SNOOP_SHIM_CTL" },
10015   { 19488, "PERF_COUNT_PLS" },
10016   { 19489, "DIAG_TRACE_DATA" },
10017   { 19712, "I_AER_0" },
10018   { 19713, "I_AER_1" },
10019   { 19714, "I_PHYSICAL_MEMORY_MODE" },
10020   { 19968, "MPL_WORLD_ACCESS_SET_0" },
10021   { 19969, "MPL_WORLD_ACCESS_SET_1" },
10022   { 19970, "MPL_WORLD_ACCESS_SET_2" },
10023   { 19971, "MPL_WORLD_ACCESS_SET_3" },
10024   { 19972, "MPL_WORLD_ACCESS" },
10025   { 19973, "SIM_SOCKET" },
10026   { 19974, "CYCLE_HIGH" },
10027   { 19975, "CYCLE_LOW" },
10028   { 19976, "DONE" },
10029   { 19977, "FAIL" },
10030   { 19978, "INTERRUPT_CRITICAL_SECTION" },
10031   { 19979, "PASS" },
10032   { 19980, "SIM_CONTROL" },
10033   { 19981, "EVENT_BEGIN" },
10034   { 19982, "EVENT_END" },
10035   { 19983, "TILE_WRITE_PENDING" },
10036   { 19984, "TILE_RTF_HWM" },
10037   { 20224, "PROC_STATUS" },
10038   { 20225, "STATUS_SATURATE" },
10039   { 20480, "MPL_I_ASID_SET_0" },
10040   { 20481, "MPL_I_ASID_SET_1" },
10041   { 20482, "MPL_I_ASID_SET_2" },
10042   { 20483, "MPL_I_ASID_SET_3" },
10043   { 20484, "MPL_I_ASID" },
10044   { 20485, "I_ASID" },
10045   { 20992, "MPL_D_ASID_SET_0" },
10046   { 20993, "MPL_D_ASID_SET_1" },
10047   { 20994, "MPL_D_ASID_SET_2" },
10048   { 20995, "MPL_D_ASID_SET_3" },
10049   { 20996, "MPL_D_ASID" },
10050   { 20997, "D_ASID" },
10051   { 21504, "MPL_DMA_ASID_SET_0" },
10052   { 21505, "MPL_DMA_ASID_SET_1" },
10053   { 21506, "MPL_DMA_ASID_SET_2" },
10054   { 21507, "MPL_DMA_ASID_SET_3" },
10055   { 21508, "MPL_DMA_ASID" },
10056   { 21509, "DMA_ASID" },
10057   { 22016, "MPL_SNI_ASID_SET_0" },
10058   { 22017, "MPL_SNI_ASID_SET_1" },
10059   { 22018, "MPL_SNI_ASID_SET_2" },
10060   { 22019, "MPL_SNI_ASID_SET_3" },
10061   { 22020, "MPL_SNI_ASID" },
10062   { 22021, "SNI_ASID" },
10063   { 22528, "MPL_DMA_CPL_SET_0" },
10064   { 22529, "MPL_DMA_CPL_SET_1" },
10065   { 22530, "MPL_DMA_CPL_SET_2" },
10066   { 22531, "MPL_DMA_CPL_SET_3" },
10067   { 22532, "MPL_DMA_CPL" },
10068   { 23040, "MPL_SN_CPL_SET_0" },
10069   { 23041, "MPL_SN_CPL_SET_1" },
10070   { 23042, "MPL_SN_CPL_SET_2" },
10071   { 23043, "MPL_SN_CPL_SET_3" },
10072   { 23044, "MPL_SN_CPL" },
10073   { 23552, "MPL_DOUBLE_FAULT_SET_0" },
10074   { 23553, "MPL_DOUBLE_FAULT_SET_1" },
10075   { 23554, "MPL_DOUBLE_FAULT_SET_2" },
10076   { 23555, "MPL_DOUBLE_FAULT_SET_3" },
10077   { 23556, "MPL_DOUBLE_FAULT" },
10078   { 23557, "LAST_INTERRUPT_REASON" },
10079   { 24064, "MPL_SN_STATIC_ACCESS_SET_0" },
10080   { 24065, "MPL_SN_STATIC_ACCESS_SET_1" },
10081   { 24066, "MPL_SN_STATIC_ACCESS_SET_2" },
10082   { 24067, "MPL_SN_STATIC_ACCESS_SET_3" },
10083   { 24068, "MPL_SN_STATIC_ACCESS" },
10084   { 24069, "SN_STATIC_CTL" },
10085   { 24070, "SN_STATIC_FIFO_DATA" },
10086   { 24071, "SN_STATIC_FIFO_SEL" },
10087   { 24073, "SN_STATIC_ISTATE" },
10088   { 24074, "SN_STATIC_OSTATE" },
10089   { 24076, "SN_STATIC_STATIC" },
10090   { 24320, "SN_STATIC_DATA_AVAIL" },
10091   { 24576, "MPL_AUX_PERF_COUNT_SET_0" },
10092   { 24577, "MPL_AUX_PERF_COUNT_SET_1" },
10093   { 24578, "MPL_AUX_PERF_COUNT_SET_2" },
10094   { 24579, "MPL_AUX_PERF_COUNT_SET_3" },
10095   { 24580, "MPL_AUX_PERF_COUNT" },
10096   { 24581, "AUX_PERF_COUNT_0" },
10097   { 24582, "AUX_PERF_COUNT_1" },
10098   { 24583, "AUX_PERF_COUNT_CTL" },
10099   { 24584, "AUX_PERF_COUNT_STS" },
10100 };
10101
10102 const int tilepro_num_sprs = 499;
10103
10104 #endif /* DISASM_ONLY */
10105
10106 #ifndef DISASM_ONLY
10107
10108 #include <stdlib.h>
10109
10110 static int
10111 tilepro_spr_compare (const void *a_ptr, const void *b_ptr)
10112 {
10113   const struct tilepro_spr *a = (const struct tilepro_spr *) a_ptr;
10114   const struct tilepro_spr *b = (const struct tilepro_spr *) b_ptr;
10115
10116   return a->number - b->number;
10117 }
10118
10119 const char *
10120 get_tilepro_spr_name (int num)
10121 {
10122   void *result;
10123   struct tilepro_spr key;
10124
10125   key.number = num;
10126   result = bsearch ((const void *) &key, (const void *) tilepro_sprs,
10127                     tilepro_num_sprs, sizeof (struct tilepro_spr),
10128                     tilepro_spr_compare);
10129
10130   if (result == NULL)
10131     return NULL;
10132
10133   {
10134     struct tilepro_spr *result_ptr = (struct tilepro_spr *) result;
10135
10136     return result_ptr->name;
10137   }
10138 }
10139
10140
10141 /* Canonical name of each register. */
10142 const char * const tilepro_register_names[] =
10143 {
10144   "r0",   "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7",
10145   "r8",   "r9",  "r10", "r11", "r12", "r13", "r14", "r15",
10146   "r16",  "r17", "r18", "r19", "r20", "r21", "r22", "r23",
10147   "r24",  "r25", "r26", "r27", "r28", "r29", "r30", "r31",
10148   "r32",  "r33", "r34", "r35", "r36", "r37", "r38", "r39",
10149   "r40",  "r41", "r42", "r43", "r44", "r45", "r46", "r47",
10150   "r48",  "r49", "r50", "r51", "r52", "tp",  "sp",  "lr",
10151   "sn",  "idn0", "idn1", "udn0", "udn1", "udn2", "udn3", "zero"
10152 };
10153
10154 #endif /* not DISASM_ONLY */
10155
10156
10157 /* Given a set of bundle bits and a specific pipe, returns which
10158    instruction the bundle contains in that pipe.  */
10159
10160 const struct tilepro_opcode *
10161 find_opcode (tilepro_bundle_bits bits, tilepro_pipeline pipe)
10162 {
10163   const unsigned short *table = tilepro_bundle_decoder_fsms[pipe];
10164   int i = 0;
10165
10166   while (1)
10167     {
10168       unsigned short bitspec = table[i];
10169       unsigned int bitfield =
10170         ((unsigned int) (bits >> (bitspec & 63))) & (bitspec >> 6);
10171       unsigned short next = table[i + 1 + bitfield];
10172
10173       if (next <= TILEPRO_OPC_NONE)
10174         return &tilepro_opcodes[next];
10175
10176       i = next - TILEPRO_OPC_NONE;
10177     }
10178 }
10179
10180
10181 int
10182 parse_insn_tilepro (tilepro_bundle_bits bits,
10183                     unsigned int pc,
10184                     struct tilepro_decoded_instruction
10185                     decoded[TILEPRO_MAX_INSTRUCTIONS_PER_BUNDLE])
10186 {
10187   int num_instructions = 0;
10188   int pipe;
10189   int min_pipe, max_pipe;
10190
10191   if ((bits & TILEPRO_BUNDLE_Y_ENCODING_MASK) == 0)
10192     {
10193       min_pipe = TILEPRO_PIPELINE_X0;
10194       max_pipe = TILEPRO_PIPELINE_X1;
10195     }
10196   else
10197     {
10198       min_pipe = TILEPRO_PIPELINE_Y0;
10199       max_pipe = TILEPRO_PIPELINE_Y2;
10200     }
10201
10202   /* For each pipe, find an instruction that fits.  */
10203   for (pipe = min_pipe; pipe <= max_pipe; pipe++)
10204     {
10205       const struct tilepro_opcode *opc;
10206       struct tilepro_decoded_instruction *d;
10207       int i;
10208
10209       d = &decoded[num_instructions++];
10210       opc = find_opcode (bits, (tilepro_pipeline)pipe);
10211       d->opcode = opc;
10212
10213       /* Decode each operand, sign extending, etc. as appropriate.  */
10214       for (i = 0; i < opc->num_operands; i++)
10215         {
10216           const struct tilepro_operand *op =
10217             &tilepro_operands[opc->operands[pipe][i]];
10218           int opval = op->extract (bits);
10219
10220           if (op->is_signed)
10221             {
10222               /* Sign-extend the operand.  */
10223               int shift = (int)((sizeof(int) * 8) - op->num_bits);
10224               opval = (opval << shift) >> shift;
10225             }
10226
10227           /* Adjust PC-relative scaled branch offsets.  */
10228           if (op->type == TILEPRO_OP_TYPE_ADDRESS)
10229             {
10230               opval *= TILEPRO_BUNDLE_SIZE_IN_BYTES;
10231               opval += (int)pc;
10232             }
10233
10234           /* Record the final value.  */
10235           d->operands[i] = op;
10236           d->operand_values[i] = opval;
10237         }
10238     }
10239
10240   return num_instructions;
10241 }