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